数据库存储课程表
① 数据库中建立学生表课程表选课表及其联系
以 access 为例,建立数据表如下:
1、学生表
② 有一个[学生课程]数据库,数据库中包括三个表
CREATE TABLE 学生表
(学号 VARCHAR(12) NOT NULL,
姓名 VARCHAR(20) NOT NULL,
性别 VARCHAR(10) NOT NULL,
年龄 INT CHECK(年龄>=0 AND 年龄<=120),
所在系 VARCHAR(20) NOT NULL,
PRIMARY KEY (学号)
)
CREATE TABLE 课程表
(课程号 VARCHAR(12) NOT NULL,
课程名 VARCHAR(20) NOT NULL,
先修课号 VARCHAR(20) NOT NULL,
学分 INT CHECK(学分>0 AND 学分<=20),
PRIMARY KEY (课程号)
)
CREATE TABLE 成绩表
(学号 VARCHAR(12) NOT NULL,
课程号 VARCHAR(12) NOT NULL,
成绩 REAL CHECK(成绩>=0 AND 成绩<=100),
PRIMARY KEY (学号,课程号),
FOREIGN KEY (学号) REFERENCES 学生表 (学号),
FOREIGN KEY (课程号) REFERENCES 课程表(课程号)
)
③ 数据库中包含学生表、课程表、学生选课表3个表,分别是什么
1、SELECT 课程号, 课程名, 课程学分
FROM 课程 WHERE 课程号 IN(SELECT 课程号
FROM 选课
GROUP BY 课程号
HAVING COUNT(学生号) BETWEEN 2 AND 4 )
2、SELECT MAX(成绩) - MIN(成绩) AS 分数之差
FROM 选课
倘若要每门课程相差
SELECT 课程, MAX(成绩) - MIN(成绩) AS 分数之差
FROM 选课
GROUP BY 课程
④ 有一个[学生课程]数据库,数据库中包括三个表:
sql">1
createtablestudent(
snovarchar(5)notnullprimarykey,
snamevarchar(10),
ssexchar(2),
sageint,
sdeptvarchar(20))
2
3
selectsno,gradefromsgwherecno=5orderbygradedesc
4
selectmax(grade)as最高成绩,avg(grade)as平均成绩fromsgwherecno=1
5
deletefromstudentwheresno='05019'
⑤ 在数据库中存储学生一周的课程表,数据库如何设计
将表设计成(班级,日期,课程1,课程2,...课程8)比较好点.