數據庫單表查詢 - 簡單篩選查詢

寫在前面:博主是一隻通過實戰開發歷練後投身培訓事業的「小山豬」,暱稱取自動畫片《獅子王》中的「彭彭」,老是以樂觀、積極的心態對待周邊的事物。本人的技術路線從Java全棧工程師一路奔向大數據開發、數據挖掘領域,現在終有小成,願將昔日所獲與你們交流一二,但願對學習路上的你有所助益。同時,博主也想經過這次嘗試打造一個完善的技術圖書館,任何與文章技術點有關的異常、錯誤、注意事項均會在末尾列出,歡迎你們經過各類方式提供素材。數據庫

  • 對於文章中出現的任何錯誤請你們批評指出,必定及時修改。微信

  • 有任何想要討論和學習的問題可聯繫我:zhuyc@vip.163.com。學習

  • 發佈文章的風格因專欄而異,均自成體系,不足之處請你們指正。測試

數據庫單表查詢 - 簡單篩選查詢

本文關鍵字:數據庫、數據查詢語言、DQL大數據

以前咱們已經瞭解了SQL語言的分類,能夠劃分爲:DDL(數據定義語言)、DML(數據操縱語言)、DQL(數據查詢語言)、DCL(數據控制語言)、TPL(事務處理語言)、CCL(指針控制語言),本文將介紹DQL。

1、單表查詢

單表查詢指的是所須要查詢的數據都包含在一個表中,咱們只須要對一張表進行操做就能夠完成查詢,屬於比較簡單的查詢。本文使用的測試數據表結構以下:動畫

1. 語法結構

在進行查詢時,須要用到的主要關鍵字包括:SELECT、FROM、WHERE。spa

  • SELECT:指定要查詢的列,會直接影響結果表的列的個數.net

  • FROM:指定要查詢的表3d

  • WHERE:[可選],在須要進行數據篩選時使用,用於引導查詢條件指針

在使用表名和列名時,爲了防止和關鍵字衝突,可使用反引號,語法結構以下:

SELECT `列名`,`列名`,... FROM `表名` WHERE 查詢條件;

2. 全字段查詢

全字段查詢表明直接查詢出表中全部的列,咱們能夠直接用*號表明,會按照定義數據表時指定的字段順序,順次羅列出數據表的全部列,咱們也能夠手動寫出每一個列的名稱來進行順序的調整。

SELECT * FROM student;

3. 部分列查詢

部分列查詢指的是隻須要顯示錶中的某幾列,此時須要羅列出每一個列的名稱,用逗號隔開,所聲明的列的名稱必須與表中已經定義的列名相同。

SELECT S_no,S_name,S_sex FROM Student;

4. 別稱的使用

若是在進行數據查詢時,咱們想要自定義結果表所顯示的列名(表頭),可使用AS關鍵字(多數狀況下可省略)。同時,別稱還能方便的代替表名或某些表達式(避免重複計算)。

SELECT S_no AS `學號`,S_name AS `姓名`,S_sex AS `性別` FROM Student;

2、簡單篩選

若是說SELECT後面的字段個數影響了查詢結果的列,那麼數據篩選(或稱條件查詢)就會影響到查詢結果的行,有不少不符合條件的數據會被過濾掉。在進行數據篩選時,會直接用某個列的列名來作爲參照,該列下的每一個數據都會和給定的條件進行比較,若是知足就會被取出,在進行比較時必定要注意數據類型的匹配

1. 簡單運算符

最簡單的運算符其實就是和是否相等,是否大於或小於相關的符號:

  • 等於(=)

SELECT S_no AS `學號`,S_name AS `姓名`,S_sex AS `性別`
FROM Student
WHERE S_sex = '男';

  • 不等於(<>)

SELECT S_no AS `學號`,S_name AS `姓名`,S_sex AS `性別`
FROM Student
WHERE S_sex <> '男';

  • 大於

SELECT * FROM Choice
WHERE Score > 80;

  • 小於

SELECT * FROM Choice
WHERE Score > 80;

  • 小於等於

SELECT * FROM Course
WHERE Course_score <= 5;

  • 大於等於

SELECT * FROM Course
WHERE Course_score >= 3;

2. 範圍查詢

若是咱們須要查找的數據在某一個區間內,而且兩邊都是閉區間,這個時候可使用BETWEENxxx AND xxx。

SELECT * FROM Course
WHERE Course_score BETWEEN 5 AND 8;

3. 空值判斷

在數據庫中存在一個特殊的數據類型,用於標記未存入任何數據,用NULL表示。須要注意的是空字符串並不等同於NULL

  • IS NULL:爲空判斷

SELECT * FROM Choice
WHERE Score IS NULL;

  • IS NOT NULL:非空判斷

SELECT * FROM Choice
WHERE Score IS NOT NULL;

4. 模糊查詢

在有些時候咱們只模糊記得數據的部分信息,或在商城中須要作根據部分名稱來查詢商品的功能,這個時候據須要使用LIKE關鍵字。使用LIKE時,須要和通配符一同使用,常常與LIKE搭配的通配符以下:

  • %:任意個數的任意字符,包括0個字符

  • _:任意的單個字符

SELECT * FROM Teacher
WHERE T_name LIKE '王%';

SELECT * FROM Teacher
WHERE T_name LIKE '%一%';

5. 去重查詢

在進行數據查詢時,若是某一列存在重複的數據,而咱們只須要知道都有哪些數據出現過,這個時候就可使用去重,將重複的數據過濾掉。須要注意的是:去重查詢至關因而一種查詢模式,與具體的列無關。默認查詢時,在SELECT關鍵字省略了ALL,意爲全量數據查詢模式,在使用DISTINCT時要緊跟SELECT關鍵字。

  • 查詢單列

若是隻查詢一列的數據,獲得的就是這一列去重後的結果:

SELECT DISTINCT Course_no
FROM Choice;

  • 查詢多列

若是查詢的列有多個,將會顯示這兩個列的惟一組合,也就是說若是單獨看某一列數據,頗有可能會有重複數據,但這些列的數據的組合必定是惟一的。

SELECT DISTINCT Course_no,S_no
FROM Choice;

6. 多值匹配

若是想要表達某個值多是一組值中的一個,這樣的邏輯,可使用關鍵字IN。在IN以後使用一對括號,其中羅列多個值,若是列中的數據在這些值中出現,則表明匹配。

SELECT S_no,Class_no,S_name,S_sex
FROM Student
WHERE Class_no IN ('js0001','js0002');

3、條件運算

1. AND

在WHERE中可使用AND鏈接兩個條件,表明同時成立。

2. OR

在WHERE中可使用OR鏈接兩個條件,表明成立其一即取出數據。

3. NOT

在WHERE中可使用NOT(條件)來表達反向的邏輯。

 

 

 

本文分享自微信公衆號 - 微光點亮星辰(SandTower)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索