网站建设 站内页面连接,wordpress禁止更新代码,网站防红怎么做的,百货商城自助下单网站文章目录 1.注释符2.字符串符3.反引号4.模式匹配通配符转义符 参考文献 1.注释符
SQL 注释是用来在 SQL 语句中添加对代码的解释说明。SQL 支持两种类型的注释符号。
单行注释#xff1a;使用两个连续的减号#xff08;–#xff09;表示。减号后面的内容将被视为注释使用两个连续的减号–表示。减号后面的内容将被视为注释直到该行结束。
SELECT column1, column2
FROM table
-- This is a single-line comment
WHERE condition;多行注释使用/* 注释内容*/的格式表示。注释内容位于 /* 和 */ 之间可以跨越多行。
SELECT column1, column2
FROM table
/* This is amulti-line comment */
WHERE condition;MySQL 除了支持上面 SQL 标准规定的两种注释方式还支持使用 # 进行单行注释。因为 # 不是 SQL 标准规定的注释方式所以并不是所有数据库都支持。
2.字符串符
在 SQL 标准中字符串使用单引号表示而不是双引号。
但对于主流的数据库都支持双引号表示字符串如 Oracle、MySQL 和 SQL Server 等。
如果字符串中包含单引号该如何表示呢
在 SQL 中如果要表示一个带有单引号的字符串有多种方式。
可以使用反斜杠\进行转移也可以使用单引号进行转义即使用两个单引号来表示一个单引号。
SELECT It\s a beautiful day;
SELECT Its a beautiful day;因为 MySQL 支持使用双引号表示字符串所以还可以使用双引号表示一个包含单引号的字符串。
SELECT Its a beautiful day反之亦然如果字符串中包含双引号也可以使用上面三种方式来表示带有双引号的字符串。
至于使用单引号还是双引号表示字符串我们应该首选单引号因为这符合 SQL 标准且是主流做法。
3.反引号
在 MySQL 中反引号是一种用于转义标识符例如表名、列名、别名等的特殊字符。反引号的主要作用是允许你在标识符中使用保留字、特殊字符或包含空格的名称而不会引发语法错误。
以下是反引号在 MySQL 中的作用示例
保留字 如果你希望使用一个与 MySQL 中的保留字同名的标识符可以使用反引号将其括起来以避免语法错误。
SELECT select, from, where FROM my_table;特殊字符和空格 如果标识符包含特殊字符或空格可以使用反引号将其括起来使其被识别为一个整体。
SELECT first name, last name FROM employee data;大小写敏感性 在默认情况下MySQL 标识符是不区分大小写的。如果你希望标识符保留原始大小写可以使用反引号。
SELECT MyColumn FROM my_table;需要注意的是反引号在 SQL 标准中并不是通用的它是 MySQL 特有的语法。大多数其他数据库系统使用双引号或方括号来实现类似的功能。同时过度使用反引号可能会导致查询变得不够可读因此建议仅在必要的情况下使用。
4.模式匹配
通配符
SQL 标准中规定模式匹配使用下划线_匹配任何单个字符使用百分号%匹配任意数量的字符包括零个字符。
在 MySQL 中SQL 模式默认不区分大小写。使用 SQL 模式时请勿使用 或 请改用 LIKE 或 NOT LIKE 比较运算符。
要查找以b开头的名称
mysql SELECT * FROM pet WHERE name LIKE b%;
-------------------------------------------------------
| name | owner | species | sex | birth | death |
-------------------------------------------------------
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |
-------------------------------------------------------查找以fy结尾的名称
mysql SELECT * FROM pet WHERE name LIKE %fy;
--------------------------------------------------
| name | owner | species | sex | birth | death |
--------------------------------------------------
| Fluffy | Harold | cat | f | 1993-02-04 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
--------------------------------------------------查找包含w的名称
mysql SELECT * FROM pet WHERE name LIKE %w%;
--------------------------------------------------------
| name | owner | species | sex | birth | death |
--------------------------------------------------------
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |
| Whistler | Gwen | bird | NULL | 1997-12-09 | NULL |
--------------------------------------------------------查找恰好包含五个字符的名称请使用模式字符 _
mysql SELECT * FROM pet WHERE name LIKE _____;
-------------------------------------------------
| name | owner | species | sex | birth | death |
-------------------------------------------------
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
-------------------------------------------------MySQL 除了提供标准的 SQL 模式匹配还支持基于扩展正则表达式的模式匹配类似于 Unix 实用程序如 vi、grep 和 sed使用的扩展正则表达式。
如果您想要在 MySQL 中使用正则表达式进行匹配可以查阅 MySQL 官方文档 Pattern Matching 以了解更多信息。
转义符
由于百分号和下划线是通配符具有特殊的意义。当我们想要判断字符串中是否包含这两个字符时例如“50%”就需要使用一个转义字符将模式中的通配符解释为普通字符。转义字符使用 ESCAPE 指定
expr LIKE pat ESCAPE escape_char默认情况下MySQL 使用反斜线\作为转义字符。
SELECT 完成进度 50% LIKE %50%% AS like1, 日期 20150101 LIKE %50%% AS like2;
--------------
| like1 | like2 |
--------------
| 1 | 1 |
--------------上面的查询没有使用转义字符直接使用“50%”进行匹配结果“日期 20150101”也满足条件。
SELECT 完成进度 50% LIKE %50\%% AS like1, 日期 20150101 LIKE %50\%% AS like2;
--------------
| like1 | like2 |
--------------
| 1 | 0 |
--------------使用转义字符后50\%只会匹配50%。
MySQL 可识别下表中所示的转义字符。 对于所有其他转义字符反斜杠将被忽略。例如\x 仍是 x。 转义字符区分大小写例如 \b 被解释为退格键而 \B 被解释为 B。
Escape SequenceCharacter Represented by Sequence\0An ASCII NUL (X’00’) character\’A single quote () character\A double quote () character\bA backspace character\nA newline (linefeed) character\rA carriage return character\tA tab character\ZASCII 26 (ControlZ)\\A backslash () character\%A % character\_A _ character 参考文献
MySQL 8.0 Reference Manual :: 9.7 Comments MySQL Tutorial :: 4.4.7 Pattern Matching