中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL單表查詢的方法有哪些

發布時間:2022-11-29 09:43:40 來源:億速云 閱讀:127 作者:iii 欄目:開發技術

這篇文章主要講解了“MySQL單表查詢的方法有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“MySQL單表查詢的方法有哪些”吧!

    前言

    查詢是數據操作至關重要的一部分,比如說在所有商品中查找出價格在規定范圍內的所有商品,要想把數據庫中的數據在客戶端中展示給用戶,一般都進行了查詢的操作。

    在實際開發中,我們要根據不同的需求,并且考慮查詢的效率來決定怎樣進行查詢,學習查詢前,可以先看看查詢的完整語法:

    SELECT
        字段列表
    FROM
        表名列表
    WHERE
        條件列表
    GROUP BY
        分組字段
    HAVING
        分組后條件
    ORDER BY
        排序字段
    LIMIT
        分頁限定

    根據查詢的完整語法中的關鍵字,我們分別來學習基礎查詢,條件查詢,排序查詢,分組查詢和分頁查詢。

    我們使用以下的案例學習單表查詢:

    -- 刪除stu表
    drop table if exists stu;
    -- 創建stu表
    CREATE TABLE stu (
    id int, -- 編號
    name varchar(10), -- 姓名
    age int, -- 年齡
    gender varchar(5), -- 性別
    math double(5,2), -- 數學成績
    english double(5,2) -- 英語成績
    
    );
    -- 添加數據
    INSERT INTO stu(id,name,age,gender,math,english)
    VALUES
    (1,'小張',23,'男',66,78),
    (2,'小李',20,'女',98,87),
    (3,'小陳',55,'男',56,77),
    (4,'小樊',20,'女',76,65),
    (5,'小馬',20,'男',86,NULL),
    (6,'小趙',57,'男',99,99);

    在Navicat中選中SQL執行:

    MySQL單表查詢的方法有哪些

    1. 基礎查詢

    1.1 基礎查詢語法

    查詢多個字段:

    select 字段列表 from 表名;

    查詢全部字段:

    select * from 表名;

    去除重復記錄:

    select distinct 字段列表 from 表名;

    起別名操作:

    select 字段名 別名 from 表名;

    1.2 基礎查詢練習

    我們使用前言中的案例進行基礎查詢練習:

    查詢多個字段的練習:

    select name,math from stu;

    MySQL單表查詢的方法有哪些

    起別名操作練習:

    select name,english 英語成績 from stu;

    MySQL單表查詢的方法有哪些

    2. 條件查詢

    2.1 條件查詢語法

    一般語法:

    select 字段列表 from 表名 where 條件列表;

    條件查詢一般配合運行符進行,下面是常見的幾個運算符:

    運算符功能描述
    > < = !大于 小于 等于 不等于
    between&hellip;and&hellip;在這個范圍之內
    in(&hellip;)多選一
    is null / is not null是null / 不是null
    and 或 &&并且
    or 或 ||或者

    2.2 條件查詢練習

    我們使用前言中的案例進行條件查詢練習:

    查詢年齡大于20的學生信息:

    select * from stu where age>20;

    MySQL單表查詢的方法有哪些

    查詢年齡等于18歲 或者 年齡等于20歲 或者 年齡等于21歲的學生信息:

    select * from stu where age in(18,20,21);

    MySQL單表查詢的方法有哪些

    模糊查詢使用like關鍵字,可以使用通配符進行占位:

    • _ : 代表單個任意字符

    • % : 代表任意個數字符

    查詢姓名中含有張的學生信息:

    select * from stu where name like '%張%';

    MySQL單表查詢的方法有哪些

    3. 排序查詢

    3.1 排序查詢語法

    select 字段列表 from 表名 order by 排序字段名1 [排序方式]...;

    注:排序方式又兩種:分別是升序ASC和降序DESC,默認情況下是升序ASC。

    3.2 排序查詢練習

    我們使用前言中的案例進行排序查詢練習:

    4. 聚合函數

    4.1 聚合函數語法

    什么是聚合函數呢?在進行查詢操作時,我們往往需要對一整列進行運算,例如我們可以計算一整列成績數據的平均值,我們就要使用聚合函數。下面是常見的聚合函數:

    函數名功能
    count(列名)統計數量(一般選用不為null的列)
    max(列名)最大值
    min(列名)最小值
    sum(列名)求和
    avg(列名)平均值

    一般語法:

    select 聚合函數 from 表名;

    注:NULL值不參與聚合函數運算。

    4.2 聚合函數練習

    我們使用前言中的案例進行聚合函數的練習:

    統計該表中一共有幾個學生:

    select count(id) from stu;

    MySQL單表查詢的方法有哪些

    上面我們使用某一字段進行運算,這樣做可能面臨的問題是某一個值可能是NULL,所以我們一般使用 * 進行運算,因為一行中不可能所有的字段都是NULL。

    select count(*) from stu;

    查詢數學成績的平均分:

    select avg(math) from stu;

    MySQL單表查詢的方法有哪些

    5. 分組查詢

    5.1 分組查詢語法

    select 字段列表 from 表名 [where 分組前的條件限定] group by 分組字段名 [having 分組后的條件過濾]

    注:分組之后,查詢的字段為聚合函數和分組字段,查詢其他字段無任何意義。

    5.2 分組查詢練習

    我們使用前言中的案例進行分組查詢練習:

    查詢男同學和女同學各自的數學平均分,以及各自人數,要求:分數低于70分的不參與分組:

    select gender, avg(math),count(*) from stu where math > 70 group by gender;

    MySQL單表查詢的方法有哪些

    查詢男同學和女同學各自的數學平均分,以及各自人數,要求:分數低于70分的不參與分組,分組之后人數大于2個的:

    select gender, avg(math),count(*) from stu where math > 70 group by gender having count(*) > 2;

    MySQL單表查詢的方法有哪些

    注:where 和 having 執行時機不一樣:where 是分組之前進行限定,不滿足where條件,則不參與分組,而having是分組之后對結果進行過濾。所以,where 不能對聚合函數進行判斷,having 可以。

    6. 分頁查詢

    6.1 分頁查詢語法

    在大家的印象中,網頁在展示大量的數據時,往往不是把數據一下全部展示出來,也是用分頁展示的形式,其實就是對數據進行分頁查詢的操作,即每次只查詢一頁的數據展示到頁面上。

    select 字段列表 from 表名 limit 查詢起始索引,查詢條目數;

    limit 關鍵字中,查詢起始索引這個參數是從0開始的。

    6.2 分頁查詢練習

    我們使用前言中的案例進行分頁查詢練習:

    從0開始查詢,查詢3條數據:

    select * from stu limit 0,3;

    MySQL單表查詢的方法有哪些

    起始索引 = (當前頁碼 - 1) * 每頁顯示的條數

    感謝各位的閱讀,以上就是“MySQL單表查詢的方法有哪些”的內容了,經過本文的學習后,相信大家對MySQL單表查詢的方法有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    双桥区| 田林县| 灌云县| 邢台市| 辉南县| 舞阳县| 邻水| 东乡族自治县| 桃江县| 宜兴市| 庆阳市| 和平县| 天长市| 崇信县| 崇仁县| 噶尔县| 漳平市| 亚东县| 正蓝旗| 涟源市| 盐池县| 昌黎县| 邳州市| 马龙县| 兰溪市| 新蔡县| 腾冲县| 比如县| 横山县| 铁岭市| 高碑店市| 浦东新区| 霍林郭勒市| 绩溪县| 科尔| 山丹县| 清苑县| 乐东| 陆河县| 双辽市| 鄂托克旗|