分类: Mysql/postgreSQL
2009-07-09 17:43:05
好久都没有看数据库,对建表有些生疏了。所以在这儿写写.
学生表(Student),课程表(Course),选课表(SC);
CREATE TABLE Student(
Sno char(7) PRIMARY KEY,
Sname char(10) NOT NULL,
Ssex char(2) CHECK(Ssex='男' OR Ssex='女'),
Sage tinyint CHECK(Sage >=15 AND Sage <=45),
Sdept char(20) DEFAULT '计算机系'
)
check:限制列的取值范围,default:给定列的默认值。
CREATE TABLE Course(
Cno char(10) NOTNULL,
Cname char(20) NOT NULL,
Ccredit tinyint CHECK(Ccredit >0),
Semester tinyint CHECK(Semester >0),
period int CHECK (period >0),
PRIMARY KEY(Cno)
)
CREATE TABLE SC(
Sno char(7) NOT NULL,
Cno char(10) NOTNULL,
Grade tinyint CHECK(Grade >=0 and Grade<=100),
PRIMARY KEY(Cno,Cno),
FOREIGN KEY(Sno) REFERENCES Student (Sno),
FOREIGN KEY(Cno) REFERENCES Course (Cno),
)
一个好的建表,有时会运用到完整性约束:NOT NULL,DEFAULT,UNIQUE,CHECK,PRIMARY KEY,FOREIGN KEY.