码迷,mamicode.com
首页 > 数据库 > 详细

MySQL 数据约束

时间:2018-07-11 12:27:41      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:ons   业务   包含   varchar   not   let   字段   sel   不能   

非空约束
CREATE TABLE USER(
    uid INT NOT NULL,-- 非空约束
    uname VARCHAR(10),
    address VARCHAR(30) DEFAULT 山东省 -- 默认值
)
唯一约束
CREATE TABLE USER(
    uid INT UNIQUE,-- 唯一约束
    uname VARCHAR(10),
    address VARCHAR(30) DEFAULT 山东省 -- 默认值
)
-- 主键约束
-- 注意:
-- 1)通常情况下,每张表都会设置一个主键字段。用于标记表中的每条记录的唯一性。
-- 2)建议不要选择表的包含业务含义的字段作为主键,建议给每张表独立设计一个非业务含义的id字段。
CREATE TABLE USER(
    uid INT PRIMARY KEY,-- 主键约束  非空+唯一
    uname VARCHAR(10),
    address VARCHAR(30) DEFAULT 山东省 -- 默认值
)
INSERT INTO USER( uid,uname) VALUES(张三);
自增长约束
CREATE TABLE USER(
    uid INT PRIMARY KEY AUTO_INCREMENT,-- 自增长约束必须是主键
    uname VARCHAR(10),
    address VARCHAR(30) DEFAULT 山东省 -- 默认值
)
INSERT INTO USER(uname) VALUES(张三);
零填充
CREATE TABLE USER(
    uid INT(5) ZEROFILL PRIMARY KEY AUTO_INCREMENT,-- 自增长约束必须是主键,零填充
    uname VARCHAR(10),
    address VARCHAR(30) DEFAULT 山东省 -- 默认值
)
INSERT INTO USER(uname) VALUES(张三);
-- delete from 清空表不能删除约束
-- tauncate table 清空表能删除约束

外键
CREATE TABLE dept(
    deptid INT PRIMARY KEY AUTO_INCREMENT,
    deptname VARCHAR(10)
)
SELECT * FROM dept;
SELECT * FROM emp;
INSERT INTO dept(deptname) VALUES(软件开发部);
INSERT INTO dept(deptname) VALUES(软件测试部);
CREATE TABLE emp(
    eid INT PRIMARY KEY AUTO_INCREMENT,
    ename VARCHAR(5),
    deptid INT,
    CONSTRAINT emp_dept_fk FOREIGN KEY(deptid) REFERENCES dept(deptid)
)
INSERT INTO emp(ename,deptid) VALUES(张三,1);

1)被约束的表称为副表,约束别人的表称为主表,外键设置在副表上的!!!

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

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

4)修改数据: 先修改副表,再修改主表

5)删除数据: 先删除副表,再删除主表

MySQL 数据约束

标签:ons   业务   包含   varchar   not   let   字段   sel   不能   

原文地址:https://www.cnblogs.com/-dashu/p/9293306.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!