正则表达式
SQL模式匹配
_ 下划线匹配任何单个字符
% 匹配任意数码字符
正则表达式的匹配
使用REGEXP和NOT REGEXP操作符
‘.’匹配任何单个的字符。
字符类“[...]”匹配在方括号内的任何字符。例如,“[abc]”匹配“a”、“b”或“c”。为了命名字符的范围,使用一个“-”。“[a-z]”匹配任何字母,而“[0-9]”匹配任何数字。
“ * ”匹配零个或多个在它前面的字符。例如,“x*”匹配任何数量的“x”字符,“[0-9]*”匹配任何数量的数字,而“.*”匹配任何数量的任何字符。
为了找出以“b”开头的名字,使用“^”匹配名字的开始:
mysql> SELECT * FROM pet WHERE name REGEXP '^b';
SELECT * FROM `student` WHERE `username` REGEXP '1$'
为了找出包含一个“w”的名字,使用以下查询:
mysql> SELECT * FROM pet WHERE name REGEXP 'w';
你也可以使用“{n}”“重复n次”操作符重写前面的查询:
mysql> SELECT * FROM pet WHERE name REGEXP '^.{5}$';
对于REGEXP操作符,正则表达式可以使用任何下述特殊字符和结构:
· ^
匹配字符串的开始部分。
mysql> <strong>SELECT 'fo/nfo' REGEXP '^fo$';</strong> -> 0
mysql> <strong>SELECT 'fofo' REGEXP '^fo';</strong> -> 1
· $
匹配字符串的结束部分。
mysql> <strong>SELECT 'fo/no' REGEXP '^fo/no$';</strong> -> 1
mysql> <strong>SELECT 'fo/no' REGEXP '^fo$';</strong> -> 0
· .
匹配任何字符(包括回车和新行)。
mysql> <strong>SELECT 'fofo' REGEXP '^f.*$';</strong> -> 1
mysql> <strong>SELECT 'fo/r/nfo' REGEXP '^f.*$';</strong> -> 1
· a*
匹配0或多个a字符的任何序列。
mysql> <strong>SELECT 'Ban' REGEXP '^Ba*n';</strong> -> 1
mysql> <strong>SELECT 'Baaan' REGEXP '^Ba*n';</strong> -> 1
mysql> <strong>SELECT 'Bn' REGEXP '^Ba*n';</strong> -> 1
· a+
匹配1个或多个a字符的任何序列。
mysql> <strong>SELECT 'Ban' REGEXP '^Ba+n';</strong> -> 1
mysql> <strong>SELECT 'Bn' REGEXP '^Ba+n';</strong> -> 0
· a?
匹配0个或1个a字符。
mysql> <strong>SELECT 'Bn' REGEXP '^Ba?n';</strong> -> 1
mysql> <strong>SELECT 'Ban' REGEXP '^Ba?n';</strong> -> 1
mysql> <strong>SELECT 'Baan' REGEXP '^Ba?n';</strong> -> 0
· de|abc
匹配序列de或abc。
mysql> <strong>SELECT 'pi' REGEXP 'pi|apa';</strong> -> 1
mysql> <strong>SELECT 'axe' REGEXP 'pi|apa';</strong> -> 0
mysql> <strong>SELECT 'apa' REGEXP 'pi|apa';</strong> -> 1
mysql> <strong>SELECT 'apa' REGEXP '^(pi|apa)$';</strong> -> 1
mysql> <strong>SELECT 'pi' REGEXP '^(pi|apa)$';</strong> -> 1
mysql> <strong>SELECT 'pix' REGEXP '^(pi|apa)$';</strong> -> 0
· (abc)*
匹配序列abc的0个或多个实例。
mysql> <strong>SELECT 'pi' REGEXP '^(pi)*$';</strong> -> 1
mysql> <strong>SELECT 'pip' REGEXP '^(pi)*$';</strong> -> 0
mysql> <strong>SELECT 'pipi' REGEXP '^(pi)*$';</strong> -> 1
· {1}, {2,3}
{n}或{m,n}符号提供了编写正则表达式的更通用方式,能够匹配模式的很多前述原子(或“部分”)。m和n均为整数。
o a*
可被写入为a{0,}。
o a+
可被写入为a{1,}。
o a?
可被写入为a{0,1}。
更准确地讲,a{n}与a的n个实例准确匹配。a{n,}匹配a的n个或更多实例。a{m,n}匹配a的m~n个实例,包含m和n。
m和n必须位于0~RE_DUP_MAX(默认为255)的范围内,包含0和RE_DUP_MAX。如果同时给定了m和n,m必须小于或等于n。
mysql> <strong>SELECT 'abcde' REGEXP 'a[bcd]{2}e';</strong> -> 0
mysql> <strong>SELECT 'abcde' REGEXP 'a[bcd]{3}e';</strong> -> 1
mysql> <strong>SELECT 'abcde' REGEXP 'a[bcd]{1,10}e';</strong> -> 1
· [a-dX], [^a-dX]
匹配任何是(或不是,如果使用^的话)a、b、c、d或X的字符。两个其他字符之间的“-”字符构成一个范围,与从第1个字符开始到第2个字符之间的所有字符匹配。例如,[0-9]匹配任何十进制数字 。要想包含文字字符“]”,它必须紧跟在开括号“[”之后。要想包含文字字符“-”,它必须首先或最后写入。对于[]对内未定义任何特殊含义的任何字符,仅与其本身匹配。
mysql> <strong>SELECT 'aXbc' REGEXP '[a-dXYZ]';</strong> -> 1
mysql> <strong>SELECT 'aXbc' REGEXP '^[a-dXYZ]$';</strong> -> 0
mysql> <strong>SELECT 'aXbc' REGEXP '^[a-dXYZ]+$';</strong> -> 1
mysql> <strong>SELECT 'aXbc' REGEXP '^[^a-dXYZ]+$';</strong> -> 0
mysql> <strong>SELECT 'gheis' REGEXP '^[^a-dXYZ]+$';</strong> -> 1
mysql> <strong>SELECT 'gheisa' REGEXP '^[^a-dXYZ]+$';</strong> -> 0
· [.characters.]
在括号表达式中(使用[和]),匹配用于校对元素的字符序列。字符为单个字符或诸如新行等字符名。在文件regexp/cname.h中,可找到字符名称的完整列表。
mysql> <strong>SELECT '~' REGEXP '[[.~.]]';</strong> -> 1
mysql> <strong>SELECT '~' REGEXP '[[.tilde.]]';</strong> -> 1
· [=character_class=]
在括号表达式中(使用[和]),[=character_class=]表示等同类。它与具有相同校对值的所有字符匹配,包括它本身,例如,如果o和(+)均是等同类的成员,那么[[=o=]]、[[=(+)=]]和[o(+)]是同义词。等同类不得用作范围的端点。
· [:character_class:]
在括号表达式中(使用[和]),[:character_class:]表示与术语类的所有字符匹配的字符类。标准的类名称是:
alnum |
文字数字字符 |
alpha |
文字字符 |
blank |
空白字符 |
cntrl |
控制字符 |
digit |
数字字符 |
graph |
图形字符 |
lower |
小写文字字符 |
图形或空格字符 |
|
punct |
标点字符 |
space |
空格、制表符、新行、和回车 |
upper |
大写文字字符 |
xdigit |
十六进制数字字符 |
它们代表在ctype(3)手册页面中定义的字符类。特定地区可能会提供其他类名。字符类不得用作范围的端点。
mysql> <strong>SELECT 'justalnums' REGEXP '[[:alnum:]]+';</strong> -> 1

InnoDBBufferPool通過緩存數據和索引頁來減少磁盤I/O,提升數據庫性能。其工作原理包括:1.數據讀取:從BufferPool中讀取數據;2.數據寫入:修改數據後寫入BufferPool並定期刷新到磁盤;3.緩存管理:使用LRU算法管理緩存頁;4.預讀機制:提前加載相鄰數據頁。通過調整BufferPool大小和使用多個實例,可以優化數據庫性能。

MySQL与其他编程语言相比,主要用于存储和管理数据,而其他语言如Python、Java、C 则用于逻辑处理和应用开发。MySQL以其高性能、可扩展性和跨平台支持著称,适合数据管理需求,而其他语言在各自领域如数据分析、企业应用和系统编程中各有优势。

MySQL值得學習,因為它是強大的開源數據庫管理系統,適用於數據存儲、管理和分析。 1)MySQL是關係型數據庫,使用SQL操作數據,適合結構化數據管理。 2)SQL語言是與MySQL交互的關鍵,支持CRUD操作。 3)MySQL的工作原理包括客戶端/服務器架構、存儲引擎和查詢優化器。 4)基本用法包括創建數據庫和表,高級用法涉及使用JOIN連接表。 5)常見錯誤包括語法錯誤和權限問題,調試技巧包括檢查語法和使用EXPLAIN命令。 6)性能優化涉及使用索引、優化SQL語句和定期維護數據庫。

MySQL適合初學者學習數據庫技能。 1.安裝MySQL服務器和客戶端工具。 2.理解基本SQL查詢,如SELECT。 3.掌握數據操作:創建表、插入、更新、刪除數據。 4.學習高級技巧:子查詢和窗口函數。 5.調試和優化:檢查語法、使用索引、避免SELECT*,並使用LIMIT。

MySQL通過表結構和SQL查詢高效管理結構化數據,並通過外鍵實現表間關係。 1.創建表時定義數據格式和類型。 2.使用外鍵建立表間關係。 3.通過索引和查詢優化提高性能。 4.定期備份和監控數據庫確保數據安全和性能優化。

MySQL是一個開源的關係型數據庫管理系統,廣泛應用於Web開發。它的關鍵特性包括:1.支持多種存儲引擎,如InnoDB和MyISAM,適用於不同場景;2.提供主從復制功能,利於負載均衡和數據備份;3.通過查詢優化和索引使用提高查詢效率。

SQL用於與MySQL數據庫交互,實現數據的增、刪、改、查及數據庫設計。 1)SQL通過SELECT、INSERT、UPDATE、DELETE語句進行數據操作;2)使用CREATE、ALTER、DROP語句進行數據庫設計和管理;3)複雜查詢和數據分析通過SQL實現,提升業務決策效率。

MySQL的基本操作包括創建數據庫、表格,及使用SQL進行數據的CRUD操作。 1.創建數據庫:CREATEDATABASEmy_first_db;2.創建表格:CREATETABLEbooks(idINTAUTO_INCREMENTPRIMARYKEY,titleVARCHAR(100)NOTNULL,authorVARCHAR(100)NOTNULL,published_yearINT);3.插入數據:INSERTINTObooks(title,author,published_year)VA


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver Mac版
視覺化網頁開發工具

記事本++7.3.1
好用且免費的程式碼編輯器

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。