数据库前三章测试题
一. 请写出数据库分离和附加的步骤
分离:右击数据库”MySchool”,在弹出的快捷菜单中选择“任务”—“分离”选项
附加:右击“数据库”—“附加”
二. 请写出数据库导出SQL脚本的步骤
右击MySchool—“任务”—“生成脚本”
三. 请写出SQL Server的四种完整性约束
1.实体完整性约束:不允许出现相同记录的数据
2.域完整性约束:对字段进行限定,不得插入不符合限定的数据
3.引用完整性:表与表之间的关系
4.自定义完整性约束:开发人员自己设定对字段的约束,不允许出现不符合约束的数据
四. 如何设置表的主键和标识列
主键:
标识列:
五. 请写出主外键关系确立后操作主数据的注意事项
1、当表中没有对应的记录时,不能将记录添加到子表
2、不能更改主表中的值而导致子表中的记录孤立
3、子表存在与主表对应的记录,不能从主表种删除该行
4、删除主表前,先删子表
六. 请写出使用SQL插入数据时的注意事项
1.列的数量和值列表的数量要保持一致
2.插入数据的数据类型药保持一致
3.不能为表中的标识列赋值
4.列不允许为空时必须插入值
5.在插入数据时一定要保证数据符合CHECK约束
6.具有缺省值的列可以使用DEFAULT代替,代表默认值
七. 请写出增删改SQL语句的基本语法
增:INSERT [INTO] 表名 (列名) VALUES (值列表)
删:DELETE FROM 表名 WHERE 表中唯一标识(当两张表有关联时,删除数据需要保证数据不冲突)
改:UPDATE 表名 SET 列名1=更新值1,列名2=更新值2 WHERE 表中唯一标识
八. 请写出添加多行数据的三种方式
–1、插入多行数据
–从from的表中拿出select的列数据插入到into的表中
–表必须创建
INSERT INTO AddressList(StudentName,Address,Email)
SELECT StudentName,Address,Email
FROM Student
–2、插入多行数据
–表自动创建
SELECT Student.StudentName,Student.Address,Student.Email
INTO AddressList
FROM Student
–3、插入多行数据
–表必须创建
INSERT INTO AddressList(StudentName,Address,Email)
SELECT ‘马1′,’北京’,’456@qq.com’ UNION
SELECT ‘马2′,’北京’,’456@qq.com’ UNION
SELECT ‘马3′,’北京’,’456@qq.com’ UNION
SELECT ‘马4′,’北京’,’456@qq.com’ UNION
SELECT ‘马5′,’北京’,’456@qq.com’ UNION
SELECT ‘马6′,’北京’,’456@qq.com’
九. 假设My School数据库有如下Student表和Grade表
Student表结构(其中Student No为主键,表中GradeId和Grade表中的GradeId为主外键关联):
Student表的数据:
Grade表结构(其中Grade Id为主键,并且是标识列):
Grade表的数据:
问题一:更改Student No为S1101009的学生记录,将密码修改为:p w d@123,将年级编号修改为:4
UPDATE Student SET LoginPwd=’pwd@123′,Gradeld=4 WHERE Student No=’s1101009′
问题二:向学生表中新增一条记录
INSERT [INTO] Student VALUES(‘1′,’a’,’张三’,’男’,1,’a’,’a’,’@’)
问题三:向年级表中新增一条记录
INSERT [INTO] Grade VALUES (‘6′,’112’)
问题四:删除学生表中编号为S1101007的记录
DELETE FROM Student WHEREStudentNo=’s1101007′
问题五:删除Grade表中Grade Id为1的记录(根据表中数据分析,采用哪两种方式删除?)
1、解除关系,右键删除
2、DELETE删除