感恩笔记_1SQL单表查询功能
发布于 2021-09-28 13:09
感恩笔记_1SQL单表查询功能
文章导读:
三最原则:最短学习路径,最优结构体系,最纯核心知识.
使用方法:简单粗暴,复制功能代码,直接替换表名和列名.
一 SQL语句整体架构
SELECT --1 查询数据列
INTO --2 新建数据表
FROM --3 查询数据表
WHERE --4 筛选数据表
ORDER BY --5 排序结果表
GROUP BY --6 分组结果表
HAVING --7 筛选分组结果表
UNION --8 合并查询结果
功能说明:这是SQL语句的整体架构关键字,所有的语句构建都是从这个架构开始的,了解了这些功能,才能更好的去解读庞大复杂的SQL语句
二 select部分功能
1 查询全部列
select * from 表名
功能说明:这是最基础的SQL语句,查询一个表格的所有信息
2 查询一列和多列
--1 查询一列
select 列1名 from 表名
--2 查询多累
select 列1名 , 列2名 from 表名
功能说明:可以单独查询一列数据,也可以选择多列数据查询
3 单一列去重
SELECT distinct 列1名 from 表名
功能说明:给一列数据去掉重复数据,SQL的功能只能是给一列去重.
4 修改列名
--1 新列名放在后面
select 列1名 AS 新列名
--2 AS关键字省略
select 列1名 新列名
--3 新列名放在前面
select 新列名 = 列1名
功能说明:对于原表列名和新增列的列名都可以用这个格式进行修改,结果会变成修改后的,但是数据库中的原始表不会改变,需要把结果表使用into新建临时表,或者通过修改列的语句彻底修改表名.
5 新增列_使用函数
select 函数(列1名) AS 新列名 from 表名
功能说明:根据函数中参数的使用格式,写入要处理的列名,函数会对整列进行处理,常用函数的功能介绍会在以后的笔记中单独做汇总.
6 新增列_多列运算
select 列1 + 列2 as 新列名 from 表名
功能说明:字符列之间可以通过+号进行拼接,数值列可以通过运算符进行计算.
7 新增列_数据标定
select CASE WHEN 条件表达式1 THEN '设定字符1' -
WHEN 条件表达式2 THEN '设定字符2'
WHEN 条件表达式3 THEN '设定字符3'
ELSE '设定字符4'
END as 新列名
from 表名
功能说明:这个语句是通过个人的设定,对原有数据进行分类标记,从而得到需要的结果.
8 列功能组合使用
--1 函数处理+列计算+列改名
select 函数(列) + 列名 AS 新列名
from 表名
--2 数据标定+函数处理+列计算+列改名
select CASE WHEN 函数(列) + 列 > 80 THEN '设定字符1'
ELSE '设定字符2'
END as 新列名
FROM 表名
功能说明:在select部分,函数的使用,列计算的使用,分类标定的使用都是可以进行组合使用的,SQL的强大功能和灵活性就在于此.
三 into部分功能
select *
into 新表名
from 表名
功能说明:如果使用into语句,运行的时候会把查询结果在数据库中新建一个表,但是如果列中有重复的列名,就会报错.
三 from部分功能
说明:from的扩展功能涉及父子查询和连接查询,因此此处知识点在多表查询中讲解
四 where部分功能
1 比较查询
SELECT * FROM 表名
WHERE 列1名 > 50
--比较运算符
>, <, =, !=, <>
功能说明:对数值列进行运算符比较.
2 区间查询
SELECT * FROM 表名
where 列1名 BETWEEN 500 AND 100
功能说明:对数值列进行数值区间选取.
3 精确查询
SELECT * FROM 表名
WHERE 列1名 IN ('字符',60)
功能说明:可以查询字符列和数值列,可以多个同时查询,但是字符和数值要完全一直.
4 模糊查询
SELECT * FROM 表名
WHERE 列1名 LIKE‘%字符%’ --模糊查询
LIKE‘字符%’ --精确查询
LIKE‘_字符%’ --定位查询
LIKE‘%[50%]%’ --数字符号查询
LIKE‘%[^50%]%’ --逆向查询
功能说明:可以对字符进行模糊查询,但是不同同时查询多个,如果想多个查询,需要使用and和or进行两个筛选条件的组合.
5 空值查询
SELECT * FROM 表名
where 列1名 is NULL
列1名 is NOT NULL
功能说明:查询列中是否是空值.
6 条件查询组合使用
SELECT * FROM 表名
where 列1名 > 50 and
列2名 BETWEEN 500 AND 100 and
列3名 IN ('字符',60) or
列4名 LIKE‘%字符%’ or
列5名 is NOT NULL
五 order by部分功能
1 单列排序
SELECT *
FROM 表名
WHERE 查询条件
ORDER BY 列1名 --正序
ORDER BY 列1名 DESC --倒序
功能说明:order by后带入列名,会对这一列进行正序和倒序的排序.
2 多列排序
SELECT *
FROM 表名
WHERE 查询条件
ORDER BY 列1名,列2名
功能说明:可以进行双列同时排序.
六 group by部分功能
1 单列分组求数
SELECT 列1名,COUNT(*)
FROM 表名
GROUP BY 列1名
功能说明:SQL的分组格式比较复杂,含义是按照列1名进行分组,然后按照统计函数中的列进行各类计算.
条件一:select中的列名和group by中的列名要一直
条件二:select中必须要有统计函数
2 多列分组求数
SELECT 列1名,列2名,列3名,COUNT (*)
FROM 表名
GROUP BY 列1名 ,列2名,列3名
功能说明:有的时候只给一列进行分组,但是看不到其他相关信息,因此可以添加多列显示,上下列名还是要一一对应.
3 分组求数+求和
SELECT 列1名 , COUNT(求数列) as 次数 , SUM(求和列) as 总额
FROM 表名
GROUP BY 列1名
功能说明:可以对多个列进行不同的统计函数计算,组合在一起得到我们想要的结果,这个语句的意思是:对列1名进行分组,count()获得重复次数,sum()获得数值列相加结果.
(本章完)
本文来自网络或网友投稿,如有侵犯您的权益,请发邮件至:aisoutu@outlook.com 我们将第一时间删除。
相关素材