[学生课程]数据库,查询与“李洋”在同一个系学习的学生
项目背景介绍:随着科学技术的发展,我们校园的各项管理也日趋完善,本次的数据库设计主要涉及到学生信息、课程信息与成绩信息的相关查询与编辑。 任务概述:
具体关系数据库如下:
有一个[学生课程]数据库,数据库中包括三个表:
学生表Student由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五个属性组成,记为: Student(Sno,Sname,Ssex,Sage,Sdept) ,Sno 为关键字。
课程表Course由课程号(Cno)、课程名(Cname)、先修课号(Cpno)、学分(Ccredit)四个属性组成,记为:Course(Cno,Cname,Cpno,Ccredit) Cno为关键字。
成绩表SG由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,记为: SG(Sno,Cno,Grade) (SNO, CNO)为关键字。
-- 创建学生表Student CREATE TABLE Student ( Sno VARCHAR(20) PRIMARY KEY NOT NULL, Sname VARCHAR(50), Ssex VARCHAR(10), Sage INT, Sdept VARCHAR(50) ); -- 向学生表录入数据 INSERT INTO Student (Sno, Sname, Ssex, Sage, Sdept) VALUES ('001', '张三', '男', 20, '计算机系'); INSERT INTO Student (Sno, Sname, Ssex, Sage, Sdept) VALUES ('002', '李四', '女', 21, '数学系'); INSERT INTO Student (Sno, Sname, Ssex, Sage, Sdept) VALUES ('003', '王五', '男', 22, '英语系'); -- 创建课程表Course CREATE TABLE Course ( Cno VARCHAR(20) PRIMARY KEY NOT NULL, Cname VARCHAR(50), Cpno VARCHAR(20), Ccredit INT ); -- 向课程表录入数据 INSERT INTO Course (Cno, Cname, Cpno, Ccredit) VALUES ('1', '数据库', NULL, 4); INSERT INTO Course (Cno, Cname, Cpno, Ccredit) VALUES ('2', '数学', NULL, 3); INSERT INTO Course (Cno, Cname, Cpno, Ccredit) VALUES ('3', '英语', '2', 2); -- 创建成绩表SG CREATE TABLE SG ( Sno VARCHAR(20), Cno VARCHAR(20), Grade INT, PRIMARY KEY (Sno, Cno), FOREIGN KEY (Sno) REFERENCES Student(Sno), FOREIGN KEY (Cno) REFERENCES Course(Cno) ); -- 向成绩表录入数据 INSERT INTO SG (Sno, Cno, Grade) VALUES ('001', '1', 85); INSERT INTO SG (Sno, Cno, Grade) VALUES ('001', '3', 92); INSERT INTO SG (Sno, Cno, Grade) VALUES ('002', '2', 78); INSERT INTO SG (Sno, Cno, Grade) VALUES ('002', '3', 88); INSERT INTO SG (Sno, Cno, Grade) VALUES ('003', '1', 90); INSERT INTO SG (Sno, Cno, Grade) VALUES ('003', '2', 82);
预览:
用SQL语言实现下列功能:
1.建立学生表Student,其中学号属性不能为空,并且其值是唯一的。
CREATE TABLE Student ( Sno VARCHAR(20) PRIMARY KEY NOT NULL, Sname VARCHAR(50), Ssex VARCHAR(10), Sage INT, Sdept VARCHAR(50) );
2.向Student表增加“入学时间(Scome)”列,其数据类型为日期型。
ALTER TABLE Student ADD Scome DATETIME;
3.查询选修了3号课程的学生的学号及其成绩,查询结果按分数的降序排列。
SELECT Sno, Grade FROM `SG` WHERE Cno = '3' ORDER BY Grade DESC;
4.查询学习1号课程的学生最高分数、平均成绩。
select MAX(Grade),AVG(Grade) FROM SC WHERE Cno = '1';
5.查询与“李洋”在同一个系学习的学生。
SELECT Sno, Sname, Sdept FROM Student WHERE Sdept IN (SELECT Sdept FROM Student WHERE Sname='李洋')
6.将计算机系全体学生的成绩置零。
UPDATE SG SET Grade=0 WHERE Sno in ( SELECT Sno FROM Student WHERE Sdept = '计算机系')
7.删除学号为05019的学生记录。
DELETE FROM Student WHERE Sno='05019'
8.删除计算机系所有学生的成绩记录。
DELETE FROM SG WHERE Sno in ( SELECT Sno FROM Student WHERE Sdept = '计算机系')
还没有留言,还不快点抢沙发?