oracle学习笔记——约束

约束的总操作

查看约束的信息

    DESC USER_CONSTRAINTS;

    SELECT CONSTRAINT_NAME FROM USER_CONSTRAINTS WHERE TABLE_NAME='USERINFO_NEW';

                                                                                                                     注:查找时,字段值要大写!

    SELECT CONSTRAINT_NAME,STATUS FROM USER_CONSTRAINTS WHERE TABLE_NAME='USERINFO_NEW';

                                                                                                                                 注:查找时,字段值要大写!

禁用/启用 约束

        ALTER TABLE table_name

        DISABLE|ENABLE CONSTRAINT constraint_name;

删除约束

        ALTER TABLE table_name

        DROP CONSTRAINT constraint_name;

更改约束的名称

        ALTER TABLE table_name
        RENAME CONSTRAINT old_name
        TO new_name;


各类约束的操作

非空约束(约束 无名称)

    创建表时 设置非空约束(只能列级)

        CREATE TABLE table_name(

            column_name datatype NOT NULL,...);

    在修改表时 添加非空约束

        ALTER TABLE table_name

        MODIFY column_name datatype NOT NULL;

    删除非空约束

        ALTER TABLE table_name

        MODIFY column_name datatype NULL;


主键约束(非空,唯一)

    在创建表时 设置主键约束

        方法一(列级)

            CREATE TABLE table_name(

            column_name datatype PRIMARY KEY,...);

        方法二(表级)

            CREATE TABLE table_name

            ( column_name datatype,

                ...,

                CONSTRAINT constraint_name PRIMARY KEY(column_name1,...)   );

    在修改表时 添加主键约束

        ALTER TABLE table_name

        ADD CONSTRAINT constraint_name

        PRIMARY KEY(column_name1,...);

            例:ALTER TABLE USERINFO_NEW

                    ADD CONSTRAINT PK_TEST

                    PRIMARY KEY(ID);

    删除主键约束

        ALTER TABLE table_name

        DROP PRIMARY KEY;


外键约束

    在创建表时 设置外键约束

        方法一(列级)

            CREATE TABLE table1_name(

            column_name datatype REFERENCES table2_name(column_name),...);

            //table2_name是主表,主表的字段必须是主键

        方法二(表级)

            CREATE TABLE table1_name(

            column_name datatype,

            ...,

            CONSTRAINT constraint_name FOREIGN KEY(column1_name)

            REFERENCES table2_name(column2_name)[ON DELETE CASCADE]);

            //table2_name是主表,主表的字段必须是主键

            //ON DELETE CASCADE 级联删除

    在修改表时 添加外键约束

        ALTER TABLE table_name

        ADD CONSTRAINT constraint_name

        FOREIGN KEY(column_name)

        REFERENCES table_name(column_name)[ON DELETE CASCADE];

    删除外键约束

        ALTER TABLE table_name

        DROP CONSTRAINT constraint_name;


唯一约束

    在创建表时 设置唯一约束

        方法一(列级):

            CREATE TABLE table1_name(

            column_name datatype UNIQUE,...);

        方法二(表级):

            CREATE TABLE table1_name(

            column_name datatype,

            ...,

            CONSTRAINT constraint_name UNIQUE(column_name));

    在修改表时 添加唯一约束

        ALTER TABLE table_name

        ADD CONSTRAINT constraint_name

        UNIQUE(column_name);

    删除唯一约束

        ALTER TABLE table_name

        DROP CONSTRAINT constraint_name;


检查约束

    在创建表时 设置检查约束

        方法一(列级):

            CREATE TABLE table_name

            ( column_name datatype CHECK(expressions),...);

        方法二(表级):

            CREATE TABLE table1_name(

            column_name datatype,

            ...,

            CONSTRAINT constraint_name CHECK(expressions) );

    在修改表时 添加检查约束

        ALTER TABLE table_name

        ADD CONSTRAINT constraint_name

        CHECK(expressions);

    删除检查约束

        ALTER TABLE table_name

        DROP CONSTRAINT constraint_name;




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值