TSQL的综合题目
1、有学生-课程关系数据库,各关系表描述如下:
student
列名 |
说明 |
数据类型 |
约束 |
Sno |
学号 |
字符(8) |
主键 |
Sname |
姓名 |
字符(12) |
非空,唯一 |
Ssex |
性别 |
字符(2) |
取‘男’或‘女’, 默认值 ‘女’ |
Sage |
年龄 |
整型 |
取值16~40,默认值21 |
Sdept |
院系 |
字符(20) |
默认 ‘电子系’ |
列名 |
说明 |
数据类型 |
约束 |
Cno |
课程号 |
字符(8) |
主键 |
Cname |
课程名 |
字符(8) |
非空 |
Teacher |
教师名 |
字符(10) |
唯一 |
Course
SC
列名 |
说明 |
数据类型 |
约束 |
Sno |
学号 |
字符(8) |
主键,参照Student表,级联更新和删除
|
Cno |
课程号 |
字符(8) |
主键,参照Course表,级联更新,拒绝删除 |
Grade |
成绩 |
短整型 |
取值0~100 |
(1)用关系代数表达式表示下列问题
1)检索选修了教师‘王敏’所授课程的学生姓名和学号 ; (2分)
(难度系数B)正确答案:
∏姓名, 学号(Student (SC (s授课教师=‘王敏’ (Course) ) ) )
或 ∏姓名, 学号( s授课教师=‘王敏’( Student SC Course))
2)检索选修了课程号为C3或者C5的学生学号和成绩 ; (3分)
(难度系数B)正确答案:
∏学号,成绩( s课程号=‘C3’( SC)∪∏学号( s课程号=‘C5’( SC)
(2)用SQL语句实现下列问题
1)写出创建S表的T-SQL语句 ; (5分)
(难度系数A)正确答案:
CREATE TABLE S
( Sno CHAR(8) PRIMARY KEY,
Sname CHAR(12) NOT NULL UNIQUE
,
Ssex CHAR(2) CHECK(Ssex in('男','女')) DEFAULT '女',
Sage INT CHECK(STage>=16 AND STage<=40) DEFAULT 21,
Sdept CHAR(20) DEFAULT ‘电子系’
);
2) 检索姓"李"且倒数第2个字为"华"或"涛"字的学生的姓名和学号;
(4分)
(难度系数A)正确答案:
SELECT Sname,Sno
FROM Student
WHERE Sname LIKE '李% [华涛] _ _';
3)向学生选修课程表中插入元组“学生S6选修课程号C2”。 (2分)
(难度系数B)正确答案:
INSERT
INTO SC (Sno, Cno)
VALUES( ‘S6’,’ C2’ )
4) 删除选课成绩在60分以下的学生记录; (4分)
(难度系数A)正确答案:
DELETE
FROM Student
WHERE SNO IN
(SELECT SNO
FROM SC
WHERE GRADE<60);
或
DELETE
FROM Student
WHERE Student.SNO = SC.SNO AND SC.GRADE<60 ;
5) 把“大学英语”课程成绩提高5%; (3分)
(难度系数B)正确答案:
UPDATE SC
SET Grade=Grade*1.05
WHERE Cno IN
(SELECT Cno
FROM Course
WHERE Cname=‘大学英语’)
6)求出男同学的每一年龄组(超过4人)有多少人?要求查询结果按人数降序排列,人数相同的按年龄升序排列; (5分)
(难度系数A)正确答案:
SELECT Sage, COUNT(Sno)
FROM Student
WHERE Ssex=‘男’
GROUP BY Sage HAVING COUNT(Sno)>4
ORDER BY 2 DESC, Sage ASC //其中ASC也可以省略不写
7)定义视图S_age,其中包括学生学号以及每个学生选修课程的门数(要求成绩非空)和平均成绩; (5分)
(难度系数A)正确答案:
CREATE VIEW S_age (Sno, Cno_num, Avg_grade)
AS SELECT Sno,COUNT(Cno),AVG(grade)
FROM SC
WHERE grade IS NOT NULL
GROUP BY Sno10、alter table student
add
jiguan char(20),
8)在S表中删除院系字段列。 (2分)
(难度系数C)正确答案:
alter table student
drop column Sdept
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- LeetCode精选好题(三)
- 【LeetCode两题选手】算法类题目(7.29)
- 【LeetCode两题选手】算法类题目(7.27)
- 【奇技淫巧】-- 走地图的不同路径
- 【奇技淫巧】-- 搜索旋转数组
- 【奇技淫巧】-- 原地旋转链表
- 【奇技淫巧】-- 盛水最多的容器
- 【leetcode两题选手】MySQL类题目(八)
- 【leetcode两题选手】MySQL类题目(七)
- 【leetcode两题选手】MySQL类题目(六)
- 【leetcode两题选手】MySQL类题目(五)
- 【leetcode两题选手】MySQL类题目(四)
- 【leetcode两题选手】MySQL类题目(三)
- 【leetcode两题选手】MySQL类题目(二)
- 剑指offer(01-03)题解