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

MySQL中SQL命令語句條件查詢實例詳解

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

一、聚合函數(shù)

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

常用聚合函數(shù)

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

二、分組查詢

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

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

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

group by:用于單個或多個字段分組

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

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

group by結(jié)合having使用

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

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

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

三、連接查詢

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

內(nèi)連接:查詢兩個表中符合條件的共有記錄,根據(jù)連接查詢條件取出兩個表中的交集
內(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為右表
 
自連接:左表與右表為同一個表,根據(jù)連接查詢條件查詢兩個表中數(shù)據(jù),必須對表起別名
自連接查詢語法:select 字段 from 表名 as 別名1 inner join 表名 as 別名2 on 別名1.字段1=別名2.字段2;
自連接查詢就是把一張表模擬成左右兩張表,然后進行連表查詢,是一種特殊的連接方式,連接的表還是本身這張表 

四、子查詢

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

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

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

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

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

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

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

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

六、外鍵約束

外鍵約束:對外鍵字段的值進行更新和插入時會和引用表中字段的數(shù)據(jù)進行驗證,若數(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

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

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

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

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

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

    Mysql?Innodb存儲引擎之索引與算法

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

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

    本文主要介紹了MySQL中BETWEEN AND操作符的基本用法,包括數(shù)值查詢和時間范圍查詢,同時還詳細(xì)解釋了NOT BETWEEN AND的使用方法,并通過實例進行了詳細(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值的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • MySQL啟動錯誤解決方法

    MySQL啟動錯誤解決方法

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

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

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

    Mysql中正則表達式Regexp常見用法

    這篇文章主要介紹了Mysql中正則表達式Regexp常見用法,MySql REGEXP運算符匹配字符串,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 的方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-10-10

最新評論

荔浦县| 四平市| 布尔津县| 平南县| 巫溪县| 红桥区| 牙克石市| 营山县| 宁武县| 四川省| 乐都县| 泰宁县| 交口县| 宜宾县| 红原县| 增城市| 东莞市| 门源| 安丘市| 鄂温| 如东县| 景洪市| 涿鹿县| 仙游县| 施甸县| 鹤山市| 敦煌市| 哈巴河县| 都兰县| 广平县| 开原市| 文登市| 蓝山县| 泸定县| 察隅县| 恭城| 睢宁县| 丰城市| 监利县| 常宁市| 永城市|