前言
上篇已經講過資料庫與表相關的一些相關的操作了,如果你對這部分依舊不太熟悉建議先去看看
傳送門:【MySQL】邏輯庫與資料表相關操作.
這篇就來說一下資料庫中表的基本查詢,看見是基本查詢,就知道肯定有高級查詢,這個我們下一篇來講,我們把資料庫的查詢分為兩部分來講,它的重要性就不言而喻了,很多資料庫都是多查詢,少修改的,查詢也是使用資料庫的一項基本技能,所以大家要多多練習,接下來正文開始,
目錄
- 前言
- 建表
- 基本查詢
- 普通查詢
- 分頁查詢
- 選擇查詢
- 資料排序
- 執行順序
- 結語
建表
大家也許會覺得很奇怪,你標題不是寫的資料庫查詢嗎?為什么第一部分是建表呢?
因為我們查詢就是對于資料庫中的表進行查詢的,沒有表我們怎么進行查詢呢?所以我們第一部分是建表方便后面示例,這樣大家理解起來就方便了,正好我們也可以復習一下上一篇學到的知識
建表程序:
create table t_student(
id INT PRIMARY KEY NOT NULL,
name VARCHAR(4) NOT NULL,
age INT NOT NULL,
sex CHAR(1) NOT NULL,
class VARCHAR(10) ,
birthplace varchar(10)
);
INSERT INTO t_student VALUES('88201','張三',18,'男','軟體211','浙江杭州');
INSERT INTO t_student VALUES('88202','李四',19,'男','軟體212','河南鄭州');
INSERT INTO t_student VALUES('88203','小紅',18,'女','計算機211','北京');
INSERT INTO t_student VALUES('88204','王五',16,'男','軟體214','浙江杭州');
INSERT INTO t_student VALUES('88205','小藍',17,'女','計算機212','江蘇常州');
INSERT INTO t_student VALUES('88206','小王',20,'男','軟體211','北京');
INSERT INTO t_student VALUES('88207','張四',18,'男','計算機211','江蘇常州');
建表結果:

基本查詢
表已經建好了,接下來我們正式開始學習資料庫的基本查詢
普通查詢
普通查詢就是查詢出表中有哪些資訊,格式為:
SELECT *FROM 表名;
示例:
SELECT * FROM t_student;
輸出:

同時我們還可以查詢某些欄位的資訊,如下:
示例:
SELECT name,class,birthplace FROM t_student;
輸出:

如果我們要查詢每個人年齡加10歲的年齡我們可以這樣
SELECT name,age+10 FROM t_student;
輸出:

但是這樣查詢出來的資訊,看起來可能不太舒服,那么我們可以重新弄命名,如下:
SELECT name,age+10 AS new_age FROM t_student;
輸出:

如果我們查詢出來的資訊里面有重復的資料,那我們可以在SELECT后面加上DISTINCT這個關鍵字,可以達到去重效果,大家可以自己試試效果,
但是請記住這是資訊查詢并不會改變原始表里面的資訊
分頁查詢
如果你需要查詢特定的幾條連續資料,我們可以對資料進行分頁,這里用到關鍵字LIMIT,具體格式為
SELECT 欄位名1,欄位名2,… FROM 表名 LIMIT 分頁起始頁,每頁顯示條數;
這里要注意默認第一條資料的起始頁為0
示例:
SELECT * FROM t_student LIMIT 2,2;
輸出:

如果分頁起始頁被省略了,那么默認為0,即:從第一條資料開始
選擇查詢
我們在進行資料庫查詢的時候往往是需要查出符合要求的一些資料,而不是所有資料,在這個時候我們就得用到選擇查詢里面的WHERE關鍵字了,格式如下:
SELECT 欄位名1,欄位名2,… FROM 表名 WHERE 條件運算式
示例:
查詢學生表里面年齡大于18歲的人有哪些?
SELECT name,age FROM t_student WHERE age>18;
輸出:

為了滿足多種查詢場所,往往我們在查詢時候的條件運算式不止一個,運算式之間的關系也是多變的,在條件查詢時常用到的關鍵字還有:
IN關鍵字:用于判斷某個子彈的值是是否在指定集合中,
AND關鍵字:在多條件查詢時滿足所有條件的資料
OR關鍵字:滿足任意一個條件的資料
NOT關鍵字:滿足這個條件取反的資料
BETWEEN AND關鍵字:查詢區間值,判斷某個欄位值是否在指定的范圍內,
DISTINCT:查詢會過濾表中重復的資料
LIKE關鍵字:模糊查詢,與%和_聯用
- 百分號(%)通配符:匹配任意長度的字串,包括空字符,如:“%c”匹配以字符C開頭的,“w%g”表示以w開頭g結尾的字串“可,”%C%“表示出現c的字串,
- 下劃線( _ )通配符:只匹配單個 字符,需要匹配多個需要使用多個下劃線通配符,
- 加入字串中出現了_或%則用\進行轉義,如“_“和”%”,
示例:查詢出來自軟體211班級且出生地不在北京的成年人
SELECT id,name,age,birthplace
FROM t_student
WHERE age>=18 AND class="軟體211" AND NOT birthplace="北京";
輸出:

資料排序
我們在查詢時候往往需要查出來的資料,是有一定順序的,這樣我們觀察起來更加方便,這時候我們就需要使用到關鍵字 ORDER BY 了,格式如下:
SELECT 欄位名1,欄位名2,… FROM 表名 ORDER BY 排序依據欄位 ASC|DESC;
注:
ASC:順序,正序;數值 :遞增,字母:自然順序(a-z),可省略
DESC:倒序 ,反序 ;數值:遞減, 字母:自然反序,不可省略
示例:
SELECT * FROM t_student ORDER BY age;
輸出:

執行順序
學習完了基本查詢,是不是大家就開始迷茫,他們的書寫順序還有執行順序了啊,首先這個肯定不是按順序執行的,正解如下:
首先在SQL陳述句中空格與換行對語法沒有破壞,所以在書寫的時候如果過長我們可以把它們分行書寫,看起來也比較舒服,可讀性高,
書寫順序是:
SELECT id,name,age,birthplace
FROM t_student
WHERE age>=18 AND class="軟體211" AND NOT birthplace="北京"
ORDER BY age
LIMIT 2;
執行順序為:
FROM->WHERE->SELECT->ORDER BY->LIMIT
結語
這些僅僅是資料庫的基本查詢,下一篇我們來總結高級查詢,想要熟練掌握這些東西還是得多多動手操作,不要以為自己懂了就不動了,
歡迎關注本專欄,持續更新…
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/413522.html
標籤:其他
上一篇:分支陳述句和回圈陳述句(上)
下一篇:堆疊的基本應用
