SQL数据库(简单)简答题

SQL数据库(简单)简答题,第1张

Microsoft SQL Server 2000 简答题及其答案

1.在安装SQL Server 2000时,“仅客户端工具”、“服务器和客户端工具”及“仅连接”等安装定义有什么差别?

答:仅客户端工具:仅安装客户端工具。服务器和客户端工具:同时安装服务器和客户端工具。仅连接:仅安装客户端连接。

2.一个数据库中包含哪几种文件?

答:主数据库文件,辅助数据文件,事务日志文件。

3.事务文件和数据文件分开存放有什么好处?

答:因为利用事务日志备份可以将数据库恢复到特定的即时点(如输入不想要的数据之前的那一点)或故障发生点。在媒体恢复策略中应考虑利用事务日志备份。

4.什么是批处理?使用批处理有何限制?

答:包含一个或多个T-SQL语句的组,从应用程序将一次性发送到SQL Server执行,SQL Server批处理语句作为整体编译成一个可执行单元。

限制:如不能够在同一个批处理中更改表,然后引用新列。如在一个批处理程序中,有两条语句。第一条语句用来在一张表中插入一个字段,如在User表中插入员工的出生年月第二条语句则用来引用这个列,如根据身份z号码来推算出这个员工的出身年月并把这个值赋值给这个第一条语句创建的出身年月字段。

5.数据检索时,COMPUTE和COMPUTE BY产生的结果有何不同?

答:Compute:第一个为明细行 第二个为聚合函数的合计 Compute by:第一个为明细行第二个为聚合函数的小计

6.什么是索引?索引分为哪两种?各有什么特点?

答:1、数据库中的索引与书籍中的目录类似。在一本书中,利用目录可以快速查找所需信息,无须阅读整本书。在数据库中,索引使数据库程序无须对整个表进行扫描,就可以在其中找到所需数据。2、聚集索引和非聚集索引。

3、聚集索引的特点:行的物理位置和行在索引中的位置是相同的,每个表只能有一个聚集索引,聚集索引的平均大小大约为表大小的5%左右。

非聚集索引特点:若未指定索引类型,则默认为非聚集索引,叶节点页的次序和表的物理存储次序不同,每个表最多可以有249个非聚集索引,在非聚集索引创建之前创建聚集索引。

7.创建索引有什么优点和缺点?

答:优点:索引在数据库中的作用类似于目录在书籍中的作用,用来提高查找信息的速度。

使用索引查找数据,无需对整表进行扫描,可以快速找到所需数据。

缺点:索引需要占用数据表以外的物理存储空间。创建索引和维护索引要花费一定的时间。当对表进行更新 *** 作时,索引需要被重建,这样降低了数据的维护速度。

8.什么是视图?使用视图的优点和缺点是什么?

答:视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。

优点:1隐蔽数据库的复杂性2控制用户提取数据3简化数据库用户管理 4简化查询

缺点:1性能:SQL Server必须把视图的查询转化成对基本表的查询,如果这个视图是由,一个复杂的多表查询所定义,那么,即使是视图的一个简单查询,SQL Server也,把它变成一个复杂的结合体,需要花费一定的时间。2修改限制:当用户试图修改视图的某些行时,SQL Server必须把它转化为对基本,表的某些行的修改。对于简单视图来说,这是很方便的,但是,对于比较复杂的,视图,可能是不可修改的。

9. 修改视图中的数据会受到哪些限制?

答:1、必须有权限 2、单表视图直接改

3、多表可在视图中定义 instead of 触发器.

4、对由多表连接成的视图修改数据时,不能同时影响一个以上的基表,也不能删除视图中的数据

5、对视图上的某些列不能修改,这些列是:计算列,内置函数列和行集合函数列

6、对具有NOT NULL 的列进行修改时可能会出错。通过视图修改或者插入数据时,必须保证未显示的具有NOT NULL 属性的列有值,可以是默认值,IDENTITY 等,否则不能像视图中插入数据行。

7、如果某些列因为规则或者约束的限制不能接受从视图插入的数据时,则插入数据可能会失败

8、删除基表并不删除视图,建议采用与表明显不同的名字命名规则

10. 什么是数据完整性?如果数据库不实施数据完整性会产生什么结果?

答:数据完整性是指数据的精确性和可靠性。它是应防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效 *** 作或错误信息而提出的。

11.数据完整性有哪几类?如何实施?

答:1、数据完整性分为四类:实体完整性、域完整性、参照完整性、用户定义的完整性。

2、数据库采用多种方法来保证数据完整性,包括外键、束约、规则和触发器。系统很好地处理了这四者的关系,并针对不同的具体情况用不同的方法进行,相互交叉使用,相补缺点。

12. 什么是主键约束?什么是惟一约束?两者有什么区别?

答:主键约束:有一列或列的组合,其值能唯一的标识表中的每一行。

唯一约束:不允许数据库表在指定列上具有相同的值,但允许有空值。

区别:一个表可以定义多个唯一约束,只能定义一个主键约束;空值得列上可以定义唯一约束,不能定义主键约束。

13.什么是外键,怎样建立外键约束?

答:外键是用于建立和加强两个表数据之间的链接的一列或多列。通过将保存表中主键值的一列或多列添加到另一个表中,可创建两个表之间的链接。这个列就成为第二个表的外键。

14.什么是存储过程?使用存储过程有什么好处?

答:1、是存储在服务器上的 Transact-SQL 语句的命名集合,是封装重复性任务的方法,支持用户声明变量、条件执行以及其他强有力的编程特性。

2、存储过程封装了商务逻辑,确保一致的数据访问和修改。若规则或策略有变化,则只需要修改服务器上的存储过程,所有的客户端就可以直接使用

屏蔽数据库模式的详细资料。用户不需要访问底层的数据库和数据库内的对象

提供了安全性机制。用户可以被赋予执行存储过程的权限,而不必在存储过程引用的所有对象上都有权限

改善性能。预编译的 Transact-SQL 语句,可以根据条件决定执行哪一部分

减少网络通信量。客户端用一条语句调用存储过程,就可以完成可能需要大量语句才能完成的任务,这样减少了客户端和服务器之间的请求/回答包

15.什么是触发器?触发器分有什么作用?

答:触发器是一类特殊的存储过程,不能被直接调用,也不传递或接受参数

作用:1、维护不可能在表创建时刻通过声明性约束进行的复杂的完整性约束限制。

2、通过记录所进行的修改以及谁进行了修改来审计表中的信息。

3、当表被修改的时候,自动给其他需要执行 *** 作的程序发信号。

一、1.C,2.D,3.A,4.D,5.D,6.C,7.D,8.D,9.C,10.D

二、1.A,2.A,3.A,4.A,5.B.6.A,7.B,8.B,9.B,10.B

自己做着玩的,非标准答案~

1

IF OBJECT_ID('学生表')IS NOT NULL

DROP TABLE 学生表

GO

create table 学生表 --建立学生表.

(

学号 int not null , --学号,姓名,年龄,性别,家庭住址,联系电话

姓名 varchar(10) not null, --姓名

性别 varchar(2)

年龄 int,

联系电话 varchar(10),

家庭住址 varchar(50),

联系电话 varchar(20),

check (性别 ='男' OR 性别='女'),

)

1.1

delete 学生表

insert 学生表 (学号,姓名,年龄,性别,联系电话,学历)

values(1,"A",22,"男","123456","小学")

insert 学生表 (学号,姓名,年龄,性别,联系电话,学历)

values(2,"B",21,"男","119","中学")

insert 学生表 (学号,姓名,年龄,性别,联系电话,学历)

values(3,"C",23,"男","110","高中")

insert 学生表 (学号,姓名,年龄,性别,联系电话,学历)

values(4,"D",18,"女","114","大学")

1.2

update 学生表

set 学历='大专'

where 联系电话 like '11%'

go

1.3

delet 学生表

where 性别='女',姓名 like 'B%'

go

1.4

select 姓名,学号

from 学生表

where 学历='大专',年龄<22

go

1.5

select 姓名,性别

from 学生表

order by 年龄 desc

go

2.1

use stu

IF OBJECT_ID('Student')IS NOT NULL

DROP TABLE Student

GO

create table Student --建立学生表.

(

学号 int not null ,

姓名 varchar(10) not null, --姓名

性别 varchar(2)

年龄 int,

所在系 varchar(10),

check (性别 ='男' OR 性别='女'),

)

2.2

use stu

select 学生表.学号

from Student As 学生表,SG As 成绩表

where 学生表.学号=成绩表.学号,成绩表.成绩<60

go

2.3

use stu

select 姓名,性别,年龄

from Student

where 所在系='计算机系',性别='男',姓名 like '张%'

go

2.4

use stu

insert Student (学号,姓名,年龄,性别,所在系)

values(05020,"高平",19,"女","积极管理系")

go

4.1

删除student表中学号为2004009的学生的信息

4.2

在stu数据库的student表中创建列名为姓名,家庭住址的视图student_view

4.3

查询stu数据库的student表中前9条信息

4.4

在stu数据库的student表中创建查询学号,姓名,家庭住址的存储过程student_pro

4.5

在stu数据库的student表中创建带输入参数的存储过程

4.6

查询Sg表中课程号为06的平均成绩


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9257896.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存