MySQL(五)增删改查进阶

news/2024/5/2 22:40:22/文章来源:https://blog.csdn.net/sjc090132/article/details/127013715

目录

一、数据排序

1、基础排序

2、过滤筛选

​3、多字段排序 

4、区间判断

5、嵌套/多条件

6、 查询不重复记录

二、分组

1、对结果进行分组

三、限制

1、限制输出的结果记录

四、设置别名

1、对于列的别名

2、对于表的别名

四、视图

1、视图和表区别

2、联系

3、单表创建视图

五、查询

1、子查询

2、连接查询

①左外连接

②右外连接

③内连接


一、数据排序

使用select语句可以将需要的数据那个mysql数据库中查询出来,在有主键的情况下,一般是按照主键ASCII码来进行排序(因为有字符集uft-8,所以不分大小写)。但如果不是主键我们又想排序,

如果对查询的结果进行排序,可以使用order by 语句来来对语句实现排序,并最终将排序后的结果返回给用户。这个语句的排序不光可以针对某一个字段,也可以针对多个字段。

1、基础排序

select  字段1,字段2  from  表  order  by  字段;

                                                  order  by  字段  desc;

默认以主键排序,数字/字母。

加上desc后倒序排列。

2、过滤筛选

order by还可以结合where进行条件过滤、筛选

select 字段1,字段2  from  表  where  字段=' 字段值'  order  by  字段;

3、多字段排序 

也可以多个字段同时筛选,先排序第一个,在第一个的基础上排序第二个字段

select 字段1,字段2  from  表  order  by  字段3,字段4;

4、区间判断

and/or   用来表示且/或

select  *  from  表  where  字段条件  and/or  字段条件;

5、嵌套/多条件

select  *  from  表  where  字段条件  and/or  (字段条件  and/or  字段条件);

先判断括号里的,再判断外面的条件

6、 查询不重复记录

二、分组

1、对结果进行分组

通过sql查询出来的结果,还可以对其进行分组,使用group by 语句来实现,group by通常都是结合聚合函数一起使用的,常用的聚合函数包括:计数count、求和sum、求平均数avg、最大值max、最小值min、group by分组的时候可以按一个或多个字段对结果进行分组处理

select  count(字段1),字段2  from  表  where  条件判断  group  by  字段3  order  by  count(字段1)  asc;

三、限制

1、限制输出的结果记录

在使用mysql select语句进行查询时,结果集返回的时所有匹配的记录(行)。有时候仅需要返回第一行或者前几行,这时候就需要用到limit子句

select 字段1,字段2  from  表  limit  1,2

四、设置别名

在mysql查询时,当表的名字比较长或者表内的某些字段比较长时,为了方便书写或者多次使用相同的表,可以给字段列或表设置别名。使用的时候直接使用别名,简洁明了,增强可读性。

1、对于列的别名

select 字段 as alias_name from 表;

2、对于表的别名

select 字段(s) from 表 as alias_name;

在使用as后,可以用alias_name代替表,其中as语句是可选的,as之后的别名,主要是为表内的列或者表提供临时的名称,在查询过程中使用,库内实际的表名或字段名是不会被改变的

这样查会发现test01表所有记录都会对应test02表的每条记录。

四、视图

视图:优化操作+安全方案

数据库中的虚拟表,这张虚拟表中不包含真实数据,只是真实数据的一个映射

1、视图和表区别

①视图是以及编译好的sql语句,而表不是

②视图没有实际的物理记录,而表有

③表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在

④视图是查看数据表的一种方法,可以查询数据表中某些字段组成的数据,只是一些sql语句的集合。从安全的角度来说,视图可以不给用户接触数据表,从而不知道表结构

⑤表属于全局模式中的表,是实表;试图属于局部模式的表,是虚表

⑥更新相互影响,视图无法删除数据

2、联系

视图是在基本表之上建立的

3、单表创建视图

create view v_score as select * from 表;

 

五、查询

1、子查询

子查询也被称作内查询或者嵌套查询,是指在一个查询语句里面还嵌套另一个查询语句。子查询语句是先于主查询语句被执行的,其结果作为外层的条件返回给主查询进行下一步的查询过滤。PS:子语句可以与主语句所查询的表相同,也可以是不同表

主语句:select id,name from test01 where id

子语句:select id from test where id<5

子语句中的sql语句是为了最后过滤出一个结果集,用于主语句的判断条件

2、连接查询

MySQL的连接查询通常都是将来自两个或多个表的记录行结合起来,基于这些表之间的共同字段,进行数据的拼接。首先,要确定一个主表作为结果集,然后将其他表的行有选择的连接到选定的主表结果集上。

①左外连接

在from子句中使用left join 或者left outer join关键字来表示。左连接以左侧表为基础表,接收左表的所有行,并用这些行与右侧参考表中的记录进行匹配,也就是说匹配左表中所有行以及右表中符合条件的行。

select * from 表1 left join 表2 on 表1字段=表二字段;

表1是左表,表2是右表;右表和左表相差的数据全部用null代替

②右外连接

在from子句中使用right join 或者right outer join关键字来表示。右连接以右侧表为基础表,接收右表的所有行,并用这些行与左侧参考表中的记录进行匹配,也就是说匹配右表中所有行以及左表中符合条件的行。

select * from 表1 right join 表2 on 表1字段=表2字段;

③内连接

MySQL中的内连接就是两张或多张表中同时符合某种条件的数据记录的组合。通常在from子句中使用关键字inner join来连接多张表,并使用on子句设置连接条件,内连接是系统默认的表连接,所以在from子句后可以省略inner关键字,只是用关键字join。同时有多个表时,也可以连续使用inner goin来实现多表的内连接,不过为了更好的性能,建议最好不要超过三个表。

select 字段s from 表1 inner join 表2 on 表1字段 = 表2字段;

只显示选择的表中拥有选择的字段重合的部分数据

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

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

相关文章

遇到一个bug,组件不更新内容

解决办法 当v-if的值发生变化时,组件都会被重新渲染一遍。因此,利用v-if指令的特性,可以达到强制刷新组件的目的。 <template><comp v-if="update"></comp><button @click="reload()">刷新test1组件</button> </templ…

Linux权限总结

放弃不难&#xff0c;但坚持很酷&#xff0c;加油&#xff01;希望此文对您有所帮助&#xff01; 目录 shell运行原理---外壳程序Linux权限的概念如何修改文件权限&#xff1f;常见权限问题&#xff08;面试题&#xff09;1.目录权限2.umask3.写权限的作用4.如何创建一个共享目…

机器学习在分子模拟中的应用

文章目录一、背景二、分子动力学模拟介绍简史基本步骤应用发展方向三、AlphaFold**前言****Alphafold2做了什么改进****Alphafold2会议具体细节&#xff1a;****Alphafold为什么强&#xff1f;****学术问题&#xff1a;**四、TorchMD五、Deep Potential**阶段一&#xff1a;对已…

TCP/IP网络编程:P3->地址族与数据序列

本系列文章为《TCP/IP网络编程----尹圣雨》学习笔记&#xff0c;前面的系列文章链接如下 TCP/IP网络编程&#xff1a;P1-&#xff1e;理解网络编程和套接字 TCP/IP网络编程&#xff1a;P2-&#xff1e;套接字类型与协议设置 文章目录前言一、分配给套接字的IP地址与端口号1.1 网…

CSP2022 J/S 游寄

9.18 A.m. 自己学校考,但只能睡到7点不到,就很无语。 来了好多同学,关系也不错,聊了一会天就去考试了。 至于考试没什么好说的,J也就那样。 P.m. 上午对了一下答案,貌似 \(92\) ? 中午机房太吵了,没怎么睡就去考试了。 考什么大家应该都有数,宇宙射线?秒表?做尼玛呢…

卷积神经网络的应用实例,卷积神经网络可解释性

神经网络激活函数与损失函数的作用 谷歌人工智能写作项目&#xff1a;神经网络伪原创 深度学习之损失函数与激活函数的选择 深度学习之损失函数与激活函数的选择在深度神经网络&#xff08;DNN&#xff09;反向传播算法(BP)中&#xff0c;我们对DNN的前向反向传播算法的使用做…

单片机原理与应用以及C51编程技术——硬件体系结构梳理

文章目录一、单片机的结构原理1.1 主要性能和特点1.2 内部框图1.3 CPU1.3.1 运算器1.3.2 控制器1.4 几个主要的特殊功能寄存器SFR说明1.4.1 程序指针PC1.4.2 累加器A1.4.3 寄存器B1.4.4 数据指针DPTR1.4.5 程序状态字PSW介绍例子1.4.6 堆栈指针SP堆栈的介绍堆栈的作用堆栈操作的…

Verilog学习笔记

sky视频笔记&#xff1a;数字逻辑回顾&Hello World_哔哩哔哩_bilibili 一、数电基础 1.组合逻辑 电路逻辑输出值只和当前的输入有关比如&#xff1a;AND/OR/XOR/NAND/NOR/MUX/Adder/Multiplier 2.时序逻辑 电路逻辑输出值跟当前的输入和电路的当前状态有关保存当前状态的…

用Python生成Hilbert矩阵

代码放在了最后&#xff0c;前面是解题思路 目录 1.什么是Hilbert矩阵矩阵&#xff1a; 2.找规律 1.第一种思路&#xff1a;先从值出发&#xff08;找规律&#xff09; 2.第二种思路&#xff1a;先从下标索引出发&#xff08;找规律&#xff09; 三、代码展示 四、输出展…

WPF 界面打不开提示 System.ArithmeticException Overflow or underflow in the arithmetic operation 异常

本文告诉大家如何解决界面打不开,抛出 System.ArithmeticException: Overflow or underflow in the arithmetic operation 异常的修复方法本文告诉大家如何解决界面打不开,抛出 System.ArithmeticException: Overflow or underflow in the arithmetic operation 异常的修复方…

某IOT设备漏洞分析

申明&#xff1a;本文章所分享内容仅用于网络安全技术讨论&#xff0c;切勿用于违法途径&#xff0c;所有渗透都需获取授权&#xff0c;违者后果自行承担&#xff0c;与本文及作者无关&#xff0c;请谨记守法. 设备名称: DLINK DIR-818l 固件包: d-link DIR818L_FW105b01 A1 环…

Rust学习笔记:简单练习

最近一个月比较闲&#xff0c;忙碌大半年终于有自己短暂的休息时间。如果不写大的程序&#xff0c;偶尔写写一些小东西&#xff0c;其实用起来也很自在&#xff0c;前提是如果没有太多生活压力。看电视变成奢侈的事情。有时候&#xff0c;我会羡慕老外享受福利待遇非常好&#…

javaweb|JSTL的下载、配置与原理,解决uri导入时报错的问题

今天在配置jstl时&#xff0c;发现在引入uri时出现了问题&#xff0c;地址直接报红。在尝试了几种方法后&#xff0c;最后成功解决了。 JSTL一、下载1、https://tomcat.apache.org/2、找到taglib标准库3、下载前2个jar包二、配置1、放入web-inf的lib文件夹里2、将Jar包放入tomc…

windows下 解决PHP-CGI 进程崩溃502

PHP是世界上最好的语言&#xff0c;但需要PHP解析器&#xff1b;Apachephp,需要通过mod_php.so和php相连&#xff1b;nginxphp 需要转发给 cgi程序 关于FastCGI&#xff1a; 全称 FastCGI Process Manager&#xff0c;是一种进程管理器&#xff0c;管理 cgi&#xff0c;市面上…

1474_AURIX TC275 WDT的运行模式

全部学习汇总&#xff1a; GreyZhang/g_TC275: happy hacking for TC275! (github.com) 1. 前面的内容中其实已经看到了&#xff0c;这个看门狗的时钟其实是固定的&#xff0c;SPB的时钟。这样&#xff0c;后面了解时钟树的时候需要注意一下。其实&#xff0c;在功能安全的失效…

ES6--》一文搞懂JS中的Promise

目录 Promise Promise使用 Promise封装Ajax请求 Promise封装读取文件 Promise.prototype.then 方法 Promise多文件读取 Promise.prototype.catch() Promise.prototype.finally() Promise.all() Promise.race() Promise.allSettled() Pomise.any() Promise.resolve…

微信小程序开发入门与实战(Behaviors使用)

作者 : SYFStrive 博客首页 : HomePage &#x1f4dc;&#xff1a; 微信小程序 &#x1f4cc;&#xff1a;个人社区&#xff08;欢迎大佬们加入&#xff09; &#x1f449;&#xff1a;社区链接&#x1f517; &#x1f4cc;&#xff1a;觉得文章不错可以点点关注 &#x1f4…

【原创】基于JavaWeb的社区疫情防控管理系统(疫情防控管理系统毕业设计)

项目介绍&#xff1a;后端采用JspServlet。前端使用的是Bootstrap的一个网站模板。开发一个在线的社区疫情防控管理系统。从角色的划分&#xff0c;包括用户、社管员、管理员。功能模块上包括了社区公告发布、高风险地区记录、地区感染信息管理、社区出入登记管理、行程信息管理…

关于maven生命周期的理解

晚上有点无聊&#xff0c;看到了一些东西引发了自己的思路&#xff0c;就想将maven的一些东西总结总结&#xff0c;有从网上抄的&#xff0c;也有自己的思路。 一、生命周期是指什么&#xff08;lifecycle&#xff09; Maven的生命周期就是对所有的构建过程进行抽象和统一。包…

Posix与System V IPC

Posix与System V IPC一、Posix IPC1.概述2.IPC名字3.px_ipc_name函数3.创建与打开IPC通道4.IPC权限二、System V IPC1.概述2.key_t键和ftok函数3.ipc_perm结构4.创建与打开IPC通道5.IPC权限6.标识符重用7.ipcs和ipcrm程序8.内核限制一、Posix IPC 1.概述 三种类型的IPC合称为…