DQL 数据查询语言
Posted yangxiaoni
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DQL 数据查询语言相关的知识,希望对你有一定的参考价值。
1.select
1.select 单独使用
(1) 查询数据库的参数
查看端口:
select @@port;
查看数据路径
select @@datadir;
(2)调用内置函数
查看当前库
select database();
CONCAT 将内容拼接
select concat(user,host) from mysql.user;
select concat(user,'@',host) from mysql.user;
列转行
select group_concat(xid) from student;
求和
SELECT SUM(xid) FROM student;
(3) 简易计算器
select 4*5;
2.select 配合其他子句使用
select 查询表的内容
(1) 子句列表介绍
from 查询对象是谁(表,视图)
where 过滤字句
group by 分组子句(类似于数组,统计分析类)
having 后过滤子句
order by 排序子句
limit 限制子句(分页子句)
select 配合 from 使用
1.查询表中所有的数据(cat)
select * from city;
2.查询name和population列信息
select name,population from city;
select 配合 from where 使用
-- 1.查询中国所有的城市信息
SELECT * FROM city
WHERE CountryCode='CHN';
-- 2. 查询ID为100的城市信息
SELECT * FROM city
WHERE ID=100;
-- 3. 查询 中国河北省的城市信息
SELECT * FROM city
WHERE CountryCode='CHN' AND district='hebei';
-- 4. 查询 中国或美国的城市信息
SELECT * FROM city
WHERE CountryCode='CHN' OR CountryCode='USA';
或者
SELECT * FROM city
WHERE CountryCode IN ('CHN','USA');
或者
SELECT * FROM city
WHERE CountryCode='CHN'
UNION ALL
SELECT * FROM city
WHERE CountryCode='USA';
-- where 配合范围查询
-- 例子 :
-- 1. 查询人口数量小于100人的城市
SELECT * FROM city
WHERE Population<100;
-- 2. 查询人口数量在100w-200w之间的城市
SELECT * FROM city
WHERE Population>=1000000 AND Population<=2000000;
或者
SELECT * FROM city
WHERE Population BETWEEN 1000000 AND 2000000;
-- 3.查询国家代号是CH开头的城市
SELECT * FROM city
WHERE CountryCode LIKE 'CH%';
-- 注意 % 放在字符前,匹配时不走索引,比较慢,所以,我们通常都放在字符后面
-- where 配合范围查询
-- 例子 :
-- 1. 查询人口数量小于100人的城市
SELECT * FROM city
WHERE Population<100;
-- 2. 查询人口数量在100w-200w之间的城市
SELECT * FROM city
WHERE Population>=1000000 AND Population<=2000000;
或者
SELECT * FROM city
WHERE Population BETWEEN 1000000 AND 2000000;
-- 3.查询国家代号是CH开头的城市
SELECT * FROM city
WHERE CountryCode LIKE 'CH%';
-- 注意 % 放在字符前,匹配时不走索引,比较慢,所以,我们通常都放在字符后面
-- 1.2.4 group by 分组子句 配合 聚合函数应用
-- 什么是聚合函数?
COUNT() -- 计数
SUM() -- 求和
AVG() -- 平均值
MAX() -- 最大值
MIN() -- 最小值
GROUP_CONCAT -- 聚合列值
-- MySQL结果集现实的特点:
在结果集显示时,必须是 一对一的方式,不能是一对多的形式。
-- 例子 :
-- 1. 统计一下每个国家的人口总数
SELECT CountryCode,SUM(Population)
FROM city
GROUP BY (CountryCode);
-- 2. 统计中国每个省的人口总数
SELECT District,SUM(Population)
FROM city
WHERE CountryCode='CHN'
GROUP BY (District);
-- 3. 统计一下中国每个省的城市个数,及城市名
SELECT District,COUNT(NAME),GROUP_CONCAT(NAME) FROM city
WHERE CountryCode='CHN'
GROUP BY (District);
-- 4. 统计每个国家的城市个数
SELECT CountryCode,COUNT(District)
FROM city
GROUP BY (CountryCode);
-- 1.2.6 having 后判断
-- 1. 统计中国每个省的人口总数,只显示总人口数大于500w的省信息.
SELECT district,SUM(population) FROM city
WHERE countrycode='CHN'
GROUP BY district
HAVING SUM(population) >=5000000;
-- 1.2.7 order by 排序子句
-- 例子:
-- 1. 查询中国所有城市信息,人口数从大到小排序输出.
SELECT * FROM city
WHERE countrycode='CHN'
ORDER BY population DESC ;
-- 2. 查询中国所有城市信息,按城市名排序.
SELECT * FROM city
WHERE countrycode='CHN'
ORDER BY NAME;
-- 3. 查询中国所有省的总人口,并按总人口数从大到小排序输出.
SELECT district,SUM(population) FROM city
WHERE countrycode='CHN'
GROUP BY district
ORDER BY SUM(population) DESC;
2.show
查看数据库所有参数
show variables;
以上是关于DQL 数据查询语言的主要内容,如果未能解决你的问题,请参考以下文章