建立一个“学生”表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('女');

添加学生数据和课程数据

THE END
最后修改:2022 年 04 月 24 日 23 : 39
本文链接:https://www.j000e.com/basic/oraclepractise.html
版权声明:本文『ORACLE数据库练习』为『Joe』原创。著作权归作者所有。
转载说明:ORACLE数据库练习 || Joe's Blog』转载许可类型见文末右下角标识。允许规范转载时,转载文章需注明原文出处及地址。
Last modification:April 24, 2022