数据库实验一
1、建立表 student:
CREATE TABLE student (
sno CHAR(8) NOT NULL PRIMARY KEY, -- 学号,主键,不能为空
sname VARCHAR(20), -- 姓名,可以为空
sex CHAR(2), -- 性别,可以为空
sdept VARCHAR(20) -- 所在系,可以为空
);
2、建立表:course
CREATE TABLE course (
cno CHAR(6) NOT NULL PRIMARY KEY, -- 课程号,主键,不能为空
cname VARCHAR(20) -- 课程名,可以为空
);
3、建立表 sc:
CREATE TABLE sc (
sno CHAR(8) NOT NULL, -- 学号,不能为空
cno CHAR(6) NOT NULL, -- 课程号,不能为空
grade INT NOT NULL, -- 成绩,不能为空
PRIMARY KEY (sno, cno), -- 复合主键,由学号和课程号共同组成
FOREIGN KEY (sno) REFERENCES student(sno), -- 外键,引用 student 表的 sno 列
FOREIGN KEY (cno) REFERENCES course(cno) -- 外键,引用 course 表的 cno 列
);
4、在 student 表中插入两条数据:
INSERT INTO student (sno, sname, sex, sdept) VALUES
('20050101', '王飞', '男', '计算机系'),
('20050102', '李丽', '女', '信息系');
5、在 course 表中插入两条数据:
INSERT INTO course (cno, cname) VALUES
('01', '数据结构'),
('02', '数据库原理');
6、在 sc 表中插入两条数据:
INSERT INTO sc (sno, cno, grade) VALUES
('20050101', '01', 70),
('20050102', '02', 90);
11、首先,创建一个表用于存储每门课程的平均成绩:
CREATE TABLE course_avg_grade (
cno CHAR(6) PRIMARY KEY,
avg_grade DECIMAL(5, 2)
);
计算每门课程的平均成绩并插入到 course_avg_grade 表中:
INSERT INTO course_avg_grade (cno, avg_grade)
SELECT cno, AVG(grade) AS avg_grade
FROM sc
GROUP BY cno;
查看存储的平均成绩数据:
SELECT * FROM course_avg_grade;
12、-- 修改成绩为 85
UPDATE sc
SET grade = 85
WHERE sno = '20050102' AND cno = '02';
-- 删除记录
DELETE FROM sc
WHERE sno = '20050102' AND cno = '02';
13、UPDATE sc
SET grade = 0
WHERE cno = '02';
14、DELETE FROM sc
WHERE sno = '20050102';
15、DELETE FROM student;
DELETE FROM course;
DELETE FROM sc;
16、DROP TABLE student;
DROP TABLE course;
DROP TABLE sc;
17、DROP DATABASE stumanage;