天天看點

MySql之select的具體用法示例

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:

MySql之select的具體用法示例

2、去重查詢

用distinct關鍵字, 如果結果中有完全相同的行,就去除重複行

eg:

MySql之select的具體用法示例

3、select語句中進行運算

eg:查詢學生總成績

select id,name,(chinese+math+english) from student;

MySql之select的具體用法示例

4、起别名:as

eg:查詢所有學生總成績并起别名‘總成績’。

MySql之select的具體用法示例

eg:查詢所有姓李同學的總成績。

MySql之select的具體用法示例

eg:将所有姓唐的學生總成績增加60%。

MySql之select的具體用法示例

5、where查詢過濾

在where子句中有很多經常使用的運算符,如下:

MySql之select的具體用法示例

我們對其中幾個進行舉例應用,如下:

(1)查詢所有英語成績大于90的同學成績:

MySql之select的具體用法示例

(2)查詢所有總分大于200分的同學

MySql之select的具體用法示例

由圖可知,并沒有查找出來,這是因為

where子句後不能用别名

因為資料庫中先執行where子句,再執行select子句。

如下:

MySql之select的具體用法示例

(3)查詢姓李并且id大于6的學生資訊

MySql之select的具體用法示例

(4)查詢英語成績大于國文成績的同學

MySql之select的具體用法示例

(5)查詢所有總分大于200并且數學成績小于國文成績的姓劉的學生資訊

MySql之select的具體用法示例

(6)查詢所有英語成績在80到90分的同學

方法一:

MySql之select的具體用法示例

方法二:

MySql之select的具體用法示例

注意:between是閉區間

(7)查詢數學成績為89,90,91的同學資訊

or:

MySql之select的具體用法示例

in:

MySql之select的具體用法示例

6、order by排序語句

asc升序(預設),desc降序

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

eg:對數學成績進行排序

預設升序:

MySql之select的具體用法示例

降序:

MySql之select的具體用法示例

eg:對所有姓李的學生按成績進行倒序排序

MySql之select的具體用法示例

eg:對總分進行從高到低輸出

MySql之select的具體用法示例

7、常用函數

(1)count()

count(*)統計null值 count(列名)排除null值

eg :統計目前student表中一共有多少學生

MySql之select的具體用法示例

我們這裡也可以起别名:

MySql之select的具體用法示例

PS:為了測試count(*)與coun(列名)的差別,我們這裡插入一個數學成績為空的學生資訊。

MySql之select的具體用法示例

看查詢結果:

MySql之select的具體用法示例

(2)sum()

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

MySql之select的具體用法示例

(3)平均值:avg()

求平均值算不算成績為空的人呢?

我們可以用如下方法:

MySql之select的具體用法示例

我們看一下avg函數的結果:

MySql之select的具體用法示例

是以avg是去除null後求平均數, 隻對數值型列起作用

(4)max()/min()

eg:求一個班級最高分和最低分的學生資訊

8、group by 子句的使用