Introducción consulta MySQL

palabras claves comunes

-- 简单查询
SELECT 列字段2 FROM 表名 WHERE 列字段1 = '列值1';

-- 别名 AS
SELECT 列字段1 AS 别名1 FROM 表名1;

-- 去重查询 DISTINCT
SELECT DISTINCT 列字段2 FROM 表名 WHERE 列字段1 = '列值1';

-- 区间查询 BETWEEN ... AND ...
SELECT 列字段2 FROM 表名 WHERE 列字段1 BETWEEN 某个列值 AND 另一个列值;
-- 区间查询 AND
SELECT 列字段2 FROM 表名 WHERE 列字段1 > 某个列值 AND 列字段1 < 另一个列值;

-- 或者关系查询 IN
SELECT * FROM 表名 WHERE 列字段1 IN ('列值1', '列值2', '列值3');
-- 或者关系查询 OR
SELECT * FROM 表名 WHERE 列字段1 = '列值1' OR 列字段2 = '列值2';

-- 升序查询(默认)ORDER BY 列字段 ASC
SELECT * FROM 表名 ORDER BY 列字段1 ASC;
-- 降序查询 ORDER BY 列字段 DESC
SELECT * FROM 表名 ORDER BY 列字段1 DESC;
-- 升序+降序查询 ORDER BY 列字段1 ASC, 列字段2 DESC
SELECT * FROM 表名 ORDER BY 列字段1 ASC, 列字段2 DESC;

-- 任意一个 ANY
SELECT * FROM 表名1 WHERE 列字段1 > ANY (SELECT 列字段1 FROM 表名1 WHERE 列字段2 = '列值2');
-- 每一个 ALL
SELECT * FROM 表名1 WHERE 列字段1 > ALL (SELECT 列字段1 FROM 表名1 WHERE 列字段2 = '列值2');

-- 显示前多少行 LIMIT
SELECT * FROM 表名 LIMIT 0, 行号;

Funciones comunes

-- 统计个数 COUNT
SELECT COUNT(*) FROM 表名 WHERE 列字段1 = '列值1';

-- 找到最大 MAX
SELECT MAX(列字段1) FROM 表名;
-- 找到最小 MIM
SELECT MIN(列字段1) FROM 表名;

-- 找到平均 AVG
SELECT AVG(列字段1) FROM 表名;

-- 时间格式获取年份 YEAR
SELECT YEAR(列字段1) FROM 表名;
-- 获取当前年份 NOW
SELECT YEAR(NOW());
-- 获取年龄
SELECT YEAR(NOW()) - YEAR(列字段1) FROM 表名1;

coincidencia aproximada

-- 模糊匹配 LIKE,% 表示任意个字符
SELECT * FROM 表名1 WHERE 列字段1 NOT LIKE '某值%';

La agrupación de consultas

-- 分组平均值 GROUP BY
SELECT 列字段1, AVG (列字段2) FROM 表名 GROUP BY 列字段1;

-- GROUP BY ... HAVING

Multi-tabla de consulta

-- 简单多表查询
SELECT 列字段1, 列字段2 FROM1,2 WHERE1.列字段1 =2.列字段2;

subconsultas

-- 简单子查询
SELECT 列字段1 FROM1 WHERE 列字段2 > 
	(SELECT 列字段2 FROM1 WHERE 列字段3 = '列值3');
SELECT 列字段1 FROM1 WHERE 列字段2 > 
	(SELECT 列字段2 FROM2 WHERE 列字段3 = '列值3');
	
-- WHERE 子查询来替代了分组查询
SELECT * FROM 表名1 别名1 WHERE 列值1 < 
	(SELECT AVG (列值1) FROM 表名1 别名2 WHERE 别名1.列值2 = 别名2.列值2);

consulta de combinación

-- 内连接 INNER JOIN ... ON 或者 JOIN ... ON
-- 内连接求交集
SELECT * FROM 表名1 INNER JOIN 表名2 ON 表名1.列字段1 = 表名2.列字段2;

-- 左连接 LEFT JOIN ... ON 或者 LEFT OUTER JOIN ... ON
-- 左连接即左侧全查,不管右边存不存在
SELECT * FROM 表名1 LEFT JOIN 表名2 ON 表名1.列字段1 = 表名2.列字段2;

-- 右连接 RIGHT JOIN .. ON 或者 RIGHT OUTER JOIN ... ON
-- 右连接即右侧全查,不管左边存不存在
SELECT * FROM 表名1 RIGHT JOIN 表名2 ON 表名1.列字段1 = 表名2.列字段2;

-- 全外连结,很可以 mysql 已经没有全外连接了,可以通过 UNION 联合查询的形式来替代全外连接
-- 全外连结求并集
SELECT * FROM 表名1 LEFT JOIN 表名2 ON 表名1.列字段1 = 表名2.列字段2;
UNION
SELECT * FROM 表名1 RIGHT JOIN 表名2 ON 表名1.列字段1 = 表名2.列字段2;

investigación conjunta

-- 简单联合查询 UNION 即求并集会自动去重
SELECT * FROM1 WHERE 列字段1 = '列值1' UNION 
	SELECT * FROM1 WHERE 列字段2 = '列值2'
Ha publicado 197 artículos originales · ganado elogios 62 · vistas 70000 +

Supongo que te gusta

Origin blog.csdn.net/abcnull/article/details/104786985
Recomendado
Clasificación