日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

读取mysql数据到select_MySQL数据库8(十三)高级数据操作之select指令

發(fā)布時(shí)間:2024/9/27 数据库 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 读取mysql数据到select_MySQL数据库8(十三)高级数据操作之select指令 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

查詢數(shù)據(jù)

完整的查詢指令:

select? select選項(xiàng) 字段列表 ?from 數(shù)據(jù)源 where 條件 group by 分組 having 條件 order by 排序 limit 限制

select選項(xiàng)

系統(tǒng)該如何對(duì)待查詢得到的結(jié)果:

1、all 默認(rèn)的,表示保存所有的記錄;

2、distinct:去重,去除重復(fù)的記錄,只保留一條(所有的字段都相同)

字段列表

有的時(shí)候需要從多張表獲取數(shù)據(jù),在獲取數(shù)據(jù)的時(shí)候,可能存在不同表中有同名的字段,需要將同名的字段命名成不同名的; alias別名

基本語法: 字段名 [as] 別名;

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

from是為前面的查詢提供數(shù)據(jù),數(shù)據(jù)源只要是一個(gè)符合二維表結(jié)構(gòu)的數(shù)據(jù)即可。

單表數(shù)據(jù)

from 表名

多表數(shù)據(jù)

從多張表獲取數(shù)據(jù):

基本語法:from 表1,表2…;

結(jié)果:表的記錄數(shù)相乘,字段數(shù)拼接

本質(zhì):從第一張表取出一條記錄,去拼湊第二張表的所有記錄,保留所有結(jié)果。得到的結(jié)果在數(shù)學(xué)上有一個(gè)專業(yè)的說法:笛卡爾積,這個(gè)結(jié)果除了給數(shù)據(jù)庫造成壓力,沒有其他意義,應(yīng)該盡量避免笛卡爾積。

動(dòng)態(tài)數(shù)據(jù)

from后面跟的數(shù)據(jù)不是一個(gè)實(shí)體表,而是一個(gè)從表中查詢出來得到的二維結(jié)果表。

基本語法:select? from (select 字段列表 from 表) ?[as] 別名;

where子句

where子句用來從數(shù)據(jù)表獲取數(shù)據(jù)的時(shí)候,然后進(jìn)行條件篩選。

數(shù)據(jù)獲取原理:針對(duì)表去對(duì)應(yīng)的磁盤除獲取所有的記錄(一條條),where的作用就是在拿到一條結(jié)果就開始進(jìn)行判斷,判斷是否符合條件;如果符合就保存下來,如果不符合直接舍棄(不放到內(nèi)存中)

where是通過運(yùn)算符進(jìn)行結(jié)果比較來判斷數(shù)據(jù)

group by子句

group by 表示分組的含義:根據(jù)指定的字段,將數(shù)據(jù)進(jìn)行分組:分組的目標(biāo)是為了統(tǒng)計(jì)。

分組統(tǒng)計(jì)

基本語法:group by 字段名;

錯(cuò)誤:提示1055錯(cuò)誤。only_full_group_by問題

先查看,然后修改。(暫時(shí)修改)

執(zhí)行:

select version(), @@sql_mode;

再執(zhí)行:

SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));

group by是為了分組進(jìn)行數(shù)據(jù)統(tǒng)計(jì)的,如果只是想看數(shù)據(jù)顯示,那么group by沒什么意義:group by將數(shù)據(jù)按照指定的字段分組之后,只會(huì)保留每組的第一條記錄。

利用一些統(tǒng)計(jì)函數(shù)(聚合函數(shù)):

count():統(tǒng)計(jì)每組中的數(shù)量,如果統(tǒng)計(jì)的目標(biāo)是字段,那么不統(tǒng)計(jì)空NULL字段,如果為*代表統(tǒng)計(jì)記錄。

avg():求平均值

sum():求和

max():求最大值

min():求在最小值

group_concat():為了將分組中指定的字段進(jìn)行合并(字符串拼接)

多分組

將數(shù)據(jù)按照某個(gè)字段進(jìn)行分組之后,對(duì)已經(jīng)分組的數(shù)據(jù)進(jìn)行再次分組

基本語法:group by 字段1,字段2;//先按照字段1進(jìn)行排序,之后將結(jié)果再按照字段2進(jìn)行排序,以此類推

分組排序

Mysql中,分組默認(rèn)有排序的功能:按照分組字段進(jìn)行排序,默認(rèn)是升序

基本語法:group by 字段 [asc|desc],字段[asc|desc];//默認(rèn)是asc升序 desc降序

回溯統(tǒng)計(jì)

當(dāng)分組進(jìn)行多分組之后,往上統(tǒng)計(jì)的過程中,需要進(jìn)行層層上報(bào),將這種層層上報(bào)統(tǒng)計(jì)的過程稱之為回溯統(tǒng)計(jì),每一次分組向上統(tǒng)計(jì)的過程都會(huì)產(chǎn)生一次新的統(tǒng)計(jì)數(shù)據(jù),而且當(dāng)前數(shù)據(jù)對(duì)應(yīng)的分組字段為NULL

基本語法:group by 字段 [asc|desc] with rollup;

有多少層就會(huì)回溯多少個(gè)。

having子句

having本質(zhì)和where一樣,是用來進(jìn)行數(shù)據(jù)條件篩選

having是在group by子句之后,可以針對(duì)分組數(shù)據(jù)進(jìn)行篩選,但是where不行

where不能使用聚合函數(shù):聚合函數(shù)是在用在group by分組的時(shí)候,where這個(gè)時(shí)候已經(jīng)運(yùn)行完畢。

having在group by分組之后,可以使用聚合函數(shù)或者字段別名(where是從表中取出數(shù)據(jù),數(shù)據(jù)在表中只有字段名沒有別名這一概念,別名是在數(shù)據(jù)進(jìn)入到內(nèi)存之后才有的)

強(qiáng)調(diào):having是在group by 之后,groupby 是在where之后;where的 時(shí)候表示將數(shù)據(jù)從磁盤拿到內(nèi)存,where之后的所有操作都是內(nèi)存操作。

order by 子句

order by排序,根據(jù)校對(duì)規(guī)則對(duì)數(shù)據(jù)進(jìn)行排序

基本語法:order by 字段[asc|desc];// asc 升序 默認(rèn) desc降序

order by和group by一樣,也可以進(jìn)行多字段排序:先按照第一個(gè)字段進(jìn)行排序,再按照第二個(gè)字段進(jìn)行排序,以此類推。

基本語法:order by 字段1 規(guī)則,字段2 規(guī)則…;//規(guī)則即 desc 和asc ,asc可以不寫

limit子句

limit限制子句,主要是用來限制記錄數(shù)來獲取。

記錄數(shù)限制

純粹的限制獲取的數(shù)量:從第一條到指定的數(shù)量。

基本語法:limit 數(shù)量;

limit通常在查詢的時(shí)候如果限定為一條記錄的時(shí)候,使用的比較多,有時(shí)候獲取多條記錄并不能解決業(yè)務(wù)問題,但是會(huì)增加服務(wù)器壓力

分頁

利用limit來限制獲取指定區(qū)間的數(shù)據(jù)。

基本語法: limit offset ,length;//offset P偏移量,從哪開始,length 就是具體獲取多少條記錄

Mysql中記錄的數(shù)量從0開始。

limit 0,2; ?//獲取前兩條記錄

注意:limit后面的length表示最多獲取對(duì)應(yīng)數(shù)量,但是如果數(shù)量不夠,系統(tǒng)不會(huì)強(qiáng)求

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的读取mysql数据到select_MySQL数据库8(十三)高级数据操作之select指令的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。