一、基础查询查询
1、查询一个表的多个字段
select 字段1、字段2、字段3、 from 表名
select *from 表名;
2.查询设置别名
select 字段1 as [别名1],字段2 as [别名2] from 表名;
3.去除重复记录
select distinct 字段列表 form 表名
示例:
select distinct Question.industry as[ 行业] from Question
4.select 字段列表 from 表名 where 条件列表
5.聚合函数
6.分组查询
1.select 字段列表 from 表名 [where 条件] group by [having分组后过滤条件];
2.执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组,而having是分组之后对结果进行过滤。
判断条件不同,where不能对聚合函数进行判断,而having可以。
示例:
select TypeId as[项目类型] , count(*) as[数量] from Question group by TypeId
select TypeId as[项目类型] , count(*) as[数量] from Question group by TypeId having TypeId =2
总结:执行顺序:where>聚合函数>having
分组之后,查询的字段的 字段一般聚合函数和分组字段,查询其他字段无任何意义。
7.排序查询
1. select 字段列表 from 表名 Order by 字段1 排序方式1, 字段2 排序方式2;
2.排序方式
asc:升序(默认值)
desc:降序
示例:
select Title, TypeId ,PublishDate from Question order by PublishDate desc
注意:如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序。
8.分页查询
select 字段列表 from 表名 LIMIT 起始索引,查询记录数
注意
·起始索引从0开始,起始索引=(查询页码-1*每页显示记录数。
·分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是LIMIT.如果查询的是第一页数据,起始索引可以省略,直接简写为limit 10。
9.多表查询
内连接:相当于查询A、B交集部分数据
外连接:
左外连接:查询左表所有数据,以及两张表交集部分数据
右外连接:查询右表所有数据,以及两张表交集部分数据
自连接:当前表与自身的连接查询,自连接必须使用表别名
--隐式查询
--select Question.Title,ArticleType.TypeName from Question ,ArticleType where Question.TypeId=ArticleType.TypeId
--内关联 select *from 表1 别名1 inner join 表2 别名2 on 关联字段
select q.Title,a.TypeName from Question q inner join ArticleType a on q.TypeId=a.TypeId