目录

一、基础查询

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. RStudio版本号管理 整合Git
  2. 关于WriteFile函数的lpNumberOfBytesWritten在Win8开始的不同
  3. 2018-06-02笔记
  4. 首发:友盟2015年Q2、Q3中国移动互联网趋势报告
  5. 【机器学习】一文解读时间序列基本概念
  6. IP地址,子网掩码,默认网关,路由,形象生动阐述
  7. 479 Largest Palindrome Product 最大回文数乘积
  8. linux出现bash: ./java: cannot execute binary file 问题的解决办法
  9. antd 的form 表单怎么回显数据_antd design Form动态增减表单项(多个),组装数据及编辑回显,选择初始值,控制添加减少表单项数量等...
  10. python安装包后找不到指定模块
  11. html广告加图片,网站广告图片右下角加上“广告”水印标识代码
  12. 如何制作疫情民生地图
  13. 金山打字计算机实验报告,打字实训报告总结(共10篇).docx
  14. vb6判断操作系统版本-从win95到win7
  15. 微信html5线上卡券,16.7.1HTML5网页领取卡券
  16. 微软云服务器路由跟踪,使用路由日志查看器
  17. Matlab 打不开 无法运行 win10 系统 卡在启动界面没有反应 语言bug
  18. Linux内部字段分离符环境变量IFS
  19. TokenInsight对话首席——揭秘7*24小时用数学解码交易的神秘玩家:量化交易者
  20. K8sPod对象的生命周期

热门文章

  1. vue redirect 用法
  2. SAGANPose | 隐式结构化对抗人体姿态估计网络
  3. 【优惠购】办公首选台式机仅需1999元!
  4. canvas基础1 - 画直线(通俗易懂)
  5. golang defer原理
  6. js 使用前端导出excel,设置标题和页脚,实现特殊表格需求
  7. 【PyCharm良心插件推荐】如何让自己的PyCharm独具一格?
  8. flex弹性布局图解
  9. 架构设计:系统间通信(31)——其他消息中间件及场景应用(下1)
  10. jeesite4 购买价格_Jeesite4常见问题总结