<MySQL> MySQL中查询(retrieve)数据的基础操作

目录

一、查询(retrieve)

1.1 查询数据的方式概述

二、全列查询

2.1 语法

2.2 操作演示

2.3 全列查询需要慎重使用

三、指定列查询

3.1 语法

3.2 操作演示

四、表达式查询

4.1 语法

4.2 操作演示

4.3 null 参与表达式计算

4.3 表达式查询存的缺陷

4.4 临时表中列的类型

五、查询结果指定别名(as)

5.1 语法

5.2 操作演示

六、去重查询(distinct)

6.1 语法

6.2 操作演示

七、排序查询(order by)

7.1 排序规则

7.2 语法

7.3 操作演示

八、条件查询(where)

8.1 语法

8.2 运算符简介

8.3 运算符   >   >=   <   <=

8.4 运算符   =   <=>

8.5 运算符   !=   <>

8.6 范围匹配 between A and B

8.7 选择匹配 in (option, ......)

8.8 判断空和非空 is null、is not null

8.9 模糊匹配运算符 like

8.10 运算符 与and、或or、非not

8.11 where 后的条件表达式中不能使用别名

8.12 条件查询中的 SQL 语句的执行顺序

九、分页查询(limit)

9.1 语法

9.2 分页查询的优点

9.3 操作演示


一、查询(retrieve)

1.1 查询数据的方式概述

查询方式简单说明
全列查询查询表中所有数据;
指定列查询查询表中指定列的数据;
表达式查询根据表达式查询相关列并运算,打印运算结果;
查询结果指定别名(as)为查询结果中的列指定别名,打印的列名为该别名;
去重查询(distinct)查询结果为去重后的结果;
排序查询(order by)对查询的结果进行排序;
条件查询(where)使用运算符,设置查询规则,根据查询规则查询数据;
分页查询(limit)指定查询的数据的打印行数,类似分页的效果;

        上述查询方式,是 MySQL 中基础的查询方式。

        查询方式并非每次只能使用一种,而是可以根据使用者的需求,将查询方式搭配组合,以查询到所需的数据。

        所有的查询结果都是一张 “临时表” ,执行查询操作不会改变数据库中的原始数据。 


 现有表格 student ,表格所有数据如下:


二、全列查询

2.1 语法

语法:select * from 表名;
解释:根据指定的数据表,查询表中所有数据;(‘ * ’ 号为通配符)

2.2 操作演示

2.3 全列查询需要慎重使用

        数据量过大时,用全列查询的方式查询数据,可能导致硬盘或网络带宽开销过大,在查询操作完成之前,服务器无法正常响应其他的的客户端请求。

        可能影响索引的使用。

        除非数据量小,通常情况下不建议执行全列查询操作


三、指定列查询

3.1 语法

语法:select 列名...... from 表名;
解释:指定数据表中的某一列或多列,查询指定列的所有数据。

        一个数据表中常会有多列,指定列查询的方式减少了查询的数据量。但仍可能出现数据量过大的情况,因此指定列查询也需要慎重使用。

3.2 操作演示


四、表达式查询

4.1 语法

语法:select 表达式...... from 表名;
解释:

指定数据表,根据表达式按列对数据表中的数据进行计算。

每个表达式为一列,将表达式结果打印。

4.2 操作演示

4.3 null 参与表达式计算

        应注意,当 null 参与计算时,结果必然为 null 。 

4.3 表达式查询存的缺陷

        表达式将作为列名进行打印。可以从上图看到,如果表达式非常长,那么这一列的列名也将非常长,可读性差,不利于阅读和理解该列含义。下文使用的“查询结果指定别名”可以解决这个问题。

4.4 临时表中列的类型

        所有的查询结果都是一个临时表。

        临时表中的数据类型不再受限于原始表。

        可以从上图看到,经过表达式计算后,数据格式已经不合法,但该查询操作仍可以执行。


五、查询结果指定别名(as)

5.1 语法

语法:select 表达式 as 别名 from 表名;
解释:

指定数据表,根据表达式按列对数据表中的数据进行计算。

每个表达式为一列,以别名作为表达式的运算结果的列名,将表达式结果打印。

5.2 操作演示


六、去重查询(distinct)

6.1 语法

语法:select distinct 列名...... from 表名;
解释:

指定数据表中的某一列或多列,除数据重复的行之外,打印查询结果。

        如果指定多列进行去重查询,此时需要每一列的数据都重复,才会认为数据行是重复的

6.2 操作演示


七、排序查询(order by)

7.1 排序规则

如果一个查询操作没有使用 order by 关键字,那么这个查询操作得到的结果集数据之间的相互顺序是不可预测的,不能被认为是有序的。
关键字 asc 表示升序,desc 表示降序。如果不指定升降序,则默认升序 asc 。(注意关键字升序 desc 和 关键字描述 desc 重复,使用时注意区分)
null 数据会被认为是最小值。
字符串也可以比较大小,一般按照字典序进行排序。中文也是按照字典序进行排序,不是按照拼音首字母或笔画顺序,一般没有意义。

7.2 语法

语法:select 列名...... from 表名 order by 列名 asc/desc;
解释:

select 后的列名,是指需要打印的列名。

order by 后的列名,是指排序的依据,这里的列名并不一定需要被打印。

order by 后的列名,可以选择升序排列(使用 asc 或 不写),或选择降序(使用 desc )

语法:select 表达式 as 别名...... from 表名 order by 别名 asc/desc;
解释:

与其他查询一样,可以在 select 后指定一列或多列,可以替换为表达式,可以指定别名。

指定别名后,order by 可以根据别名的数据进行排序。

语法:select 表达式 as 别名...... from 表名 order by 别名 asc/desc, 列名 asc/desc......;
解释:优先级排序:order by 后的列名,是指排序的依据,可以指定多列作为排序的依据,列与列之间排序的优先级根据书写的先后顺序决定。

7.3 操作演示


八、条件查询(where)

8.1 语法

        查询时,指定筛选条件,符合条件将被打印,不符合条件的不会打印。

语法:select 列名...... from 表名 where 条件表达式;
解释:

根据指定条件表达式筛选数据,打印指定列中符合条件的数据。

语法:select 表达式 as 别名...... from 表名 where 条件表达式;
解释:

与其他查询一样,可以在 select 后指定一列或多列,可以替换为表达式,可以指定别名

8.2 运算符简介

运算符列表
>   >=   <   <= 大于、大于等于、小于、小于等于
=   <=>等于
!=   <>不等于
between A and B范围匹配
in (option, ......)选择匹配
is null、is not null判断空
like模糊匹配
and、or、not与、或、非

阅读指针 -> 《SQL中的比较运算符和逻辑运算符简介》

<MySQL> SQL中的比较运算符和逻辑运算符简介-CSDN博客文章浏览阅读6次。简述 SQL 语言中的运算符https://blog.csdn.net/zzy734437202/article/details/134282495

8.3 运算符   >   >=   <   <=

8.4 运算符   =   <=>

8.5 运算符   !=   <>

8.6 范围匹配 between A and B

8.7 选择匹配 in (option, ......)

8.8 判断空和非空 is null、is not null

8.9 模糊匹配运算符 like

8.10 运算符 与and、或or、非not

8.11 where 后的条件表达式中不能使用别名

select 表达式 as 别名 from 表名 where 别名 + 10;

where 后的条件表达式中,不能使用别名。

上述语句指定了 “别名 + 10” 作为 where 后的条件表达式,执行该语句将报错,因为在 where 后的条件表达式中使用了别名。

where后不使用别名则可以正常打印:

8.12 条件查询中的 SQL 语句的执行顺序

根据指定的表,取出一行记录。
将该行记录代入条件表达式,判断是否满足条件。

如果条件满足,则将 select 后指定的列取出并打印;如果 select 后是表达式,则根据表达式计算后再进行打印。


九、分页查询(limit)

9.1 语法

语法:select * from 表名 limit 数量;
解释:

指定数据表,limit 指定需要打印多少行。

语法:select * from 表名 limit 数量 offset 行数;
解释:指定数据表,limit 指定需要打印多少行,offset 指定从哪一行开始打印。

9.2 分页查询的优点

        分页查询可以限制查询数据每次的打印数量和从哪个位置开始打印。       

        查询数据时,可能由于查询数据量过大,而导致服务器阻塞,一直在执行数据查询操作,而没有办法响应其他客户端请求。使用分页查询,就能很好的解决这个问题。

9.3 操作演示


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/171403.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

创建maven的 java web项目

创建maven的 java web项目 创建出来的项目样子 再添加java和resources文件夹 一定要如图有文件夹下有图标才代表被IDEA识别&#xff0c;不让是不行的 没有的话在File——ProjectStructure中进行设置

【Python Opencv】Opencv画图形

文章目录 前言一、画图形1.1 画线1.2 画矩形1.3 画圆1.4 画椭圆1.5 添加文本 总结 前言 在计算机视觉和图像处理中&#xff0c;OpenCV不仅可以处理图像和视频&#xff0c;还提供了一组功能强大的工具&#xff0c;用于在图像上绘制各种形状和图形。这些功能使得我们能够在图像上…

Mysql数据库 15.SQL语言 索引

一、索引的介绍 数据库是用来存储数据&#xff0c;在互联网应用中数据库中存储的数据可能会很多&#xff08;大数据&#xff09;&#xff0c;数据表中数据的查询速度会随着数据量的增长逐渐缓慢&#xff0c;从而导致用户请求的速度变慢——用户体验变差 索引&#xff0c;就是…

python爬虫代理ip关于设置proxies的问题

目录 前言 一、什么是代理IP? 二、为什么需要设置代理IP? 三、如何设置代理IP? 四、完整代码 总结 前言 在进行Python爬虫开发时&#xff0c;经常会遇到被封IP或者频繁访问同一网站被限制访问等问题&#xff0c;这时&#xff0c;使用代理IP就可以避免这些问题&#x…

5 新的关键字

动态内存分配 回想C语言中&#xff0c;动态内存是怎么分配的&#xff1f;通过C库里面的malloc free去进行动态内存分配。 C通过new关键字进行动态内存申请&#xff0c;动态内存申请是基于类型进行的。 delete 关键字用于内存释放。 //变量申请 type* pointer new type; dele…

本地化小程序运营 同城小程序开发

时空的限制让本地化的线上平台成为一种追求&#xff0c;58及某团正式深挖人们城镇化、本地化的信息和商业需求而崛起的平台&#xff0c;将二者结合成本地化小程序&#xff0c;显然有着巨大的市场机会。本地化小程序运营可以结合本地化生活需求的一些信息&#xff0c;以及激发商…

pid调参(实验室新人入门)

安装keil&#xff1a;下载MDK-ARM http://t.csdnimg.cn/yYF7W芯片包&#xff1a; https://www.keil.arm.com/devices/stmicroelectronics-stm32f429aghx/features/ 调参软件&#xff1a; https://blog.csdn.net/weixin_63568691/article/details/133606043调参方法&#xff1a;…

解决Mac配置maven环境后,关闭终端后环境失效的问题(适用于所有终端关闭后环境失效的问题)

目录 问题的原因 解决方式一、每次打开终端时输入&#xff1a;"source ~/.bash_profile"&#xff0c;这个方式比较繁琐 解决方式二、我们终端输入"vim ~/.zshrc"打开".zshrc"文件 1、我们输入以下代码&#xff1a; 2、首先需要按 " i…

字符设备驱动基础框架

一、总体框架 1.Linux字符设备驱动工作原理图 2.驱动使用端 3.驱动实现端 二、各部分详解 1.VFS层 1) inode结构体 在Unix/Linux操作系统中&#xff0c;每个文件都由一个inode&#xff08;索引节点&#xff09;来索引。inode是特殊的磁盘块&#xff0c;它们在文件系统创建时…

20.有效的括号(LeetCode)

思路&#xff1a;用栈的后进先出的特性&#xff0c;来完成题目的要求 因为C有库&#xff0c;可以直接用&#xff0c;而C语言没有&#xff0c;所以我们直接把写好的栈拷贝上来用。 首先&#xff0c;完成框架的搭建 其次&#xff0c;再实现循环内的部分。1.左括号入栈 2.右括…

安装 Lua 的 HTTP 库

首先&#xff0c;你需要安装 Lua 的 HTTP 库。可以使用 LuaRocks 来安装。以下是安装命令&#xff1a; luarocks install http然后&#xff0c;你可以使用以下代码来爬取网页内容&#xff1a; local http require http-- 设置代理信息 http.set_proxy(jshk.com.cn)-- 网页UR…

【解决】conda-script.py: error: argument COMMAND: invalid choice: ‘activate‘

运行conda activate base报错&#xff1a; 试了网上找到的解决方法都不行&#xff1a; 最后切换了一下terminal&#xff1a; 从powershell改回cmd&#xff08;不知道为什么一开始手贱换成powershell&#xff09; 就可以了