
| 函数 |
功能 |
| concat(s1,s2) |
字符串拼接,将s1,s2拼接成一个字符串 |
| lower(str) |
将字符串str全部转为小写 |
| upper(str) |
将字符串str全部转为大写 |
| lpad(str,n,pad) |
左填充,用字符串pad对str的左边进行填充,达到N个字符串长度 |
| rpad(str,n,pad) |
右填充,用字符串pad对str的右边进行填充,达到N个字符串长度 |
| trim(str) |
去除字符串头部和尾部的空格 |
| substring(str,start,len) |
返回从字符串str从start位置起的len个长度的字符串 |
1.2数值函数
| 函数 |
功能 |
| ceil(x) |
向上取整 |
| floor(x) |
向下取整 |
| mod(x,y) |
返回x/y的余 |
| rand() |
返回0~1内的随机数 |
| round(x,y) |
求参数x的四舍五入的值,保留y位小数 |
1.3日期函数
| 函数 |
功能 |
| curdate() |
返回当前日期 |
| curtime() |
返回当前时间 |
| now() |
返回当前日期和时间 |
| year(date) |
获取指定date的年份 |
| month(date) |
获取指定date的月份 |
| day(date) |
获取指定date的日期 |
| date_add(date,interval exper type) |
返回一个日期/时间值加上一个时间间隔expr后的时间值 |
| datediff(date1,date2) |
返回起始时间date1和结束时间date2之间的天数 |
1.4流程函数
| 函数 |
功能 |
| if (value,t,f) |
如果value为true,则返回t,否则返回f |
| ifnull(value1,value2) |
如果value1不为空,返回value1,否则分会value2 |
| case when [vall] then [resl] … else [default] end |
如果vall为true,返回res1…否则返回default默认值 |
| case [expr] when [vall] then [res1] …else [default] end |
如果expr的值等于vall,返回res1…否则返回default默认值 |
2.约束
2.1概述
1.概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据
2.目的:保证数据库中的数据的正确,有效性和完整性
3.分类
| 约束 |
描述 |
关键字 |
| 非空约束 |
限制该字段的数据不能为null |
not null |
| 唯一约束 |
保证该字段的所有数据都是唯一,不重复 |
unique |
| 主键约束 |
主键是一行数据的唯一标识,要求非空唯一 |
primary key |
| 默认约束 |
保存数据时,如果未指定该字段的值,则采用默认值 |
default |
| 检查约束(mysql8.0.16以后支持) |
保证字段值满足某一个条件 |
check |
| 外键约束 |
用来让两张表的数据之间建立连接,保证数据的一致性和完整性 |
foreign key references 表名(列名) |
| 递增 |
用于数字类型,适用于序号 |
auto_increment |
2.2外键约束
1.添加外键
create table 表名(字段名 数据类型,[constraint] [外键名称] foreign key (外键字段名) references 主表(主列名);
)
2.为创建好的表添加外键
alter table 表名 add constraint 外键名 foreign key(外键字段名) references 主表(主表列名);
3.删除外键
alter table 表名 drop foreign key 外键名;
2.3外键约束
| 行为 |
说明 |
| no action |
当在父表中删除/更新对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除/更新。(与restrict一致) |
| restrict |
当在父表中删除/更新对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除/更新。(与no action一致) |
| cascde |
当在父表中删除/更新对应记录时,首先检查该记录是否有对应外键,如果有,则也删除/更新外键在子表中的记录 |
| set null |
当在父表中删除对应记录时,首先检查该记录是否有对应外键,如果有则设置子表中该外键值为null(这就要求该外键允许取null) |
| set default |
父表有变更时,子表将外键列设置为一个默认的值(innodb不支持) |
语法:
alter table 表名 add constraint 外键名称 foreign key (外键字段) references 主表名(主表字段名) on update cascade on delete cascde;