增删改查语句实现了解不同的函数与特殊字符unionunion all区别

一、crud(增删改查)

1.1、查询

概念:

查询数据是指从数据库中根据需求,使用不同的查询方式来获取不同的数据,是使用频率最高、最重要的操作

注:在MySQL中,当执行一条SQL语句后,系统会返回一个"Affected row"的消息,表示该操作影响了多少行数据,也就代表SQL语句执行成功。这个消息通常用于INSERT、UPDATE、DELETE等操作,告诉你在数据库中有多少行数据受到了影响。

语法:

排序:where先加查询条件 > group分组  >having 筛选>order排序> limit分页

#基本查询
select * from t_book;#加条件
select * from t_book where id>10;
 分组 

#按类别分组 ,前面不能放*号了会报错
select booktype ,count(1) from t_book group by booktype;

筛选
#筛选(类别大于2) as num取个别名
select booktype ,count(1) as num from t_book group by booktype having num>2;

排序

升序:asc   降序:desc

#排序降序
select booktype ,count(1) as num from t_book group by booktype having num>2 order by num desc;#错误做法:排序放分组前面
select booktype ,count(1) as num from t_book order by num desc  group by booktype having num>2 ;

报错:查询语句中存在语法错误

分页
#一页一条数据
select booktype ,count(1) as num from t_book group by booktype having num>2 order by num desc limit 1;

1.2、增加

概念:

使用INSERT 语句向数据库已有的表中插入一行或者多行元组数据。

语法:
方式一:insert into +表名 values (值,值....)
insert into t_book values (1,'fff','wdw')

批量新增:insert into +表名 values (值,值....), (值,值....)

insert into t_book values (1,'fff','wdw'),(2,'哈哈哈','看看')
方式二:(选择性插入-----让某几个属性有值)

 insert into +表名

set  属性1=值1, 属性2=值2

insert into t_book 
set id=1,bookname='hhh'

1.3、修改

语法:

update 表名 set .....

#把id=1的名字改为hhh
update t_book set bookname='hhh' where  id=1

1.4、删除

语法:

delete from  表名 where 属性=值......

delete from t_book where id=1

二、函数

2.1、简介

MySQL中的函数是一组预定义的操作,用于执行特定的任务或计算。这些函数可以用于检索、操作和处理数据,以及执行各种数学、字符串和日期操作。一些常见的MySQL函数包括:SUM、AVG、COUNT、MAX、MIN、CONCAT、UPPER、LOWER、DATE_FORMAT等。这些函数可以在SELECT语句中使用,也可以在存储过程和触发器中使用。

实施用的场景:在面向客户中,客户说加了哪个数据,然后看不见,然后我们要帮他查,就要到

测试函数是什么:select +函数()

2.2、常见函数

字符串函数

转小写 -————LOWER('SQL Course') -————sql course

转大写-————UPPER('SQL Course')-————SQL COURSE

拼接————CONCAT('Hello. World')————HelloWorld

截取————SUBSTR('HelloWorld',1,5)————Hello

应用场景:

第一张图是原本的菜单栏

巧妙设计:

第二个是某公司的菜单栏,如果想要判定上一级,用截取,甚至可以知道他祖宗是谁

长度————LENGTH('HelloWorld')-————10

字符出现索引值(有没有出现过)————INSTR('HelloWorld','W')——6

字符截取后半段————TRIM('H' FROM 'HelloWorld')----------elloWortd

字符替换————REPLACE('abcd','b','m')————amcd

应用场景:隐藏敏感信息,如电话号码中间那几位

数字函数

四舍五入———— ROUND(45.926,2) ————45.93

截取———— TRUNC(45.926,2) -- 45.92

求余(用得少) -————MOD(1600,300)————100

日期函数

注:字符几乎可以存放所有类型数据

有很多开发人员为了图方便,不管什么类型直接用字符,但是后面不会维护,万一做会就辞职了,只是想先把工作完成再说,所有普遍这样,但是实施就太重要了

如:查询近7天表数据 ,结果里面存的是字符

做法:括号里放想转成日期型的数据>当前时间减7

str_to_date()>now()-7

获取当前日期 ————now()

重要

将日期格式的字符转换成指定格式的日期:

STR_TO_DATE('9-13-1999','%m-%d-%Y')————1999-09-13

将日期转换成字符:
DATE_FORMAT('2018/6/6','%Y年%m月%d日 ')-——2018年06月06日

2.3、流程函数

很多时候我们是需要行转列(特殊需求出现的)

行————>列

语法:

 当你满足一个条件我给你一个结果,你满足二个条件我给你二个结果,所有也没满足给你一个例外的结果

expr=expression表达式 

方式一

#案例:查询同时存在‘01’课程和‘02’课程的情况
select
t3.*
#当cid为01就返回分数score是语文的分数
(case when t1.cid='01' then t1.score end)语文,
#当cid为02就返回分数score是数学的分数
(case when t2.cid='02' then t2.score end)数学,
from
(select * from t_score sc where sc.cid='01')t1,
(select * from t_score sc where sc.cid='02')t2,
t_student t3
where 
t1.sid=t2.sid
and t1.sid=t3.sid

方式二

查询会议信息-----------------数字,怎么知道字段的意义

SELECT a.id,a.title,a.content,a.canyuze,a.liexize,a.zhuchiren,b.'name',a.location ,DATE_FORMAT(a.startTime,%Y-%m-%d %H:%i:%s') as startTime ,DATE_FORMAT(a.endTime,%Y-%m-%d %H:%i:%s') as endTime ,a.state
(case a.state
when 0 then'取消会议'
when 1 then'新建'
when 2 then'待审核'
when 3 then'驳回'
when 4 then'待开'
when 5 then'进行中'
when 6 then'开启投票'
else'结束会议' end
) as meetingState
,a.seatPic,a.remark.a.auditor,c.'name'as auditorName
FROM t_ oa_meeting info a
inner join t_oa_user b on a.zhuchiren = b.id
left JOIN t_oa_user c on a.auditor = c.id where 1=1 :

2.4、聚合函数

sum 求和、avg 平均值、max 最大值、 min 最小值、count计算个数

三、union&union all

3.1、 Union:


Union操作符用于合并两个或多个查询的结果集,并去除重复的行
如果两个查询的结果有相同的行,则只会返回一次。
Union操作符会对结果进行排序和去重,因此可能会影响性能

3.2. Union All:


Union All操作符也用于合并两个或多个查询的结果集,但不会去除重复的行
即使两个查询的结果有相同的行,也会全部返回。
 Union All操作符不会对结果进行排序或去重,因此通常比Union操作符更快

3.3、应用场景:--取并集交集

1. Union:
- 当需要合并多个查询的结果,并且希望去除重复的行时,可以使用Union操作符。
- 例如,合并两个表的数据,但不希望出现重复的记录。

2. Union All:
- 当需要合并多个查询的结果,但不需要去除重复的行时,可以使用Union All操作符。
- 例如,合并两个表的数据,允许出现重复的记录。

总的来说,Union和Union All操作符都用于合并多个查询的结果,但根据是否需要去除重复的行来选择使用哪种操作符。

3.4、案例:

初始数据:----------------------78重了

加  Union:-----------------------没有重复的(并集)

加  Union all:-----------------------有重复的

四、思维导图总结

  

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

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

相关文章

Docker中的核心概念

1.镜像 Image 一个镜像就代表一个软件。mysql镜像、redis镜像、mq镜像 2.容器 Container 一个镜像运行一次就会生成一个容器,容器就是一个运行的软件服务。 3.远程仓库 Repository 远程仓库用来存储所有软件的镜像,Docker Hub 4.本地仓库 用来存储…

Mybatis源码基本原理--XML版

文章目录 mybatis是什么架构设计首先建立起Mapper的代理工程和代理映射器的注册和使用XML文件解析数据源解析、创建和使用SQL执行器(Executor)的定义与实现SQL解析参数处理器:策略模式实现封装处理结果注解 mybatis 是什么 MyBatis 是一款优…

acwing 1358. 约数个数和(莫比乌斯函数)

设 d(x)�(�) 为 x� 的约数个数,给定 N,M�,�,求 ∑i1N∑j1Md(ij)∑�1�∑�1��(��) 输入格式 输入多组测试数据…

Java 读取超大excel文件

注意&#xff1a;此参考解决方案只是针对xlsx格式的excel文件&#xff01; Maven <dependency><groupId>com.monitorjbl</groupId><artifactId>xlsx-streamer</artifactId><version>2.2.0</version> </dependency>读取方式1…

SpringBoot的测试

&#x1f648;作者简介&#xff1a;练习时长两年半的Java up主 &#x1f649;个人主页&#xff1a;程序员老茶 &#x1f64a; ps:点赞&#x1f44d;是免费的&#xff0c;却可以让写博客的作者开心好久好久&#x1f60e; &#x1f4da;系列专栏&#xff1a;Java全栈&#xff0c;…

基于Segformer实现PCB缺陷检测(步骤 + 代码)

导 读 本文主要介绍基于Segformer实现PCB缺陷检测 &#xff0c;并给出步骤和代码。 背景介绍 PCB缺陷检测是电子制造的一个重要方面。利用Segformer等先进模型不仅可以提高准确性&#xff0c;还可以大大减少检测时间。传统方法涉及手动检查&#xff0c;无法扩展且容易出错…

目标检测-Two Stage-Mask RCNN

文章目录 前言一、Mask RCNN的网络结构和流程二、Mask RCNN的创新点总结 前言 前文目标检测-Two Stage-Faster RCNN提到了Faster RCNN主要缺点是&#xff1a; ROI Pooling有两次量化操作&#xff0c;会引入误差影响精度 Mask RCNN针对这一缺点做了改进&#xff0c;此外Mask …

C/C++动态内存分配 malloc、new、vector(简单讲述)

路虽远&#xff0c;行则将至 事虽难&#xff0c;做则必成 今天来主要讲C中动态内存分配 其中会穿插一些C的内容以及两者的比较 如果对C语言中的动态内存分配还不够理解的同学 可以看看我之前的博客:C语言动态分配 在讲解C的动态内存分配之前 我们先讲一下C内存模型 &#xff1…

楼宇智慧能源消耗监测管理系统,楼宇中的能源“管家”

随着人口的增加&#xff0c;楼宇数据呈上涨趋势&#xff0c;但是楼宇智能建设在我国普及性远远不足&#xff0c;相比传统楼宇控制&#xff0c;智能楼宇控制系统对于楼宇内部的用电设备控制&#xff0c;能够更加的节约能源&#xff0c;降低成本。对于现代化楼宇而言&#xff0c;…

ORACLE P6 v23.12 最新虚拟机(VM)全套系统环境分享

引言 根据上周的计划&#xff0c;我简单制作了两套基于ORACLE Primavera P6 最新发布的23.12版本预构建了虚拟机环境&#xff0c;里面包含了全套P6 最新版应用服务 此虚拟机仅用于演示、培训和测试目的。如您在生产环境中使用此虚拟机&#xff0c;请先与Oracle Primavera销售代…

C#最佳工具集合:IDE、分析、自动化工具等

C#是企业中广泛使用的编程语言&#xff0c;特别是那些依赖微软的程序语言。如果您使用C#构建应用程序&#xff0c;则最有可能使用Visual Studio&#xff0c;并且已经寻找了一些扩展来对您的开发进行管理。但是&#xff0c;这个工具列表可能会改变您编写C#代码的方式。 C#编程的…

模拟器怎么代理IP?代理IP对手机设置模拟器有哪些影响?

一、代理IP的基本概念和作用流冠代理IP是一种网络服务&#xff0c;可以帮助用户隐藏自己的真实IP地址&#xff0c;通过代理服务器进行网络请求&#xff0c;从而保护用户的隐私和安全。在模拟器中&#xff0c;代理IP的作用也是如此&#xff0c;可以帮助模拟器隐藏真实的IP地址&a…

Hubery-个人项目经历记录

研究生期间很有幸的进入到了崔老师的组&#xff0c;从此也就进入到了分析人体生理信号的领域&#xff0c;充满挑战的同时也充满了乐趣。借着CSDN整理一下近几年来参与的项目&#xff0c;这里蕴含着我各种美好的回忆&#xff0c;也作为一个展示自己的平台吧。 开始之前&#xff…

小红书12月内容趋势分析

为洞察小红书平台的内容创作趋势及品牌营销策略&#xff0c;新红推出12月月度榜单&#xff0c;从创作者、品牌、热搜词多方面入手&#xff0c;解析月榜数据&#xff0c;为从业者提供参考。 以下为12月部分榜单解析&#xff0c;想要查看更多行业榜单&#xff0c;创作优质内容&am…

【MySQL】常用存储引擎,数据库管理,数据表管理,数据库账户管理

目录 一 常用的数据引擎(4) 1.1 InnoDB存储引擎 1.2 MyISAM存储引擎 1.3 Memory存储引擎 1.4 ARCHIVE存储引擎 二 数据库管理 2.1 元数据库概念与分类 2.2 相关操作命令 三 数据表的管理 3.1 三大范式 3.2 数据类型 四 数据库账户管理 五 思维导图 一 常用的数据…

探索AliExpress商品详情API:使用与解析

一、引言 AliExpress是阿里巴巴旗下全球领先的B2C在线交易平台&#xff0c;为全球数亿消费者提供安全、便捷、高效的购物体验。随着电子商务的快速发展&#xff0c;获取商品详情成为了电商应用程序中的一项重要功能。AliExpress商品详情API&#xff08;aliexpress.item_get&am…

Vue中的选项式 API 和组合式 API,两者有什么区别

Vue中的选项式 API&#xff08;Option API&#xff09;和组合式 API&#xff08;Composition API&#xff09;是两种不同的组件编写方式&#xff0c;它们各有特点和适用场景&#xff1a; 选项式 API&#xff08;Option API&#xff09;: 传统方法&#xff1a;Vue最初的编程范式…

redis服务迁移数据工具--RDM

一、背景&#xff1a; 在日常的运维工作经常遇见各种数据迁移工作&#xff0c;例如mysql数据库迁移、redis数据库迁移、minio数据迁移等等工作。这里介绍一下redis数据库的迁移过程。 二、迁移思路&#xff1a; redis服务/集群的数据迁移思路是需要新建一个配置、密码一样的re…

【字典树Trie】LeetCode-139. 单词拆分

139. 单词拆分。 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。 注意&#xff1a;不要求字典中出现的单词全部都使用&#xff0c;并且字典中的单词可以重复使用。 示例 1&#xff1a; 输入: s "leetcode&q…

openGauss学习笔记-185 openGauss 数据库运维-升级-提交升级/升级版本回退/异常处理

文章目录 openGauss学习笔记-185 openGauss 数据库运维-升级-提交升级/升级版本回退/异常处理185.1 提交升级操作步骤 185.2 升级版本回滚操作步骤 185.3 异常处理升级问题FAQ openGauss学习笔记-185 openGauss 数据库运维-升级-提交升级/升级版本回退/异常处理 185.1 提交升级…