select
select用于查詢,其功能很多,我們一起來了解一下它子句及函數的用法。
建一張表用于我們測試:
create table student (
id int not null default 1,
name varchar(20) not null default ’ ‘,
chinese float not null default 0.0 comment ‘國文成績’,
english float not null default 0.0 comment ‘英語成績’,
);
插入如下資料:
insert into student values(1, ‘李明’, 89,78, 90);
insert into student values(2, ‘劉紅’, 67,89, 56);
insert into student values(3, ‘胡剛’, 87,78, 77);
insert into student values(4, ‘唐僧’, 88,98, 90);
insert into student values(5, ‘悟空’, 82,84, 67);
insert into student values(6, ‘張三’, 55,85, 45);
insert into student values(7, ‘李四’, 75,65, 30);
1、指定查詢列
eg:
2、去重查詢
用distinct關鍵字, 如果結果中有完全相同的行,就去除重複行
eg:
3、select語句中進行運算
eg:查詢學生總成績
select id,name,(chinese+math+english) from student;
4、起别名:as
eg:查詢所有學生總成績并起别名‘總成績’。
eg:查詢所有姓李同學的總成績。
eg:将所有姓唐的學生總成績增加60%。
5、where查詢過濾
在where子句中有很多經常使用的運算符,如下:
我們對其中幾個進行舉例應用,如下:
(1)查詢所有英語成績大于90的同學成績:
(2)查詢所有總分大于200分的同學
由圖可知,并沒有查找出來,這是因為
where子句後不能用别名
因為資料庫中先執行where子句,再執行select子句。
如下:
(3)查詢姓李并且id大于6的學生資訊
(4)查詢英語成績大于國文成績的同學
(5)查詢所有總分大于200并且數學成績小于國文成績的姓劉的學生資訊
(6)查詢所有英語成績在80到90分的同學
方法一:
方法二:
注意:between是閉區間
(7)查詢數學成績為89,90,91的同學資訊
or:
in:
6、order by排序語句
asc升序(預設),desc降序
order by 子句應該位于select語句的結尾
eg:對數學成績進行排序
預設升序:
降序:
eg:對所有姓李的學生按成績進行倒序排序
eg:對總分進行從高到低輸出
7、常用函數
(1)count()
count(*)統計null值 count(列名)排除null值
eg :統計目前student表中一共有多少學生
我們這裡也可以起别名:
PS:為了測試count(*)與coun(列名)的差別,我們這裡插入一個數學成績為空的學生資訊。
看查詢結果:
(2)sum()
eg:統計一個班數學總成績
(3)平均值:avg()
求平均值算不算成績為空的人呢?
我們可以用如下方法:
我們看一下avg函數的結果:
是以avg是去除null後求平均數, 隻對數值型列起作用
(4)max()/min()
eg:求一個班級最高分和最低分的學生資訊