最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL中SQL命令語句條件查詢實(shí)例詳解

 更新時(shí)間:2022年11月08日 10:54:50   作者:學(xué)無止境我愛學(xué)習(xí)  
SELECT語句可以通過WHERE條件來設(shè)定查詢條件,查詢結(jié)果是滿足查詢條件的記錄,下面這篇文章主要給大家介紹了關(guān)于MySQL中SQL命令語句條件查詢的相關(guān)資料,需要的朋友可以參考下

一、聚合函數(shù)

聚合函數(shù):又叫組函數(shù),用來對(duì)表中的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)和計(jì)算,結(jié)合group by分組使用,用于統(tǒng)計(jì)和計(jì)算分組數(shù)據(jù)

常用聚合函數(shù)

  • count(col):求指定列的總行數(shù)
  • max(col):求指定列的最大值
  • min(col):求指定列的最小值
  • sum(col):求指定列的和
  • avg(col):求指定列的平均值(不計(jì)null值)
    • ifnull(字段名,指定值):判斷指定字段是否為null,若為空則使用指定值替換

二、分組查詢

分組查詢:將查詢結(jié)果按指定字段進(jìn)行分組,字段中數(shù)據(jù)相等的分為一組

語法:group by 列名 [having 條件表達(dá)式][with rollup]

  • 列名:指按指定字段的值進(jìn)行分組
  • having 條件表達(dá)式:用來過濾分組后的數(shù)據(jù)
  • with rollup:在所有記錄最后加上一條記錄,顯示select查詢時(shí)聚合函數(shù)的統(tǒng)計(jì)和計(jì)算結(jié)果

group by:用于單個(gè)或多個(gè)字段分組

group_concat(字段名):統(tǒng)計(jì)每個(gè)分組指定字段的信息集合,每個(gè)信息間用逗號(hào)分隔

group by結(jié)合聚合函數(shù)使用

group by結(jié)合having使用

having作用:與where類似,用來過濾分組數(shù)據(jù),只能用于group by

group by結(jié)合with rollup使用

with rollup作用:在記錄最后新增一行,顯示select查詢時(shí)聚合函數(shù)的統(tǒng)計(jì)和計(jì)算結(jié)果

三、連接查詢

連接查詢:能夠?qū)崿F(xiàn)多個(gè)表之間的查詢,適合查詢的字段數(shù)據(jù)來自不同的表的情況

內(nèi)連接:查詢兩個(gè)表中符合條件的共有記錄,根據(jù)連接查詢條件取出兩個(gè)表中的交集
內(nèi)連接查詢語法:select 字段 from 表1 inner join 表2 on 表1.字段1=表2.字段2;
    inner join:內(nèi)連接查詢關(guān)鍵字
    on:連接查詢條件
 
左連接:以左表為主根據(jù)條件查詢右表數(shù)據(jù),若右表數(shù)據(jù)不存在則用null填充
左連接查詢語法:select 字段 from 表1 left join 表2 on 表1.字段1=表2.字段2;
    left join:左連接查詢關(guān)鍵字
    on:連接查詢條件
    表1為左表,表2為右表
 
右連接:以右表為主根據(jù)條件查詢左表數(shù)據(jù),若左表數(shù)據(jù)不存在則用null值填充
右連接查詢語法:select 字段 from 表1 right join 表2 on 表1.字段1=表2.字段2;
    right join:右連接查詢關(guān)鍵字
    on:連接查詢條件
    表1為左表,表2為右表
 
自連接:左表與右表為同一個(gè)表,根據(jù)連接查詢條件查詢兩個(gè)表中數(shù)據(jù),必須對(duì)表起別名
自連接查詢語法:select 字段 from 表名 as 別名1 inner join 表名 as 別名2 on 別名1.字段1=別名2.字段2;
自連接查詢就是把一張表模擬成左右兩張表,然后進(jìn)行連表查詢,是一種特殊的連接方式,連接的表還是本身這張表 

四、子查詢

子查詢:在select語句中嵌入另一個(gè)select語句,被嵌入的select稱為子查詢語句,外部select稱為主查詢 

子查詢與主查詢關(guān)系

  • 子查詢是嵌入在主查詢中的
  • 子查詢輔助主查詢,用來充當(dāng)條件或數(shù)據(jù)源
  • 子查詢可以獨(dú)立存在,是一條完整的select語句

五、數(shù)據(jù)庫設(shè)計(jì)三范式及E-R模型

范式:對(duì)設(shè)計(jì)數(shù)據(jù)庫提出的一些規(guī)范,共有8范式,一般只需遵循3范式 

  • 第一范式(1NF):強(qiáng)調(diào)列的原子性,即列不能再細(xì)分為其他列
  • 第二范式(2NF):滿足1NF,另有兩部分內(nèi)容
    • 表必須有一個(gè)主鍵
    • 非主鍵字段必須完全依賴于主鍵,不能只依賴與主鍵一部分
  • 第三范式(3NF):滿足 2NF,另外非主鍵列必須直接依賴于主鍵,不能存在傳遞依賴。即不能存在:非主鍵列 A 依賴于非主鍵列 B,非主鍵列 B 依賴于主鍵的情況

E-R模型:即實(shí)體-關(guān)系模型,用來描述數(shù)據(jù)庫存儲(chǔ)數(shù)據(jù)的結(jié)構(gòu)模型

  • 實(shí)體:用矩形表示,并標(biāo)注實(shí)體名稱
  • 屬性:用橢圓表示,并標(biāo)注屬性名稱
  • 關(guān)系:用菱形表示,并標(biāo)注關(guān)系名稱
    • 一對(duì)一:如人與身份證,在兩個(gè)表中創(chuàng)建一個(gè)字段,其中一個(gè)表存儲(chǔ)另一個(gè)表的主鍵值,關(guān)系是一種數(shù)據(jù),需要通過一個(gè)字段存儲(chǔ)在表中
    • 一對(duì)多:如學(xué)生表與班級(jí)表,在多的一方表(學(xué)生表)中創(chuàng)建一個(gè)字段,存儲(chǔ)班級(jí)表的主鍵值
    • 多對(duì)多:如學(xué)生表、班級(jí)表、科目表,新建一張表C,這個(gè)表只有兩個(gè)字段,一個(gè)用于存儲(chǔ)A的主鍵值,一個(gè)用于存儲(chǔ)B的主鍵值

六、外鍵約束

外鍵約束:對(duì)外鍵字段的值進(jìn)行更新和插入時(shí)會(huì)和引用表中字段的數(shù)據(jù)進(jìn)行驗(yàn)證,若數(shù)據(jù)不合法則更新和插入失敗,能夠保證數(shù)據(jù)有效性

添加和刪除外鍵約束

已存在的字段添加外鍵約束:alter table 表1 add foreign key(表1中的外鍵) references 表2(表2主鍵);
                    或:alter table 從表 add foreign key(外鍵字段) references 主表(主鍵字段);
例:alter table students add foreign key(sid) references classe(id);
 
創(chuàng)建表添加外鍵約束:
create table teacher(
    id int primary key auto_increment not null,
    name varchar(10),
    sid int not null,
    foreign key(sid) references students(id)
);
 
刪除外鍵約束:
獲取外鍵約束名稱:show create table 表名;
刪除:alter table 表名 drop foreign key 外鍵名;

總結(jié)

到此這篇關(guān)于MySQL中SQL命令語句條件查詢的文章就介紹到這了,更多相關(guān)SQL命令語句條件查詢內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mysql使用source 命令亂碼問題解決方法

    mysql使用source 命令亂碼問題解決方法

    從windows上導(dǎo)出一個(gè)sql執(zhí)行文件,再倒入到unbutn中,結(jié)果出現(xiàn)亂碼,折騰7-8分鐘,解決方式在導(dǎo)出mysql sql執(zhí)行文件的時(shí)候,指定一下編碼格式
    2013-04-04
  • Mysql外鍵約束的創(chuàng)建與刪除的使用

    Mysql外鍵約束的創(chuàng)建與刪除的使用

    本文主要介紹了Mysql外鍵約束的創(chuàng)建與刪除的使用,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Mysql?Innodb存儲(chǔ)引擎之索引與算法

    Mysql?Innodb存儲(chǔ)引擎之索引與算法

    索引對(duì)數(shù)據(jù)庫有多重要,我想大家都已經(jīng)知道了吧,下面這篇文章主要給大家介紹了關(guān)于Mysql?Innodb存儲(chǔ)引擎之索引與算法的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-02-02
  • ?MySQL中?between and的基本用法?操作方法

    ?MySQL中?between and的基本用法?操作方法

    本文主要介紹了MySQL中BETWEEN AND操作符的基本用法,包括數(shù)值查詢和時(shí)間范圍查詢,同時(shí)還詳細(xì)解釋了NOT BETWEEN AND的使用方法,并通過實(shí)例進(jìn)行了詳細(xì)的演示,其中,BETWEEN AND可以用于數(shù)值、日期等類型的字段,包括邊界值
    2024-10-10
  • MySQL中的distinct與group by比較使用方法

    MySQL中的distinct與group by比較使用方法

    今天無意中聽到有同事在討論,distinct和group by有什么區(qū)別,下面這篇文章主要給大家介紹了關(guān)于MySQL去重中distinct和group by區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • 解決mysql使用not in 包含null值的問題

    解決mysql使用not in 包含null值的問題

    這篇文章主要介紹了解決mysql使用not in 包含null值的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • MySQL啟動(dòng)錯(cuò)誤解決方法

    MySQL啟動(dòng)錯(cuò)誤解決方法

    本文給大家分享的是mysql啟動(dòng)時(shí)報(bào)錯(cuò)的排查過程及方法,非常實(shí)用,有相同問題的小伙伴可以來參考下
    2016-12-12
  • linux安裝兩個(gè)mysql(8.0和5.7),并同時(shí)使用方式

    linux安裝兩個(gè)mysql(8.0和5.7),并同時(shí)使用方式

    這篇文章主要介紹了如何在CentOS?7上下載和安裝MySQL?8.0和MySQL?5.7.30,并詳細(xì)描述了安裝步驟,包括解壓、配置、初始化和啟動(dòng)等過程
    2024-12-12
  • Mysql中正則表達(dá)式Regexp常見用法

    Mysql中正則表達(dá)式Regexp常見用法

    這篇文章主要介紹了Mysql中正則表達(dá)式Regexp常見用法,MySql REGEXP運(yùn)算符匹配字符串,mysql正則REGEXP學(xué)習(xí)練習(xí)筆記,需要的朋友可以參考下
    2020-02-02
  • CentOS 7.4 64位安裝配置MySQL8.0的詳細(xì)步驟

    CentOS 7.4 64位安裝配置MySQL8.0的詳細(xì)步驟

    本文分步驟給大家介紹了CentOS 7.4 64位安裝配置MySQL8.0 的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-10-10

最新評(píng)論

华安县| 抚松县| 库尔勒市| 桑植县| 兴山县| 南靖县| 东安县| 抚顺县| 呈贡县| 河东区| 雷波县| 安塞县| 龙门县| 巴楚县| 衡水市| 西乌珠穆沁旗| 汕尾市| 额尔古纳市| 海淀区| 绿春县| 渝北区| 手游| 阜新市| 河间市| 江城| 临高县| 嘉祥县| 汉中市| 武山县| 邹城市| 电白县| 云浮市| 曲麻莱县| 遂平县| 邯郸市| 利川市| 微山县| 大洼县| 邮箱| 乃东县| 应城市|