SQL学习—基础查询
目录
一、基础查询
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学习—基础查询相关推荐
- SQL学习——基础篇
SQL学习--基础篇 0. 数据库的概念 0.1 数据库设计的基本步骤 1. SQL的语法特点 2. SQL数据类型 2.1 常用类型 2.2 text类型 2.3 number类型 2.4 date ...
- SQL学习-基础课程
SQL学习-基础课程 概念 创建 外键 foreign key 查询 Query 添加/插入数据 Create 修改/更新数据 Update 删除数据 Delete 列查询 列运算 列别名 去重 条件 ...
- 窥探SQL: 2.基础查询与排序
窥探SQL: 2.基础查询与排序 基础查询 语句 关键词 SELECT WHERE FROM, As, DISTINCT 基本法则 运算符 算术运算符 比较运算符 逻辑运算符 NOT AND 和 OR ...
- 【SQL】SQL(基础查询)、SQL(关联查询)
原文链接:https://blog.csdn.net/kuangzhixuan/article/details/74299047?utm_source=blogxgwz2 SQL(基础查询) 1.1. ...
- SQL 02 基础查询与排序
2.1 SELECT语句基础 2.1.1 从表中选取数据 SELECT语句:基本SELECT语句包含了SELECT和FROM两个子句(clause) SELECT <列名>, FRO ...
- SQL学习(组合查询)
组合查询 多数SQL查询都只包含一个或从多个表中返回数据的单条SELECT语句.MySQL也允许执行多个查询(多条SELECT语句),并将结果作为单个查询结果集返回.这些组合查询通常称为并或复合查询 ...
- CDA数据分析师 - SQL数据库基础 查询连接
SQL 查询 [应用] 查询单表语句 select语句.from 语句.where 语句.group by 语句.having 语句.order by 语句.limit语句&子查询等 聚合函数 ...
- 6. SQL 多表查询
文章目录 1. 表的加法 1.1 UNION 去重合并 1.2 UNION ALL 简单合并 1.3 注意事项 2. 表的联结 JOIN 2.1 交叉联结 CROSS JOIN 2.2 内联结 INN ...
- MySQL基础——数据库和SQL概述\MySQL基本使用\DQL语言学习\条件查询\排序查询\常见函数\分组查询\连接查询\子查询\分页查询\联合查询
本文详细讲解了MySQL中DQL语言,也就是数据查询语句的使用.全文3w余字,是对学习MySQL知识的整理总结,因为篇幅较长,MySQL基础知识余下部分发表在余下博客中 DML语言学习\插入数据\删除 ...
最新文章
- 基于OpenCV的直方图匹配
- html5 strongeaseinout,Canvas開發庫封裝
- R语言回归模型构建、回归模型基本假设(正态性、线性、独立性、方差齐性)、回归模型诊断、car包诊断回归模型、特殊观察样本分析、数据变换、模型比较、特征筛选、交叉验证、预测变量相对重要度
- (原)调用jpeglib对图像进行压缩
- 设计RandomPool结构
- 青蛙跳台阶问题(思路与蜂窝问题一致)
- 解秘亿级网站的一本书——亿级流量网站架构核心技术
- CSS布局之脱离文档流详解——浮动、绝对定位脱离文档流的区别
- 设计模式六大原则——迪米特法则(LoD)
- 扫雷php,PHP也可以写扫雷游戏 不信看这里 PHP挖地雷
- androidstudio 3 Android Device Monitor
- VS错误的解决办法:error LNK2019: 无法解析的外部符号
- php算数组内值的总和,怎样使用array_sum() 计算数组元素值总和
- 关于瑞萨RH850中断的异常处理函数地址Exception Handler Address的理解
- 下载网页中镶嵌的PDF文件
- VLAN-TAG超经典解释
- 使用igvtools可视化测序深度分布
- 天猫为海澜之家打造“智慧门店”;东方网力联手电子科技大学,共建人工智能联合实验室...
- 【题解】【AcWing】1526. 洗牌机
- 计算机轴测图绘图实验报告,Auto_CAD实验报告_轴测图.doc