《2022年数据库概论--SQL语句练习 .pdf》由会员分享,可在线阅读,更多相关《2022年数据库概论--SQL语句练习 .pdf(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-1.创建数据库(数据库名为DB+你的学号如 :DB123456)create database DB210908000 -2.在数据库中创建学生表student(sno,sname,ssex,sage,sdept) sno 为主码。create table Student ( Sno char(10) primary key, Sname char(20), Ssex char(4), Sage smallint, Sdept char(20) ) -3.在数据库中创建课程表course(cno,cname,cpno,ccredit) ,cno 为主码 ,cpno 不设外码。create t
2、able Course ( Cno char(4) primary key, Cname char(40), Cpno char(4), Ccredit smallint ) -4.在数据库中创建选修表SC(sno,cnao,grade), 主码是( sno,cno),sno,cno -均为外码,分别参照student(sno),course(cno) create table SC ( Sno char(10) , Cno char(4), Grade smallint, primary key(Sno,Cno), foreign key(Sno) references Student(Sn
3、o), foreign key(Cno) references Course(Cno) ) -5.修改课程表增加课程名称必须取唯一值的约束条件alter table Course add constraint uk_Cname unique(Cname) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 9 页 - - - - - - - - - -6.为学生表的sname 建立唯一索引indexsname create unique index indexsname on
4、 Student(Sname) -7.为选修表建立唯一性索引indexsnocno,按 sno 升序和 cno 降序建立create unique index indexsnocno on SC(Sno asc,Cno desc) -8.删除 6 题中建立的唯一性索引drop index indexsname on Student -执行下列语句INSERT INTO Student VALUES (95001, 李勇 ,男 ,20,CS); INSERT INTO Student(Sno,Sname,Ssex,Sage,Sdept) VALUES (95002, 刘晨 ,女 ,19,IS);
5、 INSERT INTO Student(Sno,Sname,Ssex,Sage,Sdept) VALUES (95003, 王敏 ,女 ,18,MA) INSERT INTO Student(Sno,Sname,Ssex,Sage,Sdept) VALUES (95004, 张立 ,男 ,19,IS); INSERT INTO Student(Sno,Sname,Ssex,Sage,Sdept) VALUES (95005, 张国立 ,男,19,IS); INSERT INTO Course VALUES (1,DB,5,4); INSERT INTO Course VALUES (2, 数
6、学 ,null,5); INSERT INTO Course VALUES (3, 信息系统 ,1,4); INSERT INTO Course VALUES (4, 操作系统 ,6,3); INSERT INTO Course VALUES (5,DB_structure,7,1); INSERT INTO Course VALUES (6, 数据处理 ,null,2); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 9 页 - - - - - - - - - INS
7、ERT INTO Course VALUES (7,PASCAL 语言 ,6,4); INSERT INTO Course VALUES (8,DB_ans,7,2); INSERT INTO Course VALUES (9,DB_des,null,2); INSERT INTO SC VALUES (95001,1,92); INSERT INTO SC VALUES (95002,2,90); INSERT INTO SC VALUES (95001,2,85); INSERT INTO SC VALUES (95001,3,88); INSERT INTO SC VALUES (950
8、02,3,80); insert into SC values(95003,3,50) insert into SC values(95004,2,40) insert into SC values(95004,3,30) -9.修改学生表增加“高考成绩(GKGrade) ”列,数据类型为int alter table Student add GKGrade int -10.修改 course 表,增加( cpno)为外码alter table Course add foreign key(Cpno) references Course(Cno) -11.查询所有年龄在19 岁以下的学生姓名及
9、其年龄。select Sname,Sage from Student where Sage19 -12.查询考试成绩有不及格的学生的学号。select Sno,Cno,Grade from SC where Grade60 -13.查询课程名以“数据”或“DB_”开头的所有课程信息名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 9 页 - - - - - - - - - select * from Course where Cname like 数据 %or Cname
10、like DB_%escape -14.查询先修课程为空的课程号,课程名,先修课程号 (cpno) select Cno,Cname,Cpno from Course where Cpno is null -15.查询姓 张 且名字是三个字的学生姓名,年龄select Sname,Sage from Student where rtrim(Sname) like 张_ -16.查询年龄不在2023 岁之间的学生姓名、系别和年龄。select Sname,Sdept,Sage from Student where Sage not between 20 and 23 -17.查询全体学生情况,查
11、询结果按性别升序排列,同性别学生按年龄降序。select * from Student order by Ssex asc ,Sage desc -18.计算 95001 学生平均成绩和最高分。select AVG(Grade) 平均分 , MAX(Grade) 最高分from SC where Sno=95001 -19.查询学分为3,4,5 的课程的课程名,学分select Cname,Ccredit from Course where Ccredit in(3,4,5) -20.删除表 sc drop table SC 名师资料总结 - - -精品资料欢迎下载 - - - - - - -
12、 - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 9 页 - - - - - - - - - -21.查询选修了课程的学生人数select COUNT(distinct Sno) from SC -22.查询该校有哪些系select distinct Sdept from Student 2.将一个新学生元组(200215127, 李斯 ,男,20,CS)添加到student 表中。insert into Student values(200215127, 李斯 ,男,20,CS,null) -3.创建查询每个学生选修的总学分的视图,-要求
13、列出学号和总学分:view_sumcredit(sno,sum_credit) create view view_sumcredit(sno,sum_credit) as select Sno,SUM(Ccredit) from Course,SC where Course.Cno=SC.Cno group by Sno -4.将所有“数据库”课程的选修成绩置为0 分。update SC set Grade=0 where 数据库 = (select Cname from Course where Course.Cno=SC.Cno ) -5.修改课程表增加课程名称必须取唯一值的约束条件。al
14、ter table Student add constraint sk_Sname unique(Sname) alter table Course add constraint ck_Cname unique(Cname) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 9 页 - - - - - - - - - -6.为学生表的sname 建立唯一索引indexsname create unique index indexsname on Student(Sname)
15、 -7.查询所有年龄在20 岁以下的学生姓名及其年龄。select Sname,Sage from Student where Sage 20 -8.查询考试成绩有不及格的学生的学号。select Sno,Cno,Grade from SC where Grade=3 select Sno from SC group by Sno having COUNT(*)= (select COUNT(Cno) from Course ) -16.查询选修了“数据库”课程的学生的学号和姓名。select Student.Sno,Sname from Student,SC,Course where Stu
16、dent.Sno=SC.Sno and SC.Cno=Course.Cno and Cname= 数据库 -17.查询选修了2 号课程且成绩高于此课程平均成绩的学号和成绩。select Sno,Grade,Cno from SC where Cno=2 and Grade ( select AVG(Grade) from SC where Cno=2 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 9 页 - - - - - - - - - ) -18.删除 6 题中建立
17、的唯一性索引drop index indexsname on Student -19.在 Course表中按课程号升序创建唯一索引Cno_1。create unique index Cno_1 on Course (Cno) -20.从 Sc表中删除所有选修“数据库”的记录。delete from SC where 数据库 = ( select Cname from Course where Course.Cno =SC.Cno ) -21.查询姓 欧阳 且名字是三个字的学生姓名,年龄select Sname,Sage from Student where rtrim(Sname) like
18、欧阳 _ -22.建立信息系选修了1 号课程且成绩在90 分以上的学生的视图v1(Sno,Sname,Grade) create view v1(Sno,Sname,Grade) as select Student.Sno,Sname,Grade from Student,SC where Student.Sno=SC.Sno and Cno=1and Sdept=ISand Grade90 -23.修改视图v1 中的所有学生的成绩加5 分update v1 set Grade=Grade+5 -24.删除视图v1 drop view v1 名师资料总结 - - -精品资料欢迎下载 - - -
19、 - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 9 页 - - - - - - - - - -25.查询计算机科学系的学生与年龄不大于19 岁的学生的差集select * from Student where Sdept=CS except select * from Student where Sage=19 alter table Course add Cpnnno char(3) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 9 页 - - - - - - - - -