一、数据查询
1. Subquery 子查询
简介:
出现在其他 SQL 语句内的 SELECT 子句。
语法:
SELECT * FROM tbl_1 WHERE col1 = (SELECT col2 FROM tbl_2);
二、运算符
1. 比较运算符
运算符↓ 关键字→ | ANY | SOME | ALL/[NOT] IN |
---|
、>、>= | 最小值 | 最小值 | 最大值 |
<、<= | 最大值 | 最大值 | 最小值 |
= | 任意值 | 任意值 | |
<>、!= | | | 任意值 |
2. 便捷运算符
关键字 | 描述 |
---|
[NOT] EXISTS | 是否返回查询结果记录(boolean) |
HAVING | 一般结合 GROUP BY 使用对筛选查询结果进行操作 |
SVG() | 获取平均值 |
ROUND(float_num, dot_len) | 将小数 float_num 转换小数点长度为 dot_len 的数值 |
COUNT(col_name) | 符合条件下 col_name 的总量 |
三、表连接
连接模式 | 描述 |
---|
INNER JOIN | 内连接:仅显示符合连接条件的记录 |
LEFT/RIGHT {OUTER} JOIN | 左外连接:显示左表全部及右表符合连接条件的记录 or 右外连接:显示右表全部及左表符合连接条件的记录 |
四、函数使用
1. 字符函数
函数名称 | 描述 | 语法示例 |
---|
CONCAT() | 字符连接 | SELECT CONCAT({col_name1,col_name2,…); |
CONCAT_WS() | 使用指定的分隔符进行字符连接 | SELECT CONCAT({ws_char},{col_name1,col_name2,…); |
FORMAT() | 数值格式化 | SELECT FORMAT(float_num,dot_len); |
LOWER()/UPPER() | 大小写转换 | SELECT {LOWER/UPPER}(str); |
LEFT()/RIGHT() | 字符截取 | SELECT {LEFT/RIGHT}(str, position); |
LENGTH() | 获取字符串长度(含空格) | SELECT LENGTH(str); |
LTRIM()/RTRIM()/TRIM() | 删除空格 | SELECT {LTRIM/RTRIM/TRIM(LEADING/TRAILING/BOTH)}(str); |
SUBSTRING() | 字符串截取 | SELECT SUBSTRING(str,start_position [,sub_len]); |
[NOT] LIKE | 内容匹配(%,_) | SELECT str [NOT] LIKE str2 [ESCAPE char]; |
REPLACE() | 替换字符 | SELECT REPLACE(str,old_char,new_char); |
2. 数值运算符与函数
函数名称 | 描述 | 语法示例 |
---|
CEIL() | 进一取整 | SELECT CEIL(float_num); |
FLOOR() | 舍一取整 | SELECT FLOOR(float_num); |
DIV | 整数除法 | SLECT num1 DIV num2; |
MOD | 取余除法 | SLECT num1 MOD num2; |
POWER() | 幂运算 | SELCT POWER(num1, num2);// num1的num2次方 |
ROUND() | 四舍五入 | SELECT ROUND(num {,dot_len});// 保留小数点长度 dot_len |
TRUNCATE() | 数字截取 | SELECT TRUNCATE(float_num, trun_len); |
3. 比较运算符与函数
函数名称 | 描述 | 语法示例 |
---|
[NOT] BETWEEN…AND… | [不]在范围内 | SELECT num1 [NOT] BETWEEN num2 AND num3; |
[NOT] IN() | [不]在列出值的范围内 | SELECT num1 [NOT] IN(num2,num3,…); |
IS [NOT] NULL | [不]为空 | SELECT * IS [NOT] NULL; |
4. 日期时间函数
函数名称 | 描述 | 语法示例 |
---|
NOW() | 当前日期时间 | SELECT NOW(); |
CURDATE() | 当前日期 | SELECT CURDATE(); |
CURTIME() | 当前时间 | SELECT CURTIME(); |
DATE_ADD() | 日期变化 | SELECT DATE_ADD(date, INTERVAL add_num {DAY/WEEK/MOTH/YEAR}); |
DATEDIFF() | 日期间隔 | SELEC DATEDIFF(date1, date2); |
DATE_FORMAT() | 日期格式化 | SELECT DATE_FORMAT(date, date_type);// eg.’%m/%d/%Y %H:%i:%s’ |
5. 信息函数
函数名称 | 描述 | 语法示例 |
---|
CONNECTION_ID() | 当前连接用户 ID | SLECT CONNECTION_ID(); |
DATEEBASE() | 当前数据库 | SELECT DATEBASE(); |
LASET_INSERT_ID | 最后插入记录的 ID | SELECT LASERT_INSERT_ID();// 多条插入返回第一条 |
USER() | 当前用户 | SELECT USER(); |
VERSION() | MySQL 版本信息 | SELECT VERSION(); |
6. 聚合函数
函数名称 | 描述 | 语法示例 |
---|
AVG() | 平均值 | SELECT AVG(num1,num2,…); |
COUNT() | 总数 | SELECT COUNT(col_name) [AS symbol] FROM tbl_name; |
MAX() | 最大值 | SELECT MAX(col_name) [AS symbol] FROM tbl_name; |
MIN() | 最小值 | SELECT MIN(col_name) [AS symbol] FROM tbl_name; |
SUM() | 总和 | SELECT SUM(num1,num2,…); |
7. 加密函数
函数名称 | 描述 | 语法示例 |
---|
MD5() | 信息摘要算法 | SELECT MD5(value); |
PASSWORD() | 密码加密计算 | SET PASSWORD=PASSWORD(pwd_value);// 修改当前用户密码 |
五、UDF 自定义函数
语法
CREATE FUNCTION func_name RETURNS {STRING/INTEGER|REAL/DECIMAL} routine_body
MySQL启程学习回忆录1
MySQL启程学习回忆录2
MySQL启程学习回忆录3
感谢慕课平台