//对于命名,学校的一个老师搞的,感觉超垃圾。。
create database DBS
use DBS
create table 院系表
(YXBH CHAR(8) PRIMARY KEY CLUSTERED,--院系编号
YXMC CHAR(20) NOT NULL,--院系名称
YXZR CHAR(8) --院系主任
)
CREATE TABLE 学生表
(
XH CHAR(7)
CONSTRAINT PK_XH PRIMARY KEY NONCLUSTERED,--学号
XM CHAR(20) NOT NULL,--姓名
sfz char(18) unique nonclustered,--身份证
yxbh char(8) references 院系表 --院系编号,外码
)
create table 课程表
(
kch char(3) constraint pk_kch primary key,
kcm char(20)
)
go
create table 教师表
(
jsh char(5) constraint pk_jsh primary key,
jsm char(20)
)
go
create table 学生表
(
xh char(7)--学号
constraint pk_xh primary key nonclustered,
xm char(20) not null,
sfz char(18) unique nonclustered, --身份证
yxbh char(8) foreign key(yxbh) references 院系表
)
create table 学生表
(
xh char(7)学号
constraint xh primary key nonclustered,
xm char(20) not null,
sfz char(18) unique nonclustered,
yxbh char(8) constraint fk_yxbh foreign key(yxbh) references 院系表
)
create table 成绩表
(
xh char(7) references 学生表,--学号
kch char(3) references 课程表,--课程号
cj int default 0 check (cj >= 0and cj <= 10),--成绩
jsh char(5) references 教师表--教师号
constraint pk_cj primary key(xh,kch)--主码
)
select * from 成绩表
--更改表以添加新列
alter table 成绩表 add column_b varchar(20) null
--更改表以添加具有约束的列
alter table 成绩表 add column_b varchar(20) null constraint b_unique unique
--更改表以去除列
alter table 成绩表 drop column column_b
delete from 成绩表 where column = 'column_b'