程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL學習筆記2

MySQL學習筆記2

編輯:MySQL綜合教程

數據查詢 在查詢數據庫中的數據時,如果數據中涉及中文字符串,有可能在輸出時會出現亂碼,那麼最後在執行查詢操作之前,通過set names語句設置其編碼格式,然後在輸出中文字符串就不會出現亂碼了。帶IN關鍵字的查詢
格式:SELECT * FROM 表名 WHERE 條件 [NOT] IN (元素1,元素2, 元素3……,元素n);帶BETWEEN AND 的范圍查詢
格式:SELECT * FROM 表名 WHERE 條件 [NOT] BETWEEN 取值1 AND 取值2;使用DISTINCT關鍵字去除結果中的重復行
格式:select distinct 字段名 from 表名;單獨使用GROUP BY關鍵字,查詢結果只顯示每組的一條記錄。使用GROUP BY關鍵字和GROUP_CONCAT()函數查詢,可以將每個組中的所有字段值都顯示出來。聚合函數查詢 COUNT()函數,對於除“*”以外的任何參數,返回所選集合中非NULL值的行的數目;對於參數“*”,返回選擇集合中所有行的數目,包含NULL值的行。沒有WHERE子句的COUNT(*)是經過內部優化的,能夠快速地返回所有的記錄總數。SUM()函數可以求出表中某個字段取值的總和。AVG()函數可以求出表中某個字段取值的平均值。連接查詢
內連接查詢
內連接是最普遍的連接類型,而且是最勻稱的,因為它們要求構成連接的每一部分的每個表的匹配,不匹配的行將被排除。
內連接的最常見的例子是相等連接,也就是連接後的表中的某個字段與每個表中的都相同。這種情況下,最後的結果集只包含參加連接的表中與指定字段相符的行。外連接查詢
外連接是指使用OUTER JOIN關鍵字將兩個表連接起來。外連接生成的結果集不僅包含符合連接條件的行數據,而且還包括左表(左外連接時的表)、右表(右外連接時的表)或兩邊連接表(全外連接時的表)中所有的數據行。語法格式如下:
SELECT 字段名稱 FROM 表名1 LEFT|RIGHT JOIN 表名2 ON 表名1.字段名1=表名2.屬性名2;
外連接分為左外連接(LEFT JOIN)、右外連接(RIGHT JOIN)和全外連接3種類型。 左外連接(LEFT JOIN)是指將左表中的所有數據分別與右表中的每條數據進行連接組合,返回的結果除內連接的數據外,還包括左表中不符合條件的數據,並在右表的相應列中添加NULL值。
右外連接(RIGHT JOIN)是指將右表中的所有數據分別與左表中的每條數據進行連接組合,返回的結果除內連接的數據外,還包括右表中不符合條件的數據,並在左表的相應列中添加NULL。子查詢 帶EXISTS關鍵字的 子查詢,返回結果值為true或者false。合並結果查詢 UNION關鍵字是將所有的查詢結果合並到一起,然後去除相同記錄;而UNION ALL關鍵字則只是簡單的將結果合並到一起。定義表和字段的別名 直接在表名後添加一個別名,在之後的操作中即可使用別名;字段取別名的基本形式:字段名 [AS] 別名使用正則表達式查詢 正則表達式是用某種模式去匹配一類字符串的一個方式。正則表達式的查詢能力比通配字符的查詢能力更強大,而且更加的靈活。基本形式:字段名 REGEXP '匹配方式';

正則表達式的模式字符:

模式字符

含義

應用舉例

^

匹配以特定字符或字符串開頭的記錄

使用“^”表達式查詢tb_book表中books字段以字母php開頭的記錄,語句如下:

select books from tb_book where books REGEXP '^php';

$

匹配以特定符或字符串結尾的記錄

使用“$”表達式查詢tb_book表中books字段以“模塊”結尾的記錄,語句如下:

select books from tb_book where books REGEXP '模塊$';

.

匹配字符串的任意一個字符,包括回車和換行

使用“.”表達式來查詢tb_book表中books字段中包含P字符的記錄,語句如下:

select books from tb_book where books REGEXP 'P.';

[字符集合]

匹配“字符集合”中的任意一個字符

使用“[]”表達式來查詢tb_book表中books字段中包含PCA字符的記錄,語句如下:

select books from tb_book where books REGEXP '[PCA]';

[^字符集合]

匹配除“字符集合”以外的任意一個字符

查詢tb_program表中talk字段值中包含cz字母以外的記錄,語句如下:

select talk from tb_program where talk regexp '[^c-z]';

S1|S2|S3

匹配S1、S2和S3中的任意一個字符串

查詢tb_books表中books字段中包含php、c或者java字符中任意一個字符的記錄,語句如下:

select books from tb_books where books regexp 'php|c|java';

*

匹配多個該符號之前的字符,包括0和1個

使用“*”表達式查詢tb_book表中books字段中A字符前出現過J字符的記錄,語句如下:

select books from tb_book where books regexp 'J*A';

+

匹配多個該符號之前的字符,包括1個

使用“+”表達式來查詢tb_book表中books字段中A字符前面至少出現過一個J字符,語句如下:

select books from tb_book where books regexp 'J+A';

字符串{N}

匹配字符串出現N次

使用{N表達式查詢tb_book表中books字段中連續出現3次a字符的記錄,語句如下:

select books from tb_book where books regexp 'a{3}';

字符串{M,N}

匹配字符串出現至少M次,最多N次

使用{M,N}表達式查詢tb_book表中books字段中最少出現2次,最多出現4次a字符的記錄,語句如下:

select books from tb_book where books regexp 'a{2,4}';

這裡的正則表達式與Java語言、PHP語言等編程語言中的正則表達式基本一致。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved