SQL执行顺序

编写顺序

SELECT DISTINCT
    <select list>
FROM
    <left_table> <join_type>
JOIN
    <right_table> ON <join_condition>
WHERE
    <where_condition>
GROUP BY
    <group_by_list>
HAVING
    <having_condition>
ORDER BY
    <order_by_condition>
LIMIT
    <limit_params>

执行顺序

FROM  <left_table>
ON    <join_condition> <join_type>     
JOIN  <right_table>
WHERE <where_condition>
GROUP BY  <group_by_list>
HAVING    <having_condition>
SELECT DISTINCT   <select list>
ORDER BY  <order_by_condition>
LIMIT     <limit_params>

正则表达式使用

正则表达式(Regular Expression)是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。

符号

含义

^

在字符串开始处进行匹配

$

在字符串末尾处进行匹配

.

匹配任意单个字符, 包括换行符

[...]

匹配出括号内的任意字符

[^...]

匹配不出括号内的任意字符

a*

匹配零个或者多个a(包括空串)

a+

匹配一个或者多个a(不包括空串)

a?

匹配零个或者一个a

a1|a2

匹配a1或a2

a(m)

匹配m个a

a(m,)

至少匹配m个a

a(m,n)

匹配m个a 到 n个a

a(,n)

匹配0到n个a

(...)

将模式元素组成单一元素

select * from emp where name regexp '^T';
select * from emp where name regexp '2$';
select * from emp where name regexp '[uvw]';

MySQL 常用函数

数字函数

函数名称

作 用

ABS

求绝对值

SQRT

求二次方根

MOD

求余数

CEIL 和 CEILING

两个函数功能相同,都是返回不小于参数的最小整数,即向上取整

FLOOR

向下取整,返回值转化为一个BIGINT

RAND

生成一个0~1之间的随机数,传入整数参数是,用来产生重复序列

ROUND

对所传参数进行四舍五入

SIGN

返回参数的符号

POW 和 POWER

两个函数的功能相同,都是所传参数的次方的结果值

SIN

求正弦值

ASIN

求反正弦值,与函数 SIN 互为反函数

COS

求余弦值

ACOS

求反余弦值,与函数 COS 互为反函数

TAN

求正切值

ATAN

求反正切值,与函数 TAN 互为反函数

COT

求余切值

字符串函数

函数名称

作 用

LENGTH

计算字符串长度函数,返回字符串的字节长度

CONCAT

合并字符串函数,返回结果为连接参数产生的字符串,参数可以使一个或多个

INSERT

替换字符串函数

LOWER

将字符串中的字母转换为小写

UPPER

将字符串中的字母转换为大写

LEFT

从左侧字截取符串,返回字符串左边的若干个字符

RIGHT

从右侧字截取符串,返回字符串右边的若干个字符

TRIM

删除字符串左右两侧的空格

REPLACE

字符串替换函数,返回替换后的新字符串

SUBSTRING

截取字符串,返回从指定位置开始的指定长度的字符换

REVERSE

字符串反转(逆序)函数,返回与原始字符串顺序相反的字符串

日期函数

函数名称

作 用

CURDATE 和 CURRENT_DATE

两个函数作用相同,返回当前系统的日期值

CURTIME 和 CURRENT_TIME

两个函数作用相同,返回当前系统的时间值

NOW 和 SYSDATE

两个函数作用相同,返回当前系统的日期和时间值

MONTH

获取指定日期中的月份

MONTHNAME

获取指定日期中的月份英文名称

DAYNAME

获取指定曰期对应的星期几的英文名称

DAYOFWEEK

获取指定日期对应的一周的索引位置值

WEEK

获取指定日期是一年中的第几周,返回值的范围是否为 0〜52 或 1〜53

DAYOFYEAR

获取指定曰期是一年中的第几天,返回值范围是1~366

DAYOFMONTH

获取指定日期是一个月中是第几天,返回值范围是1~31

YEAR

获取年份,返回值范围是 1970〜2069

TIME_TO_SEC

将时间参数转换为秒数

SEC_TO_TIME

将秒数转换为时间,与TIME_TO_SEC 互为反函数

DATE_ADD 和 ADDDATE

两个函数功能相同,都是向日期添加指定的时间间隔

DATE_SUB 和 SUBDATE

两个函数功能相同,都是向日期减去指定的时间间隔

ADDTIME

时间加法运算,在原始时间上添加指定的时间

SUBTIME

时间减法运算,在原始时间上减去指定的时间

DATEDIFF

获取两个日期之间间隔,返回参数 1 减去参数 2 的值

DATE_FORMAT

格式化指定的日期,根据参数返回指定格式的值

WEEKDAY

获取指定日期在一周内的对应的工作日索引

聚合函数

函数名称

作用

MAX

查询指定列的最大值

MIN

查询指定列的最小值

COUNT

统计查询结果的行数

SUM

求和,返回指定列的总和

AVG

求平均值,返回指定列数据的平均值