目录

一、基础查询

1.基础查询

2.查询结果简单处理

Ⅰ 查询结果去重

Ⅱ.查询结果限制行数

Ⅲ.查询结果排序

Ⅳ.条件查询

二、高级查询

1.聚合函数

2.多表查询

三、常用函数

1.条件函数

2.日期函数


注:本文仅限于初学者在学习过程中的感悟,会保持持续更新。

一、基础查询

1.基础查询

需求:查询所有列

注意:使用列名查询效率高于全表查询,因为全表查询会扫描全表后再输出。

代码如下:

select * from <表名>
————————————————————————————————————————————————————
select <列名1>,<列名2>,...,<列名n> from <表名>

2.查询结果简单处理

Ⅰ 查询结果去重

需求:对查询所得输出列进行去重

注意:

1、group by语句与distinct关键字都是对之后所有查询字段完全相同的数据进行去重

2、group by语句出现时,之前查询的字段能且只能存在于聚合函数或者group by语句之后。

代码如下:

select distinct <列名> from <表名>
————————————————————————————————————————————
select <列名> from <表名> group by <列名>

Ⅱ.查询结果限制行数

需求:对查询所得输出进行数目限制

注意:limit起始下标默认为0,即选取数据默认从第一行数据开始

代码如下:

select <列名> from <表名> limit <起始下标>,<限制数目>

Ⅲ.查询结果排序

需求:对查询所得输出进行排序

注意:order by排序按字段顺序进行排序,默认排序为升序asc。

代码如下:

select <列名> from <表名> order by <字段1><模式>,<字段2><模式>,...,<字段n><模式>

Ⅳ.条件查询

查询条件可分为以下情况:

一、按照条件表达式筛选:条件运算符:大于>,小于<,等于=,不等于<>或!=

二、按照逻辑表达式筛选:逻辑运算符:与 and , 或 or , 非 not

三、模糊查询:like ,between and ,in ,is null

需求:对数据按条件进行查询

注意:

1、between and 在不同的数据库软件中范围效果不同,请确定自己所用软件规则后再使用

2、like 后使用‘字符串’,in 后使用(数组)

3、判断类型的时候应该注意:

= 与 != 只能判断基础类型

is 与 not is 只能判断NULL

<=> 既能判断基础类型,也能判断NULL

代码如下:

select <列名> from <表名> where <<条件表达式>>

二、高级查询

1.聚合函数

聚合函数:是对一组数执行特殊计算并返回每个组唯一的值的函数,因此大多情况下都与Group by语句连用。

以下是常用的SQL聚合函数:

  • AVG() - 返回组的平均值,仅可用于数字类型数据。
  • SUM() - 返回组中所有值的总和,仅可用于数字类型数据。
  • COUNT() - 返回组中的项目总数,可用于数字与字符串类型数据。
  • MAX() - 返回组中的最大值,可用于数字、日期与字符串类型数据。
  • MIN() - 返回组中的最小值,可用于数字、日期与字符串类型数据。

注意:

1、聚合函数通常会忽略数据中的NULL值。

2、聚合函数所得结果并不与原数据连接,因此需要与原表进行连接查询来调用相关数据。

WHERE 与 HAVING 的使用区别:

1、where语句在group by语句之前执行,因此where无法筛选分组之后的数据。

2、在连接的关联表中,where语句是先筛选后连接,having语句是先连接后筛选。

3、where语句大部分情况下运行效率高于having语句。

2.多表查询

多表查询常用方法如下:

1、普通接连查询:交叉连接、内连接、左连接、右连接。

2、联合链接:同字段类型必须严格一致,依靠UNION连接各表。

3、子查询:在某个查询结果内进行二次查询。

注意:

1、交叉连接形成一个两表的笛卡尔积。

2、内连接与外连接都需要靠某个字段进行连接。

内连接是将两表数据的交集;

左连接是以左表中每一个数据与右表数据进行匹配,最准保留数据数为左表中数据数目。

WHERE 与 ON 的使用差别:

1、内连接中on与where没有太大区别。

2、外连接之中,on是先筛选后连接,因此对没有匹配的数据会返回NULL值。where是先连接后筛选。

代码如下:

select <列名> from <表名1> (连接模式)join <表名2> on <<条件表达式>>
—————————————————————————————————————————————————————————————————
select <列名> from <表名> where <<条件表达式>> union select <列名> from <表名> where <<条件表达式>>
——————————————————————————————————————————————————————————————————————————————————————————
select <列名> from <表名> where < 字段 = select <列名> from <表名> where <字段表达式> >

三、常用函数

1.条件函数

--case when 语句
case when <判断条件> then <真命题结果> else <假命题结果> end
————————————————————————————————————
--if语句
if(<判断条件>,<真命题结果>,<假命题结果>)

2.日期函数

常见日期函数如下:

1、获取时间函数

now() :获取现在的时期与时间

curdate() :获取现在的时期

curtime() :获取现在的时间

year( Time ) :获取 Time 中的年份

month( Time ) :获取 Time 中的月份

day( Time ) :获取 Time 中的天数

hour( Time ) :获取 Time 中的小时

minute( Time ) :获取 Time 中的分数

second( Time ) :获取 Time 中的秒数

2、时间计算函数

date_add( Time ,interval 1 时间数 ) :增加Time的1单位时间数

date_sub( Time ,interval 1 时间数 ) :减少Time的1单位时间数

datediff( Time1,Time2 ) :计算两时间之间间隔天数

SQL学习—基础查询相关推荐

  1. SQL学习——基础篇

    SQL学习--基础篇 0. 数据库的概念 0.1 数据库设计的基本步骤 1. SQL的语法特点 2. SQL数据类型 2.1 常用类型 2.2 text类型 2.3 number类型 2.4 date ...

  2. SQL学习-基础课程

    SQL学习-基础课程 概念 创建 外键 foreign key 查询 Query 添加/插入数据 Create 修改/更新数据 Update 删除数据 Delete 列查询 列运算 列别名 去重 条件 ...

  3. 窥探SQL: 2.基础查询与排序

    窥探SQL: 2.基础查询与排序 基础查询 语句 关键词 SELECT WHERE FROM, As, DISTINCT 基本法则 运算符 算术运算符 比较运算符 逻辑运算符 NOT AND 和 OR ...

  4. 【SQL】SQL(基础查询)、SQL(关联查询)

    原文链接:https://blog.csdn.net/kuangzhixuan/article/details/74299047?utm_source=blogxgwz2 SQL(基础查询) 1.1. ...

  5. SQL 02 基础查询与排序

    2.1 SELECT语句基础 2.1.1 从表中选取数据 SELECT语句:基本SELECT语句包含了SELECT和FROM两个子句(clause) SELECT <列名>,    FRO ...

  6. SQL学习(组合查询)

    组合查询 多数SQL查询都只包含一个或从多个表中返回数据的单条SELECT语句.MySQL也允许执行多个查询(多条SELECT语句),并将结果作为单个查询结果集返回.这些组合查询通常称为并或复合查询 ...

  7. CDA数据分析师 - SQL数据库基础 查询连接

    SQL 查询 [应用] 查询单表语句 select语句.from 语句.where 语句.group by 语句.having 语句.order by 语句.limit语句&子查询等 聚合函数 ...

  8. 6. SQL 多表查询

    文章目录 1. 表的加法 1.1 UNION 去重合并 1.2 UNION ALL 简单合并 1.3 注意事项 2. 表的联结 JOIN 2.1 交叉联结 CROSS JOIN 2.2 内联结 INN ...

  9. MySQL基础——数据库和SQL概述\MySQL基本使用\DQL语言学习\条件查询\排序查询\常见函数\分组查询\连接查询\子查询\分页查询\联合查询

    本文详细讲解了MySQL中DQL语言,也就是数据查询语句的使用.全文3w余字,是对学习MySQL知识的整理总结,因为篇幅较长,MySQL基础知识余下部分发表在余下博客中 DML语言学习\插入数据\删除 ...

最新文章

  1. 基于OpenCV的直方图匹配
  2. html5 strongeaseinout,Canvas開發庫封裝
  3. R语言回归模型构建、回归模型基本假设(正态性、线性、独立性、方差齐性)、回归模型诊断、car包诊断回归模型、特殊观察样本分析、数据变换、模型比较、特征筛选、交叉验证、预测变量相对重要度
  4. (原)调用jpeglib对图像进行压缩
  5. 设计RandomPool结构
  6. 青蛙跳台阶问题(思路与蜂窝问题一致)
  7. 解秘亿级网站的一本书——亿级流量网站架构核心技术
  8. CSS布局之脱离文档流详解——浮动、绝对定位脱离文档流的区别
  9. 设计模式六大原则——迪米特法则(LoD)
  10. 扫雷php,PHP也可以写扫雷游戏 不信看这里 PHP挖地雷
  11. androidstudio 3 Android Device Monitor
  12. VS错误的解决办法:error LNK2019: 无法解析的外部符号
  13. php算数组内值的总和,怎样使用array_sum() 计算数组元素值总和
  14. 关于瑞萨RH850中断的异常处理函数地址Exception Handler Address的理解
  15. 下载网页中镶嵌的PDF文件
  16. VLAN-TAG超经典解释
  17. 使用igvtools可视化测序深度分布
  18. 天猫为海澜之家打造“智慧门店”;东方网力联手电子科技大学,共建人工智能联合实验室...
  19. 【题解】【AcWing】1526. 洗牌机
  20. 计算机轴测图绘图实验报告,Auto_CAD实验报告_轴测图.doc

热门文章

  1. 汽车平台|基于Springboot实现汽车销售平台
  2. 【浙政钉】微信-专有钉钉小程序-开发踩坑实记
  3. Ansys仿真TDR
  4. 使用js计算N天前后的日期
  5. linux没有i18n文件,修改linux默认语言i18n
  6. 人脸检测+人体检测C++ Android项目
  7. NBA2k 1.04
  8. 如何将word文件名批量导入excel
  9. [网络安全]dSploit-Android系统下的网络分析和渗透套件的使用
  10. Java支付功能实现