实验一(SQL语句练习)-2 下载本文

内容发布更新时间 : 2024/5/5 0:01:50星期一 下面是文章的全部内容请认真阅读。

SQL语句练习-2

一、建表

1. 科室表:Dept(Deptno,Dname,Loc),表中属性列依次是科室编号、科室名称、科室所在地点。 列名 数据类型 长度 完整性约束 deptno dname char varchar 10 10 主键 唯一 loc varchar 20 无 2. 医生表:Doctor(Docno,Docname,Age,Sal,Deptno),表中属性列依次是医生编号、医生姓名、年龄、工资、所在科室编号。 列名 数据类型 长度 完整性约束 docno docname age sal deptno char varchar int int char 10 10 无 无 10 主键 非空 年龄在20至60岁之间 无 外键(参照dept表中deptno) 二、插入数据

insert into dept values('10','口腔科','A101'); insert into dept values('20','眼科','A102'); insert into dept values('30','检验科','A103'); insert into dept values('40','泌尿外科','B201'); insert into dept values('50','骨科','B202');

insert into doctor values('1001','张三',42,4000,'10'); insert into doctor values('1002','李四',36,1800,'10'); insert into doctor values('1003','王五',24,1500,'10'); insert into doctor values('2001','赵六',51,3400,'20'); insert into doctor values('2002','孙七',42,2000,'20'); insert into doctor values('2003','吴八',35,1600,'20'); insert into doctor values('3001','许九',22,4500,'30'); insert into doctor values('3002','龙二',39,3000,'30'); insert into doctor values('3003','林强',34,1500,'30'); insert into doctor values('4001','张笑',48,6500,'40'); insert into doctor values('4003','王东',34,3000,'40'); insert into doctor values('4004','方宇',30,1300,'40'); insert into doctor values('5001','冯晓',44,2400,'50'); insert into doctor values('5002','马征',32,1700,'50');

三、完成下列操作

(1)将姓王的医生工资涨10%。

(2)删除科室号为40,工资低于2000的医生信息。

(3)查询各个科室的科室名称及其医生人数,结果按照医生人数的升序排列,如果人数相同,按照科室名称降序排列。

(4)查询各科室中至少有2个人工资在2000元以上的科室编号和医生人数。 (5)查询平均工资超过2500的科室编号。 (6)查询张三医生所在的科室名称及科室地点。

(7)查询年龄大于30岁的医生姓名、工资和所在科室名称。

(8)创建一个“眼科”科室的视图Dept_20,包括医生编号、医生姓名、年龄和工资。

(9)删除视图Dept_20。