mysql DQL基础应用

DQL基础应用

0. 介绍

select 语句应用
select(单表)的执行逻辑 *****
select 列1 , 列2
from 表
where 条件
group by 条件
having 条件
order by 条件
limit 条件

1. SELECT 单独使

-- 1.1 SELECT @@参数名;

例子 :
SELECT @@datadir; ##数据目录
SELECT @@port; ##端口
SELECT @@socket; ##socket文件
SELECT @@innodb_flush_log_at_trx_commit; ##
SHOW VARIABLES LIKE '%trx%'; ##模糊查找
SHOW VARIABLES; ##查询所有参数

-- 1.2 SELECT 函数();

SELECT NOW(); ##查询当前时间
USE mysql; ##使用数据库
SELECT DATABASE(); ##当前数据库
SELECT USER(); ##登录的用户
SELECT 16*16; ##计算
SELECT CONCAT("hello world"); ##打印字符串
SELECT CONCAT(USER,"@",HOST) FROM mysql.user;

9469008-b2daa79e5dcd6f45.png
image.png

SELECT GROUP_CONCAT(USER,"@",HOST) FROM mysql.user;
9469008-be4ecb42b280e450.png
image.png

2. FROM 子句应用


表结构介绍:
USE world;
SHOW TABLES;
city 城市
country 国家
countrylanguage 国家语言

DESC city;
id 主键
NAME 城市名
countrycode 国家代码(USA,CHN,JPN)
district 省,洲
population 城市人口


SELECT * FROM city; ##相当于cat 一个文件
SELECT NAME,countrycode FROM city; 相当于 awk 23

3. where子句应用

3.1 等值查询
查询中国城市的信息.
SELECT *  FROM city WHERE countrycode='CHN' ; 

3.2 不等值查询

查询人口数量少于100人城市.
SELECT * FROM city WHERE population<100;
查询ID小于10的城市信息
SELECT * FROM city WHERE id<10;
查询不是中国的城市信息(尽量不使用不等于,可能不走索引)
SELECT * FROM city WHERE countrycode!='CHN';

3.3 模糊查询

查询国家代号为CH打头的城市信息.
SELECT * FROM city WHERE countrycode LIKE 'CH%';
SELECT * FROM city WHERE countrycode LIKE '%CH%';

注意: 避免使用 like 中前面带%的模糊查询

4. group by 分组子句+聚合函数应用

4.1什么是分组

按照某个列进行分组

4.2常用的聚合函数

COUNT() 计数
MAX() 最大值
MIN() 最小值
AVG() 平均值
SUM() 求和
GROUP_CONCAT() 列转行

4.3 例子

统计每个国家的城市个数
SELECT countrycode,COUNT(id) FROM city 
GROUP BY countrycode;
统一每个国家的总人口数
SELECT countrycode,SUM(population) FROM city 
GROUP BY countrycode;
统计中国,每个省的,城市个数,省总人口数
SELECT district,COUNT(NAME),SUM(Population) FROM city
WHERE CountryCode='CHN'
GROUP BY district;

5. having 子句使用

统计中国,每个省的,城市个数,省总人口数
只显示人口总数大于800w的省
SELECT district, COUNT(NAME),SUM(population) 
FROM  city  
WHERE countrycode='CHN' 
GROUP BY district 
HAVING  SUM(population)>8000000;

6. order by 子句

以上例子,将人口数进行排序输出
SELECT district, COUNT(NAME),SUM(population) 
FROM  city  
WHERE countrycode='CHN' 
GROUP BY district 
HAVING  SUM(population)>8000000
ORDER BY SUM(population) DESC ;

使用desc是倒序,不是用默认正序

查询中国所有城市信息,并以人口数降序输出

SELECT * FROM city WHERE countrycode='CHN'
ORDER BY population  DESC ;

7. limit 应用

-- 查询中国所有城市信息,并以人口数降序输出,只显示前五名

SELECT * FROM city WHERE countrycode='CHN'
ORDER BY population  DESC
LIMIT 5 ;
SELECT * FROM city WHERE countrycode='CHN'
ORDER BY population  DESC
LIMIT 10 OFFSET 0;
SELECT * FROM city WHERE countrycode='CHN'
ORDER BY population  DESC
LIMIT 5 OFFSET 5
SELECT * FROM city WHERE countrycode='CHN'
ORDER BY population  DESC
LIMIT 3,5;

跳过前N行,显示M行(N和M代表的是数字)
LIMIT M offet N
LIMIT N,M

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值