发布于 

记录SQL作业

创建数据库

创建学生成绩管理数据库,数据库名称educ。

1
CREATE DATABASE educ CHARACTER SET utf8;

进入数据库

1
USE educ;

创建表

student(sno,sname,sex, birthday)
sno: char(7) 主键
sname: char(10) 非空
sex: char(2)
birthday: date

1
2
3
4
CREATE TABLE student(sno CHAR(7) PRIMARY KEY, 
sname CHAR(10) NOT NULL,
sex CHAR(2),
birthday DATE);

​ PRIMARY KEY: 主键

​ NOT NULL: 非空

course(cno,cname,credit,ctime)
cno: char(2) 主键
cname: char(20) 非空,值唯一
credit: smallint
ctime: smallint

1
2
3
4
CREATE TABLE course(cno CHAR(2) PRIMARY KEY,
cname CHAR(20) NOT NULL UNIQUE,
credit SMALLINT,
ctime SMALLINT);

​ UNIQUE: 值唯一

score(sno,cno,grade) (设置外键约束,删除和更新规则均设为:层叠)
sno: char(7)
cno: char(2)
grade: smallint
主键: (sno,cno) 组合
外键:sno,cno

1
2
3
4
5
6
CREATE TABLE score(sno CHAR(7),
cno CHAR(2),
grade SMALLINT,
PRIMARY KEY(sno, cno),
FOREIGN KEY(sno) REFERENCES student(sno) ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY(cno) REFERENCES course(cno) ON DELETE CASCADE ON UPDATE CASCADE);

​ REFERENCES: 引用于哪张表

​ ON DELETE CASCADE: 在删除规则上使用层叠

​ ON UPDATE CASCADE: 在更新规则上使用层叠