Mysql重点知识整理

SELECT完整的语法:

1 SELECT [ALL | DISTINCT]
2 {*|table.* | [table.field1[as alias1][,table.field2[as alias2]][,...]]}
3 FROM table_name [as table_alias]
4 [left | right | inner join table_name2]  -- 联合查询
5 [WHERE ...] -- 指定结果需要满足的条件
6 [GROUP BY ...] -- 指定结果按照哪几个字段来分组
7 [HAVING] -- 过滤分组的记录必须满足的条件
8 [ORDER BY ...] -- 指定查询记录按照一个或多个条件排序
9 [LIMIT {[offset], row_count | row_count OFFSET offset}];  -- 指定查询记录从哪条至哪条

注意 :

  • [ ]括号代表可选的, { }括号代表必选的
  • WHERE、GROUP BY、HAVING、ORDER BY、LIMIT的相对顺序有严格的语法限制,不能调换!

CASE 表达式语法

CASE expression
    WHEN value1 THEN result1
    WHEN value2 THEN result2
    ...
    [ELSE default_result]
END

高级字符串函数:

(一)SUBSTRING 函数

SUBSTRING(string, start, length)
SUBSTRING(string FROM start FOR length)
SUBSTRING(string, start)  -- 从start到结尾

-- 示例
SELECT SUBSTRING('Hello World', 7, 5);  -- 返回 'World'
SELECT SUBSTRING('Hello World', 7);     -- 返回 'World'
SELECT SUBSTRING('Hello World' FROM 7 FOR 5);  -- 返回 'World'

-- 也支持负数的起始位置(从末尾开始)
SELECT SUBSTRING('Hello World', -5);  -- 返回 'World'

(二)正则表达式
1.^:表示一个字符串或行的开头
2.[a-z]:表示一个字符范围,匹配从 a 到 z 的任何字符。
[0-9]:表示一个字符范围,匹配从 0 到 9 的任何字符。
[a-zA-Z]:这个变量匹配从 a 到 z 或 A 到 Z 的任何字符。请注意,你可以在方括号内指定的字符范围的数量没有限制,您可以添加想要匹配的其他字符或范围。
[^a-z]:这个变量匹配不在 a 到 z 范围内的任何字符。请注意,字符 ^ 用来否定字符范围,它在方括号内的含义与它的方括号外表示开始的含义不同。
3.[a-z]*:表示一个字符范围,匹配从 a 到 z 的任何字符 0 次或多次。
4.[a-z]+:表示一个字符范围,匹配从 a 到 z 的任何字符 1 次或多次。
5..:匹配任意一个字符。
6.\.:表示句点字符。请注意,反斜杠用于转义句点字符,因为句点字符在正则表达式中具有特殊含义。还要注意,在许多语言中,你需要转义反斜杠本身,因此需要使用\\.。
7.$:表示一个字符串或行的结尾。

(三)REGEXP_LIKE() 函数

-- 要匹配的字符串或列名,正则表达式模式,匹配类型(可选)
REGEXP_LIKE(expression, pattern [, match_type])

其中,c表示区分大小写匹配,i表示不区分大小写匹配

posted @ 2026-01-10 20:04  juuddy  阅读(7)  评论(0)    收藏  举报