資料庫命令擴充

來源:互聯網
上載者:User

標籤:天都   定義   左串連   max   唯一性   openid   一個人   不同   記錄   

上一章節,主要講資料庫常用的基本操作,本章節,也還是常用到的資料庫命令,稍微做一個擴充,做測試統計的時候會用到哦~主要內容如下:

1、唯一性查詢:DISTINCT;

2、多表查詢;

3、常用函數;

4、連表查詢(左串連、右串連)

·····

【實戰練習】

資料準備:

人員表(users),簽到表(sign),獲獎表(win),如下所示:

users:     sign:     win:

 

其中,users表中顯示所有人員的資訊,sign是每日人員的簽到資訊,人員進行簽到後可以進行抽獎,抽到獎的資訊會記錄在win表中。

【DISTINCT:唯一性查詢】

唯一性查詢,即大家常說的,去重查詢。

為什麼要去重,什麼時候需要去重呢?

舉個例子,簽到表中使用者每天都可以進行簽到,那如何統計簽到的總人數(註:非總人次)呢,大家知道,同一個人可以有多次簽到的,

這個時候,就需要用關鍵字:DISTINCT ,它可以返回唯一不同的值。

查詢語句如下:

select count(DISTINCT openid) from sign;    -----統計去重後參與簽到的總人數select DISTINCT openid from sign;           -----統計去重後參與簽到的人員openid

結果如下:

      

【多表查詢】

常用到的多表查詢,主要有幾種:

1、連表關係查詢

SELECT a.`openid`,a.`name`,b.`wintime` FROM users a,win b WHERE a.`openid`=b.`openid`;    -----查詢中獎人的openid、姓名、中獎時間SELECT a.`openid`,a.`name`FROM users a,win b WHERE a.`openid`=b.`openid`;                 -----查詢中獎人的openid、姓名
SELECT openid,name FROM users WHERE `openid` IN (SELECT openid FROM win); -----查詢中獎人的openid、姓名

結果如下:

 (第1條查詢結果)             (第2、3條查詢結果一致)

2、多表多記錄查詢

SELECT * FROM(SELECT COUNT(openid) AS ‘總人數‘ FROM users) A1,(SELECT COUNT(DISTINCT openid) AS ‘總簽到人數‘ FROM SIGN)A2,(SELECT COUNT(openid) AS ‘總簽到人次‘ FROM SIGN)A3,(SELECT COUNT(openid) AS ‘獲獎人數‘ FROM win)A4,(SELECT openid AS ‘5號獲獎人員openid‘ FROM win WHERE wintime LIKE ‘%05‘)A5;     -----查詢users表總人數,sign表總簽到人數、總簽到人次,win表獲獎人數統計資訊以及5號當天獲獎人的資訊

結果如下:

需要注意的是,每一個子查詢的結果和命名必須是唯一值,後面定義的編號A1、A2···,也必須唯一,否則會報錯。

【常用函數】

平時工作,比較常用的函數,count()、max()、avg()、sum()。

count():返回指定列的統計值(即行數);

SELECT COUNT(openid) AS ‘總人數‘ FROM users;    -----統計users表中的總人數

max():返回指定列的值的最高值,對應的,還有min(),返回列的最低值;

SELECT MAX(score) FROM win ;        -----統計win表中最高分

avg():返回指定列的平均值;

SELECT AVG(score) FROM win ;      -----統計win表中平均分

sum():返回指定列的總數,數字類型的值得總和。

SELECT SUM(score) FROM win ;      -----統計win表中,所有人的得分總和

【連表查詢(左串連、右串連)】

(未完待續····)

 

如果對你有用,就趕緊收藏吧!拿走不謝!

 

資料庫命令擴充

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.