首先是创建表:
CREATE TABLE stu(
sid int PRIMARY KEY ,-- 主键约束
sname varchar(20) DEFAULT '###',-- 默认约束
address varchar(50)
);
上面的stu表同时创建了默认约束,主键约束。主键也可以这样写:
CREATE TABLE stu(
sid int ,
sname varchar(20) DEFAULT '###',-- 默认约束
address varchar(50),
PRIMARY KEY (sid)
);
创建course表:
CREATE TABLE course(
cid int,
cname varchar(20) UNIQUE,-- 唯一性约束
CONSTRAINT pk_cid PRIMARY KEY (cid) -- 主键约束
);
表中添加了唯一性约束,UNIQUE;同时设置了主键,主键的CONSTRAINT字段用来说明主键约束的名字,当然也可以不写,系统会自动生成一个主键名。
创建stu_course表,用来联系stu表和course表:
CREATE TABLE stu_course(
sid int,
cid int,
-- cid int FOREIGN KEY (cid) REFERENCES course(cid) mysql好像不支持这样直接写外键约束
grade int CHECK(grade>=0 and grade<=100) NOT NULL, -- CHECK约束 和 非空约束
CONSTRAINT pk_sc PRIMARY KEY (sid,cid),-- 主键约束
CONSTRAINT fk_c FOREIGN KEY (cid) REFERENCES course(cid),-- 外键约束
FOREIGN KEY (sid) REFERENCES stu(sid) -- 外键约束也可以这样写,不加外键名称
);