当前位置:Gxlcms > 数据库问题 > 数据库中创建表(包括创建主键,外键,非空列,唯一)

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

时间:2021-07-01 10:21:17 帮助过:160人阅读

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

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

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

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约束,

但是提示:ora-02261:such unique or primary key already exists in the table

原因是该属性已经是primary key了.

如果该属性已经有unique约束,则不能赋予该属性primary key约束.

1.一个表只能有一个primary key,可以有多个unique约束

2.当创建primary key的时候,会同时建立一个索引,名字和primary key的名称相同.

3.当某属性为primary key,会默认新增not null约束,当删除primary key后,not null属性取消.

4.表的一个属性可以同时设定not null和primary key约束.


  1. 这里先新建一个表,其中ID就是要设为主键的column。

    创建table的代码如下:

    CREATE TABLE test_tab

    (

    id NUMBER,

    name VARCHAR2(30)

    )

    技术分享
  2.  

    要设置主键的话这里需要用到alter table这个语法。

    设置主键的代码如下:

    ALTER TABLE test_tab ADD CONSTRAINT pk_test_tab PRIMARY key(id);

    技术分享
  3.  

    这里解释下:

    alter table table_name-----------------------意思就是要改动某个表

    add constraint constraint_name-------------意思就是给某个表加约束/限制

    primary key(column_name)------------------说明是主键的约束,而且是某个column的。

    技术分享
  4.  

    执行之后就设置成功了,若不放心可以亲自测试下。

    执行如下代码一次:

    INSERT INTO test_tab(id,name) VALUES (1,‘test‘);

    看到已经insert成功!

    技术分享
  5.  

    在重复的执行一次:

    INSERT INTO test_tab(id,name) VALUES (1,‘test‘);

    这个时候就有error了:

    ORA-00001: unique constraint (SCOTT.PK_TEST_TAB) violated

    技术分享
  6.  

    好了表的主键就这样设置成功了!

     

    create table语句中如何设置主键-CSDN论坛 http://bbs.csdn.net/topics/90208943

     

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

标签:建立   必修课   oracle   log   包括   sdn   而且   取消   .com   

人气教程排行