日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

一、排序

排序查詢語法:

 

select * from 表名 order by 列1 asc/desc [,列2 asc/desc,...]

 

語法說明:

 

  1. 先按照列1進行排序,如果列1的值相同時,則按照列2排序
  2. asc:升序排序(從小到大)
  3. desc:降序排序(從大到?。?/li>
  4. 默認是升序排序(asc)

 

查詢未刪除男生信息,按學號降序:

 

select * from students where is_del = 0 and sex = '男' order by id desc;

 


 

顯示所有學生信息,先按年齡從大到小排序,年齡相同時按身高由高到低排序:

 

select * from students order by age desc,height desc;

 


 

二、分頁查詢

在網上購物時,瀏覽商品列表的時候,由于數據特別多,一頁顯示不完,一頁一頁的進行顯示,這就是分頁查詢

 

select * from 表名 limit start,count

 

說明:

 

  1. limit 是分頁查詢關鍵字
  2. start 表示開始行索引,默認是0
  3. count 表示查詢條數

 

查詢前三行男生的信息:

 

select * from students where sex='男' limit 0,3; 可以簡寫為 select * from students where sex='男' limit 3;

 


 


 

每頁顯示m條數據,求第n頁顯示的數據(關鍵是求每頁的開始行索引)

 

select * from students limit (n-1)*m,m;
三、聚合函數

 

聚合函數又叫組函數,通常是對表中的數據進行統計和計算,一般結合分組(group by)來使用,用于統計和計算分組數據

常用的聚合函數:

 

  1. count(col):表示求指定列的總行數
  2. max(col):表示求指定列的最大值
  3. min(col):表示求指定列的最小值
  4. sum(col):表示求指定列的和
  5. avg(col):表示指定列的平均值

 

求總行數:

 

返回非null數據的總行數 select count(height) from students; 返回總行數,包含null值記錄 select count(*) from students;

 


 


 

求最大值:

 

查詢男生編號的最大值 select max(id) from students where sex='男';

 


 

求最小值:

 

查詢未刪除的學生最小編號 select min(id) from students where is_del=0;

 


 

求和:

 

查詢男生的總身高 select sum(height) from students where sex='男'; 查詢男生的平均身高 select sum(height) / count(*) from students where sex='男';

 


 

求平均值:

 

求男生的平均身高,聚合函數不統計null值 select avg(height) from students where sex='男'; 求男生的平均身高,包含身高為null的值 select avg(ifnull(height,0)) from students where sex='男';

 

說明:

 

  • ifnull函數:表示判斷指定字段的值是否為null,如果為空則使用自己提供的值

 


 

聚合函數特點:

 

  • 聚合函數默認忽略字段為null的記錄,要想列值為null的記錄也參與計算,必須使用ifnull函數對null值做替換
四、分組查詢

 

分組查詢就是將查詢結果按照指定字段進行分組,字段中數據相等的分為一組

分組查詢基本的語法格式:

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

說明:

 

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

 

group by 的使用:

group by可用于單個字段分組,也可用于多個字段分組

 

根據sex字段來分組 select gender from students group by sex; 根據name和sex字段來分組 select name,sex from students group by name,sex;

 


 

group by + group_concat()的使用:

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

 

根據sex字段進行分組,查詢sex字段和分組的name字段信息 select sex,group_concat(name) from students group by sex;

 


 

group by + 聚合函數的使用:

 

統計不同性別的人的平均年齡 select sex,avg(age) from students group by sex; 統計不同性別的人的個數 select sex,count(*) from students group by sex;

 


 

group by + having的使用:

having作用和where類似都是過濾數據的,但having是過濾分組數據的,只能用于group by

 

根據sex字段進行分組,統計分組條數大于2的 select sex,count(*) from students group by sex having count(*)>2;

 


 

group by + with rollup的使用:

with rollup的作用是:在最后記錄后面新增一行,顯示select查詢時聚合函數的統計和計算結果

 

根據sex字段進行分組,匯總總人數 select sex,count(*) from students group by sex with rollup; 根據sex字段進行分組,匯總所有人年齡 select sex,group_concat(age) from students group by sex with rollup;

 


 


 

小結:

 

  • group by 根據指定的一個或者多個字段對數據進行分組
  • group_concat(字段名)函數是統計每個分組指定字段的信息集合
  • 聚合函數在和group by 結合使用時,聚合函數統計和計算的是每個分組的數據
  • having 是對分組數據進行條件過濾
  • with rollup 在最后記錄后面新增一行,顯示select查詢時聚合函數的統計和計算結果
五、連接查詢

 

連接查詢可以實現多個表的查詢,當查詢的字段數據來自不同的表就可以使用連接查詢來完成

連接查詢分為:

 

  1. 內連接查詢
  2. 左連接查詢
  3. 右連接查詢
  4. 自連接查詢
1. 內連接查詢

 

查詢兩個表中符合條件的共有記錄(取交集)

內連接查詢語法格式:

 

select 字段 from 表1 inner join 表2 on 表1.字段1 = 表2.字段2

 

說明:

 

  • inner join 就是內連接查詢關鍵字
  • on 就是連接查詢條件

 

使用內連接查詢學生表與班級表:

 

select * from students s inner join classes c on s.c_id = c.id;

 

原本兩個表的內容:


 


 

使用內連接:


 


 

2. 左連接查詢

以左表為主根據條件查詢右表數據,如果根據條件查詢右表數據不存在則使用null值填充

左連接查詢語法格式:

 

select 字段 from 表1 left join 表2 on 表1.字段1 = 表2.字段2

 

說明:

 

  • left join 就是左連接查詢關鍵字
  • on 就是連接查詢條件
  • 表1 是左表
  • 表2 是右表

 

使用左連接查詢學生表與班級表:

 

select * from students s left join classes c on s.c_id = c.id;

 


 

3. 右連接查詢

以右表為主根據條件查詢左表數據,如果根據條件查詢左表數據不存在則使用null值填充

右連接查詢語法格式:

 

select 字段 from 表1 right join 表2 on 表1.字段1 = 表2.字段2;

 

說明:

 

  • right join 就是右連接查詢關鍵字
  • on 就是連接查詢條件
  • 表1 是左表
  • 表2 是右表

 

使用右連接查詢學生表與班級表:

 

select * from students s right join classes c on s.c_id = c.id;

 


 


 

4. 自連接查詢

左表和右表是同一個表,根據連接查詢條件查詢兩個表中的數據


 

創建areas表:

 

create table areas( id varchar(20) not null primary key, title varchar(30) not null, pid varchar(20) );

 

執行sql文件給areas表導入數據:

 

source areas.sql;

 

sql文件內容:

 

insert into areas values('11000', '北京市', null); insert into areas values('11001', '北京市', '11000'); insert into areas values('11002', '東城區', '11001'); insert into areas values('11003', '西城區', '11001'); insert into areas values('11004', '朝陽區', '11001'); insert into areas values('11005', '豐臺區', '11001'); insert into areas values('11006', '海淀區', '11001'); insert into areas values('12000', '河北省', null); insert into areas values('12001', '石家莊市', '12000'); insert into areas values('12002', '長安區', '12001'); insert into areas values('12003', '橋東區', '12001'); insert into areas values('12004', '橋西區', '12001'); insert into areas values('12005', '新華區', '12001');

 

說明:

 

  • source 表示執行的sql文件

 

自連接查詢的用法:

 

select c.id, c.title, c.pid, p.title from areas c inner join areas p on c.pid = p.id;

 

說明:

 

  • 自連接查詢必須對表起別名

 


 

六、子查詢

在一個select語句中,嵌入了另外一個select語句,那么被嵌入的select語句稱之為子查詢語句,外部的那個select語句則稱為主查詢

主查詢和子查詢的關系:

 

  1. 子查詢是嵌入到主查詢中
  2. 子查詢是輔助主查詢的,要么充當條件,要么充當數據源
  3. 子查詢是可以獨立存在的語句,是一條完整的select語句

 

查詢大于平均年齡的學生:

 

select * from students where age > (select avg(age) from students);

 


 

查詢學生在班的所有班級名字:

 

select name from classes where id in (select c_id from students where c_id is not null);

 


 

查找年齡最大,身高最高的學生:

 

select * from students where age=(select max(age) from students) and height=(select max(height) from students); 可以簡寫為: select * from students where (age,height) = (select max(age), max(height) from students);

 

分享到:
標簽:MySQL
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定