SQL临时笔记和题目
https://www.wolai.com/iDtmdcmfpgXgQSWBR2CvVk
创建教师表t(t#,tname,title)其中各字段要求分别是
t# 教师编号 定长字符串,长度为4 主键
tname 老师姓名 不定长字符串,最大长度8
title 标题 不定长字符串,最大长度8
创建课程表c(c#,cname,tno)其中各字段要求分别是
c# 教师编号 定长字符串,长度为4 主键
cname 课程名 不定长字符串,最大长度8
tno 教师编号 定长字符串,长度为4 外键
创建学生表s(s#,sname,age,sex)其中各字段要求分别是
s# 学生编号 定长字符串,长度为4 主键
sname 学生姓名 不定长字符串,最大长度8
age 年龄 数值型 范围介于15到30
sex 性别 位串型 0表示女生1表示男生
创建选课表sc(s#,c#,score)其中各字段要求分别是
s# 学生编号 外键
c# 课程编号 外键
score 成绩 浮点型 长度4,精度1
s# c# 共同构成主键
create table t(
t# char(4) not null,
tname varchar(8),
title varchar(8),
primary key(t#)
);
create table c(
c# char(4) not null,
cname varchar(8),
tno char(4),
primary key(c#),
foreign key(tno) references t(t#)
);
create table s(
s# char(4) not null,
sname varchar(8),
age int,
sex bit,
primary key(s#),
check(age>=15 and age<=30)
);
create table sc(
s# char(4) not null,
c# char(4) not null,
score decimal(4,1),
primary key(s#,c#),
foreign key(s#) references s(s#),
foreign key(c#) references c(c#)
);
新增一名老师,教师编号 t001 教师名称 刘老师
新增两名老师 t002 张老师 null t003 王老师 教授
使用可视化新增一门课,c001 c语言 t001
删除t001老师
修改t002老师的职称为讲师
delete from sc;
delete from s;
delete from c;
delete from t;
insert into t values
('T1','LIU老师','讲师')
,('T2','王老师',null)
,('T3','王强老师','教授');
insert into c values
('C1','数据库','T1')
,('C2','数据结构','T1')
,('C3','操作系统','T2')
,('C4','机器学习','T3')
,('C5','C语言','T2')
,('C6','JAVA','T3');
insert into s values
('S1','兔八哥',18,1),
('S2','何同学',20,1),
('S3','DJ同学',17,1),
('S4','哲别哥',29,1),
('S5','田田圈',16,0),
('S6','二四酱',20,0),
('S7','虫虫',20,0),
('S8','空卡',22,0);
delete from sc;
insert into sc values
('S1','C1',90),
('S1','C2',100),
('S1','C3',85),
('S1','C4',90),
('S1','C5',100),
('S1','C6',88),
('S2','C1',99),
('S2','C4',98),
('S2','C5',99.5),
('S3','C1',95),
('S3','C2',90),
('S3','C6',93),
('S4','C1',98),
('S4','C2',99),
('S4','C6',59),
('S6','C3',100),
('S7','C1',98),
('S7','C2',78),
('S7','C5',87),
('S8','C2',89),
('S8','C1',96),
('S8','C3',97),
('S8','C6',58);
1、学习课程号为C2课程的学生学号和成绩
2、查询学习课程C2课程的学生学号和姓名(3种写法)
3、至少选修LIU老师所授课程中一门课程的学生学号和姓名
4、查询选修课程号C2或C4课程的学生学号
5、查询至少选修课程号C2和C4课程的学生学号
6、查询不学C2课的学生姓名和年龄
7、查询学习全部课程的学生姓名
8、查询课程包含学生S3所学课程的学生学号
1、求男学生的总人数和平均年龄
2、查询有职称的老师人数
3、统计选修了课程的学生人数 ①distinct ②嵌套
————————————————————————————————————————————————————
4、统计每门课程的学生选修人数,要求显示课程号、课程名、学生人数 as
5、求每个教师每门课程的学生选修人数(超过2人)
要求显示教师工号、课程号、学生人数。
显示时,查询结果按人数升序排列,人数相同按教师工号升序,课程号降序
————————————————————————————————————————————————————————
6、查询姓名中第三字是同的同学 【注意】
6-1 添加一位老师 T9 “过儿香菜” null
————————————————————————————————————————————————
7、查询有职称的老师 null
——————————————————————————————————————————————
8、查询至少有一门成绩超过学生S2一门成绩的学生学号
9、查询平均成绩最高的的学生学号
10、查询每个老师的授课数
1、给成绩字段按降序创建一个索引index1
2、删除索引index1
3、创建视图v1 (学号 学生姓名 课程名 成绩)【注意】
4、删除视图v1
4、创建视图v2 (学号,平均分)
5、查询每个同学比自己平均分高 S#,C#
6、创建视图v3(职工号,姓名)
7、利用视图删除“过儿香菜”老师