MySQL SQL
概述
参考:
SQL 语言被细分为几个语言元素,包括:
- 子句,它们是语句和查询的组成部分。(在某些情况下,这些是可选的。)
- 表达式,可以生成标量值或由数据的列和行组成的表
- Predicates,指定可以评估为 SQL三值逻辑 (3VL)(真/假/未知)或布尔 真值的条件,用于限制语句和查询的效果,或更改程序流程。
- 查询,根据特定条件检索数据。这是 SQL 的一个重要元素。
- 语句,可能对模式和数据产生持久影响,或者可能控制事务、程序流、连接、会话或诊断。
- SQL 语句还包括分号(";") 语句终止符。虽然不是每个平台都需要它,但它被定义为 SQL 语法的标准部分。
- SQL 语句和查询中通常会忽略无关紧要的空格,从而更容易格式化 SQL 代码以提高可读性。
在 MySQL 中按照功能将各种语句进行了分类:
- Data Definition Statements(数据定义语句)
- Data Manipulation Statements(数据操作语句)
- Transactional and Locking Statements(事务和锁语句)
- Replication Statements(复制语句)
- Prepared Statements(预处理语句)
- Compound Statement Syntax(符合语句)
- Database Administration Statements(数据库管理语句)
- Utility Statements(使用程序语句)
关键字
参考:
函数与运算符
参考:
内置函数
参考:
函数名 | 功能 | 启用版本 | 弃用版本 |
---|---|---|---|
REPLACE() | 替换掉指定字符串 | ||
REGEXP_REPLACE() | 替换掉使用正则表达式匹配到的字符串 | 8.0.4 | |
SUBSTRING_INDEX() | 从指定出现次数的分隔符之前的字符串中返回子字符串 | ||
聚合函数
参考:
Aggregate Function(聚合函数) 通常与 group by
关键字一起使用,用于将值进行分组。
Name | Description | Introduced |
---|---|---|
AVG() | Return the average value of the argument | |
BIT_AND() | Return bitwise AND | |
BIT_OR() | Return bitwise OR | |
BIT_XOR() | Return bitwise XOR | |
COUNT() | Return a count of the number of rows returned | |
COUNT(DISTINCT) | Return the count of a number of different values | |
GROUP_CONCAT() | Return a concatenated string | |
JSON_ARRAYAGG() | Return result set as a single JSON array | 5.7.22 |
JSON_OBJECTAGG() | Return result set as a single JSON object | 5.7.22 |
MAX() | Return the maximum value | |
MIN() | Return the minimum value | |
STD() | Return the population standard deviation | |
STDDEV() | Return the population standard deviation | |
STDDEV_POP() | Return the population standard deviation | |
STDDEV_SAMP() | Return the sample standard deviation | |
SUM() | Return the sum | |
VAR_POP() | Return the population standard variance | |
VAR_SAMP() | Return the sample variance | |
VARIANCE() | Return the population standard variance |
GROUP BY
参考:
group by
可以脱离聚合函数单独使用,此时不在 group by 分组的列将会取其中第一行的值。
如果想要对数据进行分组后取到最新的值,还需要使用 row_number()
函数(8.0+版本),或者某些分组编号功能(此时编号为 1 的就是每组最新的值)。
HAVING
having 与 group by 之间的用法,暂时找不到一个可以描述清楚的文章,但是事实是,having 可以单独使用,并在外层再套一个 select 后执行 group by 以实现分组后取最新值的效果。
select
*
from
(
SELECT
FROM
t_diversion diversion
WHERE
diversion.is_deleted = 0
HAVING
1
ORDER BY
diversion.updated_at desc
) t
GROUP BY
t.datalakeName,
t.privateNetName
此时可以取到 diversion 表中,按照 datalakeName 和 privateNetName 分组后,每组中最新的一条数据。
运算符
参考:
运算符 | 描述 | Introduced | 弃用版本 | ||
---|---|---|---|---|---|
& | Bitwise AND | ||||
> | Greater than operator | ||||
» | Right shift | ||||
>= | Greater than or equal operator | ||||
< | Less than operator | ||||
<>,!= | Not equal operator | ||||
« | Left shift | ||||
<= | Less than or equal operator | ||||
<=> | NULL-safe equal to operator | ||||
%,MOD | Modulo operator | ||||
* | Multiplication operator | ||||
+ | Addition operator | ||||
- | Minus operator | ||||
- | Change the sign of the argument | ||||
-> | Return value from JSON column after evaluating path; equivalent to JSON_EXTRACT(). | ||||
-» | Return value from JSON column after evaluating path and unquoting the result; equivalent to JSON_UNQUOTE(JSON_EXTRACT()). | ||||
/ | Division operator | ||||
:= | 变量赋值 | ||||
= | 变量赋值(作为 SET 语句的一部分,或作为 UPDATE 语句中 SET 子句的一部分) | ||||
= | Equal operator | ||||
^ | Bitwise XOR | ||||
AND,&& | Logical AND | ||||
BETWEEN … AND … | Whether a value is within a range of values | ||||
BINARY | Cast a string to a binary string | 8.0.27 | |||
CASE | Case operator | ||||
DIV | Integer division | ||||
IN() | Whether a value is within a set of values | ||||
IS | Test a value against a boolean | ||||
IS NOT | Test a value against a boolean | ||||
IS NOT NULL | NOT NULL value test | ||||
IS NULL | NULL value test | ||||
LIKE | Simple pattern matching | ||||
MEMBER OF() | Returns true (1) if first operand matches any element of JSON array passed as second operand, otherwise returns false (0) | 8.0.17 | |||
NOT,! | Negates value | ||||
NOT BETWEEN … AND … | Whether a value is not within a range of values | ||||
NOT IN() | Whether a value is not within a set of values | ||||
NOT LIKE | Negation of simple pattern matching | ||||
NOT REGEXP | Negation of REGEXP | ||||
[OR, | ](https://dev.mysql.com/doc/refman/8.0/en/logical-operators.html#operator_or) | Logical OR | |||
REGEXP | Whether string matches regular expression | ||||
RLIKE | Whether string matches regular expression | ||||
SOUNDS LIKE | Compare sounds | ||||
XOR | Logical XOR | ||||
[ | ](https://dev.mysql.com/doc/refman/8.0/en/bit-functions.html#operator_bitwise-or) | Bitwise OR | |||
~ | Bitwise inversion |
数据库管理语句
show - 显示信息
显示有关数据库、表、列的信息,或有关服务器状态的信息。
EXAMPLE
- 查看创建 test 数据库的 sql 语句
- show create database test;
- 查看创建 test 表的 sql 语句
- show create table test;
- 显示数据库的状态信息
- show status;
实用程序语句
use - 使用指定数据库作为后续 SQL 执行的目标库
特殊符号
@
声明变量、调用变量
反馈
此页是否对你有帮助?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.