type
status
date
slug
summary
tags
category
password
icon
收集了 Mysql 日常会用到的相关知识点
SQL 语句合集
DQL
数据查询语言
DML
数据操纵语言
删除表
删除单表的记录
级联删除
修改
修改单表的记录
修改多表的记录
插入
方式一
方式二
DDL
数据定义语言
创建表
修改表
添加列
修改列的类型或约束
修改列名
删除列
修改表名
删除表
复制表的结构
复制表的结构+数据
库管理
创建库
修改库
删除库
常见约束
NOT NULL
:非空,该字段的值必填UNIQUE
:唯一,该字段的值不可重复DEFAULT
:默认,该字段的值不用手动插入有默认值CHECK
:检查,mysql不支持PRIMARY KEY
:主键,该字段的值不可重复并且非空 unique+not nullFOREIGN KEY
:外键,该字段的值引用了另外的表的字段主键和唯一的相同和区别
- 区别:
- 一个表至多有一个主键,但可以有多个唯一
- 主键不允许为空,唯一可以为空
- 相同点:
- 都具有唯一性
- 都支持组合键,但不推荐
外键
- 用于限制两个表的关系,从表的字段值引用了主表的某字段值
- 外键列和主表的被引用列要求类型一致,意义一样,名称无要求
- 主表的被引用列要求是一个key(一般就是主键)
- 插入数据,先插入主表
注意:删除数据,先删除从表
可以通过以下两种方式来删除主表的记录:
方式一:级联删除
ALTER TABLE stuinfo ADD CONSTRAINT fk_stu_major FOREIGN KEY(majorid) REFERENCES major(id) ON DELETE CASCADE;
方式二:级联置空
ALTER TABLE stuinfo ADD CONSTRAINT fk_stu_major FOREIGN KEY(majorid) REFERENCES major(id) ON DELETE SET NULL;
创建表时添加约束
注意:
支持类型 可以起约束名
列级约束 除了外键 不可以
表级约束 除了非空和默认 可以,但对主键无效
列级约束可以在一个字段上追加多个,中间用空格隔开,没有顺序要求
修改表时添加或删除约束
- 非空
- 添加非空
- 删除非空
- 默认
- 添加默认
- 删除默认
- 主键
- 添加主键
- 删除主键
- 唯一
- 添加唯一
- 删除唯一
- 外键
- 添加外键
- 删除唯一
自增长列
特点:
- 不用手动插入值,可以自动提供序列值,默认从1开始,步长为1
auto_increment_increment
如果要更改起始值:手动插入值
如果要更改步长:更改系统变量
- 一个表至多有一个自增长列
- 自增长列只能支持数值型
- 自增长列必须为一个key
一、创建表时设置自增长列
二、修改表时设置自增长列
三、删除自增长列
数据类型
一、数值型
1、整型
类型 | tinyint | smallint | mediumint | int/integer | bigint |
所占字节 | 1 | 2 | 3 | 4 | 8 |
特点:
- 都可以设置无符号和有符号,默认有符号,通过unsigned设置无符号
- 如果超出了范围,会报out or range异常,插入临界值
- 长度可以不指定,默认会有一个长度
长度代表显示的最大宽度,如果不够则左边用0填充,但需要搭配zerofill,并且默认变为无符号整型
2、浮点型
定点数:
decimal(M,D)
浮点数:
float(M,D) 4
double(M,D) 8
特点:
- M代表整数部位+小数部位的个数,D 代表小数部位
- 如果超出范围,则报 out or range 异常,并且插入临界值
- M 和 D 都可以省略,但对于定点数,M默认为 10,D 默认为 0
- 如果精度要求较高,则优先考虑使用定点数
二、字符型
char
、varchar
、binary
、varbinary
、enum
、set
、text
、blob
char:固定长度的字符,写法为
char(M)
,最大长度不能超过M,其中M可以省略,默认为1varchar:可变长度的字符,写法为
varchar(M)
,最大长度不能超过M,其中M不可以省略枚举(Enum)
- 不区分大小写
- 枚举只能取其中一个值
集合(set)
- 不区分大小写
- 能取多个值用逗号分开
三、日期型
- year年
- date日期
- time时间
- datetime 日期+时间 8
- timestamp 日期+时间 4 比较容易受时区、语法模式、版本的影响,更能反映当前时区的真实时间
- 作者:shuouyang
- 链接:https://notion-tree.vercel.app/article/170103d7-c48a-47e5-a65c-7e2748ed2698
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。