原文链接:https://mp.weixin.qq.com/s/v8qh3b771ed5pkcAxPllJw
写在前面:
从实践的角度讲,熟悉数据库的第一步大概率是查询,今天总结了数据库查询的基础知识,分享给大家~
基础部分
最简单的查询语句
SELECT 字段名1,字段名2 FROM 表名
查询全部字段
SELECT *FROM表名
查询并去重
筛选掉字段名1,字段名2都相同的数据项
SELECT DISTINCT 字段名1,字段名2FROM 表名
查询到的字段赋以新字段名
SELECT 字段名1 AS 新字段名1,字段名2 AS 新字段名2FROM 表名
通过组合逻辑查询数据表中不存在的字段
SELECT 字段名1,计算逻辑1 AS 字段名2FROM 表名
例如:
SELECT user_id,SUM(VALUE1,VALUE2) AS VALUEFROM use_info_table
添加筛选条件
SELECT 字段名1,字段名2FROM 表名WHERE 条件1 AND 条件2 OR 条件3
分组查询(常见用法)
SELECT 字段名1,COUNT(字段名2),SUM (字段名3)FROM 表名GROUP BY 字段名1
解释:按字段名1分组,在分组内对字段2计数,对字段3求和
分组查询(不常见用法)
SELECT 字段名1,字段名2FROM 表名GROUP BY 字段名1
解释:按字段名1分组,在分组内对字段2随机取值
对查询结果排序
SELECT 字段名1,字段名2FROM 表名ORDER BY 字段名1 ASC/DESC
解释:ASC表升序,DESC表降序,默认升序
对查询结果进行过滤
SELECT 字段名1,字段名2FROM 表名HAVING 条件1 AND 条件2 OR 条件3
解释:WHERE用于约束数据,在返回结果集之前起作用,HAVING是一个过滤声明,是在查询返回结果集以后对查询结果进行的过滤操作。
限制输出数据项条数
SELECT 字段名1,字段名2 FROM 表名LIMIT 条数
以上命令执行顺序
select–>where–>groupby–>having–>orderby
多表查询、子查询、UNION操作符
内连接INNERJOIN
SELECT a.字段名1,b.字段名3FROM 表1 aINNER JOIN 表2 bON a.字段名1 = b.字段名2
解释:只有当表1字段1和表2字段2都存在时才会匹配出结果
左连接LEFTJOIN
SELECT a.字段名1,b.字段名3FROM 表1 aLEFT JOIN 表2 bON a.字段名1 = b.字段名2
解释:以表1字段1为准,表2字段2无对应值时补Null
右连接RIGHTJOIN
SELECT a.字段名1,b.字段名3FROM 表1 aRIGHT JOIN 表2 bON a.字段名1 = b.字段名2
解释:以表2字段2为准,表1字段1无对应值时补Null
更多内容麻烦移步原文:
https://mp.weixin.qq.com/s/v8qh3b771ed5pkcAxPllJw