欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MYSQL中的簡(jiǎn)單查詢

 更新時(shí)間:2025年02月06日 11:04:48   作者:jay丿  
這篇文章詳細(xì)介紹了MySQL中常見(jiàn)的查詢語(yǔ)法,包括SELECT語(yǔ)句的簡(jiǎn)單查詢、基于表的查詢、基于條件的查詢、基于分組的查詢等,它還解釋了COUNT()、SUM()、AVG()、MAX()和MIN()等聚合函數(shù)的使用,以及GROUP BY和HAVING子句在分組查詢中的應(yīng)用

MYSQL簡(jiǎn)單查詢

完整語(yǔ)法:

select [distinct] , … [from [where ] [group by , … [having ] ] [order by asc| desc ] [limit [offset , ] rows ] ]

select 簡(jiǎn)單查詢

select  1 ;  -- 往往用來(lái) 做 數(shù)據(jù)庫(kù)心跳檢測(cè)
select user() ;  -- 獲取 當(dāng)前登錄的用戶信息
select version() ;  -- 獲取數(shù)據(jù)庫(kù)的版本號(hào)
select now() ;  -- 獲取 當(dāng)前系統(tǒng)時(shí)間 
select last_insert_id() ;  -- 獲取 最后插入的主鍵(必須是自增)

基于 表查詢

select  <columnName> , ....  from  <tableName> ; 
select * from <tableName>  ;  -- 查詢 表中所有的字段 , 在生產(chǎn)環(huán)境中 不推薦使用 * 查詢所有字段 

基于條件的查詢

select  <columnName> , ... from <tableName>  where <condition> ;
select * from tb_user where name = 'admin'  ;  --  查詢的時(shí)候 name的值 不區(qū)分大小寫(xiě) 
select * from tb_user where binary name = 'admin' ;  -- 查詢的 name 值 區(qū)分大小寫(xiě) 

基于分組的查詢

  • count() : 用來(lái) 統(tǒng)計(jì) 個(gè)數(shù)
--  查詢 學(xué)生表中 有多少個(gè) 學(xué)生 

select count(*)  from  student ;  -- 以行為單位 ,統(tǒng)計(jì)有多少個(gè)學(xué)生
select count(stuNo) from student ; -- 根據(jù)學(xué)號(hào) 來(lái)統(tǒng)計(jì) 有多少個(gè)學(xué)生
select count(1) from student ;  -- 根據(jù)常量值 進(jìn)行統(tǒng)計(jì)、如果有值,個(gè)數(shù) + 1 

從性能上 、 count(1 ) > count( * ), count(column) 只統(tǒng)計(jì)該列中 值不為 null 的 行數(shù)(null不參與統(tǒng)計(jì)) 。

如果 count(column) 中的 column 中的列 有索引,那么性能 會(huì) 比 count(1) 高 、 如果沒(méi)有索引,性能 比 count(*) 還低

  • sum() : 求和
-- 查詢學(xué)生的總成績(jī) 
select sum(score) from student ;  -- sum 函數(shù) 參數(shù) 只能傳入 字段名,  字段列中對(duì)應(yīng)的 null 不參與 求和
  • avg() : 求平均值
-- 查詢學(xué)生 的平均成績(jī) 
select avg(score) from student ;  -- sum 函數(shù) 參數(shù) 只能傳入 字段名,  字段列中對(duì)應(yīng)的 null 不參與 求平均值
select  avg ( ifnull(score,  0) ) from student ;  -- 字段列對(duì)應(yīng)的 null, 則 取 0 , 仍舊參與 求 平均值 
  • max() : 求最大值
-- 查詢 最高分 
select  max(score) from student ; 
  • min() : 求最小值
-- 查詢 最低分 
select min(score) from student ;  -- 空值不參與 求 最小值 

group by 實(shí)現(xiàn) 分組查詢

-- 查詢 不同 性別的 學(xué)生人數(shù) 
select  sex,  count(1) from student group by sex ;

group by 分組 對(duì)查詢的 列 有 要求 , 要么 查詢的 列 是一個(gè) 聚合 列 、要么 出現(xiàn) 在 group by 的 后面,作為分組依據(jù)。

having 分組 篩選

對(duì)分組后的結(jié)果 進(jìn)行過(guò)濾 、篩選, having 是 基于 group by 存在 的。

 -- 查詢 班級(jí)中 同名 、同性別 的 學(xué)生名 和 性別
 select name, gender from student group by name ,gender having count(1) > 1 ;

where 和 having 的區(qū)別

  1. where 是 對(duì) 表中的 數(shù)據(jù) 進(jìn)行篩選 , having 是 對(duì) 分組后的 結(jié)果 進(jìn)行 篩選 。
  2. where 和 having 如果 同時(shí) 存在 ,那么 where 先篩選 再分組 再過(guò)濾
  3. where 條件 中 不能使用 聚合函數(shù) 、但 having 可以使用 聚合函數(shù)
  4. 能用 where 篩選過(guò)濾的數(shù)據(jù) 、盡量不要用 having 篩選

數(shù)據(jù)排序 order by

-- 查詢 所有的學(xué)生信息 、按照 成績(jī)降序排列,當(dāng)成績(jī)相同的時(shí)候 ,按照 出生日期 降序排列 
select * from student order by score desc , birth desc  ;

當(dāng) 有多個(gè)字段 參與排序的時(shí)候, 優(yōu)先根據(jù) 第一個(gè)排序的字段 進(jìn)行排序,當(dāng) 第一個(gè)字段 的值 相同的時(shí)候,才會(huì)根據(jù)第二個(gè)字段的值進(jìn)行排序、依此類推。

分頁(yè)查詢 limit

select * from student  limit 3 ;  -- 查詢表中 前 3 條數(shù)據(jù) 
select * from  student  limit  10 ,  3  ;  -- 查詢表中 從 第 11條數(shù)據(jù)開(kāi)始 3 條數(shù)據(jù) 
select * from  student limit 10 offset 3 ;  

分頁(yè)查詢的時(shí)候, 如果 包含 order by , 那么 建議根據(jù) 唯一鍵 進(jìn)行排序 、如果 根據(jù) 的字段值有大量的重復(fù)、建議 使用 多個(gè)字段排序 , 否則 會(huì)出現(xiàn) 分頁(yè)數(shù)據(jù)紊亂 。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Mysql中一千萬(wàn)條數(shù)據(jù)怎么快速查詢

    Mysql中一千萬(wàn)條數(shù)據(jù)怎么快速查詢

    很多人在使用Mysql時(shí)沒(méi)有考慮到優(yōu)化問(wèn)題,如果遇到上千萬(wàn)數(shù)據(jù)量的表,查詢上千萬(wàn)數(shù)據(jù)量的時(shí)候會(huì)發(fā)生什么問(wèn)題,本文就來(lái)介紹一下如何快速查詢一千萬(wàn)條數(shù)據(jù),感興趣的可以了解一下
    2021-12-12
  • MySQL窗口函數(shù)OVER()用法及說(shuō)明

    MySQL窗口函數(shù)OVER()用法及說(shuō)明

    這篇文章主要介紹了MySQL窗口函數(shù)OVER()用法及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 一文了解MySQL的四大子查詢

    一文了解MySQL的四大子查詢

    本文主要介紹了一文了解MySQL的四大子查詢,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • Mac下忘記Mysql的root用戶密碼的解決方法

    Mac下忘記Mysql的root用戶密碼的解決方法

    mac中安裝MySQL時(shí)系統(tǒng)會(huì)自動(dòng)為root 賬戶生成一個(gè)密碼(改密碼一般為一個(gè)不好記的字符串),若自己沒(méi)有記住改密碼,這時(shí) mysql 就無(wú)法進(jìn)入了。解決方案是修改root 賬戶的密碼,問(wèn)題是mysql進(jìn)不去如何修改,下面就是改問(wèn)題的解決方法:
    2017-03-03
  • MySQL復(fù)合查詢(多表查詢、子查詢)的實(shí)現(xiàn)

    MySQL復(fù)合查詢(多表查詢、子查詢)的實(shí)現(xiàn)

    MySQL復(fù)合查詢是指在一個(gè)SQL語(yǔ)句中使用多個(gè)查詢條件,以過(guò)濾和檢索數(shù)據(jù),本文主要介紹了MySQL復(fù)合查詢(多表查詢、子查詢)的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-12-12
  • 正確使用MySQL INSERT INTO語(yǔ)句

    正確使用MySQL INSERT INTO語(yǔ)句

    MySQL數(shù)據(jù)庫(kù)是一種小型關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),MySQL數(shù)據(jù)庫(kù)的優(yōu)化是MySQL數(shù)據(jù)庫(kù)操作過(guò)程中非常重要的工作,MySQL數(shù)據(jù)庫(kù)的優(yōu)化能夠?qū)崿F(xiàn)MySQL數(shù)據(jù)庫(kù)操作的簡(jiǎn)便。
    2015-08-08
  • MySQL文本文件導(dǎo)入及批處理模式應(yīng)用說(shuō)明

    MySQL文本文件導(dǎo)入及批處理模式應(yīng)用說(shuō)明

    MySQL文本文件導(dǎo)入及批處理模式應(yīng)用說(shuō)明,需要的朋友可以參考下。
    2011-09-09
  • MySQL的driverClassName與url使用方式

    MySQL的driverClassName與url使用方式

    這篇文章主要介紹了MySQL的driverClassName與url使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • mysql日常使用中常見(jiàn)報(bào)錯(cuò)大全

    mysql日常使用中常見(jiàn)報(bào)錯(cuò)大全

    MySQL初學(xué)者新安裝好數(shù)據(jù)庫(kù)及使用過(guò)程中經(jīng)常遇到以下幾類錯(cuò)誤,本文給大家詳細(xì)整理并給出完美解決方案,感興趣的朋友跟隨小編一起看看吧
    2023-03-03
  • mysql的查詢緩存說(shuō)明

    mysql的查詢緩存說(shuō)明

    mysql的Query Cache有其特殊的業(yè)務(wù)場(chǎng)景,也不像其他數(shù)據(jù)庫(kù)產(chǎn)品,緩存查詢語(yǔ)句的執(zhí)行計(jì)劃等信息,而是直接緩存查詢語(yǔ)句的記錄集和對(duì)應(yīng)的SQL語(yǔ)句
    2013-02-02

最新評(píng)論