MySQL(11)---约束
2019-05-20 23:49
1716 查看
MySQL(11)---约束
含义: 一种限制,用于限制表中的数据,为了保证表中的数据的准确和可靠性。
先把Mysql几种约束列出来:
主键约束
外键约束
唯一性约束
非空约束
默认值约束
自增约束
MySQL不支持check约束,但可以使用check约束,而没有任何效果。
一、语法
不多说理论,说下语法和示例就好。
1、建表时直接建约束
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='学生表';
2、查看约束
这里命令是查看索引的命令,因为建立主键约束会自动的建立主键索引。
同样建立唯一约束也会自动建立唯一索引。
-- 这里只能看到主键约束,唯一约束。 SHOW INDEX FROM 表名;
3、单独建约束
上面的约束是建表时候建的,下面是在表建好后独立添加。
-- 1.添加非空约束 ALTER TABLE student MODIFY COLUMN id INT auto_increment; -- 2.添加默认约束 ALTER TABLE 表名 MODIFY COLUMN 字段名 INT DEFAULT 16; -- 3、主键约束 ALTER TABLE 表名 ADD PRIMARY KEY(字段名); -- 4、唯一约束 ALTER TABLE 表名 ADD UNIQUE(字段名); #字段名可以多个,多个用逗号隔开 -- 5、主键自增 # 注意自增一张表只有一个,同时只能在主键上 ALTER TABLE 表名 MODIFY COLUMN 字段名 INT auto_increment;
4、删除约束
-- 1、删除非空约束 ALTER TABLE 表名 MODIFY COLUMN 字段名 VARCHAR(20) NULL; -- 2、删除主键 -- 这里需要注意如果主键设置为自增的情况下是不能删除成功的,因为自增只能设置在主键上,你删主键自增还存在当然不行。 ALTER TABLE 表名 DROP PRIMARY KEY; -- 3、删除唯一 ALTER TABLE 表名 DROP INDEX 字段名;
这应该是我最短的博客了,哈哈
只要自己变优秀了,其他的事情才会跟着好起来(少将12)
相关文章推荐
- 11、MySQL-非空约束(NOT NULL)
- mysql 完整性约束条件
- MySQL学习笔记(四)修改数据表约束
- MYSql对外键约束及字段的一些操作
- 如何在MySQL中设置外键约束以及外键的作用
- mysql字段约束
- MySQL外键约束常见操作方法示例【查看、添加、修改、删除】
- mysql之 [ERROR] InnoDB: Unable to lock ./ibdata1, error: 11
- MySQL----int(M)讲解 (int(3)与int(11)的区别)
- MySql InnoDB 外键约束动作说明
- linux下安装mysql(server和client) 分类: Ubuntu学习笔记 2015-07-25 13:04 11人阅读 评论(0) 收藏
- MySQL 约束
- 数据库MYSQL学习总结11—MODIFY和CHANGE关键字的使用
- (转)MySQL 查看约束,添加约束,删除约束 添加列,修改列,删除列(2011-10-27 13:38:48)
- 11 MySQL--Navicat与pymysql模块
- Mysql 数据类型、约束类型
- MySql中外键约束
- MySQL中对三种约束的支持
- Mysql外键约束
- MySQL——6.约束