函数
- 字符串函数
- 数值函数
- 日期函数
- 流程函数
字符串函数
常用函数:
函数 |
功能 |
CONCAT(s1, s2, …, sn) |
字符串拼接,将s1, s2, …, sn拼接成一个字符串 |
LOWER(str) |
将字符串全部转为小写 |
UPPER(str) |
将字符串全部转为大写 |
LPAD(str, n, pad) |
左填充,用字符串pad对str的左边进行填充,达到n个字符串长度 |
RPAD(str, n, pad) |
右填充,用字符串pad对str的右边进行填充,达到n个字符串长度 |
TRIM(str) |
去掉字符串头部和尾部的空格 |
SUBSTRING(str, start, len) |
返回从字符串str从start位置起的len个长度的字符串 |
REPLACE(column, source, replace) |
替换字符串 |
SELECT 函数(参数);
使用示例:
数值函数
常见函数:
函数 |
功能 |
CEIL(x) |
向上取整 |
FLOOR(x) |
向下取整 |
MOD(x, y) |
返回x/y的模 |
RAND() |
返回0~1内的随机数 |
ROUND(x, y) |
求参数x的四舍五入值,保留y位小数 |
日期函数
常用函数:
函数 |
功能 |
CURDATE() |
返回当前日期 |
CURTIME() |
返回当前时间 |
NOW() |
返回当前日期和时间 |
YEAR(date) |
获取指定date的年份 |
MONTH(date) |
获取指定date的月份 |
DAY(date) |
获取指定date的日期 |
DATE_ADD(date, INTERVAL expr type) |
返回一个日期/时间值加上一个时间间隔expr后的时间值 |
DATEDIFF(date1, date2) |
返回起始时间date1和结束时间date2之间的天数 |
type时间单位
流程函数
常用函数:
函数 |
功能 |
IF(value, t, f) |
如果value为true,则返回t,否则返回f |
IFNULL(value1, value2) |
如果value1不为空,返回value1,否则返回value2 |
CASE WHEN [ val1 ] THEN [ res1 ] … ELSE [ default ] END |
如果val1为true,返回res1,… 否则返回default默认值 |
CASE [ expr ] WHEN [ val1 ] THEN [ res1 ] … ELSE [ default ] END |
如果expr的值等于val1,返回res1,… 否则返回default默认值 |
约束
概述
- 概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据
- 目的:保证数据库中 数据的正确,有效性和完整性
- 分类
约束 |
描述 |
关键字 |
非空约束 |
限制该字段的数据不能为null |
NOT NULL |
唯一约束 |
保证该字段的所有数据都是唯一、不重复的 |
UNIQUE |
主键约束 |
主键是一行数据的唯一标识,要求非空且唯一 |
PRIMARY KEY |
默认约束 |
保存数据时,如果未指定该字段的值,则采用默认值 |
DEFAULT |
检查约束(8.0.1版本后) |
保证字段值满足某一个条件 |
CHECK |
外键约束 |
用来让两张图的数据之间建立连接,保证数据的一致性和完整性 |
FOREIGN KEY |
注意:
约束是作用于表中字段上的,可以再创建表/修改表的时候添加约束。
常用约束
约束条件 |
关键字 |
主键 |
PRIMARY KEY |
自动增长 |
AUTO_INCREMENT |
不为空 |
NOT NULL |
唯一 |
UNIQUE |
逻辑条件 |
CHECK |
默认值 |
DEFAULT |
例子:
外键约束
概念:
外键 用来让两张表的数据之间建立连接,从而保证数据的一致性和完整性。
添加外键:
删除/更新行为
行为 |
说明 |
NO ACTION |
当在父表中删除/更新对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除/更新(与RESTRICT一致) |
RESTRICT |
当在父表中删除/更新对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除/更新(与NO ACTION一致) |
CASCADE |
当在父表中删除/更新对应记录时,首先检查该记录是否有对应外键,如果有则也删除/更新外键在子表中的记录 |
SET NULL |
当在父表中删除/更新对应记录时,首先检查该记录是否有对应外键,如果有则设置子表中该外键值为null(要求该外键允许为null) |
SET DEFAULT |
父表有变更时,子表将外键设为一个默认值(Innodb不支持) |