整理版数据库SQL练习题
- 格式:doc
- 大小:92.00 KB
- 文档页数:7
1.①教师表:teachter(tno,tname,sex,birth,dept,title)。teachter表有教工号(tno)、姓名(tname)、性别(sex)、出生年份(birth)、所在系(dept)、职称(title)、6个属性组成,其中tno为主码。 ②课程表:course(cno,cname,cpno,credit)。course表有课程号(cno)、课程名(cname)、先修课(cno)、学分(cpno) ③教师任课表:tc(tno,cno,grade)。tc表有教工号( tno)、课程号(cno)、学生评教分数(grade)3个属性组成,主码为(tno,cno)。 (1) 查询全体教师的详细记录 Select * From teacher; (2) 查询计算机系全体教师的名单 Select tname From teacher Where dept=cs; (3) 查询所有年龄在40岁以下的教师姓名及其年龄 Sellect tname,tage; From teacher Where 2015-tbrith<40; (4) 查询物理系( ph)数学系(ma)和计算机科学系 (cs)教师的姓名和性别 Select tname,tsex, From teacher Where dept in (ph,ma,cs); (5) 查询不是物理系、数学系、计算机科学系的教师的姓名和性别 Select tname,tsex From teacher Where not in(ph,ma,cs); (6) 查询教工号为0101的教师的详细情况 Select * From teacher Where tno like 0101; (7)查询所有姓孙教师的姓名、教工号和性别 Select tname,tno,tsex From teacher Where tname lilke 孙%; 查询计算机系年龄在40岁以下的教师姓名 Select tname From teacher Where dept =cs and 2015-tbirth<40; 2.(1)查询年龄在20~23岁(包括20岁和23岁)之间的学生的姓名,所在系,年龄 Select sname,sdept,sage From student Where sage between 20 and 23; (2)查询年龄不在20~23岁之间的学生姓名,所在系,年龄 Select sname,sdept,sage From student Where sage not between 20 and 23; (3)查询所有不姓刘的学生的姓名、学号和性别 Select sname,sno,ssex From student Where sname not like 刘%; (4)某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。查询缺少成绩的学生的学号和相应的课程号 Select sno,cno From student ,course Where grade=null; 正确答案:select sno,cno From sc Where grade is null; (5)查询选修了3门以上课程的学生学号 Select sno From sc Group by sno Having count(*)>3; (6)查询选修了课程名为信息系统的学生学号和姓名 Select sno, sname From student Where in (select sno From sc Where cno in select cname From course Where cname=信息系统); (7)查询没有选修1号课程的学生姓名 Select sname From sc Where in( Select sname From sc Where not in Select cno From course Where cno =1);
(8)查询选修了全部课程的学生姓名 Select sname From sc where (9)查询至少选修了学生200215122选修的全部课程的学生号码 3. 用SQL语言建立表 (1)S(SNO,SNAME,STATUS,CITY); (2)p(PNO,PNAME,COLOR,WEIGHT); (3)J(JNO,JNAME,CITY); (4)SPJ(SNO,PNO,JNO,QTY); 4. S 表 SNO SNAME STATUS SITY S1 精益 20 天津
S2 盛锡 10 北京
S3 东方红 30 北京
S4 丰泰盛 20 天津
S5 为民 30 上海
P表 PNO PNAME COLOR WEIGHT P1 螺母 红 12 P2 螺栓 绿 17 P3 螺丝刀 蓝 14 P4 螺丝刀 红 14 P5 凸轮 蓝 40 P6 齿轮 红 30 J表 JON JNAME CITY J1 三建 北京
J2 一汽 长春
J3 弹簧厂 天津
J4 造船厂 天津
J5 机车厂 唐山
J6 无线电厂 常州
J7 半导体厂 南京
SPJ表 SNO PNO JNO QTY S1 P1 J1 200 S1 P1 J3 100 S1 P1 J4 700 S1 P2 J2 100 S2 P3 J1 400 S2 P3 J2 200 S2 P3 J4 500 S2 P3 J5 400 S2 P5 J1 400 S2 P5 J2 100 S3 P1 J1 200 S3 P3 J1 200 S4 P5 J1 100 S4 P6 J3 300 S4 P6 J4 200 S5 P2 J4 100 S5 P3 J1 200 S5 P6 J2 200 S5 P6 J4 500
(1) (1)求供应工程J1零件的供应商号码SNO: Select sno From spj Where jno=j1; (2) 求供应工程J1零件P1的供应商号码SNO; Select sno From spi Where jno=j1 and pno=p1; (3) 求供应工程J1零件为红色的供应商号码SNO: Select sno From spj ,p Where jno=1 and spj.pno=p.pno and color=红; (4) 求没有使用天津供应商生产的红色零件的工程号JNO
(5) 找出所有供应商的姓名和所在城市 Select sname ,city From s (6) 找出所有零件的名称、颜色、重量 Select name, weight,color, From p; (7) 找出使用供应商S1所供应零件的工程号码 Select jno From spj Where sno=s1; (8) 找出工程项目J2使用的各种零件的名称及其数量 Select pname,qty From spj p Where jno=j2; and spj.pno=p.pno; (9) 找出上海厂商供应的所有零件号码 Select pno From spj s Where city=上海 and s.sno=spj.sno; (10) 找出使用上海产的零件的工程名称 Select jname From j spj p Where city=上海 and j.jon=spj.jno and p.pno=spi.pno; (11) 把全部红色零件的颜色改成蓝色 Update p Set color=蓝色 Where color=红色; (12) 由S5供给J4的零件P6改为由S3供应 Update spi Set sno=s3 Where sno=s5 and jno=j4 and pno=p6; (13) 从供应商关系中删除供应商号是S2的记录,并从供应情况关系中删除相应的记录 Delete From spj Where sno=s2; Delete From s Where sno=s2; (14) 请将(S2,J6,P4,200)插入供应情况关系 Insert Into spj Values(s2,j6,p4,200); 请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。 Create view vsp As select from spj s p Where jname=三建 and j.jno=spj.jno; 针对该视图VSP完成下列查询: (15) (1)找出三建工程项目使用的各种零件代码及其数量 Select dist pno qty From vsp
(16) 找出供应商S1的供应情况 Select dist * From vsp Where sno=s1; 5试用SQL查询语句表达下列教学数据库中3个基本表S、SC、C的查询: S(S#,Sname,Age,Sex) SC(S#,C#,Grade)