SQL查詢及匹配條件

2021-09-20 17:16:53 字數 1903 閱讀 9096

1建立測試表

1)在test庫中建立stu_info表

以root使用者登入mysql伺服器:

開啟test庫:

建立stu_info表,包括name、gender、age三個字段:

確認表結構:

2)插入記錄

確認stu_info表的所有記錄內容:

2)常用的表記錄統計函式

查詢stu_info表一共有多少條記錄(本例中為5條):

計算stu_info表中各學員的平均年齡、最大年齡、最小年齡:

計算stu_info表中男學員的個數:

3)字段值的數值比較

列出stu_info表中年齡為21歲的學員記錄:

列出stu_info表中年齡超過21歲的學員記錄:

列出stu_info表中年齡大於或等於21歲的學員記錄:

列出stu_info表中年齡在20歲和24歲之間的學員記錄:

4)多個條件的組合

列出stu_info表中年齡小於23歲的女學員記錄:

列出stu_info表中年齡小於23歲的學員,或者女學員的記錄:

如果某個記錄的姓名屬於指定範圍內的乙個,則將其列出:

5)使用select做數學計算

計算1234與5678的和:

計算1234與5678的乘積:

計算1.23456789除以3的結果:

輸出stu_info表各學員的姓名、15年後的年齡:

6)使用模糊查詢,like引領

以下劃線 _ 匹配單個字元,% 可匹配任意多個字元。

列出stu_info表中姓名以「j」開頭的學員記錄:

列出stu_info表中姓名以「j」開頭且只有3個字母的學員記錄:

7)使用正規表示式,regexp引領

列出stu_info表中姓名以「j」開頭且以「y」結尾的學員記錄:

效果等同於:

出stu_info表中姓名以「j」開頭或者以「y」結尾的學員記錄:

效果等同於:

8)按指定的字段排序,order by

列出stu_info表的所有記錄,按年齡排序:

因預設為公升序(ascend)排列,所以上述操作等效於:

若要按降序(descend)排列,則將asc改為desc即可:

9)限制查詢結果的輸出條數,limit

查詢stu_info表的所有記錄,只列出前3條:

列出stu_info表中年齡最大的3條學員記錄:

10)分組查詢結果,group by

針對stu_info表,按性別分組,分別統計出男、女學員的人數:

列出查詢欄位時,可以通過as關鍵字來指定顯示別名,比如上述操作可改為:

2.基於前面的yg_info表,完成相關查詢操作

1)確認yg_info表的所有記錄,以方便對比查詢效果

2)列出yg_info表中月工資低於20000且姓張的員工

3)分別統計yg_info表中男、女員工的人數

4)其他查詢條件操作練習

列出yg_info表中所有員工記錄,只看姓名、性別、部門、入職時間、qq號碼:

列出其中2023年12月20日之**職的員工記錄:

列出其中2023年12月20日之**職的女員工記錄:

5)綜合練習1——為武當派的所有員工提薪20%

檢視修改前的記錄:

月工資增加20%,更新操作:

確認更新後的結果:

6)綜合練習2——將武當派的所有員工併入明教

檢視修改前的記錄:

修改武當派所有員工的所屬「部門」,更新操作:

確認更新後的結果:

7)綜合練習3——替換桃花島所有員工的電子郵箱字尾,改為jianghu.com

替換操作可使用replace(字段,old,new)函式。

檢視修改前的記錄:

替換郵箱字尾,更新操作:

確認更新後的結果:

SQL語句 查詢條件模糊匹配若干字段

資料庫版本 sql server 2012 測試資料庫 northwind,安裝方法請參考這篇文章 以下是 orders 的表結構 模糊查詢 orderdate requireddate 和 shippeddate 任意一項中含有 1997 08 01 這天的記錄,可以用 like 來進行匹配,or...

SQL 條件查詢

按條件表示式 其中 意思一樣,都是不等於,建議用 邏輯表示式 and or not 模糊查詢 like between and in is null 檢視name第3個字元為n,第五個為z的記錄 select from user where name like n z between and 可以提...

SQL多條件查詢子查詢SQL多條件查詢子查詢

多條件搜尋時where 1 1並不高效,如果使用這種方法,在資料庫中會做全表查詢 對每行資料都進行掃瞄比對 會無法使用索引等優化查詢的策略,建立的索引會暫時失效。case函式 case必須和end一起使用,下接when then select 數學成績 case when math 100 then...