您的位置:首页 > 数据库 > Oracle

Oracle 约束 (非空约束、默认值约束、唯一约束 & 主键约束的添加/联合和注意事项)

2020-01-12 23:12 1851 查看

约束

文章目录

  • 4.主键约束(primary key)
  • 5.外键约束
  • 6.check 约束 (了解)
  • 1.非空约束(not null)

    非空约束 限定某个字段不能为null

    create table testNull(
    id number(3),
    name varchar2(20) not null
    );

    2.默认值的约束(default)

    如果字段没有给值给默认值

    default + "默认值"

    create table  testDefaul(
    id number(10) not null,
    name varchar2(20) default '老宋',
    age  number(2) default 18
    );

    3.唯一约束(unique)

    保证某个字段的具体值是唯一的

    create table testUnique(
    id number(5) unique,
    name varchar2(20)
    );

    3.1注意事项

    • 唯一性可以为
      null
      ,2个都为
      null
      不算违背了唯一性原则一般使用
      unique
      要加
      not null
      约束
    • 一个字段可以添加多个约束
      unique not null

    4.主键约束(primary key)

    主键类型 unique + not null

    语法: 字段primary key;

    create table testPrimary(
    id number(3) primary key,
    name varchar2(20)
    );

    4.1添加主键

    1. 代码设置
    alter table 表名 add constraint 标识符 primary key(字段名称);
    1. 使用视图工具

    4.2联合主键

    多个字段联合其来成为主键

    4.3注意事项

    • 主键唯一性,一张表只能有一个主键
    • 一张表可以有多个
      unique not null

    5.外键约束

    外键: 把2张表进行关联 , 从表中重复出现,在主表中作为主键存在

    --主表:  一方
    create table t_class(
    cid number(3) primary key,
    cname varchar2(20)
    );
    
    --从表:  多方
    create table t_stu(
    tid number(3) primary key,
    sname varchar2(20),
    -- 添加 主表的pk 字段
    cid number(3),
    -- 设置 外键 (从表和 主表进行关联)
    constraint fk_stu_class foreign key (cid) references t_class(cid)
    );
    
    fk_stu_class --外键的标识符  外键取名
    foreign key  --定义外键
    references   --关联那个表的那个字段
    
    --创建表以后 如果设置外键(命令)
    -- 创建表完成后添加外键
    alter table t_stu add constraint fk_stu_class foreign key(classId) references t_class(cid);

    5.1注意事项:

    1. 外键可以在从表中重复出现 ,他在主表中是主键

    2. 一张表可以有多个外键

    3. 外键可以为

      null

    4. 外键的作用是关联多表,可以建立表之间的关系 (一对一 一对多 多对多)

    5. 删除主表时候如果从表有使用主表的数据是不能删除的,从表的数据可以直接删除

    6. 2表关联了先删除从表再删除主表

    7. 外键是多表查询时必要条件

    8. 开发过程中建议是逻辑外键 (有逻辑关系不用设置外键关联)

    6.check 约束 (了解)

    check: 保证我们的字段按照一定的格式在指定的范围内存储

    create table t_person(
    sname varchar2(20),
    sage number(3) check(sage > 20)		--规定age > 20
    sage number(3) check(sage between  20 and 30)		--规定age 在 20 - 30 之间
    sage number(3) check(sage in(18,19,20)) 		--规定age 必须在 18,19,20
    );
    • 点赞
    • 收藏
    • 分享
    • 文章举报
    大鱼吃狗 发布了51 篇原创文章 · 获赞 14 · 访问量 1388 私信 关注
    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: