from 学生表 a inner join 选课表 b on a.Sno=b.Sno
inner join 课程表 c on b.Cno=c.Cno
group by a.Sno,Sname
having avg(Score) > 70 and count(c.Cno) > 2
order by 平均分
用SQL语言实现下列功能的SQL语句代码:1、创建[学生表]代码:
学生表(学号 char(6),姓名,性别,年龄,专业)
要求使用:主键(学号)、非空(姓名,专业)、检查(性别)
CREATE TABLE 学生表
(
学号 CHAR(6) PRIMARY KEY,
姓名 CHAR(10) NOT NULL,
性别 CHAR(2) NOT NULL CHECK (性别 IN ('男','女')),
年龄 INT,
专业 CHAR(20) NOT NULL
)
2、创建[选课表]代码:
选课表(ID,学号,课号,分数)
要求使用:外键(选课表.学号,选课表.课程号)、检查(分数),自动编号(ID)
CREATE TABLE 选课表
(
ID INT IDENTITY(1,1) NOT NULL,
学号 CHAR(6) NOT NULL FOREIGN KEY REFERENCES 学生表(学号),
课号 CHAR(10) NOT NULL FOREIGN KEY REFERENCES 课程表(课程号),
分数 INT CHECK (分数 BETWEEN(0,100))
)
3、将下列课程信息添加到课程表的代码
课程号 课程名 学分 先行课程号
100002 数据结构 2100001
修改 课程号为100003的课程名:SQL数据库
删除 课程号为100002的课程信息
INSERT INTO 课程表 (课程号,课程名,学分,先行课程号)VALUES ('100002','数据结构',2,'100001')
UPDATE 课程表 SET 课程名 = 'SQL数据库' WHERE 课程号 = '100003'
DELETE FROM 课程表 WHERE 课程号 = '100002'
4、写出创建:选课表视图(学号,姓名,课程号,课程名,学分,分数)的代码
CREATE VIEW UV_选课表_OnShow
AS
SELECT A.学号,A.姓名,C.课程号,C.课程名,C.学分,B.分数
FROM 学生表 AS A INNER JOIN 选课表 AS B ON A.学号 = B.学号
INNER JOIN 课程表 AS C ON B.课号 = C.课程号
现有关系数据库如下:
学生(学号,姓名,性别,专业,奖学金)课程(课程号,名称,学分)学习(学号,课程号,分数)用SQL实现:
(5)查询没有任何一门成绩在80分以下的所有学生的信息,包括学号、姓名和专业
SELECT 学生.学号,学生.姓名,学生.专业
FROM 学生,学习
WHERE 学生.学号 = 学习.学号
GROUP BY 学生.学号,学生.姓名,学生.专业
HAVING MIN(分数) >80
(6)对成绩得过满分(100分)的学生,如果没有获得奖学金的,将其奖学金设为1000
不知道没有获得奖学金的情况下,奖学金是多少,现假设是0
UPDATE 学生 SET 奖学金 = 1000 WHERE 学号 IN (SELECT 学生.学号
FROM 学生,学习
WHERE 学生.学号 = 学习.学号
GROUP BY 学生.学号
HAVING MAX(分数) = 100) and 奖学金 = 0
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)