1.主键约束与唯一键约束的异同.
相同:它们都属于实体完整性约束.
不同点:
(1) 唯一性约束所在的列允许空值,但是主键约束所在的列不允许空值。
(2) 可以把唯一性约束放在一个或者多个列上,这些列或列的组合必须有唯一的。但是,唯一性约束所在的列并不是表的主键列。
(3) 唯一性约束强制在指定的列上创建一个唯一性索引。在默认情况下,创建唯一性的非聚簇索引,但是,也可以指定所创建的索引是聚簇索引。
(4)建立主键的目的是让外键来引用.
(5)一个表最多只有一个主键,但可以有很多唯一键
2.简述C/S体系结构的基本思想
C/S体系结构的数据库,由两部分组成,即客户应用程序和数据库服务器程序,称为前台程序与后台程序。一旦服务器程序被启动,就随时等待响应客户程序发来的请求;客户程序运行在用户自己的电脑上,对应于服务器电脑,可称为客户电脑。当需要对数据库中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则作出应答,送回结果。
在典型的C/S数据库应用中,数据的储存管理功能,是由服务器程序独立进行的,前台应用只要不能违反的规则,都在服务器程序中集中实现,对于工作在前台程序上的最终用户是“透明”的,他们无须过问(通常也无法干涉)这背后的过程,就可以完成所需工作。在客户服务器架构的应用中,前台程序可以变的非常“瘦小”,大部分事情都交给了服务器和网络。在C/S体系的下,数据库真正变成了公共、专业化的仓库,受到独立的专门管理。
3.备份的四种方式是什么?
(1)完全数据库备份就是备份数据库中的所有数据和结构.
(2)增量备份是备份自从上一次完全数据库备份之后改变的数据.可以降低数据库恢复所需要的时间.
(3)事务日志备份:备份数据库事务日志的变化过程.当执行完全数据库备份之后,可以执行事务日志备份.
(4)对于海量数据库,应该执行数据库文件或文件组备份.不备份整个数据库.
4.试举出说明SQL语言中游标(CURSOR)的使用步骤.
使用游标有四种基本的步骤:声明游标、打开游标、提取数据、关闭游标.
(1)声明游标 :象使用其它类型的变量一样,使用一个游标之前,首先应当声明它。游标的声明包括两个部分:游标的名称;这个游标所用到的SQL语句。
(2)打开游标: 声明了游标后在作其它操作之前,必须打开它。打开游标是执行与其相关的一段SQL语句,如open mycousor
(3)提取数据:已经声明并打开一个游标后,我们就可以将数据放入任意的变量中,在FETCH语句中您可以指定游标的名称和目标变量的名称.
(4)在游标操作的最后要关闭游标, ,以使系统释放游标占用的资源。
5.随着应用系统中的数据量的增加,数据库的空闲空间越来越少,怎样扩大数据库的大小?
可根据在创建数据库时所定义的增长参数,自动扩充数据库。通过在现有的数据库文件上分配其它的文件空间,或者在另一个新文件上分配空间,还可以手动扩充数据库。如果现有的文件已经充满,则可能需要扩充数据或事务日志空间。
扩充数据库时,必须按至少 1 MB 增加该数据库的大小。扩充数据库的权限默认授予数据库所有者,并自动与数据库所有者身份一起传输。数据库扩充后,数据或事务日志文件立即可以使用新空间,这取决于哪个文件进行了扩充。
在扩充数据库时,建议指定文件的最大允许增长的大小。这样做可以防止文件无限制地增大,以至用尽整个磁盘空间。若要指定文件的最大大小,请在使用SQL Server 企业管理器内的/"属性/"对话框创建数据库时,使用 CREATE DATABASE 语句的 MAXSIZE 参数或者/"将文件增长限制为 (MB)/"选项。
使用 ALTER DATABASE 语句和 MODIFY FILE 子句更改 tempdb 数据库,以更改 tempdb 中每个文件的物理文件名,使之引用新的物理位置(例如新磁盘)。
展开/"数据库/"文件夹,右击要增加大小的数据库,然后单击/"属性/"命令。若要增加数据空间,单击/"常规/"选项卡。若要增加事务日志空间,单击/"事务日志/"选项卡。
若要添加新文件,单击下一个空行,在/"文件名/"列中输入将容纳附加空间的文件名。
还可以进行收缩数据库.
四.
1.select name,class from card where cno in
(select cno from borrow where bno in
(select bno from books where bname='b2'))
2.select cno,bno,rdate from borrow where rdate-getdate()>0
3. select bname, author from books where price=
(select max(price) from books)
4.select cno from borrow where cno=
(select cno from books where bno=borrow.bno and bname='计算方法') and cno!= (select cno from borrow where cno=
(select cno from books where bno=borrow.bno and bname='计算方法习题集'))
Order by cno desc