Oracle二维表的创建与约束以及修改

创建表

  create table 表名(

    属性名  数据类型  行约束条件,

    属性名  数据类型  行约束条件,

    ……

    表级约束条件

  )

字符串  char    使用指定长度的固定长度表示的字符串,位数不足的字符串在其后补空字符;

字符串  varchar  存放固定长度的字符串

字符串  varchar2  长度可变的字符串,动态分配内存空间(Oracle所特有的数据类型)

数字   number  number(6,3)数据长度为6,其中3位为小数

日期   date

约束语句:

  主键约束:非空唯一

    列级约束  在所声明的字段名后添加primary key,

    表级约束  constraint pk_表名_列名 primary key(字段名);pk_表名_字段名为约束名,可以省略

    表已经创建:alter table 表名add constraint pk_表名_字段名 primary key(字段名);

    删除约束  alter table 表名 drop constraint pk_表名_字段名;

  非空约束:

    列级约束  在所声明的字段名后添加not null,

    表级约束  constraint ck_表名_字段名 check(字段名 is not null)

    表已经创建    alter table 表名add constraint ck_表名_字段名 check(字段名 is not null)

    删除约束  alter table 表名 drop constraint ck_表名_字段名;

  检查约束

    列级约束  在所声明的字段名后添加check(检查条件)  如:check(age>0&&age<100)

    表级约束  constraint ck_表名_字段名 check(检查条件)

    表已经创建    alter table 表名add constraint ck_表名_字段名 check(检查条件)

    删除约束  alter table 表名 drop constraint ck_表名_字段名;

   唯一约束

    列级约束  在所声明的字段名后面直接添加unique

    表级约束  constraint un_表名_字段名 unique(字段名)

    表已经创建    alter table 表名add constraint un_表名_字段名 unique(字段名)

    删除约束  alter table 表名 drop constraint un_表名_字段名

  外键约束

    列级约束  在所声明的字段名后添加references 父表名(列名)

    表级约束  constraint fk_表名_字段名 foreign key(字段名) references 父表名(字段名)

    表已经创建    alter table 表名add constraint fk_表名_字段名 foreign key(字段名) references 父表名(字段名)

    删除约束  alter table 表名 drop constraint fk_表名_字段名;

  外键的缺点:被引用的表不能直接删除内部数据(被引用的)

    解决方法一、先解除关联,再删除

    解决方法二、加关键字 on delete

      on delete cascade 级联父表数据被删除时,与对应字表中数据与删除

      on delete set null 级联父表数据被删除时,与对应字表中数据中的外键值置为null(外键不能添加非空约束)

二维表表的修改

  添加新的字段:alter table 表名 add 字段名 数据类型类型 ;

  修改字段类型:alter table 表名 modify 字段名 新数据类型;

  修改字段名 :alter table 表名 rename column 字段名 to 新字段名;

  删除字段  :alter table 表名 drop column 字段名;

  删除表   :drop table 表名;

  修改表名  :rename 表名 to 新表名;

  查看表结构 :desc 表名;

  

 

posted @ 2019-09-12 00:32  七月流星丶  阅读(255)  评论(0编辑  收藏  举报