亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

一、聚合函數(shù)

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

常用聚合函數(shù)

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

二、分組查詢

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

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

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

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

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

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

group by結合having使用

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

group by結合with rollup使用

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

三、連接查詢

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

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

四、子查詢

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

子查詢與主查詢關系

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

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

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

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

E-R模型:即實體-關系模型,用來描述數(shù)據(jù)庫存儲數(shù)據(jù)的結構模型

  • 實體:用矩形表示,并標注實體名稱
  • 屬性:用橢圓表示,并標注屬性名稱
  • 關系:用菱形表示,并標注關系名稱
    • 一對一:如人與身份證,在兩個表中創(chuàng)建一個字段,其中一個表存儲另一個表的主鍵值,關系是一種數(shù)據(jù),需要通過一個字段存儲在表中
    • 一對多:如學生表與班級表,在多的一方表(學生表)中創(chuàng)建一個字段,存儲班級表的主鍵值
    • 多對多:如學生表、班級表、科目表,新建一張表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 外鍵名;

總結

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

相關文章

  • mysql5.6建立索引報錯1709問題及解決

    mysql5.6建立索引報錯1709問題及解決

    這篇文章主要介紹了mysql5.6建立索引報錯1709問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • MySQL 數(shù)據(jù)丟失排查案例

    MySQL 數(shù)據(jù)丟失排查案例

    這篇文章主要分享了MySQL 數(shù)據(jù)丟失排查的一個案例,幫助大家更好的理解和學習使用MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下
    2021-05-05
  • ERROR 1862 (HY000): Your password has expired. To log in you must change it using a .....

    ERROR 1862 (HY000): Your password has expired. To log in you

    當你在安裝 MySQL過程中,通過mysqld --initialize 初始化 mysql 操作后,生成臨時密碼后,沒有直接進行 MySQL連接,中途重啟服務或者重啟機器等,導致密碼失效問題,怎么處理呢,感興趣的朋友一起看看吧
    2019-11-11
  • mysql數(shù)據(jù)庫鎖的產(chǎn)生原因及解決辦法

    mysql數(shù)據(jù)庫鎖的產(chǎn)生原因及解決辦法

    這篇文章主要介紹了mysql數(shù)據(jù)庫鎖的產(chǎn)生原因及解決辦法,需要的朋友可以參考下
    2016-01-01
  • MySQL字符串函數(shù)詳解(推薦)

    MySQL字符串函數(shù)詳解(推薦)

    下面小編就為大家?guī)硪黄狹ySQL字符串函數(shù)詳解(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • mysql5.7.21啟動異常的修復方法

    mysql5.7.21啟動異常的修復方法

    這篇文章主要為大家詳細介紹了mysql5.7.21啟動異常的修復方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • MySQL磁盤碎片整理實例演示

    MySQL磁盤碎片整理實例演示

    這篇文章主要給大家介紹了關于MySQL磁盤碎片整理的相關資料,為什么數(shù)據(jù)庫會產(chǎn)生碎片,以及如何清理磁盤碎片,還有一些清理磁盤碎片的注意事項,需要的朋友可以參考下
    2022-04-04
  • Mysql中MyISAM和InnoDB的區(qū)別及說明

    Mysql中MyISAM和InnoDB的區(qū)別及說明

    這篇文章主要介紹了Mysql中MyISAM和InnoDB的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • 在MAC OS X上安裝MYSQL

    在MAC OS X上安裝MYSQL

    MAC系統(tǒng)自帶apache和php,但是沒有mysql,那么我們只好自力更生了,經(jīng)過一番研究,借鑒網(wǎng)上一位大神的文章,終于成功安裝上了mysql,這里推薦給有需要的朋友
    2014-10-10
  • MySQL分區(qū)之RANGE分區(qū)詳解

    MySQL分區(qū)之RANGE分區(qū)詳解

    Range分區(qū)是最常用的一種分區(qū)類型,它是根據(jù)某個列的值劃分為幾個連續(xù)的區(qū),行數(shù)據(jù)根據(jù)該列的值分別放入到不同的分區(qū),這篇文章主要給大家介紹了關于MySQL分區(qū)之RANGE分區(qū)的相關資料,需要的朋友可以參考下
    2022-04-04

最新評論