MySQL 中的轉義序列

Mehvish Ashiq 2023年1月30日 2022年5月13日
  1. 轉義序列的定義
  2. MySQL 中的轉義序列
  3. MySQL 中帶有萬用字元的轉義序列
  4. まとめ
MySQL 中的轉義序列

在本文中,我們將瞭解轉義序列。我們將通過示例和示例程式碼檢視它的定義。

我們還將探討如何將其與萬用字元一起使用以查詢資料中的模式。

轉義序列的定義

轉義序列字元是不可列印的字元,它指定以下字元的替代解釋是轉義字元序列。

它從反斜槓開始(表示為*\\*)並有兩個或多個字元。例如,\n 顯示一個新行,其中 反斜槓 是一個字元,而 n 是第二個字元。

下面給出了轉義序列及其表示的列表

轉義序列 字元表示
\n 換行符
\0 空字元
\b 退格字元
\r 回車符
\t 製表符
\\ 反斜槓
\% 百分比字元
\a 警報
\f 換頁(新頁面)
\v 垂直標籤
\' 單引號
\" 雙引號
\? 問號

在編寫應用程式時,在某些情況下你必須操作字串。在將其儲存到資料庫之前,必須正確轉義此字串。

這裡我們使用轉義序列。例如,如果你想在 customer_firstnameNyy'acustomer 表中 INSERT 記錄,你必須使用 escape sequence

注意
我們使用兩個名為 customerorder 的表作為本教程的示例程式碼。這些表在當前資料下如下所示。

客戶表:

mysql 中的轉義序列 - 客戶表

訂單表:

mysql 中的轉義序列 - 訂單表

示例程式碼:

INSERT INTO customer(customer_firstname, customer_lastname, customer_age, customer_salary)
VALUES
('Nyy\'a', 'Daniel', 19, 10000);

輸出:

mysql 中的轉義序列 - 示例

MySQL 中的轉義序列

MySQL 中使用了不同的轉義序列。請參閱以下示例以瞭解。

新行示例程式碼:

SELECT 'Hi!\nWelcome to the learning Escape Sequences.'

輸出:

Hi!
Welcome to the learning Escape Sequences.

回車字元示例程式碼:

SET @strInput = 'Hello,How are you';
SET @strResult = REPLACE(@strInput, ',', CHAR(10)); #CHAR(10) represents \r
SELECT @strResult;

輸出:

Hello
How are you

問號示例程式碼:

SELECT 'Is this a question mark example\?';

輸出:

Is this a question mark example?

引號示例程式碼:

SELECT 'firstname', 'first\'name', '"firstname"',"firstname", '\"firstname\"','firstname\?';

輸出:

mysql 中的轉義序列-雙引號示例

MySQL 中帶有萬用字元的轉義序列

萬用字元字元用於從資料中獲取所需的模式並替換一個或多個字串。

它與 LIKE 運算子一起使用,LIKE 運算子用於 WHERE 子句。使用帶有萬用字元的轉義序列可以輕鬆獲得特定模式。

示例程式碼:

SELECT customer_firstname from customer where customer_firstname like '___\'_';

在這段程式碼中,我們從 customer 表中查詢 customer_firstname,其中單引號前有三個字元,單引號後有一個字元。一個下劃線 (_) 用於一個字元。

___\'_'中,我們用三個下劃線來獲得三個字元,然後是一個單引號,最後是一個字元。請參閱以下輸出進行比較。

輸出:

mysql 中的轉義序列 - 帶萬用字元的單引號

如果你要在列中尋找某種模式怎麼辦?讓我們使用 order 表來練習它。我們將從包含 -12 模式的 order_date 欄位中找到所有訂單日期。

這裡 % 顯示一個或多個字元。它表示所需模式之前的一個或多個字元以及以下示例程式碼中的一個或多個字元。

示例程式碼:

SELECT order_date from order where order_date like '%\-12%';

輸出:

mysql 中的轉義序列-查詢模式部分 a

要理解帶有 wild card characters 的雙引號示例,INSERT``customer 表中的新記錄。

示例程式碼:

INSERT INTO customer(customer_firstname, customer_lastname, customer_age, customer_salary)
VALUES
('\"Nyy\'a\"', 'Dan\'iel', 19, 10000);

輸出:

mysql 中的轉義序列 - 查詢模式部分 b

使用以下命令從符合以下模式的 customer 表中查詢 customer_firstnamecustomer_lastname

示例程式碼:

SELECT customer_firstname, customer_lastname from customer 
where customer_firstname like '%\"%\'%\"'
AND customer_lastname like'%\'___';

輸出:

mysql 中的轉義序列 - 查詢模式部分 c

まとめ

本文得出結論,轉義序列是不可列印的,它在以下字元上指定替代表示。

在儲存到資料庫之前,必須對字串進行轉義。我們還瞭解到轉義字元與萬用字元一起使用以查詢不同的模式。

Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook