天天看點

mysql中的查詢語句_MySQL中的基本查詢語句學習筆記

1.基本查詢語句select 屬性清單 from 表名和視圖清單 [where 條件表達式1] [group by 屬性名1 [having 條件表達式2]] [order by 屬性名2 [asc|desc]]

2.單表查詢1)使用*查詢所有字段

select * from 表名;

2) 查詢指定字段

select id,name from product;

使用上面例子可以查詢指定字段

3)查詢指定記錄

where 條件表達式

執行個體:

select *from employee where id = 1002;

where 子句常用查詢條件

比較:=、、 >=、 !=、 <>、 !>、 !<

指定範圍 : between and、not between and

指定集合:in、not in

比對字元: like、not like

是否為空值:is null 、is not null

多條件查詢:and or

4)帶in關鍵字的查詢

in關鍵字可以判斷某個字段的值是否在指定的集合中。

[not] in (元素1,元素2,...,元素n)

執行個體:

select * from employee where id in (1001,1002);

如果集合中的元素為字元時,需加上單引号。

5)帶between and 的範圍查詢

[not] between 取值1 and 取值2

取值1為起始值,取值2為終止值

執行個體:

select * from employee where age

bewteen 15 and 20;

6)帶like的字元串比對查詢

[not] like ‘字元串';

‘字元串'的值可以是完整的字元串,也可以是含百分号(%)或下滑線(_)的通配字元。

“% ”可以代表任意長度的字元串,長度可以是0。

“_”隻能表示單個字元。

完整字元時like相當于“=”。

執行個體:

select * from employee where homeaddr like ‘北京%';

查詢所有homeaddr字段中以“北京”

開頭的記錄。

select * from employee where name like "ar_c";

查詢所有name字段值長度為4,前兩個字母為“ar”最後一個字母為“c”的記錄。

統配的字元串可以用單引号或雙引号。

通配符“”可以多次使用,如“趙 _”。

7)查詢空置

is [not] null

執行個體:

select * from work where info is null;

查詢work表info字段為空的記錄。

8)and 和 or多條件查詢

條件表達式1 and 條件表達式2 [...and 條件表達式n]

and 表示同時滿足所有條件的記錄會被查詢出來,or表示隻要滿足其中一條的記錄就會被查詢出來。

9)查詢結果不重複

select distinct 屬性名

執行個體:

select distinct age department_id employee;

10) 查詢結果排序

order by 屬性名 [asc|desc]

預設asc排序。

如果遇到某個字段存在空值的記錄,需要注意,空值排序時可以了解為該字段的最小值。

mysql中可以指定按多字段排序。

執行個體:

select * from employee order by id asc , age desc;

3.limit限制查詢結果條數1)不指定起始位置

limit 記錄數

記錄數超過查詢結果則顯示所有的記錄,不會報錯

2)指定起始位置

limit 起始位置 , 記錄數

記錄的起始位置從位置0開始。

2.使用集合函數查詢

集合函數包括count(),sum(),avg(),max()和min()。

1)count()函數

統計記錄條數

執行個體:

select count(*) from employee;

與group by一起使用

select d_id,count(*) from employee group by d_id;

上述語句會先分組後統計。

2) sum()函數

sum()函數是求和函數

執行個體:

select num,sum(score) from grade where num= 1001;

select num,sum(score) from grade group by num;

sum()隻能計算數值類型字段。

3)avg()函數

avg()函數是求平均值函數。

執行個體:

select avg(age) from employee;

select course,avg(score) from group by course;

4)max(),min()函數

求最大值和最小值。

執行個體:

select max(age) from employee;

select num,course,max(score) from grade group by course;

對于字元串的最大值問題,max()函數是使用字元對應的ascii碼進行計算的。

4.合并查詢結果使用union和union all關鍵字。

union将查詢的結果合并到一起并去掉形同的記錄,union all 隻是簡單地合并到一起。

select 語句1 union|union all

select 語句2 union|union all...

select 語句n;

PS:為表或字段起别名表起别名文法:

表名 表的别名

select * from department d where d.d_id =1001;

字段起别名文法:

屬性名 [as] 别名

as可有可無。

select d_id as department_id,d_name as department_name from department;

您可能感興趣的文章:mysql關聯子查詢的一種優化方法分析

如何解決PHP使用mysql_query查詢超大結果集超記憶體問題

PHP MYSQL實作登陸和模糊查詢兩大功能

MySQL查詢優化的5個實用技巧

MySQL嵌套查詢執行個體詳解

MySQL中表子查詢與關聯子查詢的基礎學習教程

MySQL的子查詢中FROM和EXISTS子句的使用教程

在MySQL中使用子查詢和标量子查詢的基本操作教程

MySQL中列子查詢與行子查詢操作的學習教程

MySQL切分查詢用法分析