【MySQL】數據庫 -- select詳解

select是數據庫中很重要的語句;

語法:

select [distinct] *| {column1,column2,...} from tbl_name;

創建一張學生表來測試:


插入數據:


可以指定查詢哪些列,比如:查詢id,姓名,數學成績:


查詢所有:


distinct 如果結果中有完全相同的行,就去除重複行:


在select語句中可以使用表達式對查詢的列進行運算

select語句中可以使用as起別名

select column as 別名 from 表;

實例:

1. 在所有學生分數上加上10分(查詢所有學生的總分再加10分)


2.將所有行g的學生成績增加60%(查詢總分再增加60%):




select的where子句

使用where子句,進行查詢過濾。

在where子句中經常使用的運算符:


查詢姓y的學生的成績:


查詢英語成績大於80分的同學:


查詢總分大於250分的所有同學:


查詢姓a並且成id大於5的學生:


查詢英語成績大於語文成績的同學:


查詢總分大於200分並且數學成績小於語文成績的姓l的學生:


查詢英語分數在90 - 99 之間的同學:


查詢數學成績爲88,99的同學:


select的order by 子句

order by子句排序查詢結果:

select column1,column2,... from table order by column asc|desc,...;
order by 指定排序的列,排序的列可以使表中的列名,也可以是select語句後指定的別名
asc升序(默認),desc降序

order by 子句應該位於select語句的結尾

實例:

對數學成績進行排序:


對總分進行排序後,按從高到低輸出:


對c的學生按成績進行從低到高排序:




count

count(列名)返回某一列,行的總數:

select count(*)|count(列名) from tbl_name where condition

實例:

統計一個班級共有多少學生:


統計數學成績大於等於88的學生有多少人:


統計總分大於250的人數有多少


說明:count(*)會統計一共的記錄數,count(列名)會排除爲null的情況!



sum

sum函數返回滿足where條件的行的和

select sum(列名) {,sum(列名)...} from tbl_name [where condition]

實例:

統計一個班級數學總成績:


統計一個班級語文,英語,數學各科的總成績:


統計一個班級數學成績平均分:


注意:sum僅對數值起作用,否則結果無意義。



avg

agv函數返回滿足where條件的一列的平均值:

select avg(列名) [,avg(列名),...] from tbl_name [where condition];

實例:

求一個班級的數學平均分:


max/min

max/min函數返回滿足where條件的一列的最大/最小值:

select max(列名) from tbl_name [where condition]

實例:

求班級最高和最低分:




group by子句的使用

group by 子句對列進行分組

select column1, column2, .. from table group by column;
爲了講清楚分組,創建一個僱員信息表(來自oracle 9i的經典測試表)
1. EMP員工表
2. DEPT部門表
3. SALGRADE工資等級表
示例:

如何顯示每個部門的平均工資和最高工資:


顯示每個部門的每種崗位的平均工資和最低工資:


說明:首先按照deptno分組,然後各組再按照job進行分組。
顯示平均工資低於2000的部門和它的平均工資
解題思路:
1. 統計各個部門的平均工資
select avg(sal) from EMP group by deptno

2. having往往和group by配合使用,對group by結果進行過濾


以上便是對數據庫select的一些總結,select語句在數據庫中佔有非常重要的地位,希望這次總結對大家有幫助!




發佈了85 篇原創文章 · 獲贊 110 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章