SQL查询_基本功能

一 SQL语句整体架构

SELECT     --1 查询数据表
INTO --2 新建数据表
FROM --3 查询数据表
WHERE --4 筛选数据表 ORDER BY --5 排序结果表
GROUP BY --6 分组结果表
HAVING --7 筛选分组结果表 UNION --8 合并查询结果表

二 select部分功能

1 select查询数据表

select *
from 表名

2 select查询单列和多列

--1 查询一列
select 列1名
from 表名 --2 查询多累
select 列1名 , 列2名
from 表名

3 select单列去重

SELECT   distinct  列1名  from 表名

4 select更改列名

--1 新列名放在后面
select 列1名 AS 新列名 --2 AS关键字省略
select 列1名 新列名 --3 新列名放在前面
select 新列名 = 列1名

5 select使用函数

select  函数(列1名)
from 表名

6 select多列运算

select 列1 + 列2
from 表名

7select数据标定

select 	CASE WHEN 条件表达式1   THEN  '设定字符1'
WHEN 条件表达式2 THEN '设定字符2'
WHEN 条件表达式3 THEN '设定字符3'
ELSE '设定字符4'
END as 新列名
from 表名

三 into新建表

select *
into 新表名
from 表名

四 from查询数据表

1 from父子查询

注意:语句结构过长,在电脑上可以查看完整结构

--1.子表在父表中存在的数据
select *
FROM 父表
WHERE 相同列 IN (SELECT 相同列
FROM 子表) --2.子表不在附表中存在的数据
SELECT *
FROM 父表
WHERE 相同列 NOT IN (SELECT 相同列
FROM 子表)
--说明:附带属性:用相同字段连接,通过子句属性,显示父句中匹配的数据 --3 三表子查询_重复
select *
from 表1
where 表1相同列 in ( select 表2相同列
from 表2
where 表2相同列 in ( select 表3相同列
from 表3 )) --4 三表子查询_不重复
select *
from 表1
where 相同列 in ( select 相同列
from 表2
where 身份证 not in ( select 相同列
from 表3 )) --说明:三表嵌套,赛选不重复数据,最下一层是not in 上一层是in,这就是一个逻辑反转负负得正的结果

2 from连接查询

--1.全连接:两表全部连接,包括空值
SELECT *
FROM 表1 a FULL JOIN 表2 b
ON a.相同列 = b.相同列 --2.自连接:两表有效值链接
SELECT *
FROM 表1 a INNER JOIN 表2 b
ON a.相同列 = b.相同列 --3.左连接:以左表为准,包括空值
SELECT *
FROM 表1 a LEFT JOIN 表2 b
ON a.相同列 = b.相同列 --4.右连接:以右表为准,包括空值
SELECT *
FROM 表1 a RIGHT JOIN 表2 b
ON a.相同列 = b.相同列 --5.交叉连接:同一张表提取不同字段连接
SELECT *
FROM 表1 a JOIN 表1 b
ON a.相同列=b.相同列
--说明:连表后去掉重复列名:逐个显示列 --6 三表连接_重复
select *
from 表1 as a join 表2 as b on a.表1相同列 = b.表2相同列
join 表3 as c on b.表2相同列 = c.表3相同列 --7三表连接_不重复
select *
from 表1 as a join 表2 as b on a.表1相同列 != b.表2相同列
join 表3 as c on b.表2相同列 != c.表3相同列 --8多表简便连接
--二表简便连接
select *
from 表1 , 表2
where 表1.相同列 = 表2.相同列 --三表简便连接
select *
from 表1 a, 表2 b, 表3 c
where a.身份证号=b.身份证号
and b.参合家庭编号=c.参合家庭编号 --说明:三表连接相同,结果正常显示没毛病,如果是显示三表连接不相同的,那么在连接的 = 号就有一个逻辑关系,类似于负负得正的关系

3 from父子查询+连接查询

SELECT *  from   --1总查询模型

	(select *     --2子查询1
from 父表1
where 表1相同列 in (select 表1相同列
from 子表1 ) ) AS a JOIN --3表连接名 (select * --4子查询2
from 父表2
where 表2相同列 not in (select 表2相同列
from 子表2) ) as b ON a.表1相同列 = b.表2相同列 --5表连接条件

五 where筛选数据表

1 where比较查询

SELECT *
FROM 表名
WHERE 列1名 > 50 --比较运算符
>, <, =, !=, <>

2 where区间查询

SELECT *
FROM 表名
where 列1名 BETWEEN 500 AND 100

3 where精确查询

SELECT *
FROM 表名
WHERE 列1名 IN ('字符',60)

4 where模糊查询

SELECT *
FROM 表名
WHERE 列1名 LIKE‘%字符%’ --模糊查询
LIKE‘字符%’ --精确查询
LIKE‘_字符%’ --定位查询
LIKE‘%[50%]%’ --数字符号查询
LIKE‘%[^50%]%’ --逆向查询

5 where空值查询

SELECT *
FROM 表名
where 列1名 is NULL
列1名 is NOT NULL

6 where多条件筛选

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 order by单列排序

SELECT   *
FROM 表名
WHERE 查询条件
ORDER BY 列1名 --正序
ORDER BY 列1名 DESC --倒序

2 order by多列排序

SELECT   *
FROM 表名
WHERE 查询条件
ORDER BY 列1名,列2名

七 group by分组结果表

1 group by单列分组求数

SELECT 列1名,COUNT(*)
FROM 表名
GROUP BY 列1名

2 group by多列分组求数

SELECT   列1名,列2名,列3名,COUNT (*)
FROM 表名
GROUP BY 列1名 ,列2名,列3名

八 union合并查询结果表

--说明:union的功能不仅可以合并相同字段结果,也可以达到去掉重复的结果
--说明:字段必须相同 --1 合并结果:列必须相同
SELECT 列1,列2,列3
FROM 数据表 WHERE UNION SELECT 列1,列2,列3
FROM 数据表 WHERE --2 结果新建表
SELECT *
INTO 新建表名
FROM (SELECT * FROM 表1
UNION
SELECT * FROM 表2) AS 新表名 --3 批量合并结果
careate view 视图名 as
select * from 表1
union all
select * from 表2
......其他所有表
--说明:使用union all 上面不能接别的语句,会报错

(本章完)

感恩笔记之SQL语句操纵数据集基本功能模板的更多相关文章

  1. 感恩笔记之SQL查询功能最简使用模板

    感恩笔记之SQL查询功能最简使用模板 第一部分:SQL单表功能 1 语句主要关键字 SELECT --查询数据列 INTO --新建数据表 FROM --查询数据表 WHERE --筛选数据表结果 O ...

  2. Dbvisualizer软件设置SQL语句的自动提示功能

    之前从来没有使用过Dbvisualizer软件,用起来之后发现比mysqlfront不是好一点.之前一直不知道sql语句的自动提示功能,只能一个个单词输入,而且不是默认设置.之后在网上找到了怎么设置, ...

  3. mysql学习笔记—常用sql语句

    sql注意事项: SQL 对大小写不敏感:SELECT 与 select 是相同的 某些数据库系统要求在每条 SQL 语句的末端使用分号. CREATE DATABASE CREATE DATABAS ...

  4. 【初学Java学习笔记】SQL语句调优

    1, 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2,应尽量避免在 where 子句中对字段进行 null 值判断,创建表时NULL是默认 ...

  5. Excel下用SQL语句实现AVEDEV函数功能

    Excel下AVEDEV函数返回一组数据点到其算术平均值的绝对偏差的平均值. AVEDEV 是对一组数据中变化性的度量.最常见的应用就是统计平均分差. 但是如果在Excel中写SQL进行一些复杂的统计 ...

  6. Hibernate执行SQL语句实现查询修改功能!

    今天玩Hibernate时突然就想写写SQL语句查询... DAO : //查询 public List<?> createSqlQueryList(final String queryS ...

  7. CUBRID学习笔记 18 sql语句的预处理(类似存储过程)

    定义预处理  类似sqlserver的存储过程 语法 PREPARE stmt_name FROM preparable_stmt 说明 PREPARE 关键字 stmt_name 预处理语句的名字 ...

  8. CUBRID学习笔记 19 sql语句1

    创建 欢迎转载 ,转载时请保留作者信息.本文版权归本人所有,如有任何问题,请与我联系wang2650@sohu.com . 过错 create table tableName (字段名 字段类型 pr ...

  9. (转载)SQL语句,纵列转横列

    SQL语句,纵列转横列 Feed: 大富翁笔记 Title: SQL语句,纵列转横列 Author: wzmbox Comments sTable.db库位 货物编号 库存数1 0101 501 01 ...

随机推荐

  1. jquery validate 验证插件 解决多个相同的Name 只验证第一个的方案

    方案一:如果 项目里不是只是个别页面 有多个name 验证, 那么利用 prototype 来写,把这段代码加在你所要使用多个name的页面  的js初始化里 即可 if ($.validator) ...

  2. 【CSS简介、基础选择器、字体属性、文本属性、引入方式】前端小抄(2) - Pink老师自学笔记

    [CSS简介.基础选择器.字体属性.文本属性.引入方式]前端小抄(2) 本学习笔记是个人对 Pink 老师课程的总结归纳,转载请注明出处! 一.CSS简介 CSS 的主要使用场景就是布局网页,美化页面 ...

  3. ES6扩展——模板字符串

    ${ } 模板字符串占位符 需要用反引号` ` 1.模板字符串 `${变量}` const xiaoming = { name:'xiaoming', age:14, say1:function(){ ...

  4. netty系列之:搭建自己的下载文件服务器

    目录 简介 文件的content-type 客户端缓存文件 其他HTTP中常用的处理 文件内容展示处理 文件传输进度 总结 简介 上一篇文章我们学习了如何在netty中搭建一个HTTP服务器,讨论了如 ...

  5. PyPDF2.py 合并pdf时报错问题

    报错如下: Traceback (most recent call last): File "./pdf_merge.py", line 68, in <module> ...

  6. AFL++初探-手把手Fuzz一个PDF解析器

    CVE-2019-13288 目前漏洞在正式版本已经被修复,本文章仅供学习Fuzz过程,不存在漏洞利用的内容 这是一个pdf查看器的漏洞,可能通过精心制作的文件导致无限递归,由于程序中每个被调用的函数 ...

  7. Java基础(三)——内部类

    一.内部类 内部类(Inner Class)就是定义在一个类里面的类.与之对应,包含内部类的类被称为外部类.内部类可以用private修饰. 1.为什么要定义内部类?或者内部类的作用是什么? 内部类提 ...

  8. MyBatis学习总结(四)——字段名与实体类属性名不相同的冲突的解决

    表中的字段名和表对应实体类的属性名称不一定都是完全相同的,这种情况下的如何解决字段名与实体类属性名不相同的冲突.如下所示: 一.准备演示需要使用的表和数据 CREATE TABLE my_user( ...

  9. [考试总结]noip模拟42

    开始给了一个简单的题目,但我还是没有珍惜. 一个简简单单的树形 \(dp\),然而因为取模却不知道该如何比较大小.. 其实可以取 \(log\),然后我就梦中惊坐起,然后想到了魔法少女lbw 淦 然后 ...

  10. Linux - 解决使用 apt-get 安装 yum 的时耗报 E: Unable to locate package yum 的错误

    问题背景 在 Linux 系统下使用 apt-get 命令安装 yum 库报错 apt-get install yum E: Unable to locate package yum 问题解决 一行命 ...