Chinaunix首页 | 论坛 | 博客
  • 博客访问: 653867
  • 博文数量: 150
  • 博客积分: 4070
  • 博客等级: 中校
  • 技术积分: 1795
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-23 21:44
文章分类

全部博文(150)

文章存档

2012年(1)

2011年(123)

2010年(26)

分类: 数据库开发技术

2011-06-06 17:15:29

1、主键和唯一索引的区别?

答:主键顺序为数据的物理顺序;

       主键不能为空,唯一索引可以为空;

       主键每个表只能有一个,唯一索引可以有多个;

       主键被默认将是聚簇索引,唯一索引默认将是非聚簇索引。

 

2、什么是分布式数据库?

答:数据库分布在计算机网络的不同计算机上,网络中的每个节点具有独立处理的能力,可以执行局部应用,同时,每个节点也能通过网络通信子系统执行全局应用。

 

3、恢复和并发的基本单位?

答:事务。

 

4、存储过程、触发器、函数三者之间的区别?

答:存储过程是一组为了完成特定功能的SQL语句集,是利用SQL语言编写的程序,它涉及到对特定的表或其他对象的操作,用户可以调用存储过程。

       触发器是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如,当对一个表进行操作(insertdeleteupdate)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。

       函数通常是数据库已经定义好的方法,用户给出相应的参数就会返回某种类型的结果,它不像存储过程一样会涉及某个特定的用户表。

 

5、事务是什么?

答:事务是作为一个逻辑单元执行的一系列操作。一个逻辑工作单元必须有4个属性,称为ACID属性,只有这样才能称为一个事务。

A原子性:事务必须是原子工作单元,对于其数据修改,要么全部执行,要么全都不执行。

C一致性:事务在完成时,必须使所有的数据都保持一致。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据结果(如B树索引或双向链表)都必须是正确的。

I隔离性:一个事务的执行不能被其他事务干扰,即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发事务之间不能互相干扰。

D持久性:持续性也称为永久性,指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的,接下来的其他操作或故障不应该对其有任何影响。

 

6、游标?游标作用?如何知道游标已经到了最后?

答:游标(cursor)是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果。每个游标区都有一个名字。用户可以通过游标逐一获取记录,并赋给主变量,交由主语言进一步处理。

       游标用于定位结果集的行,通过判断全局变量@@FETCH_STATUS可以判断其是否到了最后,通常此变量不等于表示出错或到了最后。

 

7、事前触发器和事后触发器的区别?语句级触发器和行级触发器有何区别?

答:事前触发器运行于触发事件发生之前,事后触发器运行于触发事件发生之后。

       语句级触发器可以在语句执行前或后执行,而行级触发在触发器影响的每一行触发一次。

 

8SQL结构化查询语言

 

9、表、索引、视图的定义语法?

答:定义表:Create Table 表名(列名1 数据类型 [列级完整性约束]

列名2  数据类型 [列级完整性约束]……..

表级完整性约束)

       修改表:

Alter Table 表名 Add 列名 数据类型 列级完整性约束

Alter Table 表名 Modify 列名 数据类型

Alter Table 表名 drop 完整性约束

删除表:

       Drop Table 表名

       定义索引:

       Create [Unique][Cluster] Index 索引名 On 表名 (列名1 ASC/DESC,列名2 ASC/DESC………...

       删除索引:

       Drop Index 索引名

       定义视图:

       Create View 视图名 As 子查询 [With Check Option]

       删除视图:

       Drop View 视图名

       更新视图:

       Insert, Update, Delete,但并非所有的视图都能够执行更新操作。

 

10、查询select

答:select中用到的相关信息

       where表示条件,有> < = != >= <=等以及加notis null is not nullbetween and  not between andlike  not like  % _And Orin  not in

       order by 列名 ASC/DESC

       集函数:Count(ALL/DISTINCT *)   Count(ALL/DISTINCT 列名)

                     Sum(ALL/DISTINCT 列名)   Avg(ALL/DISTINCT 列名)

                     MAX(ALL/DISTINCT 列名)   MIN(ALL/DISTINCT 列名)

       分组:group by 列名,按照列名进行分组,即该列名中值相同的为一组,这时一般都要用到集函数,对分组的结果进行统计,如统计总数,平均值等。

       having,该判断用在分组时。

       select可以对单表查询,其比较简单,也可以连接查询,对多个表进行查询,如有等值连接,自然连接,自身廉洁,笛卡尔乘积、外连接,复合条件连接,嵌套查询(即含有子查询,一般子查询的结果为一个集合,因此此时在第一层查询中经常都使用带IN的查询;带有ANYALL的子查询;带有EXIST的子查询)

 

11、数据更新?

答:Insert into 表名(列名1,列名2……)values(1,值2……)或者

       Insert into 表名(列名1,列名2…….)子查询

       Update 表名 set 列名=新值 where …..

       Delete from 表名 where …..

阅读(1686) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~