MySql单表查询数据

MySQL数据库 - 单表查询 MySQL数据库 - 单表查询(一) MySQL数据库 - 单表查询(二) MySQL数据库 - 单表查询(三) 阅读详情
首先创建表

CREATE TABLE `fruits1` (
  `f_id` CHAR(10) NOT NULL,
  `s_id` INT(11) NOT NULL,
  `f_name` CHAR(30) NOT NULL,
  `f_price` DECIMAL(8,2) NOT NULL,
  PRIMARY KEY (`f_id`)
);

1.单表查询

**1.1查询所有字段**,在SELECT 语句中使用(*)通配符查询所有字段。
	语法格式如下:
		**select * from 表名;**

1.2查询指定字段

查询表中的某一个字段,语法格式为:
SELECT 查询的列名 FROM 表名;

1.3查询多个字段

语法:SELECT 查询的列名1,查询的列名2,...查询的列名N FROM 表名;

1.4查询指定记录

在SELECT语句中可以使用WHERE 子句可以对数据进行过滤,语法如下:
SELECT  字段1,字段2,....,字段N;
FROM 表名
WHERE 查询条件
注:WHERE 条件判断符------》等于”=“,不相等”<>“,”!=“,小于”<“,大于”>“,大于等于”>=“,小于或者等于"<=",BETWEEN"位于两值之间"

1.5带IN的关键字查询

IN操作符用来查询满足指定范围内的条件的记录,使用IN操作符,将所有的检索条件用括号括起来,检索条件之间用逗号隔开,只要满足条件范围内的一个值即为匹配项
例:查询A表中的a.id为100,200,的记录,语句如下
SELECT * FROM A WHERE a.id IN (100,200); 
相反可以使用Not查询不再范围内的
SELECT * FROM A WHERE a.id NOT IN (100,200); 

1.6带BETWEEN AND 的范围查询

BETWEEN AND用来查询某个范围内的值,该操作符需要两个参数,即范围的开始和结束值,如果字段值满足指定的范围的查询条件,则这些记录被返回。

1.7带LIKE的字符匹配查询

通配符是一种在sql的where条件子句中拥有特殊意思的字符,sql语句中支持多种通配符,可以和LIKE一起使用的通配符有“%”和“_”;
1.7.1百分号通配符“%”,匹配所有任意长度的字符,甚至包括零字符
	例:查询所有以“b”字符开头的水果,sql语句如下

SELECT f_id,f_name FROM fruits WHERE f_name LIKE ‘b%’;

注:该语句查询结果返回所有以“b”开头的id和name,不管“b”后面有多少个字符。
在搜索匹配时通配符“%”可以放在任意位置。

例:查询f_name种包含g的记录,语句如下

SELECT f_id,f_name FROM fruits WHERE f_name LIKE ‘%g%’;

例::查询f_name种以b开头以y结尾的记录,语句如下:

SELECT f_id,f_name FROM fruits WHERE f_name LIKE ‘b%y’;

1.7.2 下划线通配符’‘ ,一次只能匹配任意一个字节
**"
“与”%"的区别,”%“可以匹配多个字符,”“只能匹配单个字符,若要匹配多个字符,则需要使用多个”“;**

例:查询以字符y开头后面有三个字目的记录;
SELECT f_id,f_name FROM fruits WHERE f_name LIKE ‘y___’;

1.8 查询空值

注:空值不同于0,也不同于空字符串,在查询语句中使用IS NULL子句,查询某字段内为空的记录

创建表---》读者自行插入数据

CREATE TABLE `customers` (
  `c_id` int(11) NOT NULL AUTO_INCREMENT,
  `c_name` char(50) NOT NULL,
  `c_address` char(50)  NULL,
  `c_city` char(50) NULL,
  `c_zip` char(50) NULL,
  `c_contact` char(5) NULL,
  `c_email` char(50) NULL,
  PRIMARY KEY (`c_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

例:查询表中c_email 为空记录的c_id,c_name,c_email字段值;

SELECT c_id,c_name,c_email FROM customers WHERE c_email IS NULL;

注:与IS NULL 相反的是NOT IS NULL,该关键字查询不为空的记录;

例:查询表中c_email 不为空记录的c_id,c_name,c_email字段值;

SELECT c_id,c_name,c_email FROM customers WHERE c_email NOT IS NULL;

1.9带and的多条件查询

可以使用AND 连接两个甚至以上的条件。多个条件表达式之间用AND 分开。
例:
在fruits表中查询s_id=101,并且f_price大于等于5的水果价格和名称;

SELECT f_id,f_price,f_name FROM fruits WHERE s_id=10 AND f_price>=5;

1.10 带OR关键字的多条件查询

OR也可以连接两个甚至多个查询条件,多个条件表达式之间用OR分开
例:查询s_id=101或则s_id=102 的水果供应商的f_price,f_name;
SELECT sid,f_name,f_price FROM fruits WHERE s_id=101 OR s_id=102;

1.11查询结果不重复
在select 语句中可以使用DISTINCT 消除重复值的记录值,语法如下:
select DISTINCT 字段名 FROM 表明;

例:查询frutits表中s_id字段的值,返回s_id 字段值且不重复;
select DISTINCT s_id FROM fruits;

1.11 对查询结果排序

mysql语句中可以通过order by 子句,对查询的结果进行排序;

1.11.1 单列排序

例:查询fruits表的f_name 字段值,并对其排序
SELECT f_name FROM fruits ORDER BY f_name;

1.11.2 多列排序

例:查询fruits表的f_name ,f_price字段值,并对其先f_name,f_price排序
SELECT f_name,f_price FROM fruits ORDER BY f_name,f_price;

1.11.3 指定排序方向

默认情况,查询数据按字母升序进行排序(A-Z),还可以使用 order by 对查询结果进行降序(z-a),通过关键字DESC实现。

例:查询fruits表的f_name ,f_price字段值,并对其f_price降序排序
SELECT f_name,f_price FROM fruits ORDER BY f_price DESC;

例:查询fruits表的f_name ,f_price字段值,对f_price升序序排序,按f_name升序排序:
SELECT f_name,f_price FROM fruits ORDER BY f_price DESC,f_name;

1.12 分组查询

分组查询是对数据按照某个或多个字段进行分组,mysql中使用Group by 关键字对数据进行分组,基本语法如下:
【GROUP BY 字段】 【HAVING <条件表达式>】
字段值为纪念性分组是所依据的列名称:“HAVING <条件表达式>” 指定满足表达式限定条件的结果将被显示。

1.12.1 创建分组

GROUP BY 经常与集合函数一起使用:MAX(),MIN();COUNT();SUM();AVG(); 

例:根据s_id 对fruits 表中的数据进行分组,sql语句如下:
SELECT s_id,COUNT(*) AS Total FROM fruits GROUP BY s_id;

例:根据s_id 对fruits 表中的数据进行分组,将每个供应商的水果名称显示出来,sql语句如下:
SELECT s_id,GROUP_CONCAT(f_name) AS NAMES FROM fruits GROUP BY s_id;
注:group_concat()函数将每个分组中的名称显示出来了,和count()相同;

1.12.2 使用HAVING 过滤分组

GROUP BY可以和HAVING 一起限定显示记录所需满足的条件,只有满足条件的分组才会被显示出来
例:根据s_id 对fruits 表中的数据进行分组,并显示水果种类大于1的分组信息,sql语句如下:

SELECT s_id,GROUP_CONCAT(f_name) AS NAMES FROM fruits GROUP BY s_id HAVING COUNT(f_name)>1;

知识点:HAVING关键字和Where 关键字都是用来过滤数据,两者什么区别?
HAVING在数据分组之后进行过滤来选择分组。
WHERE在分组之前用来选择记录。
另外where 排出的记录不在包括在分组中。

1.12.3 在GROUP BY 子句张使用WITH ROLLUP

使用WITH ROLLUP 关键字之后,在所有查出的记录之后增加一条记录,该记录查询出所有记录的总和,即统计记录数量。
例:根据s_id 对fruits 表中的数据进行分组,并显示记录数量,sql语句如下:
SELECT s_id,COUNT(*) AS Total FROM fruits GROUP BY s_id WITH ROLLUP;

1.12.4 多字段分组

使用GROUP by 进行多字段分组,关键字后面跟需要分组的字段,分组层次从左到右
例:根据s_id 和f_name对fruits 表中的数据进行分组,并显示记录数量,sql语句如下:
SELECT * FROM fruits GROUP BY s_id,f_name;

1.12.5 GROUP BY 和ORDER BY 一起使用

首先创建表-》读者可以自行插入数据

CREATE TABLE `orderitems` (
  `o_num` int(11) NOT NULL,
  `o_item` int(11) NOT NULL,
  `f_id` char(10) NOT NULL,
  `quantity` int(11) NOT NULL,
  `item_price` decimal(8,2) NOT NULL,
  PRIMARY KEY (`o_num`,`o_item`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

例:查询订单价格大于100的订单号和总订单价格,sql语句如下

SELECT o_num,SUM(quantity * item_price) AS orderTotal FROM orderitems GROUP BY o_num HAVING SUM(quantity*item_price) >=100 ORDER BY orderTotal;


注:GROUP BY子句按订单号对数据进行分组,sum()函数便可以返回总订单价格,HAVING()子句对分组数据进行过滤,使用order by 进行排序。
ROLLUP与ORDER BY子句相互排斥,不能同时使用;

1.12.6 使用LIMIT限制查询结果的数量(分页查询)

使用LIMIT 关键字 语法如下:
LIMIT [位置偏移量,] 行数

例:显示fruits 表查询结果的前四行:
SELECT * FROM fruits LIMIT 4;

注:mysql查询下表第一个数代表0,即是和数组一样查询从零开始。

例:显示fruits 表查询结果返回第五个开始,长度为三的记录:
SELECT * FROM fruits LIMIT 4,3;

1.13 使用集合函数查询

| 函数 | 作用 |
| AVG() | 平均值 |
| COUNT() | 行数 |
| MAX() | 最大值 |
| MIN() |- 最小值 - |
| SUM() | 求和 |

1.13.1 COUNT()函数

  • COUNT(*)计算表中总的行数,不管某列有数值或者为空值
  • COUNT(字段名) 计算指定列下总的行数,计算时将忽略空值的行。

例:查询customers表中的总的行数
SELECT COUNT(*) FROM AS cust_num FROM customers;

例:查询customers表中的电子邮箱的行数
SELECT COUNT(c_email) FROM AS email_num FROM customers;

例:查询customers表中使用COUNT() 函数统计不同订单号中订购的水果种类 ,sql语句如下:
SELECT o_num,COUNT(f_id) FROM orderitems GROUP BY o_num;

1.13.2 sum()函数

sum()函数是一个求和函数,返回指定列值的总和。

例:在orderitems表中查询30005号订单的水果总量;
SELECT SUM(quantity) AS item_total FROM orderitems WHERE o_num=30005;

例:在orderitems表中使用sum()统计不同订单中订购的水果总量:
SELECT o_num,SUM(quantity) AS item_total FROM orderitems GROUP BY o_num;

1.13.3 AVG()函数

AVG函数 通过计算返回的行数和每一行数据的和,求得指定列数据的平均值

例:在fritus 表中,查询s_id=103的供应商的水果价格的平均值,sql语句如下:
SELECT AVG(f_price) AS avg_price FROM fruits WHERE s_id=103;

AVG可以与GROUP BY一起使用,计算每个分组的平均值;
例:在fritus 表中,查询每一个供应商的水果价格的平均值,sql语句如下:
SELECT s_id,AVG(f_price) AS avg_price FROM fruits GROUP BY s_id

1.13.4 MAX()函数

MAX()函数返回指定列的最大值

例:在fruits 表中查询价格最大的水果
SELECT MAX(f_price) AS max_price FROM fruits

max()也可以和GROUP BY 关键字一起使用,求每个分组中的最大值。
SELECT s_id,MAX(f_price) AS max_price FROM fruits GROUP BY s_id

S7-200 Smart 控制运动轴(脉冲电机/伺服)教程 S7-200 Smart 控制运动轴(脉冲电机/伺服) 结合本人刚接触触摸屏时候的踩坑经验,编写S7-200 Smart 控制运动轴(脉冲电机/伺服)的详细流程,给刚接触PLC的朋友提供一些经验指导。 本文详细介绍了S7-200 Smart 控制脉冲步进/伺服电机流程,包含接线方法及梯形图。希望对初学者有所帮助 阅读详情

相关推荐

FFmpeg视频编码的流程详解及参考demo

本文主要讲解FFmpeg的视频编码的具体流程,API使用。最后再以一个非常简单的demo演示将一个yuv数据文件编码为H264的视频文件,也就是YUV编码为H264。

分享音视频技术 4498

MySQL单表查询

单表查询是指从一张表数据中查询所需的数据。本节将介绍单表查询中的各种基本的查询方 式,主要有查询所有字段、查询指定字段、查询指定记录、查询空值、多条件的查询、对查询结果 进行排序等。

weixin_45392969的博客 3210

STM32CUBEMX配置SDRAM

STM32CUBEMX配置SDRAM

Master_0_的博客 2982

MySQL数据库常用的操作命令,select,updata,delete,insert等操作,以及经典练习题

mysql的常用操作,select,updata,insert,delete等操作,以及左查询,有查询,全连接等

Leoon123的博客 5296

74hc595驱动模块的Verilog设计(线性状态机)

module hc595_driver( input clk, //50Mhz input rst_n, //复位信号 input [15:0] data, //数码管待显示数据,8位段选数据,8位位选数据 input en, //使能 o...

qq_41294540的博客 3742

从零到英雄:WSL2与Ubuntu22.04的终极性能调优指南

本文详细介绍了如何在Windows系统中通过WSL2与Ubuntu22.04进行性能调优,涵盖内核定制、GPU加速、网络优化等关键技巧,帮助开发者打造媲美原生Linux的高性能开发环境,特别适合AI训练和大数据处理等资源密集型任务。

weixin_29218509的博客 523

第7章 查询数据

学习目标 数据库管理系统的一个最重要的功能就是查询数据,数据查询不应只是简单返回数据库中存储的数据,还应该根据需要对数据进行筛选,以及确定数据以什么样的格式显示。MySQL提供了功能强大、灵活的语句来实现这些操作,本章将介绍如何使用SELECT语句查询数据表中的一列或多列数据、使用集合函数显示查询结果、连接查询、子查询以及使用正则表达式进行查询等。7.1 基本查询语句MySQL从数据表中查询数据的

沈林楠的专栏 2516

STM32+CubeMX实战:5步搞定LWIP HTTP服务器搭建(附常见编译错误解决)

本文详细介绍了基于STM32和CubeMX平台,快速搭建LWIP HTTP服务器的5步实战指南。内容涵盖从项目初始化、LWIP深度配置到解决经典的`HTTPD_FSDATA_FILE`编译错误,并分享了使用VSCode进行高效开发的工作流,旨在帮助嵌入式开发者快速实现网络功能并规避常见陷阱。

weixin_29192365的博客 573

mysql 使用集合函数查询

各位朋友,我已开通微信公共号:小程在线 我会把文章及时的更新到公共号上,欢迎大家的关注。 COUNT函数 SELECT COUNT(*) AS cust_num from customers; SELECT COUNT(c_email) AS email_num FROM customers; SELECT o_num, COUNT(f_id) FROM orderitems GRO...

程志伟的博客 4027

极验验证码: 一点即过验证(鼠标轨迹分析)

2、第一个验证接口分析(第一个w值还原) 3、第二个验证接口(第二个w值还原)这里定位w生成跟上篇文章一样,就不展开了;主要分析tt值(鼠标轨迹)的生成逻辑

qq_49268524的博客 1009

手把手教你学PCIE(2.1.8)--pcie基本概念流量控制(Flow Control, FC)

PCIe 的流量控制(Flow Control, FC)是确保数据传输可靠性和高效性的关键技术。通过信用值管理,发送方和接收方可以动态调整数据传输速率,避免数据丢失和溢出。理解流量控制的工作原理和实现机制对于开发和调试 PCIe 系统非常重要。希望这个介绍能帮助你更好地理解和使用 PCIe 流量控制。

MHD0815的博客 1808

MySQL数据库——查询数据案例(1)

查询数据 下面以一个例子说明如何使用SELECT从单个表中获取数据。 首先定义数据表,输入语句如下: CREATE TABLE fruits ( f_id char(10) NOT NULL, s_id INT NOT NULL, f_name char(255) NOT NULL, f_price decimal(8,2) NOT NULL, PRIMARY KEY(f_id) ); 为了演示如何使用SELECT语句,需要插入如下数据: INSERT

sem00000的博客 6294

路径规划 | 图解RRT*算法(附ROS C++/Python/Matlab仿真)

RRT*算法针对传统RRT算法进行了渐进最优改进,在添加节点到搜索树的过程中进行重连选择。本文图解RRT*算法原理,并采用ROS C++、Python、Matlab三种语言实现算法,加深理解

FRIGIDWINTER的博客 9405

MySQL数据库——单表查询

本文介绍了SQL查询的基本操作,包括简单查询、条件查询、排序查询、聚合函数、分组查询和LIMIT查询。

pan13360344415的博客 808

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

MySQL数据库——单表查询、连接查询、子查询

【头歌】MySQL数据库代码、答案,单表查询,链接查询,子查询

HL031125的博客 5305

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Day8:关于MySQL的数据查询——单表查询

本文详解MySQL数据查询,包括SELECT语句基础操作(字段显示、别名、计算、去重、分页、排序)和条件查询(比较、逻辑、范围、模糊匹配、空值判断),通过员工数据示例演示完整查询流程,涵盖创建表到复杂筛选的全套技术

2301_77033793的博客 1687

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

mysql 单表统计_mysql笔记——单表数据记录查询

一、简单数据记录查询1、简单数据查询查询所有字段数据SELECT *FROM table_name查询指定字段数据SELECT field1, field2, field3,...fieldnFROM table_name2、避免重复的数据查询——DISTINCT基本语法SELECT DISTINCT field1, field2, field3,...fieldnFROM table_name3...

weixin_42245967的博客 655

实验二:MySQL单表数据查询

实验脚本 1.查找显示student_score数据库中student表中所有记录的姓名,学号,性别。 USE student_score; SELECT 姓名,学号,性别 FROM student_score.student; SELECT * FROM student_score.student; 2.查找显示mydb数据库中score表中所有记录的字段,要求增加总分、均分两个临时字段。 SELECT *,数据库原理+操作系统+编译原理+数据结构 AS 总分, ROUND((数据库原理+操

fairydeer的博客 1698

MySQL单表过亿条数据,如何优化查询速度?

MySQL单表数据量过亿时,查询性能会急剧下降(全表扫描需遍历亿级数据,索引效率也可能因树高过大受影响),优化需从架构设计、索引策略、查询优化、存储层优化四个维度综合入手,具体方案如下:单表过亿的核心问题是「数据量超出MySQL高效处理范围」,优先通过拆分减少单表数据量:将一张大表按规则拆分为多个结构相同的小表,每张表数据量控制在千万级(MySQL单表千万级是性能拐点)。结合主从复制,将查询压力分流到从库:亿级表的索引设计需「精准命中查询,避免冗余索引」,否则索引维护成本(写入时更新索引)和查询时的索引遍历

长风破浪会有时的博客 1459

MySQL数据库单表查询

本文介绍了MySQL数据库的单表查询相关知识内容

chenfengxiu的博客 438

MySQL数据库 - 单表查询(一)

MySQL数据库 - 单表查询(一、二、三)

weixin_63986912的博客 5160

MySQL数据库练习————单表与多表查询

法1:法2:③与部门表管理查询对应部门名称:①查出财务部的关联字段(部门编号)②根据查询结果,找出员工姓名①查询平均薪资②三表关联(e1(上级表),e2(员工表),d(部门表))并筛选①查询陈超的工作 - 单行单列②关联员工表和部门表③综合①子查询后连接②关联部门表解决查询字段问题 8. 列出薪金高于在财务部工作员工平均薪金的员工姓名和薪金、部门名称。①查询财务部的部门号②根据部门号查出所有的平均薪资③关联查询结果

xiaqiqiupu的博客 333

mysql怎么进行单表查询_MySQL数据库单表查询

一、 简单查询1. Select语句Select [distinct] * | {字段名1,字段名2,字段名3,。。。}From表名[where条件表达式1][groupby 字段名 [having 条件表达式2]][orderby 字段名 [asc|desc]][limit[offset] 记录数](1) Distinct是可选参数,用于剔除查询结果中重复的数据;(2) Grou...

weixin_29131709的博客 1997

mysql单表查询in不等于如何选择_MySQL数据库单表查询——条件查询

一,带关系运算符的查询在 SELECT 语句中可以使用 WHERE 子句指定查询条件,从而查询出筛选后的结果,语法格式如下:SELECT 字段名1, 字段名2 , .... FROM 表名 WHERE 条件表达式;在以上语法中,字段名1,字段名2等表示需要查询的字段名称,条件表达式过滤筛选数据的条件。MySQL 提供了一系列关系运算符,这些运算符可以作为条件表达式过滤数据。关系运算符关系运算符含义...

weixin_29271053的博客 1628

MySQL——数据库中的单表查询操作

DQL:查询表中记录 1.了解查询的语法 select         字段列表 from         表名列表 where         条件列表 gr...

LiLiLiLaLa的博客 602

MySQL数据库单表与多表查询

【代码】MySQL数据库单表与多表查询。

Samsung.的博客 483
上一篇: Mysql数据库表的基本操作
下一篇: 26个字母大小写转换
wangxuejava
博客等级 码龄7年 6粉丝 46原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值