数据库表的约束

14 篇文章 0 订阅
数据库表的约束
  • 概述

    对表中的数据进行限定,保证数据的有效性、完整性和正确性。一个表一旦添加了约束,那么不正确的数据将无法添加进来,所以一般约束在创建表设定字段的时候添加上

  • 主键约束

    • 主键:一般是用来唯一标识数据库表中的某一条记录,不能为空

    • 通常情况下,一般会给表添加一个id字段,用作唯一标识,设置为主键,主键一般是提供给数据库操作使用的(查询,修改,删除等等),主键不能重复,也不能为空。

      比如: 一个人的身份证号、一个人手机号,一个学生的学号,一个员工工号

    • 语法: 使用关键字 primary key

    • 操作:

      -- 查询
      SELECT * FROM user;
      -- 非法数据插入  唯一 不重复
      INSERT INTO user values(7,'0008','123123','小花','12312312313','女',19);
      
      -- 非法数据插入   null值插入  非空
      INSERT INTO user values(null,'0008','123123','小花','12312312313','女',19);
      -- 删除主键  sql语句
      alter table user drop PRIMARY key;
      -- 添加主键
      alter table user add PRIMARY KEY(id);
      
    • 主键自增

      如果希望在添加表记录时,不设定表中主键值,系统会自动给主键添加自增值

      • 语法: auto_increment 表示自动自增
      -- 非法数据插入   null值插入
      INSERT INTO user values(null,'0010','123123','小周','12312312313','男',25);
      
      • 修改自增的起始值为100

        alter table user auto_increment = 起始值;

  • 唯一约束

    • 概念:字段值唯一,不允许重复

    • 关键字: unique

    • 语法: 字段名 字段数据类型 unique

    • 操作:

      -- 插入数据
      insert into role values(null,'CEO');
      insert into role values(null,'manager');
      insert into role values(null,'CTO');
      -- 查询角色表
      SELECT * from role;
      insert into role values(null,null);
      

      ​ 备注:如果插入是null,表明是没有数据,不存在数据重复问题,可以重复插入。

  • 非空约束

    • 概念:记录中的某个字段不能为null

    • 语法: 字段名 字段数据类型 not null

      -- 创建一张部门表
      create table department (
          id int PRIMARY KEY auto_increment, -- id 主键自增
          departmentname VARCHAR(10) not null -- 部门不能为空
         
      )  
      
      insert into department values(null,'总裁办');
      insert into department values(null,'财务部');
      insert into department values(null,'人事部');
      insert into department values(null,'研发部');
      insert into department values(null,'销售部');
      
      -- 查询该表数据
      SELECT * from department;
      
      insert into department values(null,null);
      
      • 默认值:

        • 概念:当没有给字段赋值,系统会赋上一个指定的默认值

        • 语法: 字段名 字段数据类型 default 默认值

        • 操作:

          -- 创建一张表 employee 员工表
          create table employee (
              id int PRIMARY key auto_increment,
              username VARCHAR(10) not null,
              gender VARCHAR(1) DEFAULT '男',
              age int 
          )
          insert into employee(id,username,age) values(null,'小孙',20);
          -- 查询员工表
          SELECT * from employee;
          insert into employee(id,username,gender,age) values(null,'小丽','女',20);
          

          备注:

          如果给表中的 某个字段既添加了非空约束又添加了唯一约束,那么该字段是不是主键呢?

          一般情况下,一张表中只能有一个主键。

  • 外键约束

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值