数据库基础测试题
一. 请写出数据库分离和附加的步骤
分离:右击数据库”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删除