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語句在數據庫中佔有非常重要的地位,希望這次總結對大家有幫助!