创建表(包括创建主键,外键,非空列,唯一)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

创建主键(三种方法)

****************

创建学生表:

第一种:

create table student

(sno char(5) primary key,/*学号*/ /*可以直接指定主键*/ sname char(20) not null,/*姓名*/

ssex char(3) not null,/*性别*/

sage integer not null,/*年龄*/

sdept char(15);/*系别*/

第二种:

create table student

(sno char(5) not null,

constraint pk_student /*可以指定主键名称*/

primary key (sno),

sname char(20) not null ,/*非空,不可重复*/

ssex char(3) not null,

sage integer ,

sdept char(15));

第三种:

创建课程表:

create table course

(cno char(5),/*课程号*/

cname char(20) not null unique,/*课程名,非空,不可重复*/

cpno char(5),/*前置课程号(学此课之前必修课)*/

ccredit number);/*学分*/

通过修改表,设置主键.

alter table course

add constraint pk_course

primary key (cno);

*************

创建外键(3种方法)

*************

创建"学生-课程-成绩"表

create table sc

(sno char(5) constraint fk_student /*第一种,写在属性定义里面的*/ /*可以指定外键名称,*/

references student(sno),

cno char(5),

foreign key(cno) /*可省略外键名称*/

references course(cno),

grade number);

**********

第二种

**********

create table sc

(sno char(5),

constraint fk_student /*第二种,写在属性定义外面的*/ foreign key (sno)

references student(sno),

cno char(5),

foreign key(cno)

references course(cno),

grade number);

***********

第三种

***********

alter table sc

add constraint fk_student

foreign key(sno)

references student(sno);

****************************

建好表之后,新增或修改,删除约束

****************************

先用此语句查看某个表的所有约束:

select TABLE_NAME,CONSTRAINT_NAME,SEARCH_CONDITION,STATUS from user_constraints WHERE TABLE_name=upper('&TABLE_Name');

0.增加not null约束

alter table student modify sname not null;

1.修改null约束

alter table student modify sname null;/*姓名可以为空*/

2.增加主键约束

alter table student

add constraint pk_student

primary key(id);

3.删除主键约束

先用此语句查看某个表的所有约束:

select TABLE_NAME,CONSTRAINT_NAME,SEARCH_CONDITION,STATUS from user_constraints WHERE TABLE_name=upper('&TABLE_Name');

这里要删除的是约束"fk_student"

alter table drop constraint fk_student;

4.增加外键约束

alter table sc

add constraint fk_student

foreign key(sno)

references student(sno);

5.删除外键约束

需要知道要删除的外键名称,

先用此语句查看某个表的所有约束:

select TABLE_NAME,CONSTRAINT_NAME,SEARCH_CONDITION,STATUS from user_constraints WHERE TABLE_name=upper('&TABLE_Name');

alter table drop constraint fk_student;

6.添加unique约束

alter table course modify cname

unique;

添加unique的同时,会自动创建一个相同名称的索引.

7.取消unique

alter table course

drop constraint sys_c005472;

8.删除索引

查找要删除的索引名称

运行此语句:

select index_name,table_owner,table_name,tablespace_name,status from user_indexes order by table_name;

然后运行

drop index sys_coo5472;

今天在对一个表,对其中一个属性,新建unique约束,

相关文档
最新文档