1、 姓名char(20) not null, 性别char(2) constraint c1 check (性别in (男,女), 生源char(10), 状态char(4) constraint c2 check (状态in (正常留级休学退学) );例3:定义教师表,其中规定: 教师编号是主关键字; 院系列为计算列(取教师编号的第1和第2个字符),并且院系值参照院系表的编号值,此约束说明一名教师一定属于某个院系; 职称的取值为教授、副教授、讲师或助教。-E3create table Teacher(教师编号char(10) primary key, 院系as convert(char(8),
2、substring(教师编号,1,2) 姓名char(20) not null , 性别char(2) constraint c3 check(性别in ( 职称char(6) constraint c4 check(职称in (教授副教授讲师助教 专业char(40)例4:定义课程表,其中规定: 课程编号是主关键字; 课程名称不允许为空值; 责任教师参照教师表的教师编号值,此约束说明责任教师一定是已经在编的教师; 学时不允许为空值; 课程性质分为公共基础、专业基础、专业选修和任意选修。-E4create table Course(课程编号char(8) primary key, 课程名称ch
3、ar(30) not null, 责任教师char(10) constraint Duty_Teacher foreign key (责任教师) references Teacher(教师编号), 学时smallint not null, 课程性质char(10) constraint c5 check(课程性质in (公共基础专业基础专业选修任意选修例5:定义选课表,其中规定: 学号和课程编号两列构成主关键字(需要表级完整性约束); 学号参照学生表的学号(约束选课的学生必须存在); 课程编号参照课程表的课程编号(约束被选的课程必须存在); 考试成绩取值在0100之间,并且默认为空值。-E5c
4、reate table SC(学号char(10), 课程编号char(8), 考试成绩smallint constraint c6 check(考试成绩between 0 and 100) default null, primary key (学号,课程编号), foreign key (学号) references Student(学号), foreign key (课程编号) references Course(课程编号)例6:规定学生表的性别字段不允许为空值-E6alter table Student alter column 性别char(2) not null;例7:删除课程表中的
5、责任教师列-E7alter table Course drop constraint Duty_Teacheralter table Course drop column 责任教师;例8:为课程表增加责任教师列,列描述如下: 字符类型,长度为10; 允许空值;-E8alter table Course add 责任教师char(10) null constraint newdt foreign key references Teacher(教师编号);例9: 插入院系表的第1个元组(记录)-E9insert into Department (编号,名称,负责人,办公地点)values(01,信
6、息管理学院李嘉教一楼层例10 省略列名、插入院系表的第2个元组-E10insert into Department values(02,经济管理学院吴鸿忠教三楼层例14:插入学生表的第1个元组-E14insert into Student(学号,姓名,性别,生源,状态)values(04014101曹波湖北例15 插入学生表的第2条记录(指定正确的院系值)-E1504014111程鸣湖南例27 删除考试成绩为NULL的记录。-E27delete from SCwhere 考试成绩is null;例30 将04014122号学生的B00101课程的考试成绩修改为78分-E30update SCs
7、et 考试成绩= 78where 学号= 04014122 and 课程编号= B00101;例31:查询学生的全部信息-E31select *from Student;例32:查询所有课程名称和学时信息。-E32select 课程名称,学时from Course;例33:查询学时大于等于40的课程编号和课程名称。-E33select 课程编号,课程名称from Coursewhere 学时= 40;例34:查询课时在50到60(含)之间的课程信息。-E34=50 and 学时= 90;例55:查询目前有多少责任教师。select count( distinct 责任教师)例56:查询数据库课
8、程的平均成绩。select avg(考试成绩)from SC,Coursewhere SC.课程编号=Course.课程编号and 课程名称= 数据库例57:查询各院系教师的人数(显示院系名称和教师人数)。select 名称,count(*) 教师人数from Department,Teacherwhere Department.编号=Teacher.院系group by 名称;例58:查询各门课程考试成绩的平均分、最高分和最低分。select 课程名称,avg(考试成绩) 平均分,max(考试成绩) 最高分,min(考试成绩) 最低分from Course left join SC on (
9、Course.课程编号= SC.课程编号)group by 课程名称;例59:查询专业基础课平均分大于等于60分的各门课程考试成绩的平均分、最高分和最低分。group by 课程名称having avg(考试成绩) = 60;例60:查询所有专业基础课的信息,并计算其总学时。compute sum(学时);例61:查询学生的考试成绩(要求查询学号、姓名、课程名称和考试成绩),同时计算每个学生的平均成绩、最高成绩和最低成绩。from Student,Course,SCwhere Student.学号= SC.学号and Course.课程编号= SC.课程编号order by Student.学
10、号compute avg(考试成绩),max(考试成绩),min(考试成绩)by Student.学号;例62:同时计算所有学生的平均成绩、最高成绩和最低成绩。by Student.学号compute avg(考试成绩),max(考试成绩),min(考试成绩);例63:查询由教授负责的课程信息(课程编号、课程名称、学时和课程性质)select 课程编号,课程名称,学时,课程性质from Course left join Teacher on (Course.责任教师=Teacher.教师编号)where 职称=或代码:from Course where 责任教师in(select 教师编号例6
11、4:查询责任教师的有关信息(姓名、性别、职称、专业)。select 姓名,性别,职称,专业where 教师编号= any (select 责任教师where 责任教师is not null);where 教师编号 in 例65:查询有考试成绩大于数据库课程全部考试成绩的学生信息。from Studentwhere 学号in(select 学号 from SC where 考试成绩= any (select 考试成绩 from SC left join Course on (SC.课程编号=Course.课程编号) where 课程名称= and 考试成绩is not null)例66:查询“系
12、统分析与设计”课程的责任教师的姓名、职称,以及所负责的其他课程(课程编号和课程名称)。select 姓名,职称,课程编号,课程名称from Teacher left join Course on (Teacher.教师编号=Course.责任教师)where 教师编号in from Course where 课程名称= 系统分析与设计例68:查询哪些学生(学号和姓名)有未完成考试的课程(考试成绩为NULL)select 学号,姓名where exists(select * where 考试成绩is null and SC.学号=Student.学号);例69:查询哪些学生(学号和姓名)没有未完成考试的课程(考试成绩为NULL)where not exists
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1