一.函数
1.定义
函数是指一段可以直接被另一段程序调用的程序或代码。
2.字符串函数
常见如下:
-- 字符串拼接
SELECT CONCAT('hello','MySql') AS CONCAT
-- 将字符串全部转为小写
SELECT LOWER('HEllo MYSql') AS LOWER
-- 将字符串全部转为大写
SELECT UPPER('Hello MYSql') UPPER
-- LPAD(str,n,pad) 左填充,用字符串pad对str的左边进行填充,达到n个字符串的长度
SELECT LPAD('11',5,'-') LPAD
-- 右填充
SELECT RPAD('11',5,'-') RPAD
-- 去掉字符串前后的空格
SELECT TRIM(' 1.11 ') TRIM
-- 截取子字符串
SELECT SUBSTRING('Kyrie Irving',1,5) SUBSTRING
3.数值函数
常见如下:
-- 向上取整
SELECT CEIL(1.1) CEIL
-- 向下取整
SELECT FLOOR(1.6) FLOOR
-- 取模
SELECT MOD(10,2) MOD
-- 返回0-1之间的随机数
SELECT RAND() RAND
-- ROUND(x,y) 求参数x的四舍五入值,保留y位小数
SELECT ROUND(3.1458,2) ROUND
-- 例题
-- 生成随机的六位验证码
SELECT LPAD(ROUND(RAND()*1000000,0),6,0) AS num
4.日期函数
-- 返回当前日期
SELECT CURDATE()
-- 返回当前时间
SELECT CURTIME()
-- 返回当前日期和时间
SELECT NOW()
-- 获取指定date的年份
SELECT YEAR(NOW())
-- 获取指定date的月份
SELECT MONTH(NOW())
-- 获取指定date的日期
SELECT DAY(NOW())
-- 返回一个日期/时间值加上一个时间间隔expr后的时间值
SELECT DATE_ADD(NOW(),INTERVAL 10 DAY)
-- 返回起始时间date1和结束时间date2之间的天数
SELECT DATEDIFF('2022-10-21','2022-9-22')
5.流程函数
二.约束
1.概述
a.概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。
b.目的:保证数据库中数据的正确性、有效性和完整性。
c.分类:
注:约束是作用于表中字段上的,可以在创建表/修改表的时候添加约束 。
2.外键约束
a.语法
①
CREATE TABLE 表名(
字段名 数据类型,
...
[CONSTRAINT] [外键名称] FOREIGN KEY(外键字段名) REFERENCES 主表(主表列名)
)
②
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY(外键字段名) REFERENCES 主表(主表列名)
eg:
-- 添加外键约束后,在对表中的数据进行任意操作,不能导致外键列和主键列对应不上
-- CONSTRAINT 约束名(有固定的约束名规则)
ALTER TABLE student ADD CONSTRAINT fk_student_major_majorid FOREIGN KEY(majorid) REFERENCES major(id)
b.删除/更新行为
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY(外键字段名) REFERENCES 主表(主表列名) ON UPDATE CASCADE
注:ON UPDATE CASCADE 设置在进行删除行为进行的操作