MySQLSQL极简教程 · MySQL · MyBatis · JPA 技术笔记 教程 总结HTML

DQL -- 数据查询

2018-09-06  本文已影响47人  GHope

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语句的关键字为大写)

上一篇下一篇

猜你喜欢

热点阅读