zoukankan      html  css  js  c++  java
  • SQL基础03约束

    1 约束条件 constraint

    1.1 主键(Primary key,简称 PK)


     1) 主键约束(primary key) = 不能重复 (uk)+ 不能为null(nn)
     2) 主键约束可以用两种方式定义:列级约束和表级约束

    注意:建议约束命名规则: 表名_列名_约束条件类型
    因为当插入重复编码时,将提示出错的约束条件名称

    1.1.1 列级约束
    例子:主键约束
    create table dept_xxx1(
     deptno number(2) dept_xxx2_deptno_pk primary key,
     dname varchar2(20),
     location varchar2(40)
    );


    1.1.2 表级约束( 可以定义联合主键)
    例子:主键约束
    create table dept_xxx2(
     deptno number(2),
     dname varchar2(20),
     location varchar2(40),
     constraint dept_xxx2_deptno_pk primary key(deptno)
    );

    例子:联合主键
    create table test(
    c1 number(4),
    c2 number(2),
     constraint test_c1_c2_pk primary key(c1,c2)
    );

    1.2 非空约束(not null,简称NN)
    注意:非空约束只能定义在列级
    例子:
    create table test(
     id number(4) not null
    );

    例子:给非空约束命名
    create table test(
     id number(4) constraint test_in_nn not null;
    );


    1.3唯一约束(Unique,简称UK)
    unique特点:
    唯一,可以为空,一张表可以多个UK约束
    1.3.1 列级约束
    create table test(
     id number(4) unique;
    );
    1.3.2 表级约束
    create table test(
     id number(4),
     constraint test_id_uk unique(id)
    );

    1.4检查约束(Check,简称CK)
    检查约束
    check(条件)

    例子:
    create table text(
     age number(2) check(age>10),
     gender char(1) check(gander in('F','M'))
    );


    因为约束条件建立在列级时可读性不好,而且不方便定义约束条件名字,一般建议定义在表级.

    例子:定义在表级
    create table text(
     age number(2),
     gander char(c),
     constraint text_age_ck
      check(age > 10),
     constraint text_gander_ck
      check(gander in('F','M','f','m'))
    );

    1.5 外键(Foreign key,简称FK)


    例子:
    create table test(
      id number(3),
     constraint test_id_fk
      foreign key (id) references test2(id)
    );
    test2代表另一张表

    1.6 on delete set null

    作用:一旦主表数据删除,从表关联的数据设置为NULL


    create table test(
      id number(3),
     constraint test_id_fk
      foreign key (id) references test2(id) on delete set null
    );


    1.7 on delete cascade

    作用:一旦主表数据删除,从表关联的数据也删除
    create table test(
      id number(3),
     constraint test_id_fk
      foreign key (id) references test2(id) on delete cascade
    );

  • 相关阅读:
    自定义类型
    基本类型
    个人的职业规划
    FastDFS .Net客户端使用指南
    Delphi中资源的简单应用
    GridView数据绑定
    GridView的分页功能
    硬盘最多能分几个区?
    C#中public、private、protected、internal、protected internal
    2007.10.09错误记录
  • 原文地址:https://www.cnblogs.com/hqr9313/p/2502692.html
Copyright © 2011-2022 走看看