建立一个“学生”表STUDENT
CREATE TABLE STUDENT
(SNO CHAR(9) PRIMARY KEY,
SNAME CHAR(20) UNIQUE,
SSEX CHAR(2),
SAGE SMALLINT,
SDEPT CHAR(20)
);
建立一个课程表Course,由课程号Cno、课程名Cname、先行课程号Ccpno、学分Ccredit四个属性组成
CREATE TABLE Course
( Cno number(4) ,
Cname char(20),
Cpno number(4),
Ccredit number(4) ,
Constraint pk_Course primary key(Cno));
创建选课表
CREATE TABLE SC
(Sno number(12),
Cno number(4) Constraint fk_c references Course(Cno),
Grade number(3),
Constraint pk_SC primary key (Sno,Cno)) ;
让Course表中的Cpno字段参照于Course表中的Cno字段
alter table COURSE add constraint fk_cpno foreign key(Cpno) references COURSE(Cno);
添加一个CHECK约束来保证每个学生的考试成绩在0到100之间
alter table SC add CONSTRAINT ck_g check (Grade>=0 AND Grade<=100)
把SC的sno改成char型,方便下面补外码约束
ALTER TABLE SC MODIFY SNO char(9)
对sc补一个sno外键约束
alter table SC add CONSTRAINT fk_s foreign key(SNO) references STUDENT(SNO)
指定Course表Cname取值非空
ALTER TABLE COURSE MODIFY CNAME char(20) NOT NULL
指定Course表Cname取值唯一,约束条件会叠加,不会覆盖上一句
ALTER TABLE COURSE MODIFY CNAME char(20) CONSTRAINT u_cname unique
STUDENT性别的默认值为男
ALTER TABLE STUDENT MODIFY SSEX char(2) default('男')
向Student表中加入“入学时间”、“生源地”两列,其数据类型为日期型
ALTER TABLE Student ADD
(S_entrance date,
S_sourse char(20));
删除Student表中“入学时间”、“生源地”两列
ALTER TABLE Student DROP (S_entrance,S_sourse);
重新加回来“入学时间”、“生源地”
ALTER TABLE Student ADD
(S_entrance date,
S_sourse char(20));
删除Student表中的“入学时间”列
ALTER TABLE Student DROP COLUMN S_entrance;
向Student表增加“入学时间”列,其数据类型为日期型
ALTER TABLE Student ADD S_entrance date;
将Stuent表中性别Ssex这一列由原来的char(2)修改为char(8),并赋默认值为‘女’
ALTER TABLE Student MODIFY Ssex char(8) DEFAULT('女');
添加学生数据和课程数据