MySQL(11)---約束

MySQL(11)---約束

含義: 一種限制,用於限制表中的數據,爲了保證表中的數據的準確和可靠性。mysql

先把Mysql幾種約束列出來:sql

主鍵約束 外鍵約束 惟一性約束 非空約束 默認值約束 自增約束code

MySQL不支持check約束,但可使用check約束,而沒有任何效果。索引

1、語法

很少說理論,說下語法和示例就好。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)
相關文章
相關標籤/搜索