感恩笔记_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 我们将第一时间删除。

相关素材