日期函数
- select current_date(); 获取当前日期
select current_time(); 获取当前时分秒
select current_timestamp(); 获取当前时间戳
select date_add(‘2019-08-13’,interval 10 day); 在日期的基础上加上日期
select date_sub(‘2019-08-13’,interval 10 day); 在日期的基础上减去日期
select datefiff(date1,date2); 两个日期之间相隔的时间,单位是天
字符串函数
- ucase(str)转换成大写;lcase(str)转换成小写
instr(string,substring);返回substring在string中出现的位置,没有的话返回0;
left(string,length):从string中的左边取length个字符。
strcmp()逐个字符地比较两字符串的大小
ltrim(string) rtrim(string) trim(string)去除前、后、所有空格
数学函数
- abs(n)取绝对值
bin(十进制数)十进制转二进制
hex(十进制数)十进制转十六进制
conv(n,from_base,to_base)进制转换
format(n,decimal_places)格式化,保留小数位数
rand()返回随机浮点数
mod(n,denominator)求模、取余
其他函数
- user()查询当前用户
md5(str)对一个字符串进行md5摘要,摘要后得到一个32位字符串
database()当前正在使用的数据库
password()MySQL数据库使用该函数对用户进行加密
iffull(val1,val2)val1为null则返回val2
复合查询
- 多表查询,将查询内容前面加上表名然后保证两个表中相同字段相等
- 自连接:在一张表上连接查询
- 子查询:嵌入在其他sql语句中的select语句,也叫嵌套查询;单行子查询和多行子查询中的单行和多行指的是返回的记录是单行还是多行。多行子查询中的关键字(in、all、any);子查询语句出现在from子句中,把子查询当做一个临时表使用
- 合并查询,合并多个select的执行结果,可以使用集合操作符union取并集,去掉结果中的重复行、union all取得两个结果的并集,不会去掉结果的重复行。
表的内外链接
-
内连接实际上就是利用where子句对两种表形成的笛卡尔积进行筛选
select 字段 from 表1 inner join 表2 on 连接条件 and 其他条件 -
外连接分为左外连接和右外连接
select 字段 from 表1 left join 表2 on 连接条件(联合查询,左表完全显示)
select 字段 from 表1 right join 表2 on 连接条件(联合查询,右表完全显示)