undefined-0's Blog

历添新岁月 春满旧山河

0%

实验二-数据库的建立和维护实验

实验二 数据库的建立和维护实验

一、实验目的

​ 要求学生熟练掌握使用SQL命令和SQL Server Management Studio向数据库输入数据、修改数据和删除数据的操作。

二、实验内容:

1、基本操作实验

  • 按照书上10.4.2的要求完成基本操作实验和提高操作实验。要求:在每个基本表中各输入至少10条记录,能使用SQL命令进行数据输入、修改和删除操作。

(1)通过SQL Server Management Studio,向图书_读者库中的图书、读者和借阅3个表输入记录。数据记录内容如表10-8~表10-10所示(序号项是为了查看方便,实际数据不含序号项)。

img

img

要求:
a)先检查并表结构,使其符合表10-6图书读者库本表结构和约束。
b)数据输入后进行检查,并进行增删改操作,保证数据正确。

1. 将数据记录插入图书表
1
2
3
4
5
6
7
8
9
10
11
--插入图书表的数据记录
INSERT INTO 图书(书号,类别,出版社,作者,书名,定价) VALUES('1000000001','计算机','机械工业出版社','李明','计算机引论','18')
INSERT INTO 图书(书号,类别,出版社,作者,书名,定价) VALUES('1000000002','计算机','机械工业出版社','王小红','数据结构','22')
INSERT INTO 图书(书号,类别,出版社,作者,书名,定价) VALUES('1000000003','计算机','机械工业出版社','李和明','C语言编程','25.5')
INSERT INTO 图书(书号,类别,出版社,作者,书名,定价) VALUES('1000000004','计算机','电子工业出版社','刘宏亮','操作系统','49.8')
INSERT INTO 图书(书号,类别,出版社,作者,书名,定价) VALUES('1000000006','计算机','机械工业出版社','刘宏亮','数据结构','21.6')
INSERT INTO 图书(书号,类别,出版社,作者,书名,定价) VALUES('1000000005','计算机','电子工业出版社','王小红','计算机文化','20')
INSERT INTO 图书(书号,类别,出版社,作者,书名,定价) VALUES('2000000007','数学','机械工业出版社','吴非','高等数学','18')
INSERT INTO 图书(书号,类别,出版社,作者,书名,定价) VALUES('2000000008','数学','机械工业出版社','丁玉应','概率统计','22.3')
INSERT INTO 图书(书号,类别,出版社,作者,书名,定价) VALUES('2000000009','数学','电子工业出版社','赵明','线性代数','15')
INSERT INTO 图书(书号,类别,出版社,作者,书名,定价) VALUES('3000000010','物理','电子工业出版社','张共可','力学','19.8')
  • 命令执行结果:
    image-20240510170754317
2. 将数据记录插入读者表
1
2
3
4
5
6
7
8
9
10
11
12
--插入读者表的数据记录
INSERT INTO 读者(编号,姓名,单位,性别,电话) VALUES('10000001','李小明','计算机系','男','13826388323')
INSERT INTO 读者(编号,姓名,单位,性别,电话) VALUES('10000002','王红','计算机系','男','13826388378')
INSERT INTO 读者(编号,姓名,单位,性别,电话) VALUES('10000003','李和平','计算机系','女','13826385523')
INSERT INTO 读者(编号,姓名,单位,性别,电话) VALUES('10000004','刘宏亮','计算机系','男','13826387623')
INSERT INTO 读者(编号,姓名,单位,性别,电话) VALUES('10000005','刘宏亮','计算机系','男','13826356323')
INSERT INTO 读者(编号,姓名,单位,性别,电话) VALUES('10000006','王小红','数学系','女','13826381223')
INSERT INTO 读者(编号,姓名,单位,性别,电话) VALUES('10000007','吴小','数学系','男','13826366323')
INSERT INTO 读者(编号,姓名,单位,性别,电话) VALUES('10000008','丁玉应','数学系','男','13826898323')
INSERT INTO 读者(编号,姓名,单位,性别,电话) VALUES('10000009','赵名','数学系','女','13826348323')
INSERT INTO 读者(编号,姓名,单位,性别,电话) VALUES('10000010','张共可','计算机系','男','13826384523')

  • 命令执行结果:
    image-20240510171006434
3. 将数据记录插入借阅表
1
2
3
4
5
6
7
8
9
10
11
--插入借阅表的数据记录
INSERT INTO 借阅(书号,读者编号,借阅日期) VALUES('1000000001','10000001','19981125')
INSERT INTO 借阅(书号,读者编号,借阅日期) VALUES('1000000002','10000002','19981220')
INSERT INTO 借阅(书号,读者编号,借阅日期) VALUES('1000000003','10000003','19990605')
INSERT INTO 借阅(书号,读者编号,借阅日期) VALUES('1000000004','10000004','20061125')
INSERT INTO 借阅(书号,读者编号,借阅日期) VALUES('1000000006','10000001','20061125')
INSERT INTO 借阅(书号,读者编号,借阅日期) VALUES('1000000005','10000001','20061125')
INSERT INTO 借阅(书号,读者编号,借阅日期) VALUES('2000000007','10000001','20061125')
INSERT INTO 借阅(书号,读者编号,借阅日期) VALUES('2000000008','10000003','20061125')
INSERT INTO 借阅(书号,读者编号,借阅日期) VALUES('2000000009','10000004','20061125')
INSERT INTO 借阅(书号,读者编号,借阅日期) VALUES('3000000010','10000001','20061125')
  • 命令执行结果:
    image-20240510171201685

(2)通过SQL Server Management Studio,向学生_课程库中的学生、课程和选课3个表输入记录。数据记录内容如表10-11~表10-13所示(序号项是为了查看方便,实际数据不含序号项)。

img

img

要求:
a)先检查并表结构,使其符合表10-7学生课程库基本表结构和约束。
b)数据输入后进行检查,并进行增删改操作,保证数据正确。

1.将数据记录插入学生表
1
2
3
4
5
6
7
8
9
10
11
--插入学生表的数据记录
INSERT INTO 学生(学号,姓名,年龄,性别,所在系) VALUES('S1','李明',21,'男','计算机')
INSERT INTO 学生(学号,姓名,年龄,性别,所在系) VALUES('S2','张小红',21,'男','计算机')
INSERT INTO 学生(学号,姓名,年龄,性别,所在系) VALUES('S3','李和明',22,'女','计算机')
INSERT INTO 学生(学号,姓名,年龄,性别,所在系) VALUES('S4','张三',21,'男','计算机')
INSERT INTO 学生(学号,姓名,年龄,性别,所在系) VALUES('S5','刘宏',23,'男','计算机')
INSERT INTO 学生(学号,姓名,年龄,性别,所在系) VALUES('S6','王红应',20,'女','计算机')
INSERT INTO 学生(学号,姓名,年龄,性别,所在系) VALUES('S7','吴非',19,'男','数学')
INSERT INTO 学生(学号,姓名,年龄,性别,所在系) VALUES('S8','丁玉',21,'男','数学')
INSERT INTO 学生(学号,姓名,年龄,性别,所在系) VALUES('S9','赵名',21,'女','数学')
INSERT INTO 学生(学号,姓名,年龄,性别,所在系) VALUES('S10','张共可',21,'男','物理')
  • 命令执行结果:
    image-20240510171921278
2.将数据记录插入课程表
1
2
3
4
5
6
7
8
9
10
11
--插入课程表的数据记录
INSERT INTO 课程(课程号,课程名,先行课) VALUES('C1','计算机引论',NULL)
INSERT INTO 课程(课程号,课程名,先行课) VALUES('C3','C语言编程','C1')
INSERT INTO 课程(课程号,课程名,先行课) VALUES('C2','数据结构','C3')
INSERT INTO 课程(课程号,课程名,先行课) VALUES('C5','数据库','C2')
INSERT INTO 课程(课程号,课程名,先行课) VALUES('C6','计算机文化',NULL)
INSERT INTO 课程(课程号,课程名,先行课) VALUES('C4','软件工程','C6')
INSERT INTO 课程(课程号,课程名,先行课) VALUES('C7','高等数学',NULL)
INSERT INTO 课程(课程号,课程名,先行课) VALUES('C9','线性代数','C7')
INSERT INTO 课程(课程号,课程名,先行课) VALUES('C8','概率统计','C9')
INSERT INTO 课程(课程号,课程名,先行课) VALUES('C10','力学',NULL)
  • 命令执行结果:
    image-20240510172203520
3.将数据记录插入选课表
1
2
3
4
5
6
7
8
9
10
11
12
13
--插入选课表的数据记录
INSERT INTO 选课(学号,课程号,成绩) VALUES('S1','C1',60)
INSERT INTO 选课(学号,课程号,成绩) VALUES('S2','C1',93)
INSERT INTO 选课(学号,课程号,成绩) VALUES('S3','C1',NULL)
INSERT INTO 选课(学号,课程号,成绩) VALUES('S4','C1',89)
INSERT INTO 选课(学号,课程号,成绩) VALUES('S1','C2',79)
INSERT INTO 选课(学号,课程号,成绩) VALUES('S2','C2',NULL)
INSERT INTO 选课(学号,课程号,成绩) VALUES('S3','C2',80)
INSERT INTO 选课(学号,课程号,成绩) VALUES('S4','C3',90)
INSERT INTO 选课(学号,课程号,成绩) VALUES('S1','C3',92)
INSERT INTO 选课(学号,课程号,成绩) VALUES('S2','C3',81)
INSERT INTO 选课(学号,课程号,成绩) VALUES('S3','C7',85)
INSERT INTO 选课(学号,课程号,成绩) VALUES('S4','C7',75)
  • 命令执行结果:
    image-20240510172706546

2、 提高操作实验

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

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-20240510202811745
  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-20240510203421550
  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-20240510224018410
2)删
1
DELETE 病历 WHERE 患者号='P1'
  • 命令执行结果:
    image-20240511081038704
3)改
1
UPDATE 医生 SET 职称='主任医师' WHERE 工号='D2'
  • 命令执行结果:
    image-20240511081228911

3、选择操作实验

  • 读懂以下T-SQL的数据插入、删除和修改语句,在SSMS的查询分析器中正确输入每条语句,执行后检查结果。

(1) 数据插入操作

1
2
3
USE 图书读者数据库
INSERT INTO 图书
VALUES('10000000001', '计算机', '机械工业出版社', '李明', '计算机引论', '25.00')
  • 命令执行结果:
    image-20240511082305128

  • 原因分析:图书表限制书号应为10位,命令中输入的书号为11位。

  • 修改图书表限制后的命令执行结果:
    image-20240511083039530

(2) 数据删除操作

1
DELETE 图书 WHERE 书号='10000000001'
  • 命令执行结果:
    image-20240511083454649

(3) 数据修改操作

1
UPDATE 图书 SET 定价=26.5 WHERE 书号='10000000001'
  • (重新执行插入操作后的)命令执行结果:
    image-20240511083657847