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 studentsinner 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用过的场地名称,那么剩下的就是没用过的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)