DQL語句和查詢相關(guān)語句以及多表查詢
一. DQL語句
數(shù)據(jù)查詢語句DQL(Data Query Language), 用于查詢獲得表中的數(shù)據(jù), 主要關(guān)鍵字為
select
-
格式:
- 查詢特指字段
select 字段1, 字段2.... from 表名
- 查詢所有的字段
select * from 表名
- 查詢特指字段
-
示例:
select name, age from T_human
-
select * from T_human where age > 10
// 條件語句查詢
二. 查詢相關(guān)語句(重要)
-
統(tǒng)計(jì)語句
- count: 查詢數(shù)據(jù)的個(gè)數(shù)
-
select count(*) from T_human
// 查詢表中所有數(shù)據(jù)的個(gè)數(shù) -
select count(age) from T_human
// 查詢age有值的數(shù)據(jù)的個(gè)數(shù), null不計(jì)算在內(nèi)
-
- avg: 計(jì)算某個(gè)字段的平均值
-
select avg(age) from T_human
// 統(tǒng)計(jì)所有的age的值, 并且計(jì)算平均值
-
- sum: 計(jì)算某個(gè)字段的總和
-
select sum(age) from T_human
// 計(jì)算所有age值的總和
-
- max: 獲取某個(gè)字段的最大值
select sum(X) from T_human
- min: 獲取某個(gè)字段的最小值
select min(X) from T_human
- 注意: 上述語句中, 與計(jì)算值有關(guān)的, 都只能作用與數(shù)字類型(integer, real), 不能作用于Text這樣的文本
- count: 查詢數(shù)據(jù)的個(gè)數(shù)
-
排序語句
- 對(duì)查詢出來的結(jié)果, 可以使用order by進(jìn)行排序, 格式如下
-
select 字段1, 字段2 from 表名 order by 字段
// 先查詢需要的兩個(gè)字段, 然后根據(jù)后面的字段排序 -
select * from T_human order by age
// 查詢表中所有的數(shù)據(jù), 然后根據(jù)age排序
-
- order by默認(rèn)是按照升序排序的, 可以通過后綴來設(shè)置升序/降序
-
select * from T_human order by age asc
// 升序 -
select * from T_human order by age desc
// 降序
-
- 根據(jù)多個(gè)字段, 來進(jìn)行排序, 如
-
select age, height from T_human order by age asc, height desc
先根據(jù)age升序排序, 如果age相等, 就根據(jù)height降序
-
- 對(duì)查詢出來的結(jié)果, 可以使用order by進(jìn)行排序, 格式如下
三. 多表查詢
-
多表查詢, 可以同時(shí)在兩張表格中, 根據(jù)指定的字段來查詢所需的數(shù)據(jù)
- 格式:
select 表名.字段1, 字段2.... from 表名1, 表名2
- 注意, 如果兩個(gè)表有同樣的字段, 那么在查詢的時(shí)候, 要使用
表名.字段
的方式查詢
- 格式:
-
給表或者字段起別名
select 別名1.字段1 as 字段別名1, 別名2.字段2 as 字段別名2.... from 表名1 as 別名 1
- 可以給表或者字段單獨(dú)起別名
- as可以省略
- 在開發(fā)中, 盡量不要使用別名, 容易引起問題
-
表連接查詢
select 字段1, 字段2... from 表名1, 表名2 where 表名1.id = 表名2.id
- 他可以根據(jù)兩個(gè)表中, 查詢id相等的字段
-
外鍵
- 如果表A的主鍵是表B中的字段的話, 則稱該字段為表B的外鍵
- 保持?jǐn)?shù)據(jù)一致性, 完成性, 主要目的是控制存儲(chǔ)在外鍵表中的數(shù)據(jù)
- 使兩張表形成關(guān)聯(lián), 外鍵只能引用外表中的列的值或者使用空值