(教研室编号 char(6) primary key, 教研室名称 char(20), 教师人数 smallint,
系编号 char(4) references 系(系编号) )
create table 教师
(教师编号 char(7) primary key, 姓名 char(6),
性别 char(2) check(性别='男' or 性别='女'), 职称 char(10),
教研室编号 char(6) references 教研室(教研室编号) )
二、根据T-SQL语句写出执行结果
对上题所创建的表添加记录后如图所示,请详细写出下面的SQL语句的执行结果。
1、select * from 系 where 教研室个数<4
2、select 姓名,职称 from 教师
where 职称='助教' or 性别='女'
3、select 姓名 as 教师姓名 from 教研室,教师
where 教研室.教研室编号=教师.教研室编号 and 教研室名称='软件教研室'
4、select top 2 教研室名称 from 教研室 order by 教师人数 desc
5、select 职称, count(*)as 人数 from 教师 group by 职称
having 职称 not like '%教授'
三、对第二题中的表用T-SQL语句完成如下操作。 1、查询全部男教师的教师编号、姓名和职称。
select 教师编号,姓名,职称 from 教师 where 性别='男'
2、通过教研室表查询信息工程系下的教研室的教师总数。
select sum(教师人数) from 教研室
where 系编号=(select 系编号 from 系 where 系名称='信息工程系') 3、删除教研室数最少的系部。
delete from 系
where 教研室个数=(select min(教研室个数) from 系)
4、创建一个视图,包括教师姓名、性别、职称、教研室四个字段。然后利用该视图查询硬件教研室的教师姓名和职称。
create view v01 as
select 姓名,性别,职称,教研室名称 from 教师,教研室
where 教师.教研室编号=教研室.教研室编号
select 姓名,职称 from v01 where 教研室名称='硬件教研室'
5、创建一个存储过程,当输入一个系名称时,能显示该系所有的教师姓名。并写出存储过程的执行语句。
create proc p01 @系编号 char(4) as select 姓名 from 教师,教研室
where 教师.教研室编号=教研室.教研室编号 and 系编号= @系编号
exec p01 '1103'