实验四 数据库的嵌套查询实验
一、基本操作实验
1)准备测试数据
检查并修改学生_课程库的数据:使学生表与表10-11数据一致,选课表与表10-13的数据一致;课程表数据与表10-18 数据一致(修改课程数据为只有C1、C2、C3 和 C7 课程)。
2)将下列查询要求用T-SQL语句表示
在SMSS的查询分析器中输人相应的T-SQL语句,执行并在结果区中查看内容;结果不正确时要对T-SQL语句修改,直到正确为止。
(1)求选修了高等数学的学生学号和姓名。
(2)求 C1课程的成绩高于张三的学生学号和成绩。
(3)求其他系中比计算机系某一学生年龄小的学生。
(4)求其他系中比计算机系学生年龄都小的学生。
(5)求选修了C2课程的学生姓名。
(6)求没有选修C2课程的学生姓名。
(7)查询选修了全部课程的学生的姓名。
(8)求至少选修了学号为“S2”的学生所选修的全部课程的学生学号和姓名。
二、选择操作实验
(1) 向自设计的数据库应用系统的库中的各表,输入多条实际数据,并实现数据的增、删、改操作。
1)增
- 将数据记录插入医生表
1
2
3
4
5
6--插入医生表的数据记录
INSERT INTO 医生(工号,姓名,年龄,性别,职称,科室) VALUES('D1','张一',40,'女','主任医师','内科')
INSERT INTO 医生(工号,姓名,年龄,性别,职称,科室) VALUES('D2','张二',45,'男','副主任医师','病理科')
INSERT INTO 医生(工号,姓名,年龄,性别,职称,科室) VALUES('D3','张三',47,'女','主治医师','放射科')
INSERT INTO 医生(工号,姓名,年龄,性别,职称,科室) VALUES('D4','张四',48,'男','医师','康复科')
INSERT INTO 医生(工号,姓名,年龄,性别,职称,科室) VALUES('D5','张五',42,'女','主任医师','眼科')
- 命令执行结果
- 将数据记录插入患者表
1
2
3
4
5
6
7--插入患者表的数据记录
INSERT INTO 患者(患者号,姓名,性别,身份证号码) VALUES('P1','李一','女','510681195901102885')
INSERT INTO 患者(患者号,姓名,性别,身份证号码) VALUES('P2','李二','男','65312219670803739X')
INSERT INTO 患者(患者号,姓名,性别,身份证号码) VALUES('P3','李三','女','530112199806295721')
INSERT INTO 患者(患者号,姓名,性别,身份证号码) VALUES('P4','李四','男','520523201410124976')
INSERT INTO 患者(患者号,姓名,性别,身份证号码) VALUES('P5','李五','女','210711198812258326')
INSERT INTO 患者(患者号,姓名,性别,身份证号码) VALUES('P6','李六','男','130207196808088415')
- 命令执行结果
- 将数据记录插入病历表
1
2
3
4
5
6--插入病历表的数据记录
INSERT INTO 病历(病历号,患者号,医生工号,就诊日期,病情描述) VALUES('1001','P1','D5','20240508','轻度')
INSERT INTO 病历(病历号,患者号,医生工号,就诊日期,病情描述) VALUES('1002','P2','D4','20240508','中度')
INSERT INTO 病历(病历号,患者号,医生工号,就诊日期,病情描述) VALUES('1003','P3','D3','20240509','轻度')
INSERT INTO 病历(病历号,患者号,医生工号,就诊日期,病情描述) VALUES('1004','P4','D2','20240510','重度')
INSERT INTO 病历(病历号,患者号,医生工号,就诊日期,病情描述) VALUES('1005','P5','D1','20240510','轻度')
- 命令执行结果
2)删
1 | DELETE 病历 WHERE 患者号='P1' |
- 命令执行结果:
3)改
1 | UPDATE 医生 SET 职称='主任医师' WHERE 工号='D2' |
- 命令执行结果:
(2)将书中第六章的例题P150-153页例6-15至例6-27内容一一在计算机上实现。
6-15 求数学系学生的学号和姓名。
6-16 求选修了课程的学生学号。
6-17 求选修C1 课程的学生学号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同则按学号的升序排列。
6-18 求选修课程 C 1且成绩在 80-90之间的学生学号和成绩,并将成绩乘以系数0.8输出。
6-19 求数学系或计算机系姓张的学生的信息。
6-20 求少了成绩的学生的学号和课程号。
6-22 查询每个学生的情况及他 (她)所选修的课程。
6-23 求学生的学号、姓名、选修的课程名及成绩。
6-24 求选修 C1课程且成绩为90分以上的学生学号、姓名及成绩。
6-25 求学生的学号、姓名、选修的课程名及成绩。
6-26 求选修 C1课程且成绩为 90分以上的学生学号、姓名及成绩
三、选做内容
熟悉Delphi或C#的开发环境,用Delphi或C#设计一个简易的计算器
1、练习Delphi或C#中Edit组件和Button组件的使用方法。
2、能实现计算器的基本功能。
3、要求界面的设计具有个性化。
4、提交的程序前面要有分析,中间应有注释。