美文网首页
MySQL基础及元数据获取学习笔记day04

MySQL基础及元数据获取学习笔记day04

作者: 我要笑 | 来源:发表于2019-08-09 17:11 被阅读0次

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;
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;
SELECT GROUP_CONCAT(USER,"@",HOST) FROM mysql.user;

-- 2. FROM 子句应用


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

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


SELECT * FROM city; cat /etc/passwd
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;
-- 统计中国,每个省的,城市个数,省总人口数

-- 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 ;

-- 查询中国所有城市信息,并以人口数降序输出
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

相关文章

网友评论

      本文标题:MySQL基础及元数据获取学习笔记day04

      本文链接:https://www.haomeiwen.com/subject/xughjctx.html