Mysql学习-Mysql查询(1)

1.基本查询(SELECT)

SELECT语句基本格式:

SELECT
{*|<字段列表>}
[
FROM<表1>,<表2>..
[WHERE <表达式>
[GROUP BY<group by definition>]
[HAVING <expression>[{<operator><expression>}...]]
[ORDER BY <order by definition>]
[LIMIT [<offset>,]<row count>]
]
SELECT[字段1,字段2,...,字段n]
FROM[表或视图1]
WHERE[查询条件];

其中,各条子句的含义如下:
{*<字段列表>}包含星号通配符和字段列表,表示査询的字段,其中,字段列表至少包含一个字段名
称,如果要查询多个字段,多个字段之间用逗号隔开,最后一个字段后不加逗号
FROM <表1>,<表2>..,表1和表2表示查询数据的来源,可以是单个或者多个
WHERE 子句是可选项,如果选择该项,将限定查询行必须满足的查询条件,
GROUP BY<字段>,该子句告诉MySQL如何显示查询出来的数据,并按照指定的字段分组;
HAVING过滤分组,GROUP BY可以和HAVING一起限定显示记录所满足的条件,只有满足条
件的分组才会被显示.
[ORDER BY<字段>],该子句告诉MySQL按什么样的顺序显示查询出来的数据,可以进行的排序有
升序(ASC),降序(DESC);
[LIMIT[<offset>,]<row count>],该子句告诉MySQL每次显示查询出来的数据条数

2.单表查询

(1).查询所有字段:

在SELECT中使用*通配符查询所有字段

SELECT查询记录最简单的形式是从一个表中检索所有记录,实现的方法是使用星号(*)通配符指定查询所有列的名称.语法格式如下:
SELECT *FROM 表名;

(2).查询指定字段:

1)查询单个字段
查询表中的某一个字段,语法格式为:
SELECT 列名 FROM 表名:
例2,查询fruits表中f name列所有的水果名称,SQL语句如下:

SELECT f_name FROM fruits;

2)查询多个字段
查询多个字段的语法如下:
SELECT 字段1,字段2..字段名n FROM 表名:
例3:从fruits表中获取f name和f price两列,SQL语句如下

SELECT f_name,f_price FROM fruits;

(3).查询指定记录

在SELECT 语句中,通过WHERE字句可以对数据进行过滤,语法格式为:
SELECT 字段名1,字段名2...,字段名n
FROM 表名
WHERE 查询条件

WHERE条件判断符

例如:

///查询价格为10.2元的水果的名称
SELECT f_name,f_price
FROM fruits
WHERE f_price=10.2;
//查找名称为"apple"的水果的价格
SELECT f_name,f_price
FROM fruits
WHERE f_name='apple';
//查询价格小于10的水果的名称
SELECT f_name,f_price
FROM fruits
WHERE f_price<10;

(4).带in关键字的查询:

IN操作符用来查询满足指定范围内的条件的记录,使用IN操作符,将所有检索条件用括号括起来,检
索条件之间用逗号分隔开,只要满足条件范围内的一个值即为匹配项,

//查询s_id为101和102的记录,SQL语句如下:
SELECT s_id,f_name,f_price
FROM fruits
WHERE s_id IN(101,102)
ORDER BY fname;

使用NOT来检索不在条件范围内的记录:

//查询所有s id不等于101也不等于102的记录,SQL语句如下
SELECT s_id,f_name,f_price
FROM fruits
WHERE s_id NOT IN(101,102)
ORDER BY f_name;

(5).带BETWEEN AND的范围查询:

用来查询某个范围内的值:

//查询价格在2.00元到10.20元之间的水果名称和价格
SELECT f_name,f_price
FROM fruits
WHERE f_price BETWEEN 2.00 AND 10.20;

BETWEEN AND匹配范围内的所有值,包括开始值和结束值
BETWEEN AND 操作符前可以加关键字NOT,表示指定范围之外的值,

//查询价格在2.00元到10.20元之外的水果名称和价格:
SELECT f_name,f_price
FROM fruits
WHERE f_price NOT BETWEEN 2.00 AND 10.20;

(6)带LIKE的字符匹配查询
我们如果要查找所有包含字符"ge”的水果的名称,需要使用通配符进行匹配查找;
通配符是一种在SQL的WHERE条件字句中拥有特殊意思的字符.SQL语句中支持多种通配符,可以和LIKE一起使用的通配符有'%'和’_'

%通配符可以匹配任意长度的字符,甚至包括零字符

_通配符一次只能匹配一个长度的字符

//fruits表中,查询f name中包含字母'g'的记录
SELECT f_id,f_name
FROM fruits
WHERE f_name LIKE '%g%';//在fruits表中,查询以字母'y'结尾,且'y'前面只有4个字母的记录
SELECT f_id,f_name 
FROM fruits
WHERE f_name LIKE '____y';

(7).查询空值:

空值一般表示数据未知,不使用或将在以后添加数据
在SELECT语句中使用IS NULL字句,可以查询某字段内容为空记录
NULL相反的是NOT NULL,该关键字查找字段不为空的记录,

//查询customers表中c email为空的记录的cid,c name和c email字段值
SELECT c_id,c_name,c_email
FROM customers
WHERE c_email IS NULL;//查询customers表中c email不为空的记录的cid,c name和c email字段值
SELECT c_id,c_name,c_email
FROM customers
WHERE c_email IS NOT NULL;

(8).带AND和OR的多条件查询:

//在fruits表中查询s id=101并且f price大于等于5的水果id,价格和名称
SELECT f_id,f_name,f_price
FROM fruits
WHERE s_id='101' AND f_price >=5;
//查询s_id=101或者s_id=102的水果供应商的f_price和f_name,
SELECT s_id,f_name,f_price
FROM fruits
WHERE s_id=101 OR s_id=102;

在这里可以看到,OR操作符和IN操作符使用后的结果是一样的,它们可以实现相同的功能,但是使用
IN操作符使得检索语句更加简洁明了,并且IN执行的速度要快于OR.更重要的是,使用IN操作符可
以执行更加复杂的嵌套查询(后面章节会讲述)
OR可以和AND一起使用,但是在使用时要注意两者的优先级,由于AND的优先级高于OR,因此先
对AND两边的操作数进行操作,再与OR中的操作数结合

(9).查询结果不重复:

可以使用DISTINCT关键字指示MySQL消除重复的记录值.语法格式为:

SELECT DISTINCT 字段名 FROM 表名;

(10).对查询结果排序:

1).单列排序:

//查询fruits表的f name字段值,并对其进行排序
SELECT f_name
FROM fruits
ORDER BY f_name;

2).多列排序:

//查询fruits表的f_name字段和f_price字段,先按f_name排序,再按f_price排序
SELECT f_name,f_price
FROM fruits
ORDER BY f_name,f_price;

在对多列进行排序的时候,首先排序的第一列必须有相同的列值,才会对第二列进行排序.如果第
列数据中所有值都是唯一的,将不再对第二列进行排序.

3).指定排序方向:

默认情况下,查询数据按字母升序进行排序(A~Z),但数据的排序并不仅限于此,还可以使用ORDER
BY对查询结果进行降序排序(Z~A).这可以通过关键字DESC实现.

与DESC相反的是ASC(升序),将字段列中的数据按字母表顺序升序排列,实际上,在排序的时候ASC
是默认的排序方式,所以加与不加都可以;

//查询fruits表的f name字段和f price字段,对结果按f price降序方式排列;
SELECT f_name,f_price
FROM fruits
ORDER BY f_price DESC;//查询fruits表,先按f_price降序排列,再按f_name升序排列;
SELECT f_price,f_name
FROM fruits 
ORDER BY f_price DESC,f_name;

DESC排序方式只应用到直接位于其前面的字段上,由结果可以看出
DESC关键字只对其前面的列进行降序排列,在这里只对fprice排序,而并没有对f name进行排序
因此,fprice按降序排列,而f name列仍按升序排列.如果要对多列都进行降序排列,必须要在每
列的列明后面加DESC关键字.

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

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

相关文章

深入解析ETL与ELT架构:数据集成技术的演进与发展

摘要&#xff1a;随着大数据时代的到来&#xff0c;数据集成成为企业信息化建设的重要环节。本文将深入探讨ETL与ELT两种架构&#xff0c;分析它们在数据处理、性能、可扩展性等方面的差异&#xff0c;为企业数据集成提供技术指导。 一、引言 在大数据时代&#xff0c;企业需要…

探索自然语言处理奥秘(NLP)

摘要 自然语言处理&#xff08;NLP&#xff09;是人工智能领域的一个重要分支&#xff0c;它致力于使计算机能够理解、解释和生成人类语言。这项技术让机器能够阅读文本、听懂语音&#xff0c;并与人类进行基本的对话交流。 通俗理解 自然语言处理&#xff08;NLP&#xff09…

product/admin/list?page=0size=10field=jancodevalue=4562249292272

文章目录 1、ProductController2、AdminCommonService3、ProductApiService4、ProductCommonService5、ProductSqlService https://api.crossbiog.com/product/admin/list?page0&size10&fieldjancode&value45622492922721、ProductController GetMapping("ad…

Appium:安装uiautomator2失败

目录 1、通过nmp安装uiautomator2&#xff1a;失败 2、通过 Appium 的平台直接安装驱动程序 3、通过pip 来安装 uiautomator2 1、通过nmp安装uiautomator2&#xff1a;失败 我先是通过npm安装的uiautomator2&#xff0c;也显示已经安装成功了&#xff1a; npm install -g …

【Golang】Go语言编程思想(二):函数式编程

函数式编程 函数与闭包 支持函数式编程的语言当中&#xff0c;函数是一等公民&#xff0c;参数、变量、返回值都可以是函数。 以 adder 为例&#xff0c;下例实现了一个函数式编程&#xff1a; package mainimport "fmt"func adder() func(int) int {sum : 0retu…

摄影后期学什么_好学吗?

当你按下相机快门&#xff0c;捕捉到那珍贵的瞬间&#xff0c;摄影可还没画上句号哦&#xff01;摄影后期就像是一场神奇的魔法秀&#xff0c;能让你的照片从平凡瞬间变身惊艳大片。那在这场魔法之旅中&#xff0c;咱们得学习哪些厉害的法术呢&#xff1f; 先来说说光影调整这…

windows11 安装nginx 教程(并开机自启动)

windows11 安装nginx 教程&#xff08;并开机自启动&#xff09; 1、官网下载安装 官网地址&#xff1a;http://nginx.org/en/download.html 2. 找个文件位置解压压缩包 3 启动NGINX 4 相关命令 查詢端口被占用的进程 netstat -ano | findstr "80"1、查看nginx的…

如何在谷歌浏览器中启用双重身份验证

在当今数字化时代&#xff0c;保护个人信息的安全变得尤为重要。双重身份验证&#xff08;2FA&#xff09;是一种增强账户安全性的有效方法&#xff0c;通过要求用户在输入密码之外&#xff0c;还需提供第二种身份验证信息&#xff0c;从而大大降低了账户被非法访问的风险。本文…

高级 CEF 内核集成与 VC++——CEF系统架构与开发环境搭建

目录 1. 系统架构总体设计&#xff1a;CEF 内核与 VC 主程序分层架构设计 1.1 多进程架构设计 1.2 主程序与 CEF 内核的分离 1.3 UI 设计与布局 1.4 性能与资源管理 2. 分进程设计与通信机制&#xff1a;渲染进程与主进程分离&#xff0c;保证安全性与稳定性 2.1 分进程…

RTCMultiConnection 跨域问题解决

js套件地址 https://github.com/muaz-khan/RTCMultiConnection server套件地址 https://github.com/muaz-khan/RTCMultiConnection-Server 要解决的就是server代码的跨域问题 原装写法&#xff1a; 解决写法&#xff1a; // 喜欢组合语法的自己组 const io new ioServer.S…

【Flink】Flink Checkpoint 流程解析

Flink Checkpoint 流程解析 Checkpoint 流程解析 Flink Checkpoint 流程解析Checkpint 流程概括Checkpoint 触发流程解析 (Flink 1.20)任务启动后 JobManager 开始定期对任务执行 CheckpointJobManager 使用 CheckpointCoordinator 触发 CheckpointCheckpointCoordinator 初始化…

Redis探秘Sentinel(哨兵模式)

概述 Redis的高可用机制有持久化、复制、哨兵和集群。其主要的作用和解决的问题分别是&#xff1a; 持久化&#xff1a;持久化是最简单的高可用方法(有时甚至不被归为高可用的手段)&#xff0c;主要作用是数据备份&#xff0c;即将数据存储在硬盘&#xff0c;保证数据不会因进程…

3GPP R18 LTM(L1/L2 Triggered Mobility)是什么鬼?(三) RACH-less LTM cell switch

这篇看下RACH-less LTM cell switch。 相比于RACH-based LTM,RACH-less LTM在进行LTM cell switch之前就要先知道target cell的TA信息,进而才能进行RACH-less过程,这里一般可以通过UE自行测量或者通过RA过程获取,而这里的RA一般是通过PDCCH order过程触发。根据38.300中的描…

波特图方法

在电路设计中&#xff0c;波特图为最常用的稳定性余量判断方法&#xff0c;波特图的根源是如何来的&#xff0c;却鲜有人知。 本章节串联了奈奎斯特和波特图的渊源&#xff0c;给出了其对应关系和波特图相应的稳定性余量。 理论贯通&#xff0c;不在于精确绘…

【React】React常用开发工具

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、React DevTools二、Redux DevTools三、Create React App 前言 React 是一种用于构建用户界面的流行 JavaScript 库&#xff0c;由于其灵活性、性能和可重用…

C++知识整理day4内存管理——new和delete详解

文章目录 1.C/C内存分布2.C语言中动态内存管理&#xff1a;malloc/realloc/calloc3.C内存管理方式3.1 new/delete操作内置类型3.2 new和delete操作自定义类型 4.malloc/free和new/delete到底什么区别&#xff1f;4.1 对于自定义类型4.2 对于自定义类型4.3 总结&#xff1a;它们…

flex: 1 display:flex 导致的宽度失效问题

flex: 1 & display:flex 导致的宽度失效问题 问题复现 有这样的一个业务场景&#xff0c;详情项每行三项分别占33%宽度&#xff0c;每项有label字数不固定所以宽度不固定&#xff0c;还有content 占满标签剩余宽度&#xff0c;文字过多显示省略号&#xff0c; 鼠标划入展示…

大数据技术Kafka详解 ② | Kafka基础与架构介绍

目录 1、kafka的基本介绍 2、kafka的好处 3、分布式发布与订阅系统 4、kafka的主要应用场景 4.1、指标分析 4.2、日志聚合解决方法 4.3、流式处理 5、kafka架构 6、kafka主要组件 6.1、producer(生产者) 6.2、topic(主题) 6.3、partition(分区) 6.4、consumer(消费…

极限激光雷达点云数据集

https://arxiv.org/pdf/2307.07607v5 ‎ - AirLab 他们的数据集里面有这么多极限场景 点云数据转换 他们的激光用的velodyne,录制的格式是【velodyne_msgs/VelodyneScan】 需要把【velodyne_msgs/VelodyneScan】转化成【sensor_msgs/PointCloud2】 我编译https://github.co…

电子应用设计方案-43:智能手机充电器系统方案设计

智能手机充电器系统方案设计 一、引言 随着智能手机的广泛应用&#xff0c;对充电器的性能、效率和安全性提出了更高的要求。本方案旨在设计一款高效、安全、兼容多种快充协议的智能手机充电器。 二、系统概述 1. 系统目标 - 提供快速、稳定、安全的充电功能。 - 兼容主流的智…