MySQL(11)---约束
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)
MySQL(11)---约束的更多相关文章
- MySQL学习——约束
MySQL学习——约束 摘要:本文主要学习了数据库的约束. primary key(主键) 定义 主键约束是一个列或者多个列,其值能唯一地标识表中的每一行.这样的一列或多列称为表的主键,通过它可以强制 ...
- MySql -- check 约束
6.CHECK 约束:用于限制列中的值的范围 在一些情况下,我们需要字段在指定范围的输入,例如:性别只能输入 '男'或者'女',余额只能大于0等条件,我们除了在程序上控制以外,我们还能使用 CHECK ...
- mysql 5.7 的安装配置与 navicat premium for mysql 11 的破解使用
再安装mysql5.7 或以上的版本出现了一些问题,现在总结下,希望能给初入学习mysql的人一下帮助,大牛就不要来嘲笑小弟我了 首先准备如下: 1.下载mysql 5.7,下载地址:https:// ...
- MYSQL中约束及修改数据表
MYSQL中约束及修改数据表 28:约束约束保证数据的完整性和一致性约束分为表级约束和列级约束约束类型包括: NOT NULL(非空约束) PRIMARY KEY(主键约束) UNI ...
- 【MySQL】MySQL的约束
在开始之前,笔者介绍一下笔者使用的数据库版本为5.7.所有的关系型数据库都支持对数据表使用约束,通过约束可以更好的保证数据表里数据的完整性.约束是在表上强制执行的数据校验,约束主要用于保证数据库里数据 ...
- mysql的约束
SQL 约束 约束用于限制加入表的数据的类型. 可以在创建表时规定约束(通过 CREATE TABLE 语句),或者在表创建之后也可以(通过 ALTER TABLE 语句). (1)NOT NULL约 ...
- [转]mysql的约束
转自:http://blog.csdn.net/kqygww/article/details/8882990 MySQL中约束保存在information_schema数据库的table_constr ...
- MYSQL数据库约束类型
07.14自我总结 MYSQL数据库约束类型 一.主键约束(primary key) 主键约束要求主键列的数据唯一,并且不能为空.主键分为两种类型:单字段主键和多字段联合主键. 1.单字段主键 写法 ...
- Mysql五大约束
Mysql五大约束 约束:对表中数据的限制.保证表中数据的准确和可靠 (1)NOT NULL:非空,用于保证该字段的值不能为空 (2)DEFAULT:默认,用于保证该字段有默认值(3)PRIMARY ...
- mysql DEFAULT约束 语法
mysql DEFAULT约束 语法 作用:用于向列中插入默认值. 说明:如果没有规定其他的值,那么会将默认值添加到所有的新记录.直线电机 mysql DEFAULT约束 示例 //在 "P ...
随机推荐
- 【Springboot】spring-boot-starter-redis包报错 :unknown
springboot集成redis时,引入spring-boot-starter-redis包报错,maven找不到这个资源.如下图: 我的项目中,spring boot是 用的2.0.4版本.spr ...
- Docker-Nginx,发布前端服务
1.安装环境: yum install -y yum-utils \ device-mapper-persistent-data \ lvm2 yum-config-manager \ --add-r ...
- go语言之用户输入&类型别名&类型转换
1.用户输入 package main import "fmt" func main() { //用户输入,程序接受并输出 var v1 int //fmt.Println(&qu ...
- 基于 Storyboard 多种方式的页面跳转、参数传递
原文 通过按钮关联跳转 选中 Button ,然后点击 action 右边拖拽到 第二个页面 选择 "Show"即可完成跳转关联. 定义页面间 segue Id,通过代码触发跳转 ...
- 团队展示&选题
团队展示 1.队名:螺旋升天队 2.队员学号: 李光证 3117004660 (队长) 卢俊杰 3117004662 吴子昊 3117004671 陈浩民 3117004646 陈俊铭 3117004 ...
- 039.[转] 基于 Kubernetes 和 Spring Cloud 的微服务化实践
http://dockone.io/article/2967 基于 Kubernetes 和 Spring Cloud 的微服务化实践 写在前面 网易云容器平台期望能给实施了微服务架构的团队提供完整的 ...
- [20191101]通过zsh计算sql语句的sql_id.txt
[20191101]通过zsh计算sql语句的sql_id.txt 1.简单介绍以及测试使用zsh遇到的问题:--//前段时间写的,链接http://blog.itpub.net/267265/vie ...
- python Djanjo csrf说明与配置
Django csrf CSRF 全称(Cross Site Request Forgery)跨站请求伪造.也被称为One Click Attack和Session Riding,通常缩写为CSR ...
- bay——安装_Oracle 12C-单实例-Centos7 -DG.txt
用户和密码: root/bayaimbayaim/064286BAIbayoracle/oracleSID:orclsys/oraclesystem/oraclempay/mpaydx/dx ---- ...
- TICK技术栈(四)Grafana安装及使用
1.什么是Grafana? Grafana是一款采用go语言和Angular框架编写的开源的可视化工具,主要用于大规模指标数据的可视化展示,提供包括折线图,饼图,仪表盘等多种监控数据可视化UI,是网络 ...