现有关系数据库如下: 学生(学号,姓名,性别,专业、奖学金) 课程(课程号,名称,学分) 学习(学号,课程

现有关系数据库如下: 学生(学号,姓名,性别,专业、奖学金) 课程(课程号,名称,学分) 学习(学号,课程,第1张

用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

1) select students.num,students.name from students

inner join relStudentCourse on relStudentCourse.student_num = students.num

inner join Course on relStudentCourse.Course_num = Course.num

where Course.name ='计算机'

2) select students.num from students

inner join relStudentCourse on relStudentCourse.student_num = students.num

inner join Course on relStudentCourse.Course_num = Course.num

where Course.name ='软件工程' and Course.name ='管理信息系统'

2) select students.name from students

where not exist(

select 'x' from relStudentCourse on relStudentCourse.student_num = students.num

inner join Course on relStudentCourse.Course_num = Course.num

where Course.name ='数据库' and students.num = relStudentCourse.student_num

)

(1)π Region,B_time(σBname='B1'(B))(我没办法写下标,卸载纸上的时候改成下标就可以了)

(2)π Gname,Gq(G) (自然联接符号)π Gname(σBname='B5'(BG))

另外一种写法也是一样的,自然联接符号只有图片,没办法很少的打出来,只能用括号代替

π Gname,Gq(σBname='B5'(G(自然联接符号)BG))

(3)π Gname(G)-π Gname(σBname='B7'(BG))

G表包括所有的场地名称,用这个减去B7用过的场地名称,那么剩下的就是没用过的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9792311.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存