[学生课程]数据库,查询与“李洋”在同一个系学习的学生
项目背景介绍:随着科学技术的发展,我们校园的各项管理也日趋完善,本次的数据库设计主要涉及到学生信息、课程信息与成绩信息的相关查询与编辑。 任务概述:
具体关系数据库如下:
有一个[学生课程]数据库,数据库中包括三个表:
学生表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 = '计算机系')
吐槽一下


还没有留言,还不快点抢沙发?