oracle怎样修改表名、列名、字段类型、添加表列、删除表列、主键和unique

时间:2022-11-08 07:39:29
RENAME TEST  TO TEST1 --修改表名
ALTER TABLE SCOTT.TEST RENAME COLUMN NAME TO NAME1 --修改表列名
ALTER TABLE SCOTT.TEST MODIFY NAME1 NUMBER(20)
 --修改字段类型

ALTER TABLE SCOTT.TEST ADD ADDRESS VARCHAR2(40) --添加表列

ALTER TABLE SCOTT.TEST DROP NAME CASCADECONSTRAINTS --删除表列


unique唯一

用于指定某列的值不能重复,但是可以null;

Create table user2(id number,namevarchar2(32)unique);

SQL> insert into user2(name)values('xiaohong');

insert intouser2(name) values('xiaohong')

ORA-00001: 违反唯一约束条件(SCOTT.SYS_C005256)

注意:unique可以插入null空值,而且可以插入多行空值。


primary key主键

用于唯一的标示表行的数据,当定义主键约束后,该列不但不能重复而且不能为空。

案例:

Create table user3(id number primarykey,name varchar2(32)unique);

SQL> insert into user3(id) values(1);

insert intouser3(id) values(1)

ORA-00001: 违反唯一约束条件(SCOTT.SYS_C005257)

SQL> insert into user3(id) values(null);

insert intouser3(id) values(null)

ORA-01400: 无法将 NULL 插入("SCOTT"."USER3"."ID")


primary keyunique的区别:

1、一个表可以有多个unique,但是只能有一个主键

2、我们每张表都应该有一个主键。

3unique的值可以为空,但是主键不可以为空。

4、主键的所在列会自动创建索引,但是unique不会自动创建索引。