• SQL基础(2)-约束


    1. 添加主键约束

     a.创建表时添加主键(默认系统命名主键)

      create table pt_ticket_info(

        id varchar2(50) primary key not null,  --此处的not null可以省略

        ticket_no varchar2(50)

      );

     b.创建表时添加主键(指定主键命名)

      create table pt_ticket_info2(

        id varchar2(50),

        ticket_no varchar2(50),

        constraint pk_ticket primary key(id)

      );

     c.创建表后添加主键

      create table pk_ticket_info3(

        id varchar2(50),

        ticket_no varchar2(50)  

      );

      alter table pk_ticket_info3 add constraint pk_ticket3 primary key(id);

    2.添加外键

     a.创建表时添加

      create table smi_client_info(

        id varchar2(30) primary key,

        client_no varchar2(50),

        client_name varchar2(100),

        age varchar(1)

      );

      create table smi_ticket_info(

        id varchar2(30) primary key,

        ticket_no varchar2(50),

        client_no varchar2(50),

        constraint fk_client_no foreign key(client_no) references smi_client_info(client_no)

      )

     b.创建表后添加

      alter table smi_ticket_info add constraint fk_client_no froeign key(client_no) references smi_client_info(client_no);

    3.非空约束(只可以在创建表或修改列时在列上直接添加)

      --a.创建表时

      create table pnn_test(

        id varchar2(30) primary key,

        name varchar2(50) not null,

        sex varchar(1)

      );

      --b.添加或修改列时

      alter table pnn_test add (age height(3,2) not null);

      alter table pnn_test modify(sex varchar2(1) not null);

    4.唯一约束

      1)有唯一性约束的列上允许空值;

      2)唯一约束可以建立在一列上,也可以建立多个(最多32个)字段上;

      3)若唯一约束由多列组成,则其中的部分列可以包含空值;

      4)Oracle不允许在相同的列上既创建主键又创建唯一性约束;

      5)Oracle自动为建立唯一性约束的字段创建索引。

      --a.创建表时

      create table unk_test(

        id varchar2(30) primary key,

        name varchar2(50) unique,

        alias_name varchar2(50),

        idno varchar2(20),

        sex varchar(1)

      );

      --b.添加或修改列时

      alter table unk_test add (stu_no varchar2(20) unique);

        --已下语句无法删除stu_no列上的唯一性约束

        --alter table unk_test modify (stu_no varchar2(20));

      -- 为已有列添加唯一性约束

      alter table unk_test add (account varchar2(50) );

      alter table unk_test modify (account varchar2(50)  unique);

      --c.修改表

      alter table unk_test add constraint uk_idno unique(idno);

      --d.联合字段的唯一性约束

      create table unk_union_test(

        id varchar2(50) primary key,

        name varchar2(50),

        age number(3,2),

        idno varchar2(30),

        stu_no varchar2(30),

        account varchar2(30),

        constraint unuq_name_idno unique(name, idno)

      );

      alter table unk_union_test add constraint unuq_stuno_account unique(stu_no, account);

      注:同一个列上可以同时创建单一字段的唯一性约束和联合字段的唯一性约束。

    5.查询约束

      select uc.constraint_name from user_constraint uc where uc.table_name ='unk_test';

    6.禁用启用约束

       alter table unk_test disable constraint sys_c0011232;

        alter table unk_test enable constraint sys_c0011232;

    7.删除约束

      alter table unk_test drop constraint sys_c0011232;

  • 相关阅读:
    puppeteer 离线安装chromium
    如何在Taro项目中使用Iconfont(阿里图标)
    POI3.8内存中限制行数为100问题记录
    centos下puppeteer调用chromium报错,缺少包
    VS Code 简单配置运行Java
    使用VSCode 断点调试 js项目,html页面
    Java--Excel--poi 边框、单元格换行、 背景色、合并单元格相关
    浅析Spring Aware
    Spring MVC 注解
    异常处理
  • 原文地址:https://www.cnblogs.com/techroad4ca/p/4973063.html
Copyright © 2020-2023  润新知