TSQL语句练习题.docx
- 文档编号:5127735
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:13
- 大小:303.90KB
TSQL语句练习题.docx
《TSQL语句练习题.docx》由会员分享,可在线阅读,更多相关《TSQL语句练习题.docx(13页珍藏版)》请在冰豆网上搜索。
TSQL语句练习题
一、根据要求用T-SQL语句创建数据库和表。
创建数据库“英才大学成绩管理”。
分别创建三个表,具体的表名、字段名如下:
学生(学号,姓名,性别,出生年月,籍贯,班级)其中性别字段只能为“男”或“女”
课程(课程编号,课程名称,学分)其中课程名称字段为唯一值约束
成绩(学号,课程编号,成绩)
带下划线的字段为主键,表之间的外键关联参考下图,各字段的数据类型应尽量合理。
CREATEDATABASE英才大学成绩管理
createtable学生
(学号char(6)primarykey,
姓名char(6),
性别char
(2)check(性别='男'or性别='女'),
出生年月datetime,
籍贯varchar(50),
班级char(12),
)
createtable课程
(课程编号char(5)primarykey,
课程名称char(20)unique,
学分smallint,
)
createtable成绩
(学号char(6)references学生(学号),
课程编号char(5)references课程(课程编号),
成绩decimal(5,2),
primarykey(学号,课程编号)
)
二、根据T-SQL语句写出执行结果(20分,每题4分)
对上题所创建的表添加记录后如图所示,详细写出下面的SQL语句的执行结果。
1、select*from课程where课程编号='30442'
1、
2、select姓名from学生
where性别='女'and籍贯='辽宁'
2、
3、select姓名,课程名称,成绩from学生,课程,成绩
where学生.学号=成绩.学号and课程.课程编号=成绩.课程编号
and学分='4'
3、
4、selectmax(成绩)as最高分from课程,成绩
where课程.课程编号=成绩.课程编号and课程名称='C语言程序设计'
4、
5、select籍贯,count(*)as人数from学生
where班级='计ZG091'groupby籍贯
5、
三、对第一题中的表用T-SQL语句完成如下操作。
1、按年龄由大到小显示学生的姓名和班级。
select姓名,班级from学生orderby出生年月
2、查询周悦含同学所有课程的平均分。
selectavg(成绩)from学生,成绩
where学生.学号=成绩.学号and姓名='周悦含'
3、把成绩表中所有不及格的分数都改为40分。
update成绩
set成绩=40
where成绩<60
4、创建一个视图,确切的字段名是:
学生姓名,课程名称,分数,其中的记录不包括成绩不及格的学生。
createviewv01(学生姓名,课程名称,分数)
as
select姓名,课程名称,成绩from学生,课程,成绩
where学生.学号=成绩.学号and课程.课程编号=成绩.课程编号
and学生.学号notin(select学号from成绩where成绩<60)
5、创建一个触发器,规定学生不能转班级,即不能修改学生表的班级字段的值。
createtriggertr01
on学生forupdate
as
ifupdate(班级)
begin
rollbacktran
end
一、根据要求用T-SQL语句创建数据库和表。
创建数据库“英才大学学生管理”。
分别创建三个表,具体的表名、字段名如下:
系(系编号,系名称,系主任,班级个数)其中系名称字段非空
班级(班级编号,班级名称,班级人数,班长姓名,专业,系编号)其中班级名称字段唯一值约束
学生(学号,姓名,性别,出生年月,籍贯,班级编号)其中性别字段只能为“男”或“女”
带下划线的字段为主键,表之间的外键关联参考下图,各字段的数据类型应尽量合理。
CREATEDATABASE英才大学学生管理
createtable系
(系编号char(4)primarykey,
系名称char(20)notnull,
系主任char(6),
班级个数smallint,
)
createtable班级
(班级编号char(8)primarykey,
班级名称char(12)unique,
班级人数smallint,
班长姓名char(6),
专业char(20),
系编号char(4)references系(系编号)
)
createtable学生
(学号char(6)primarykey,
姓名char(6),
性别char
(2)check(性别='男'or性别='女'),
出生年月datetime,
籍贯varchar(50),
班级编号char(8)references班级(班级编号)
)
二、根据T-SQL语句写出执行结果
对上题所创建的表添加记录后如图所示,请详细写出下面的SQL语句的执行结果。
1、select*from系
where班级个数between14and17
2、select班长姓名from班级
where班级人数<26or专业='计算机网络技术'
3、select姓名,系名称from学生,班级,系
where学生.班级编号=班级.班级编号and班级.系编号=系.系编号
and籍贯='山东'
4、selectsum(班级个数)as班级数
from系
5、select籍贯,count(*)as人数from学生,班级
where学生.班级编号=班级.班级编号and班级名称='网ZG092'
groupby籍贯
三、对第一题中的表用T-SQL语句完成如下操作。
1、在班级表中查询班级人数最多的班级名称和人数。
select班级名称,班级人数
from班级
where班级人数=(selectmax(班级人数)from班级)
2、查询姓王的学生的姓名和所在班级。
select姓名,班级名称
from学生,班级
where学生.班级编号=班级.班级编号and姓名like'王%'
3、在班级表中删除系部是“管理系”的记录。
delete班级where系编号=(select系编号from系where系名称='管理系')
4、显示比管理系班级人数最少的班级的人数还少的班级名称和专业。
select班级名称,专业
from班级
where班级人数 where班级.系编号=系.系编号and系名称='管理系') 5、为系表创建一个触发器,实现一次最多只能删除2条记录。 createtriggertr01 on系fordelete as if(selectcount(*)fromdeleted)>2 begin rollbacktran end 一、根据要求用T-SQL语句创建数据库和表。 创建数据库“英才大学教师管理”。 分别创建三个表,具体的表名、字段名如下: 系(系编号,系名称,系主任,教研室个数)其中系名称字段非空 教研室(教研室编号,教研室名称,教师人数,系编号) 教师(教师编号,姓名,性别,职称,教研室编号)其中性别字段只能为“男”或“女” 带下划线的字段为主键,表之间的外键关联参考下图,各字段的数据类型应尽量合理。 CREATEDATABASE英才大学教师管理 createtable系 (系编号char(4)primarykey, 系名称char(20)notnull, 系主任char(6), 教研室个数smallint, ) createtable教研室 (教研室编号char(6)primarykey, 教研室名称char(20), 教师人数smallint, 系编号char(4)references系(系编号) ) createtable教师 (教师编号char(7)primarykey, 姓名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、selecttop2教研室名称from教研室 orderby教师人数desc 5、select职称,count(*)as人数 from教师 groupby职称 having职称notlike'%教授' 三、对第二题中的表用T-SQL语句完成如下操作。 1、查询全部男教师的教师编号、姓名和职称。 select教师编号,姓名,职称 from教师 where性别='男' 2、通过教研室表查询信息工程系下的教研室的教师总数。 selectsum(教师人数) from教研室 where系编号=(select系编号from系where系名称='信息工程系') 3、删除教研室数最少的系部。 deletefrom系 where教研室个数=(selectmin(教研室个数)from系) 4、创建一个视图,包括教师姓名、性别、职称、教研室四个字段。 然后利用该视图查询硬件教研室的教师姓名和职称。 createviewv01 as select姓名,性别,职称,教研室名称 from教师,教研室 where教师.教研室编号=教研室.教研室编号 select姓名,职称fromv01 where教研室名称='硬件教研室' 5、创建一个存储过程,当输入一个系名称时,能显示该系所有的教师姓名。 并写出存储过程的执行语句。 createprocp01@系编号char(4) as select姓名 from教师,教研室 where教师.教研室编号=教研室.教研室编号 and系编号=@系编号 execp01'1103'
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- TSQL 语句 练习题