undefined-0's Blog

历添新岁月 春满旧山河

0%

实验四-数据库的嵌套查询实验

实验四 数据库的嵌套查询实验

一、基本操作实验

1)准备测试数据

检查并修改学生_课程库的数据:使学生表与表10-11数据一致,选课表与表10-13的数据一致;课程表数据与表10-18 数据一致(修改课程数据为只有C1、C2、C3 和 C7 课程)。

img

2)将下列查询要求用T-SQL语句表示

在SMSS的查询分析器中输人相应的T-SQL语句,执行并在结果区中查看内容;结果不正确时要对T-SQL语句修改,直到正确为止。

(1)求选修了高等数学的学生学号和姓名。

image-20240524081040642

(2)求 C1课程的成绩高于张三的学生学号和成绩。

image-20240524081243937

(3)求其他系中比计算机系某一学生年龄小的学生。

image-20240524082211466

(4)求其他系中比计算机系学生年龄都小的学生。

image-20240524082501195

(5)求选修了C2课程的学生姓名。

image-20240524082717850

(6)求没有选修C2课程的学生姓名。

image-20240524082945929

(7)查询选修了全部课程的学生的姓名。

image-20240524083734411

(8)求至少选修了学号为“S2”的学生所选修的全部课程的学生学号和姓名。

image-20240524085634147

二、选择操作实验

(1) 向自设计的数据库应用系统的库中的各表,输入多条实际数据,并实现数据的增、删、改操作。

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,'女','主任医师','眼科')
  • 命令执行结果
    image-20240527200107652
  1. 将数据记录插入患者表
    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')
  • 命令执行结果
    image-20240527200115997
  1. 将数据记录插入病历表
    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','轻度')
  • 命令执行结果
    image-20240527200123221
2)删
1
DELETE 病历 WHERE 患者号='P1'
  • 命令执行结果:
    image-20240527200131936
3)改
1
UPDATE 医生 SET 职称='主任医师' WHERE 工号='D2'
  • 命令执行结果:
    image-20240527200137890

(2)将书中第六章的例题P150-153页例6-15至例6-27内容一一在计算机上实现。

6-15 求数学系学生的学号和姓名。

image-20240527202732226

6-16 求选修了课程的学生学号。

image-20240527210334778

6-17 求选修C1 课程的学生学号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同则按学号的升序排列。

image-20240527223215317

6-18 求选修课程 C 1且成绩在 80-90之间的学生学号和成绩,并将成绩乘以系数0.8输出。

image-20240527223353807

6-19 求数学系或计算机系姓张的学生的信息。

image-20240527223600616

6-20 求少了成绩的学生的学号和课程号。

image-20240527224012427

6-22 查询每个学生的情况及他 (她)所选修的课程。

image-20240527224143167

6-23 求学生的学号、姓名、选修的课程名及成绩。

image-20240527224329409

6-24 求选修 C1课程且成绩为90分以上的学生学号、姓名及成绩。

image-20240527224526383

6-25 求学生的学号、姓名、选修的课程名及成绩。

image-20240527224702218

6-26 求选修 C1课程且成绩为 90分以上的学生学号、姓名及成绩

image-20240527224818521

三、选做内容

熟悉Delphi或C#的开发环境,用Delphi或C#设计一个简易的计算器

1、练习Delphi或C#中Edit组件和Button组件的使用方法。

2、能实现计算器的基本功能。

3、要求界面的设计具有个性化。

4、提交的程序前面要有分析,中间应有注释。

image-20240527234613943