zoukankan      html  css  js  c++  java
  • MySQL数据库约束

    一丶默认值(当用户对使用默认值的字段不插入值的时候,就使用默认值。建表时就可创建,可删改)

    CREATE TABLE suser(
    uid INT,
    uname VARCHAR(10),
    address VARCHAR(30) DEFAULT '山东淄博'
    );

    二丶非空(限制字段必须赋值,设定的非空字段不能赋值null)

    CREATE TABLE suser(
    uid INT,
    uname VARCHAR(10),
    idcard VARCHAR(20) NOT NULL,
    address VARCHAR(30) DEFAULT '山东淄博'
    );

    三丶唯一(对字段的值不能重复,唯一字段可以插入null  唯一字段可以插入多个null    )                      

    CREATE TABLE suser(
    uid INT,
    uname VARCHAR(10) UNIQUE,
    idcard VARCHAR(20) NOT NULL,
    address VARCHAR(30) DEFAULT '山东淄博'
    );

     

    四丶主键(非空+唯一)

    CREATE TABLE suser(
    uid INT PRIMARY KEY,
    uname VARCHAR(10) UNIQUE,
    idcard VARCHAR(20) NOT NULL,
    address VARCHAR(30) DEFAULT '山东淄博'
    );

     

     

    五丶外键

    (约束两种表的数据

    解决数据冗余高问题:独立出一张表

    )

     

    -- 部门表(主表)

    CREATE TABLE dept(

             id INT PRIMARY KEY,

             deptName VARCHAR(20)

    )

     

    -- 修改员工表(副表/从表)

    CREATE TABLE employee(

             id INT PRIMARY KEY,

             empName VARCHAR(20),

             deptId INT,-- 把部门名称改为部门ID

             -- 声明一个外键约束

             CONSTRAINT emlyee_dept_fk FOREIGN KEY(deptId) REFERENCES dept(id)

             --                       外键名称                          外键                              参考表(参考字段)

    )

    重点:

    -- 1)当有了外键约束,添加数据的顺序: 先添加主表,再添加副表数据

    -- 2)当有了外键约束,修改数据的顺序: 先修改副表,再修改主表数据

    -- 3)当有了外键约束,删除数据的顺序: 先删除副表,再删除主表数据

     

     

     

    对字段的值不能重复

  • 相关阅读:
    C#读写XML no
    ComboBox、ListBox绑定和获取数据 no
    win7 安装oracle 11g no
    2011没有惊天动地 no
    Oracle 删除重复数据只留一条 no
    Oracle 创建用户并分配权限 no
    Oracle 导出、导入某用户所有数据(包括表、视图、存储过程...) no
    谢谢,博客园这么快就审批通过了我的申请!
    Eclipse 中 JAVA AWT相关包不提示问题(解决)
    Eclipse java项目转Maven项目
  • 原文地址:https://www.cnblogs.com/0826sw/p/12014805.html
Copyright © 2011-2022 走看看