含義
: 一種限制,用於限制表中的數據,爲了保證表中的數據的準確和可靠性。mysql
先把Mysql幾種約束列出來:sql
主鍵約束
外鍵約束
惟一性約束
非空約束
默認值約束
自增約束
code
MySQL不支持check約束,但可使用check約束,而沒有任何效果。索引
很少說理論,說下語法和示例就好。rem
drop table student; CREATE TABLE student( id INT PRIMARY KEY auto_increment,#主鍵 自增 name VARCHAR(20) NOT NULL UNIQUE,#非空 惟一 xh INT UNIQUE,#惟一 age INT DEFAULT 18 #默認約束 )ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='學生表'; -- 上面和下面是同樣的,只不過是另外一種寫法 drop table student; CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL, `xh` int(11) DEFAULT NULL, `age` int(11) DEFAULT '18', PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`), UNIQUE KEY `xh` (`xh`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='學生表';
這裏命令是查看索引的命令,由於創建主鍵約束會自動的創建主鍵索引。博客
一樣創建惟一約束也會自動創建惟一索引。table
-- 這裏只能看到主鍵約束,惟一約束。 SHOW INDEX FROM 表名;
上面的約束是建表時候建的,下面是在表建好後獨立添加。class
-- 1.添加非空約束 ALTER TABLE student MODIFY COLUMN id INT auto_increment; -- 2.添加默認約束 ALTER TABLE 表名 MODIFY COLUMN 字段名 INT DEFAULT 16; -- 三、主鍵約束 ALTER TABLE 表名 ADD PRIMARY KEY(字段名); -- 四、惟一約束 ALTER TABLE 表名 ADD UNIQUE(字段名); #字段名能夠多個,多個用逗號隔開 -- 五、主鍵自增 # 注意自增一張表只有一個,同時只能在主鍵上 ALTER TABLE 表名 MODIFY COLUMN 字段名 INT auto_increment;
-- 一、刪除非空約束 ALTER TABLE 表名 MODIFY COLUMN 字段名 VARCHAR(20) NULL; -- 二、刪除主鍵 -- 這裏須要注意若是主鍵設置爲自增的狀況下是不能刪除成功的,由於自增只能設置在主鍵上,你刪主鍵自增還存在固然不行。 ALTER TABLE 表名 DROP PRIMARY KEY; -- 三、刪除惟一 ALTER TABLE 表名 DROP INDEX 字段名;
這應該是我最短的博客了,哈哈語法
只要本身變優秀了,其餘的事情纔會跟着好起來(少將12)