1、在MS SQL_Server 数据库中通过什么约束保证数据库的实体完整性
5大约束:
NOT NULL
CHECK约束
UNIQUE 约束
PRIMARY KEY 约束
FOREIGN KEY 约束
如果一个外键值百没有候选键,则不能插入带该值(NULL 除外)的行。如果尝试删除度现有外键指向的行,ON DELETE 子句将控制版所采权取的操作。ON DELETE 子句有两个选项:
·NO ACTION 指定删除因错误而失败。
·CASCADE 指定还将删除包含指向已删除行的外键的所有行。
如果尝试更新现有外键指向的候选键值,ON UPDATE 子句将定义所采取的操作。它也支持 NO ACTION 和 CASCADE 选项。
有时用默认值和触发器
约束优先权最高 默认值次之
2、学生表(学生id,姓名,性别,分数) )student(s_id, name, sex, score)
班级表(班级id,班级名称) class(c_id, c_name)
学生班级表(班级id,学生id) student_class(s_id,c_id)
1)查询一班得分在80分以上或者等于60,61,62的学生
2)査询所有班级的名称,和所有版中女生人数和女生的平均分。
(1)SELECT s.s_id,s.name,s.score,sc.c_id,c.c_name from student s LEFT JOIN student_class sc on s.s_id = sc.s_id LEFT JOIN class c on sc.c_id=c.c_id where (s.score>80 or s.score in(60,61,62)) and c.c_name=‘一班’;
(2)SELECT sc.s_id,c.c_name,COUNT(s.sex),AVG(s.score) from student_class sc LEFT JOIN class c on sc.c_id=c.c_id LEFT JOIN student s on sc.s_id = s.s_id where s.sex=‘女’ group BY c.c_n