内容发布更新时间 : 2025/1/8 16:36:53星期一 下面是文章的全部内容请认真阅读。
实验二 SQL语言
一、 实验目的
1.掌握SQL语言的语法 2.学会编写和调试SQL语言 3.学会分析相应实验结果 二、 实验内容
本次实验所有题目要求用SQL语句实现,不要用SSMS工具实现。 1.使用SQL语言在“教师授课管理数据库”中创建新表:
系表结构 列名 说明 数据类型 约束 Dno 系号 字符串,长度为4 主码 Dname 系名 字符串,长度为20 非空 Ddirno 系主任教师号 字符串,长度为7 引用教师表的外码 2.在系表中插入至少3条记录,内容为计算机系、英语系、经济系等。 3.修改教师表的结构:
(1) 增加一个新列:Tel 联系电话 字符串,长度为15 允许空 (2) 在该列中填充数据
(3) 增加Dept列为引用系表的系名的外码(注意数据内容一致) 4.查询计算机系教师的姓名、年龄。
5.查询英语系教师的最大年龄和最小年龄。 6.统计每个系男女教师的人数。
7.查询教师总数超过3人的系的名称和系主任姓名。 8.删除“张立”教师的教师信息。
9.如果他曾授过课,则相应的授课信息是够还存在? 10. 将计算机系的系名改为计算机科学系。 三、 实验过程
1.使用SQL语言在“教师授课管理数据库”中创建新表:
CREATE TABLE 系表 (
Dno nchar(4) PRIMARY KEY,
Dname NCHAR(20) NOT NULL, Ddimo NCHAR(7),
FOREIGN KEY (Ddimo) REFERENCES 教师表(Tno) )
2.在系表中插入至少3条记录,内容为计算机系、英语系、经济系等。
INSERT
INTO 系表(Dno,Dname,Ddimo) VALUES('101','计算机系','10002');
系表(Dno,Dname,Ddimo)
VALUES('102','英语系','10003');
INSERT
INTO 系表(Dno,Dname,Ddimo) VALUES('103','经济系','10004');
3.修改教师表的结构:
(1) 增加一个新列:Tel 联系电话 字符串,长度为15 允许空
ALTER TABLE 教师表 ADD Tel nchar(15) null
(2) 在该列中填充数据 UPDATE 教师表
SET Tel=15133213221 WHERE Tname='王老师';
UPDATE 教师表
SET Tel=15133822254 WHERE Tname='孙老师';
UPDATE 教师表
SET Tel=13831245670 WHERE Tname='高老师';
UPDATE 教师表
SET Tel=13832415645 WHERE Tname='李老师';
UPDATE 教师表
SET Tel=18924554521 WHERE Tname='方老师';
(3) 增加Dept列为引用系表的系号的外码(注意数据内容一致)
ALTER TABLE 系表 ADD UNIQUE(Dname);
ALTER TABLE 教师表
ADD CONSTRAINT 教师表Dept_系表Dname
FOREIGN KEY (Dept) REFERENCES 系表(Dname);
4 .查询计算机系教师的姓名、年龄。
select Tname,2014 - YEAR(Birthday) from 教师表
5 .查询英语系教师的最大年龄和最小年龄。
6.统计每个系男女教师的人数。
7.查询教师总数超过3人的系的名称和系主任姓名。
select Tname,Dept from 系表,教师表 where Dept in
(select Dept from 教师表 group by Dept having COUNT(*)>=3
)and 教师表.Dept=系表.Dname and 系表.Ddimo=教师表.Tno
8. 删除“张立”教师的教师信息。
delete from 授课表 where Tno in (select Tno from 教师表
where Tname='张立' )
ALTER TABLE 教师表
DROP CONSTRAINT 教师表Dept_系表Dname;