MySQL数据的增删改查 where 条件查询 基础知识 【3】推荐

news2024/11/24 14:00:31

操作数据是数据库很重要的一部分,今天整理了下关于MySQL数据库数据的增删改查,包括基础查询、where条件查询、排序、分页、聚合、分组、having以及多表查询,多表查询的直接查询、内连接、外连接以及子查询。方便自己以后查看,也欢迎正在学习MySQL数据库的同学参考,谢谢。 数据库的安装配置点这里


目录

1. MySQL数据的增删改

1.1 数据表新增 数据 

1.2 删除数据

1.3 更新数据

2.数据的查询操作

2.1基础查询

2.2 where条件查询

2.3 排序查询

 2.4 分页查询

 2.5 聚合查询

2.6 分组查询

2.7 having查询

2.8 多表查询

2.8.1 直接查询

2.8.2 内连接查询

2.8.3 外连接查询

2.8.4 union查询

2.8.5 子查询


 

1. MySQL数据的增删改

1.1 数据表新增 数据 
--给数据表新增一条数据
insert into user (usrename) values ('rose');
insert into user (usrename,gender) values ('rose','女性');

--数据表插入多条数据
insert into user (usrename,gender) values ('rose','女性'),('jack','保密');

1.2 删除数据
--删除数据
delete from user; --删除是整张表
delete from user where id = 3; --删除符合条件的指定数据

1.3 更新数据

我们更新user数据表中id为1的数据username字段被更新为 新的数据苏妲己。

--更新数据 更新符合条件的数据
update user set usrename='苏妲己', gender = '女性' where id = 1;

2.数据的查询操作

数据的查询操作内容比较多,常用的基础查询where条件查询排序查询分页查询聚合函数分组查询having查询以及多表查询。我们新建了一张学生信息表来查询数据使用。

2.1基础查询

通过查询语句查询的结果称为结果集,是以表的形式呈现的,结果集来自数据表,但不是一张表,结果集保存在内存,而数据表保存在硬盘上。

--基础查询
select * from student; -- 查询所有字段
select id,name from student; -- 查询指定字段

2.2 where条件查询

-- 支持 >、 <、 >=、 <= 、 =、 !=
-- 支持 and 与、or或、not 非
-- in(值1,值2) between...and 
-- is null、 is not null
-- like 模糊查询 

 

-- =可以换成>、 <、 >=、 <= 、 !=
select * from student where id = 2;

-- 并且 两个条件同时满足
select * from student where age >=18 and gender ='女生'; 

-- 满足其中一个条件
select * from student where age >=18 or gender ='女生'; 

-- 年龄不小于16的数据
select * from student where not age <18; 

-- id限制某个范围
select * from student where id in (1,2,5); 

-- 查询在范围内,包含边界
select * from student where id between 1 and 5;  

-- class 是null的数据
select * from student where class is null; 

-- class 不是null的数据
select * from student where class is not null; 


-- %匹配任意个任意字符 
select * from student where name like '张%'; 

-- %匹配任意个任意字符 
select * from student where name like '%三%'; 

-- %匹配任意个任意字符 
select * from student where name like '%三'; 

-- _匹配一个任意字符
select * from student where name like '张_'; 
2.3 排序查询

指定某些字段按照升序,还是降序的方式展示数据集。不设置的情况下数据查询结果默认是升序排列的。

-- 排序查询

-- 默认就是升序 英文 ascending
select * from student order by age asc; 

-- 降序 descending
select * from student order by age desc; 

-- 先按年龄降序,再按id 升序
select * from student order by age desc, id asc; 
 2.4 分页查询

-- limit 一次查询的条数 offset偏移量
-- limit  偏移量 一次查询的条数

select * from student limit 3 offset 2;

-- 等同于下面这种写法
select * from student limit 2,3;
 2.5 聚合查询

聚合查询就是对表中的数据进行计算和统计,一般结合分组(group by)来使用,用于统计和计算分组数据。常用的聚合函数有  count()  sum()  avg()   min()  max()

-- count() 计算查询结果集中数据条数的 (一般用于统计数据条数)
-- sun() 计算结果集中所有指定字段的和  (相当于某个字段的求和)
-- avg() 计算结果集中所有指定字段的平均和 (相当于某个数据的平均数)
-- max() 求查询结果中指定字段的最大值
-- min() 求查询结果中指定字段的最小值
select count(*) from student;
select sum(age) from student;
select avg(age) from student;
select max(age) from student;
select min(age) from student;

-- 给聚合函数查出来的字段设置别名 
select count(*) as total from student;
select count(*)  total from student; -- as 也可以省略
select count(*) '总数' from student; --设置中文别名
2.6 分组查询

对数据表中的需要分组的字段进行分组显示结果集,查询语句select 后跟分组字段或者聚合函数

select class from student group by class;
select class,avg(age) from student group by class;

select class,avg(age) '平均年龄' from student group by class;

2.7 having查询

having查询是对数据集中的数据进行查询,可对分组数据进行筛选。

where虽然也是条件查询,但是where是对数据进行查询。having是对数据集进行筛选。

-- select class,avg(age) avg from student group by class where avg <= 18; -- 不可这样写
select class,avg(age) avg from student group by class having avg <= 18;

2.8 多表查询

多表查询是指多个表之间关联查询数据。有直接查询内连接查询左外连接查询右外连接查询union查询子查询

2.8.1 直接查询
select * from class,student1;
select * from class,student1 where class.id =  student1.class_id;
2.8.2 内连接查询

内连接查询  inner join 或  join

-- 内连接查询 inner join 或  join 
-- 内连接查询和直接查询出来的数据一样
select a.id,b.name from student1 a join class b on a.class_id = b.id; 

2.8.3 外连接查询

左外连接 left outer join 或者 left join 和右外连接查询 right outer join 或者 right join

-- left outer join 或者 left join
-- 左外连接查询 就是左边的表无条件显示,而右边表符合条件的数据才会显示
select * from student1 a left join class b on a.class_id = b.id;


-- right outer join 或者 right join
-- 右外连接查询 就是右边的表无条件显示,而左边表符合条件的数据才会显示
select * from student1 a left join class b on a.class_id = b.id;
2.8.4 union查询

union查询的两张表查询的字段需要保持一致。

-- union查询
select id,name from student1 union select id,name from class;
2.8.5 子查询

子查询是把一条查询语句查询的结果当作 查询条件 或者 数据表 来使用。作为数据表来用需要设置别名。

-- 1.子查询 

-- 1.1 将查询语句作为另一个查询语句的条件来使用
select class_id from student1 where id = 1;
select class_id from student1 where id > 1;
select * from class where id = (select class_id from student1 where id = 1);
select * from class where id in (select class_id from student1 where id > 1);

-- 1.2 将查询语句结果做为另一个查询语句的表来使用
select name from class where id > 1;
select * from  (select name from class where id > 1) a; -- 必须给子查询设置别名 

数据的查询操作到这里就介绍完了。有问题欢迎大家评论区留言,谢谢。


前面我们已经写过数据库以及数据表的增删改查以及主键约束、外键约束、非空约束等。需要参考这部分知识的同学请自从查看:MySQL数据库入门基础知识 【1】推荐-CSDN博客

有关MySQL数据库外键默认约束和外键操作的restrict严格模式、set null置空操作、cascade级联操作的基础知识请参考:MySQL数据库 外键默认约束和action 基础知识【2】推荐-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于stm32的RTC实时时钟 (HAL)

一&#xff1a;stm32的RTC功能概述 &#xff08;基于stm32f10x&#xff09; 1&#xff1a;绪论 实时时钟是一个独立的计时器&#xff0c;RTC提供一套持续运行的计数器&#xff0c;这些计数器可以配合适合的软件用来提供一个时钟日历功能。计数器的值可以被写入以设置系统当前时…

Linux中栈的大小的修改

目录 1. 使用ulimit命令 2. 修改系统级别的资源限制 3. 修改编译器选项 4. 修改内核参数&#xff08;不常用&#xff09; 5. 修改Makefile文件 检查当前栈大小 在Linux系统中&#xff0c;可以通过几种不同的方法来修改栈的大小。下面是几种常用的方法&#xff1a; 1. 使…

『 Linux 』POSIX 信号量与基于环形队列的生产者消费者模型

文章目录 信号量概念POSIX 信号量基于环形队列的生产者消费者模型基于环形队列的生产者消费者模型编码实现基于环形队列的生产者消费者模型发送任务测试 信号量概念 信号量是一种用于多线程或多进程间同步的机制; 其定义是一个整形变量,本质上信号量可以看成是一个计数器,用来描…

记录一次服务器被(crontab)木马入侵事件

背景&#xff1a;发现平时正常登录的服务器突然进不去&#xff0c;也没明显的错误&#xff0c;重启也登录不了&#xff01; 可能的原因&#xff0c;内存/CPU满了 重启通过用户模式进入&#xff0c;查看进程发现有个定时任务一直在自动创建并执行&#xff08;进程ID一直在变化&a…

机械学习—零基础学习日志(高数19——函数极限理解深化)

零基础为了学人工智能&#xff0c;真的开始复习高数 本次学习笔记&#xff0c;主要讲解函数极限的计算问题。 极限四则运算规则 这里有几个需要注意的地方。函数极限的四则运算&#xff0c;需要知道极限存在才能大胆放心的使用。而且使用超实数的概念会更好帮助我们理解&…

Python 操作PPT幻灯片- 添加、删除、或隐藏幻灯片

PowerPoint文档是商务、教育、创意等各领域常见的用于展示、教育和传达信息的格式。在制作PPT演示文稿时&#xff0c;灵活地操作幻灯片是提高演示效果、优化内容组织的关键步骤。下面将介绍如何使用国产Spire.Presentation for Python库实现添加、删除或隐藏PPT幻灯片。 目录 …

浅谈Java线程池的概念

目录 说明 1.线程池特点 2.线程池的简单示例 2.1 定义一个线程池类&#xff0c;通过创建一个全局的阻塞队列接收任务&#xff0c;线程池类构造方法拿阻塞队列的线程&#xff0c;完成线程的执行。 3. main方法中调用该类&#xff0c;实现线程池的调用 4.效果如下 说明 线程…

MySql Linux 安装

下载 下载后的文件为&#xff1a;mysql-8.4.2-linux-glibc2.28-x86_64.tar.xz 创建用户和用户组 $> groupadd mysql $> useradd -r -g mysql -s /bin/false mysql由于用户仅用于所有权目的&#xff0c;而不是登录目的&#xff0c;因此useradd命令使用 -r和-s /bin/false…

C++笔记之编译过程和面向对象

回顾&#xff1a; “abcd”//数据类型 字符串常量 const char *p"abc"; new STU const char *//8 指针的内存空间 int float 指针的内存空间 p 指针指向的内存空间 "abc" 取决于字符串长度 指针变量的内容一级指针 指针变量的地址二级指针 …

深度学习------权重衰退

目录 使用均方范数作为硬性限制使用均方范数作为柔性限制演示最优解的影响参数更新法则总结高纬线性回归多项式的权重衰退从零开始实现初始化模型参数定义L2范数惩罚定义训练代码实现忽略正则化直接训练使用权重衰减从零开始代码实现 多项式的权重衰退的简洁实现简洁函数代码简…

案例分享|Alluxio在自动驾驶数据闭环中的应用

分享嘉宾&#xff1a; 孙涛 - 中汽创智智驾工具链数据平台开发专家 关于中汽创智&#xff1a; 中汽创智科技有限公司&#xff08;以下简称“中汽创智”&#xff09;由中国一汽、东风公司、南方工业集团、长安汽车和南京江宁经开科技共同出资设立。聚焦智能底盘、新能动力、智…

学习硬件测试04:触摸按键+PWM 驱动蜂鸣器+数码管(P62~P67、P71、P72)

一、触摸按键 1.1理论讲解 1.1.1实验现象 触摸按键 1 单击与长按&#xff0c;控制 LED1&#xff1b;触摸按键 2 单击与长按&#xff0c;控制 LED2;触摸按键 3 单击与长按&#xff0c;控制 LED3;触摸按键 4 单击与长按&#xff0c;控制继电器; 1.1.2硬件电路 是原理图上触摸…

vue3+element-plus实现table表格整列的拖拽

参考文章&#xff1a;https://blog.csdn.net/candy0521/article/details/136470284 一、为防止原文章不见了将参考文章代码拷过来了&#xff08;不好意思&#xff09;&#xff1a;这是参考文章的代码 可直接复制粘贴运行 <template><div class"draggable-table&…

uniapp 多渠道打包实现方案

首先一个基础分包方案&#xff1a; 包不用区分渠道&#xff0c;只是通过文件名进行区分&#xff0c;公共代码逻辑可以通过mixins进行混入。 这样分包后就需要在打包时只针对编译的渠道包文件进行替换打包&#xff0c;其他渠道包的文件不打包进去&#xff0c;通过工具类实现…

商业策划案怎么写?附商场230个策划案例

商业策划案的撰写是一个系统性工程&#xff0c;旨在详细阐述项目的背景、目标、实施策略、财务预测及风险评估等内容&#xff0c;以吸引投资者或合作伙伴的关注。 以下是一个详细的撰写步骤和要点&#xff0c;码字不易&#xff0c;如果回答对你有所帮助&#xff0c;请不吝给一…

GraphRAG如何使用ollama提供的llm model 和Embedding model服务构建本地知识库

使用GraphRAG踩坑无数 在GraphRAG的使用过程中将需要踩的坑都踩了一遍&#xff08;不得不吐槽下&#xff0c;官方代码有很多遗留问题&#xff0c;他们自己也承认工作重心在算法的优化而不是各种模型和框架的兼容性适配性上&#xff09;&#xff0c;经过了大量的查阅各种资料以…

【目标和】python刷题记录

R3-dp篇. 目录 思路&#xff1a; 增加记忆化搜索&#xff1a; 优化空间复杂度&#xff1a; 思路&#xff1a; class Solution:def findTargetSumWays(self, nums: List[int], target: int) -> int:#设正数之和为p,总元素之和为s&#xff0c;带符号总元素之和为t&…

AWS开发人工智能:如何基于云进行开发人工智能AI

随着人工智能技术的飞速发展&#xff0c;企业对高效、易用的AI服务需求日益增长。Amazon Bedrock是AWS推出的一项创新服务&#xff0c;旨在为企业提供一个简单、安全的平台&#xff0c;以访问和集成先进的基础模型。本文中九河云将详细介绍Amazon Bedrock的功能特点以及其收费方…

安卓常用控件(上)

文章目录 TextViewButtonEditText TextView textview主要用于在界面上显示一段文本信息。 属性名描述id给当前控件定义一个唯一的标识符。layout_width给控件指定一个宽度。match_parent&#xff1a;控件大小与父布局一样&#xff1b;wrap_content&#xff1a;控件大小刚好够包…