DQL语句和查询相关语句以及多表查询
一. DQL语句
-
数据查询语句DQL(Data Query Language), 用于查询获得表中的数据, 主要关键字为
select
-
格式:
- 查询特指字段
select 字段1, 字段2.... from 表名
- 查询所有的字段
select * from 表名
- 查询特指字段
-
示例:
select name, age from T_human
-
select * from T_human where age > 10
// 条件语句查询
二. 查询相关语句(重要)
-
统计语句
- count: 查询数据的个数
-
select count(*) from T_human
// 查询表中所有数据的个数 -
select count(age) from T_human
// 查询age有值的数据的个数, null不计算在内
-
- avg: 计算某个字段的平均值
-
select avg(age) from T_human
// 统计所有的age的值, 并且计算平均值
-
- sum: 计算某个字段的总和
-
select sum(age) from T_human
// 计算所有age值的总和
-
- max: 获取某个字段的最大值
select sum(X) from T_human
- min: 获取某个字段的最小值
select min(X) from T_human
- 注意: 上述语句中, 与计算值有关的, 都只能作用与数字类型(integer, real), 不能作用于Text这样的文本
- count: 查询数据的个数
-
排序语句
- 对查询出来的结果, 可以使用order by进行排序, 格式如下
-
select 字段1, 字段2 from 表名 order by 字段
// 先查询需要的两个字段, 然后根据后面的字段排序 -
select * from T_human order by age
// 查询表中所有的数据, 然后根据age排序
-
- order by默认是按照升序排序的, 可以通过后缀来设置升序/降序
-
select * from T_human order by age asc
// 升序 -
select * from T_human order by age desc
// 降序
-
- 根据多个字段, 来进行排序, 如
-
select age, height from T_human order by age asc, height desc
先根据age升序排序, 如果age相等, 就根据height降序
-
- 对查询出来的结果, 可以使用order by进行排序, 格式如下
三. 多表查询
-
多表查询, 可以同时在两张表格中, 根据指定的字段来查询所需的数据
- 格式:
select 表名.字段1, 字段2.... from 表名1, 表名2
- 注意, 如果两个表有同样的字段, 那么在查询的时候, 要使用
表名.字段
的方式查询
- 格式:
-
给表或者字段起别名
select 别名1.字段1 as 字段别名1, 别名2.字段2 as 字段别名2.... from 表名1 as 别名 1
- 可以给表或者字段单独起别名
- as可以省略
- 在开发中, 尽量不要使用别名, 容易引起问题
-
表连接查询
select 字段1, 字段2... from 表名1, 表名2 where 表名1.id = 表名2.id
- 他可以根据两个表中, 查询id相等的字段
-
外键
- 如果表A的主键是表B中的字段的话, 则称该字段为表B的外键
- 保持数据一致性, 完成性, 主要目的是控制存储在外键表中的数据
- 使两张表形成关联, 外键只能引用外表中的列的值或者使用空值
网友评论