MySQL常用语句(二)

news2024/11/28 11:13:38

#数据修改

#insert

insert语句用于将一行或多行插入到表中。

insert语句的语法:

在insert into子句之后的括号内指定表名和逗号分隔列的列表,然后将括号内相应列的逗号分隔值放在values关键字之后。

创建一个名为tasks的新表来练习insert语句:

使用insert语句将任务插入到tasks表中:

在MySQL中可以使用select语句返回的列和值来填充insert语句的值。

例如将tasks表复制到tasks_bak表:

首先通过复制tasks表的结构,创建一个名为tasks_bak的新表。然后使用insert语句将tasks表中的数据插入tasks_bak表:

查看tasks_bak表中的数据,检查是否复制完成:

#update

使用update语句更新表中的现有数据,也可以使用update语句来更改表中的单个行、一组行或所有行的列值。

update语句的语法:

首先在update关键字后面指定要更新数据的表名,set子句指定要修改的列和新值,最后使用where子句中的条件指定要更新的行。如果省略where子句,则update语句将更新表中的所有行。

例如将Mary Patternson的电子邮件更新为新的电子邮件mary.new@yiibai.com:

首先从employees表查询Mary的电子邮件:

使用update语句对Mary的电子邮件信息进行更新:

set子句将电子邮件列的值设置为新的电子邮件。再次执行select语句验证更改:

#replace

replace语句用于向数据库表插入或更新数据。如果给定行数据不存在,replace语句会插入一个新行;如果给定行数据存在,则replace语句首先删除旧行,然后插入一个新行。
要使用replace语句,至少需要具有insert和delete权限。

例如在testdb数据库的cities表中插入一些行记录:

首先创建一个名为cities的新表:

接下来进行数据插入:

查询cities表中的数据,验证插入操作:

#数据删除

#delete

使用delete语句从表中删除数据。

delete语句的语法:

首先指定要删除数据的表table_name,然后使用条件来指定要在where子句中删除的行记录。除了从表中删除数据外,delete语句还返回删除的行数。

例如要删除officeCode为4的员工:

如果要限制删除的行数,使用limit子句,如果表中的行顺序未指定,应同时使用order by子句:

例如选择法国的客户,按信用额度升序进行排序,并删除前5个客户:

#数据过滤

#where

允许根据指定的过滤表达式或条件,来指定要选择的行。

例如只想从employees表中获取销售代表员工:

where子句可以与逻辑运算符(and、or等)相结合。

例如在办公室代码为1中查找所有销售代表:

where子句还可以与比较运算符相结合:

例如查询办公室代码大于5的员工:

【——全网最全的网络安全学习资料包分享给爱学习的你,关注我,私信回复“资料领取”获取——】
1.网络安全多个方向学习路线
2.全网最全的CTF入门学习资料
3.一线大佬实战经验分享笔记
4.网安大厂面试题合集
5.红蓝对抗实战技术秘籍
6.网络安全基础入门、Linux、web安全、渗透测试方面视频

#运算符(and、or、in、between)

#and运算符

组合两个或多个布尔表达式,只有当两个表达式求值均为true时才返回true,否则返回false。

例如使用示例数据库中的customers表进行演示,customers表结构:

选择国家是USA和CA的客户:

#or运算符

组合了两个或两个以上布尔表达式,当任一条件为真时,返回true。

例如获得美国或者法国的客户:

运算符优先级:当语句中使用多个逻辑运算符时,MySQL会在and运算符之后再对or运算符进行求值。

例如查询位于美国或法国且信用额度大于100000的客户:

如果不使用括号,将返回位于美国的客户,或位于法国且信用额度大于100000的客户:

#in运算符

确定指定的值是否与列表中的值或子查询中的任何值匹配。

in运算符的语法:

可以在where子句中与in运算符一起使用,可使用列表或表达式(expr),列表中的值用逗号分隔;如果column_1的值或expr表达式的结果等于列表中的任何值,则in运算符返回1,否则返回0。
当列表中的值都是常量时,首先MySQL根据column_1的类型或expr表达式的结果来计算值,然后MySQL排序值,最后MySQL使用二进制搜索算法搜索值。如果列表中的expr或任何值为null,则in运算符计算返回null。

例如查找位于美国和法国的办事处:

#between运算符

指定要测试的值范围。

between运算符的语法:

所有表达式(expr、begin_expr和end_expr)比较具有相同的数据类型。expr是在由begin_expr和end_expr定义的范围内测试的表达式。
如果begin_expr<=expr<=end_expr,则between运算符返回true,否则返回0。如果任何表达式为null,则between运算符返回null值。如果想指定一个不含边界值的范围,则使用>和<运算符。

例如查询价格在90和100元范围内的商品:

当使用between运算符与日期类型值时,要获得最佳结果,应使用类型转换,将列或表达式的类型显式转换为DATA类型。

例如获取从2013-01-01到2013-01-31的所有订单:

因为requiredDate列的数据类型是DATE,所以使用转换运算符将文字字符串‘2013-01-01’和‘2013-01-31’转换为DATE数据类型。

#like

like运算符通常用于根据指定的模式,从表中查询选择的数据。MySQL提供两个通配符%和_用于和like运算符一起使用:百分比%通配符允许匹配任何字符串的零个或多个字符;下划线_通配符允许匹配任何单个字符。

例如搜索名字以字符a开头的员工信息,可以在模式末尾使用%通配符:

MySQL将扫描整个employees表,以找到每个其名字以字符a开头,后跟任意数量字符的员工信息。

例如搜索员工以on字符结尾的姓氏,可以使用模式开头的%通配符:

例如查找名字以T开头以m结尾的员工,且包含例如Tom、Tim之间的任何单个字符,可以使用_通配符来构建模式:

#limit

使用limit子句来约束结果集中的行数。Limit子句接受一个或两个参数,参数的值必须为零或正整数。

limit子句的语法:

参数offset指定要返回的第一行的偏移量,第一行的偏移量为0而不是1;count指定要返回的最大行数。

例如查询employees表中前5个客户:

limit子句经常与order by子句(详见【数据排序】)一起使用,首先使用order by子句根据特点条件对结果进行排序,然后使用limit子句来查找最小或最大值。

例如查询信用额度最高的前5名客户:

使用limit解决如何获得结果集中的第n个最高值的问题

例如找出价格第二高的产品:

类似获取售价第三高、第四高的产品为limit 2,1和limit 3,1。

#is null

使用is null运算符测试值是否为NULL值。

例如查询没有销售代表的客户:

#数据排序

#order by

order by子句允许对单个列或多个列排序结果集,和按升序或降序对不同列的结果集进行排序。

order by子句的语法:

ASC表示升序,DESC表示降序,order by子句默认按照升序对结果集进行排序。

例如从customers表中查询联系人,并将姓氏按降序和名字按升序排序联系人:

在上面的查询中,order by子句首先按照contactLastname列降序对结果集进行排序,然后按照contactFirstname列升序对排序结果集进行排序,以生成最终结果集。

#数据分组

#group by

通过列或表达式的值,将一组行分组为一个小分组的汇总行记录。每个分组返回一行,减少了结果集中的行数。

group by子句语法:

group by关键字之后是一个以逗号分隔的列或表达式的列表,作为条件对行进行分组。

例如要将订单状态的值分组到子组中,则要使用group by子句并指定按status列来执行分组:

可以看到group by子句返回值是唯一的,它像distinct运算符一样,删除了值重复的行。

除了列之外,可以按表达式对行进行分组。

例如获取每年的总销售额:

使用YEAR函数(返回一个指定日期的年份值)从订单日期orderDate中提取年份数据,只包括已发货状态Shipped的订单。

#having

使用having子句来指定一组行或聚合的过滤条件。通常与group by子句一起使用,以根据指定的条件过滤分组;如果省略group by子句,则having子句的行为与where子句类似。
注意having子句将过滤条件应用于每组分行,而where子句将过滤条件应用于每个单独的行。

例如使用having子句查询哪些订单的总销售额大于55000:

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

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

相关文章

火山引擎边缘智能×扣子,拓展AI Agent物理边界

9月21日&#xff0c; 火山引擎边缘智能扣子技术沙龙在上海圆满落地&#xff0c;沙龙以“探索端智能&#xff0c;加速大模型应用”为主题&#xff0c;边缘智能、扣子、地瓜机器人以及上海交大等多位重磅嘉宾出席&#xff0c;分享 AI 最新趋势及端侧大模型最新探索与应用实践。 …

C++继承深度剖析:从理论到实践的跨越

✨✨小新课堂开课了&#xff0c;欢迎欢迎~✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;C&#xff1a;由浅入深篇 小新的主页&#xff1a;编程版小新-CSDN博客 前言&#xff1a; 前面我们已经学了很多有关…

纠删码参数自适应匹配问题ECP-AMP实验方案(中)

6.方法设计 6.1.数据获取 为了收集不同的文件大小和纠删码参数对性能指标的影响&#xff0c;本文在Hadoop平台上进行了模拟实验。Hadoop是一种开源的分布式存储和计算框架&#xff0c;它可以支持不同类型的纠删码&#xff0c;并提供了一些应用程序接口和工具来测试和评估纠删…

Rstudio 绘制elecdaily的时序图与预测

&#xff08;1&#xff09;绘制上述数据的时序图并将温度作为解释变量对日度耗电量建模。为什么是它们之间是正向相关关系&#xff1f; head(elecdaily,20) %>% as.data.frame() %>% ggplot(aes(xTemperature, yDemand)) ylab("电量能耗 %") xlab("温度…

论文笔记:D-vlog 用于抑郁症检测的多模态数据集

整理了AAAI2022 D-vlog: Multimodal Vlog Dataset for Depression Detection 论文的阅读笔记 背景方法特征提取模型 实验数据集主实验不同模态的性能性别的影响 背景 以往关于抑郁症检测的工作大多集中在实验室环境下对抑郁症个体的检测&#xff0c;难以在实践中推广。本文提出…

Java之API

前言 这一篇讲API&#xff0c;有很多很多的API 1. Object 它是所有类的祖宗类&#xff0c;所以任何类都可以直接使用Object的一些方法 1.1 toString 从这个我们就可以看出&#xff0c;平时对s1的打印其实是默认调用了它的toString函数&#xff0c;因为toString是灰色的 但…

qt数据库的系统

pro文件 QT core gui sqlgreaterThan(QT_MAJOR_VERSION, 4): QT widgetsCONFIG c11# The following define makes your compiler emit warnings if you use # any Qt feature that has been marked deprecated (the exact warnings # depend on your compiler). Plea…

四款电脑录屏的软件,谁更胜一筹?

作为一名喜欢搜罗各种办公软件的打工人&#xff0c;我每天的工作都离不开电脑&#xff0c;而录屏软件就成了我工作中不可或缺的小帮手。最近&#xff0c;我试用了四款流行的录屏软件&#xff0c;今天就来跟大家分享一下我的使用感受&#xff0c;看看哪款软件更得我心。 一、福…

Python和C++及MATLAB低温磁态机器学习模型

&#x1f3af;要点 使用小规模磁态训练模型&#xff0c;并在二维三维爱德华兹-安德森模型上使用四种算法测试&#xff1a;贪婪算法、模拟退火算法、并行回火算法和本模型。将磁态基态搜索视为马尔可夫决策过程 (MDP)&#xff0c;学习最优策略以累积其最大回报。设计图神经网络…

从0开始深度学习(9)——softmax回归的逐步实现

文章使用Fashion-MNIST数据集&#xff0c;做一次分类识别任务 Fashion-MNIST中包含的10个类别&#xff0c;分别为&#xff1a; t-shirt&#xff08;T恤&#xff09;、trouser&#xff08;裤子&#xff09;、pullover&#xff08;套衫&#xff09;、dress&#xff08;连衣裙&…

SSD |(二)SSD主控

文章目录 &#x1f4da;控制器架构&#x1f407;PCIe和NVMe控制器前端子系统&#x1f407;NAND闪存控制器后端子系统&#x1f407;内存子系统&#x1f407;安全子系统&#x1f407;CPU计算子系统 &#x1f4da;控制器架构 控制器作为一个片上系统&#xff0c;处理来自用户端的…

Linux下的Makefile基本操作

1.Makefile与 make介绍 在Linux中&#xff0c; Makefile 是⼀个⽂件&#xff0c; 令会在当前⽬录下找 make 是⼀个指令&#xff0c;当使⽤ Makefile ⽂件从⽽执⾏内部的内容 2.创建第一个 Makefile并使用make ⾸先&#xff0c;在当前⽬录下创建⼀个makefile文件 接下来在同级…

【小工具分享】下载保存指定网页的所有图片

一、保存百度首页所有的图片 先看一下保存的图片情况 二、思路 1、打开网页 2、获取所有图片 3、依次下载保存图片到指定路径 三、完整代码 from selenium import webdriver from selenium.webdriver.common.by import By b webdriver.Firefox() import urllib.request…

企业如何借力AI,提升人力资源管理的效率完成组织提效变革

大家好&#xff0c;我是Shelly&#xff0c;一个专注于输出AI工具和科技前沿内容的AI应用教练&#xff0c;体验过300款以上的AI应用工具。关注科技及大模型领域对社会的影响10年。关注我一起驾驭AI工具&#xff0c;拥抱AI时代的到来。 企业面临的压力&#xff1a; 在当今这个充…

LeetCode|70.爬楼梯

这道题很像斐波那契数列&#xff0c;但是初始值不同&#xff0c;也有动态规划的解法&#xff0c;但是一开始我想到的是递归写法。现在我们站在第n阶台阶&#xff0c;那么&#xff0c;我们上一步就有两种可能&#xff1a;1、我们从第n-1阶台阶走一步上来的&#xff1b;2、我们从…

商家转账到零钱接口开通

商家想要开通“商家转账到零钱”功能&#xff0c;需要遵循一系列详细步骤和条件&#xff0c;以确保顺利通过审核。以下是开通办法的详解&#xff1a; 申请流程&#xff1a; 主体资格确认&#xff1a;确保申请主体为公司性质&#xff08;有限公司&#xff09;&#xff0c;个体工…

ScribbleDiff:使用涂鸦引导扩散,实现无需训练的文本到图像生成

ScribbleDiff可以通过简单的涂鸦帮助计算机生成图像。比如你在纸上随意画了一些线条&#xff0c;表示你想要的图像的轮廓。ScribbleDiff会利用这些线条来指导图像生成的过程。 首先&#xff0c;它会分析这些涂鸦&#xff0c;确保生成的图像中的对象朝着你画的方向。比如&#…

品民俗、看展演、逛非遗市集……在海淀,重阳节还可以这样过

秋菊溢彩、叠翠鎏金。由北京市海淀区文化和旅游局主办,北京市海淀区文化馆承办,海淀区上庄镇文化活动中心支持的品鉴民俗 巧手绘梦——2024年海淀区重阳节非遗主题文化活动于10月11日在上庄镇市民活动中心顺利举办。海淀非遗传承人以非遗为媒,与地区群众度过了一个温馨、热闹、…

第四次论文问题知识点及问题

1、NP-hard问题 NP-hard&#xff0c;指所有NP问题都能在多项式时间复杂度内归约到的问题。 2、启发式算法 ‌‌启发式算法&#xff08;heuristic algorithm&#xff09;是相对于最优化算法提出的。它是一种基于直观或经验构造的算法&#xff0c;旨在以可接受的花费给出待解决…

Android 如何实现远程网页控制售卖机出商品:RabbitMQ的对接,如何使用?如何断网重连?连接不上后台的MQ有哪些方面的原因

目录 一、如何实现远程网页控制售卖机出商品&#xff1f; 比如&#xff0c;我们想实现&#xff0c;通过一个网页去控制自动售卖机&#xff08;自动售卖机装有Android系统&#xff0c;装有App&#xff09;出商品&#xff0c;也就是我们熟知的远程控制&#xff0c;不用你人到现场…