DQL -- 数据查询
Data Query Language 简称DQL,数据库查询语言, 关键字为SELECT。
基础查询
查询表中所有数据(PS:此时所用表为本文集中DML所创建)
select * from star
指定字段查询
查询表中指定内容
select name from star
指定字段组合不重复
查询表中指定内容,并对查询结果进行去重操作,自动保留第一个查询结果
select distinct province from star
为体现组合的效果,及接下来的一些查询操作,现在为该数据表添加部分数据(本数据纯属个人虚构,如有冒犯,请多多谅解!)
insert into star(name,money,province,age) values('刘亦菲',233,'湖南',24),
-> ('周杰伦',345,'台湾',33),
-> ('古天乐',1234,'香港',24);
现在表中数据:
查询省份和年龄都不重复的明星的省份和年龄信息
select distinct province,age from star
由查询结果不难看出指定字段组合不重复的效果
条件查询
查询符合条件的信息
select * from star where name='朱茵'
where后面可接条件
where后面可接条件
应用实例:
查询star表中所有id小于5并且省份为香港的明星的年龄
select age from star where id < 5 and province='香港'
结果集排序
查询star表中所有人的id,name和money信息,并根据money的值进行降序排序
select id,name,money from star order by money desc
多字段排序
发现没有人的钱是一样的,所以为达到查询效果,继续添加数据
insert into star(name,money,province,age) values('葛优',333,'北京',44),
-> ('张北海',666,'北京',78);
查询star表中所有人的id,name和money信息,并根据money的值进行降序排序,若money的值一样,则根据id值升序排序
select id,name,money from star order by money desc, id
限制查询的结果集
设置查询结果的数量
select name from star limit 5
查询结果
限制排序后的结果集
select id,name,money from star order by money desc,id limit 3
查询结果
结果集区间选择
查询star表中第三有钱和第四有钱的人
select id,name,money from star order by money desc,id limit 2,2;
语法
查询结果 limit解决分页问题
常用统计函数
常用统计函数统计表中id总数:
SELECT COUNT(id) FROM star
分组
根据省份进行分组
select * from star group by province
分组统计
查询表中各个省份明星个数
select province,count(*) from star group by province
查询结果
结果过滤
查询表中省份明星个数大于3的省份及明星个数
select province,count(*) as c from star group by province having c>3
整体使用SQL
使用顺序在书写查询语句的时候必须注意的一点是关键字的顺序,大致顺序与本文对关键字的介绍顺序一致。具体总结如下:
SELECT --> FROM --> WHERE --> GROUP BY--> ORDER BY--> LIMIT --> HAVING
(注:比较规范的写法是SQL语句的关键字为大写)