zoukankan      html  css  js  c++  java
  • mysql 之 数据约束

    什么是数据约束 ?

    对用户操作表的数据进行约束

    默认值

    作用:当用户对使用默认值的字段不插入值时 ,就使用默认值

    注意:对默认值字段插入null是可以的

       对默认值字段也可以插入非 null

    非空

    作用:限制字段必须赋值

    注意  非空字段必须赋值

        非空字段不能为赋NULL

    唯一

    作用 :对字段的值不能重复

    注意:

        唯一字段可以插入NULL

        唯一字段可以插入多个NULL

    主键(非空+唯一)

    注意: 通常情况下,每张表都会设置一个主键字段。用于标记表中每条记录的唯一性。

       建议不要选择表的包含业务含义的字段作为主键,建议给每张表设计一个非业务含义的ID字段

    自增长:

    作用:自动递增

    CREATE TABLE student(

    id INT(4) ZEROFILL PRIMARY KEY AUTO_INCREMENT, -- 自增长,从0开始  ZEROFILL 零填充

    NAME VARCHAR(20)

    )

    自增长字段可以不赋值自动递增

    select * from Student;//

    delete from student;//--不影响自增长约束

    trancate table student ;//可以影响自增长约束

    外键

    作用:约束两种表的数据

    出现两种表的情况

      节约数据沉余高的问题:独立出一张表 

    例如:员工表和部门表

    问题出现:在插入员工表数据时,员工表的部门id可以随便插入!!!!!!!!

    使用外键约束:约束插入员工表的部门id字段值

    解决办法:在员工表的部门id 字段添加一个外键约束

    部门表(主表)

    create table dept(

    id int  primary key,

    deptName varchar(20));

    员工表(从表)

    create table employee(

    id int primary key,

    empName varchar(20),

    deptid int --把部门名称改为部门ID

    --声明一个外键约束

    constraint emplyee_dept_fk外键名称 foreing key(deptid)外键reference dept(id) 参考表,参考字段 

    )

    注意1  被约束的表称为副表、约束别人的表称为主表,外键设置在副表上

      主表的参考字段通用为主键!

        添加数据:先添加主表,再添加副表

    ·    修改数据: 先修改副表,在修改主表 

        删除数据:先删除副表,在删除主表

  • 相关阅读:
    android自己定义控件系列教程----视图
    Android怎样监听蓝牙耳机的按键事件
    Putty SSH简单使用
    Linux配置无线网卡驱动实现无线上网
    Oracle在中文环境下出现乱码解决办法
    百度云盘破解限速|个人值得拥有
    Ubuntu安装出现左上角光标一直闪解决方式
    ubuntu-16.4TLS安装QQ
    2015毕业找工作纪实|一年的蜕变毕业生
    安装rpm包时遇到Header V3 DSA signature: NOKEY时解决办法
  • 原文地址:https://www.cnblogs.com/qmk-716/p/9665686.html
Copyright © 2011-2022 走看看