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

mysql學(xué)習(xí)筆記之完整的select語(yǔ)句用法實(shí)例詳解

 更新時(shí)間:2020年04月10日 11:54:40   作者:隨風(fēng)行云  
這篇文章主要介紹了mysql學(xué)習(xí)筆記之完整的select語(yǔ)句用法,結(jié)合實(shí)例形式詳細(xì)分析了mysql select語(yǔ)句各種常見參數(shù)、使用方法及操作注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了mysql學(xué)習(xí)筆記之完整的select語(yǔ)句用法。分享給大家供大家參考,具體如下:

本文內(nèi)容:

  • 完整語(yǔ)法
  • 去重選項(xiàng)
  • 字段別名
  • 數(shù)據(jù)源
  • where
  • group by
  • having
  • order by
  • limit

首發(fā)日期:2018-04-11


完整語(yǔ)法:

先給一下完整的語(yǔ)法,后面將逐一來講解。

基礎(chǔ)語(yǔ)法:select 字段列表 from 數(shù)據(jù)源;

完整語(yǔ)法:select 去重選項(xiàng) 字段列表 [as 字段別名] from 數(shù)據(jù)源 [where子句] [group by 子句] [having子句] [order by 子句] [limit子句];


去重選項(xiàng)::

  • 去重選項(xiàng)就是是否對(duì)結(jié)果中完全相同的記錄(所有字段數(shù)據(jù)都相同)進(jìn)行去重:
    • all:不去重
    • distinct:去重
  • 語(yǔ)法:select 去重選項(xiàng) 字段列表 from 表名;

示例:

去重前:image ,去重后image

create table student(name varchar(15),gender varchar(15));
insert into student(name,gender) values("lilei","male");
insert into student(name,gender) values("lilei","male");
select * from student;
select distinct * from student;

補(bǔ)充:

  • 注意:去重針對(duì)的是查詢出來的記錄,而不是存儲(chǔ)在表中的記錄。如果說僅僅查詢的是某些字段,那么去重針對(duì)的是這些字段。

字段別名:

  • 字段別名是給查詢結(jié)果中的字段另起一個(gè)名字
  • 字段別名只會(huì)在當(dāng)次查詢結(jié)果中生效。
  • 字段別名一般都是輔助了解字段意義(比如我們定義的名字是name,我們希望返回給用戶的結(jié)果顯示成姓名)、簡(jiǎn)寫字段名
  • 語(yǔ)法:select 字段 as 字段別名 from 表名;

示例:

使用前:image,使用后image

create table student(name varchar(15),gender varchar(15));
insert into student(name,gender) values("lilei","male");
insert into student(name,gender) values("lilei","male");
select * from student;
select name as "姓名",gender as "性別" from student;

數(shù)據(jù)源:

  • 事實(shí)上,查詢的來源可以不是“表名”,只需是一個(gè)二維表即可。那么數(shù)據(jù)來源可以是一個(gè)select結(jié)果。
  • 數(shù)據(jù)源可以是單表數(shù)據(jù)源,多表數(shù)據(jù)源,以及查詢語(yǔ)句
    • 單表:select 字段列表 from 表名;
    • 多表: select 字段列表 from 表名1,表名2,…; 【多表查詢時(shí)是將每個(gè)表中的x條記錄與另一個(gè)表y條記錄組成結(jié)果,組成的結(jié)果的記錄條數(shù)為x*y】【可以稱為笛卡爾積】
      • image
    • 查詢語(yǔ)句:select 字段列表 fromr (select語(yǔ)句) as 表別名;【這是將一個(gè)查詢結(jié)果作為一個(gè)查詢的目標(biāo)二維表,需要將查詢結(jié)果定義成一個(gè)表別名才能作為數(shù)據(jù)源】
    • -- 示例
      select name from (select * from student) as d;

where子句:

  • where子句是用于篩選符合條件的結(jié)果的。

where幾種語(yǔ)法:

  • 基于值:
    • = : where 字段 =值  ;查找出對(duì)應(yīng)字段等于對(duì)應(yīng)值的記錄。(相似的,<是小于對(duì)應(yīng)值,<=是小于等于對(duì)應(yīng)值,>是大于對(duì)應(yīng)值,>=是大于等于對(duì)應(yīng)值,!=是不等于),例如:where name = 'lilei'
    • like:where 字段 like 值 ;功能與 = 相似 ,但可以使用模糊匹配來查找結(jié)果。例如:where name like 'li%'
  • 基于值的范圍:
    • in: where 字段 in 范圍;查找出對(duì)應(yīng)字段的值在所指定范圍的記錄。例如:where age in (18,19,20)
    • not in : where 字段 not in 范圍;查找出對(duì)應(yīng)字段的值不在所指定范圍的記錄。例如:where age not in (18,19,20)
    • between x and y :where 字段 between x and y;查找出對(duì)應(yīng)字段的值在閉區(qū)間[x,y]范圍的記錄。例如:where age between 18 and 20。
  • 條件復(fù)合:
    • or : where 條件1 or 條件2… ; 查找出符合條件1或符合條件2的記錄。
    • and:  where 條件1 and 條件2… ; 查找出符合條件1并且符合條件2的記錄。
    • not : where not 條件1 ;查找出不符合條件的所有記錄。
    • &&的功能與and相同;||與or功能類似,!與not 功能類似。

補(bǔ)充:

  • where是從磁盤中獲取數(shù)據(jù)的時(shí)候就進(jìn)行篩選的。所以某些在內(nèi)存是才有的東西where無(wú)法使用。(字段別名什么的是本來不是“磁盤中的數(shù)據(jù)”(是在內(nèi)存這中運(yùn)行時(shí)才定義的),所以where無(wú)法使用,一般都依靠having來篩選).
select name as n ,gender from student where name ="lilei";
-- select name as n ,gender from student where n ="lilei"; --報(bào)錯(cuò)
select name as n ,gender from student having n ="lilei";

group by 子句:

    • group by 可以將查詢結(jié)果依據(jù)字段來將結(jié)果分組。
    • 語(yǔ)法:select 字段列表 from 表名 group by 字段;
      • 【字段可以有多個(gè),實(shí)際就是二次分組】image
-- 示例
select name,gender,count(name) as "組員" from student as d group by name;
select name,gender,count(name) as "組員" from student as d group by name,gender;

補(bǔ)充:

  • 實(shí)際上,group by 的作用主要是統(tǒng)計(jì)(使用情景很多,比如說統(tǒng)計(jì)某人的總分?jǐn)?shù),學(xué)生中女性的數(shù)量。。),所以一般會(huì)配合一些統(tǒng)計(jì)函數(shù)來使用:
    • count(x):統(tǒng)計(jì)每組的記錄數(shù),x是*時(shí)代表記錄數(shù),為字段名時(shí)代表統(tǒng)計(jì)字段數(shù)據(jù)數(shù)(除去NULL)
    • max(x):統(tǒng)計(jì)最大值,x是字段名
    • min(x):統(tǒng)計(jì)最小值,x是字段名
    • avg(x):統(tǒng)計(jì)平均值,x是字段名
    • sum(x):統(tǒng)計(jì)總和,x是字段名
  • group by 字段 后面還可以跟上asc或desc,代表分組后是否根據(jù)字段排序。

having子句:

    • having功能與where類似,不過having的條件判斷發(fā)生在數(shù)據(jù)在內(nèi)存中時(shí),所以可以使用在內(nèi)存中才發(fā)生的數(shù)據(jù),如“分組”,“字段別名”等。
    • 語(yǔ)法:select 字段列表 from 表名 having 條件;【操作符之類的可以參考where的,增加的只是一些“內(nèi)存”中的篩選條件】
-- 示例
select name as n ,gender from student having n ="lilei";
select name,gender,count(*) as "組員" from student as d group by name,gender having count(*) >2 ;-- 這里只顯示記錄數(shù)>2的分組

order by 子句:

  • order by 可以使查詢結(jié)果按照某個(gè)字段來排序
  • 語(yǔ)法:select 字段列表 from 表名 order by 字段 [asc|desc];
    • 字段可以有多個(gè),從左到右,后面的排序基于前面的,(比如:先按name排序,再按gender排序,后面的gender排序是針對(duì)前面name排序時(shí)name相同的數(shù)據(jù))
    • asc代表排序是遞增的
    • desc代表是遞減的
    • 也可以指定某個(gè)字段的排序方法,比如第一個(gè)字段遞增,第二個(gè)遞減。只需要在每個(gè)字段后面加asc或desc即可(雖然默認(rèn)不加是遞增,但還是加上更清晰明確)。
-- 示例
select * from student order by name;
select * from student order by name,gender;
select * from student order by name asc,gender desc;

limit子句:

  • limit是用來限制結(jié)果數(shù)量的。與where\having等配合使用時(shí),可以限制匹配出的結(jié)果。但凡是涉及數(shù)量的時(shí)候都可以使用limit(這里只是強(qiáng)調(diào)limit的作用,不要過度理解)
  • 語(yǔ)法:select 字段列表 from 表名 limit [offset,] count;
    • count是數(shù)量
    • offset是起始位置,offset從0開始,可以說是每條記錄的索引號(hào)
-- 示例
select * from student limit 1;
select * from student limit 3,1;
select * from student where name ="lilei" limit 1;
select * from student where name ="lilei" limit 3,1;

更多關(guān)于MySQL相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《MySQL查詢技巧大全》、《MySQL事務(wù)操作技巧匯總》、《MySQL存儲(chǔ)過程技巧大全》、《MySQL數(shù)據(jù)庫(kù)鎖相關(guān)技巧匯總》及《MySQL常用函數(shù)大匯總

希望本文所述對(duì)大家MySQL數(shù)據(jù)庫(kù)計(jì)有所幫助。

相關(guān)文章

  • MySQL?數(shù)據(jù)庫(kù)聚合查詢和聯(lián)合查詢操作

    MySQL?數(shù)據(jù)庫(kù)聚合查詢和聯(lián)合查詢操作

    這篇文章主要介紹了MySQL?數(shù)據(jù)庫(kù)聚合查詢和聯(lián)合查詢操作,需要的朋友可以參考下
    2021-12-12
  • Mysql中聚簇索引和非聚簇索引的區(qū)別詳解

    Mysql中聚簇索引和非聚簇索引的區(qū)別詳解

    這篇文章主要介紹了Mysql中聚簇索引和非聚簇索引的區(qū)別詳解,聚簇索引就是按照每張表的主鍵構(gòu)造一顆B+樹,同時(shí)葉子節(jié)點(diǎn)中存放的就是整張表的行記錄數(shù)據(jù),也將聚集索引的葉子節(jié)點(diǎn)稱為數(shù)據(jù)頁(yè),需要的朋友可以參考下
    2023-07-07
  • 一文帶你搞懂MySQL的MVCC機(jī)制

    一文帶你搞懂MySQL的MVCC機(jī)制

    MySQL中的MVCC機(jī)制想必大家都有所耳聞吧,雖然在平時(shí)MySQL使用過程中基本上用不到,但是面試中出場(chǎng)率十分高,那么你對(duì)MVCC機(jī)制了解多少呢,MVCC機(jī)制是用來干嘛的呢,底層的工作原理是怎么樣的呢,本文就帶你一探究竟
    2023-07-07
  • MySQL8.0.21.0社區(qū)版安裝教程(圖文詳解)

    MySQL8.0.21.0社區(qū)版安裝教程(圖文詳解)

    這篇文章主要介紹了MySQL8.0.21.0社區(qū)版安裝教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • 利用Sqoop實(shí)現(xiàn)MySQL數(shù)據(jù)導(dǎo)入Hive的全流程

    利用Sqoop實(shí)現(xiàn)MySQL數(shù)據(jù)導(dǎo)入Hive的全流程

    在大數(shù)據(jù)領(lǐng)域中,MySQL 和 Hive 是兩種常見的存儲(chǔ)工具,MySQL 適合事務(wù)處理,而 Hive 則是用于離線數(shù)據(jù)分析的利器,本文將全面講解如何使用 Sqoop 將 MySQL 數(shù)據(jù)導(dǎo)入 Hive 的完整流程,包括環(huán)境配置、具體操作步驟以及最佳實(shí)踐和常見問題解決方案,需要的朋友可以參考下
    2024-12-12
  • SQL 四種連接-左外連接、右外連接、內(nèi)連接、全連接詳解

    SQL 四種連接-左外連接、右外連接、內(nèi)連接、全連接詳解

    這篇文章主要介紹了SQL 四種連接-左外連接、右外連接、內(nèi)連接、全連接詳解的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • MySQL 的模塊不能安裝的解決方法

    MySQL 的模塊不能安裝的解決方法

    這篇文章主要介紹了MySQL 的模塊不能安裝的解決方法的相關(guān)資料,需要的朋友可以參考下
    2015-07-07
  • MySQL如何修改密碼過期時(shí)間

    MySQL如何修改密碼過期時(shí)間

    MySQL修改密碼過期時(shí)間的方法,包括修改my.ini文件、設(shè)置賬號(hào)過期時(shí)間、查看過期時(shí)間和賬號(hào)狀態(tài),并在修改后重啟服務(wù)和密碼
    2025-02-02
  • MySQL中的長(zhǎng)事務(wù)示例詳解

    MySQL中的長(zhǎng)事務(wù)示例詳解

    這篇文章主要給大家介紹了關(guān)于MySQL中長(zhǎng)事務(wù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • MySQL 將文件導(dǎo)入數(shù)據(jù)庫(kù)(load data Statement)

    MySQL 將文件導(dǎo)入數(shù)據(jù)庫(kù)(load data Statement)

    本文主要介紹了MySQL 將文件導(dǎo)入數(shù)據(jù)庫(kù),可以使用load data infile語(yǔ)句將文件中的數(shù)據(jù)加載到數(shù)據(jù)庫(kù)中,感興趣的可以了解一下
    2024-09-09

最新評(píng)論

西乡县| 嘉义县| 黄大仙区| 辉南县| 甘德县| 淮南市| 固阳县| 青河县| 叙永县| 兰坪| 巴南区| 原平市| 江北区| 澜沧| 湖州市| 延川县| 巴彦淖尔市| 宜兰县| 东乌珠穆沁旗| 沙洋县| 定西市| 虎林市| 西华县| 林州市| 新丰县| 织金县| 弥勒县| 新疆| 南昌县| 山东省| 镇平县| 麻城市| 顺昌县| 杨浦区| 建湖县| 太仓市| 玉田县| 崇文区| 保亭| 阿图什市| 镇原县|