mysql数据库的数据约束

Posted 帅涛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql数据库的数据约束相关的知识,希望对你有一定的参考价值。

/*数据约束*/    
CREATE TABLE user01 (
    uid INT NOT NULL,/*非空约束*/   PRIMARY KEY  /*主键约束*/  AUTO_INCREMENT /*自增长*/
    uname VARCHAR(10) UNIQUE,/*唯一约束*/
    address VARCHAR(20) DEFAULT‘张店‘/*默认值约束*/
);            
INSERT INTO user01 VALUES(1,‘小红帽‘,‘博山‘);
INSERT INTO user01(uname) VALUES(‘大灰狼‘);
SELECT * FROM user01;
DROP TABLE user01;

/*外键约束*/
CREATE TABLE emp1(    /*副表*/
    eid INT PRIMARY KEY AUTO_INCREMENT,
    ename VARCHAR(10),
    deptid INT,
    CONSTRAINT emp1_dept_fk FOREIGN KEY(deptid) REFERENCES dept(id)/*添加外键约束*/
);
INSERT INTO emp1(ename,deptid) VALUES(‘张三‘,5);
INSERT INTO emp1(ename,deptid) VALUES(‘李四‘,4);
INSERT INTO emp1(ename,deptid) VALUES(‘王五‘,3);
INSERT INTO emp1(ename,deptid) VALUES(‘张五‘,2);
SELECT * FROM emp1;
DROP TABLE emp1;
CREATE TABLE dept(    /*主表*/
    id INT PRIMARY KEY AUTO_INCREMENT,
    dname VARCHAR(15)
);
INSERT INTO dept(dname) VALUES(‘研发部‘);
INSERT INTO dept(dname) VALUES(‘产品部‘);
INSERT INTO dept(dname) VALUES(‘销售部‘);
SELECT * FROM dept;
DROP TABLE dept;
/*修改数据(先改副表再改主表)*/
UPDATE emp SET deptid=1 WHERE eid=2;
UPDATE dept SET id=5 WHERE id=2;
/*删除数据(先删副表再删主表)*/
DELETE FROM emp WHERE eid=1;
DELETE FROM dept WHERE id=3;

/*两种全表删除的区别*/
CREATE TABLE test(
    id INT PRIMARY KEY AUTO_INCREMENT,
    tname VARCHAR(10)
);
INSERT INTO test(tname) VALUES(‘小红‘);
INSERT INTO test(tname) VALUES(‘小蓝‘);
INSERT INTO test(tname) VALUES(‘小绿‘);
SELECT * FROM test;
DELETE FROM test; /*不会删除约束*/
TRUNCATE TABLE test;/*会删除约束*/
DROP TABLE test;
/*先建表后添加外键约束*/
CREATE TABLE test(
    id INT PRIMARY KEY AUTO_INCREMENT,
    tname VARCHAR(10),
    empid INT
);
ALTER TABLE test
ADD CONSTRAINT test_emp1_fk FOREIGN KEY(empid)
REFERENCES emp1(eid);





























































以上是关于mysql数据库的数据约束的主要内容,如果未能解决你的问题,请参考以下文章

mysql唯一约束

mysql数据库 check约束无效

Mysql六大约束

[转]mysql的约束

MySQL的约束

MySQL 之约束数据库设计