Mysql---DML

文章目录

  • 目录

    一.DML概述

    注入数据( Insert)

     替换数据(replace)

    删除数据  (delete)

    修改数据 (update)

     查询数据 (select)

    二. 多表连接查询

     内连接

     子查询:A查询的结果是B查询的条件

    总结


一.DML概述

        DML(Data Manipulation Language)是MySQL中用于操作数据库中数据的语言。DML语句用于插入、更新和删除数据库中的记录,以及查询和修改数据库中的数据。

常用的DML语句包括:

  1. SELECT:用于从数据库中查询数据,可以根据条件过滤数据。
  2. INSERT:用于向数据库中插入新记录。
  3. UPDATE:用于更新数据库中的记录。
  4. DELETE:用于删除数据库中的记录。

注入数据( Insert)

  • 语法:
INSERT INTO 表名 [字段列表] VALUES (值列表);
  • 演示案例 1:

#单次注入一行字段数据
insert into 期末成绩
values("初中","一年级",90,"张三","英语");#单词注入多行字段数据
insert into 期末成绩 
values
("高中","一年级",90,"李四","英语"),
("大学","一年级",80,"周五","英语");

演示案例 2  :

  • 语法:
#给表中的指定的列注入数据
insert into 表名 (字段列) values (值列表);


#给表中的指定的列注入数据
insert into 期末成绩 
(种类,年级,成绩,学生,科目)
values
("高二","90","李四","数学");

 

 替换数据(replace)

语法格式1:replace into 表名 [(字段列表)] values (值列表)replace语句的功能与insert语句的功能基本相同,不同之处在于:使用replace语句向表插入新记录时,如果新记录的**主键值或者唯一性约束**的字段值与已有记录相同,则已有记录先被删除(注意:已有记录删除时也不能违背外键约束条件),然后再插入新记录。使用replace的最大好处就是可以将delete和insert合二为一(效果相当于更新),形成一个原子操作,这样就无需将delete操作与insert操作置于事务中了

删除数据  (delete)

DELETE FROM 表名 [WHERE 条件];
TRUNCATE FROM 表名 [WHERE 条件];**DROP、TRUNCATE、DELETE的区别:**delete:删除数据,保留表结构,可以回滚,如果数据量大,很慢truncate: 删除所有数据,保留表结构,不可以回滚,一次全部删除所有数据,速度相对很快drop: 删除数据和表结构,删除速度最快。
  •  演示案例 3

delete from `期末成绩` where 种类 = "大学";

修改数据 (update)

语法:

UPDATE 表名 SET
列名 = 新的值
[,列名 = 新的值,列名 = 新的值]
[WHERE 条件];

演示案例:

update 期末成绩 set 
成绩 = "60",科目 ="数学"
where  学生 = "李四";

 查询数据 (select)

语法:

SELECT 需要查询的列
FROM 表名 [,其余表]
[连接机制]
[WHERE 条件]
[GROUP BY 分组条件]
[ORDER BY 排序条件]
[LIMIT 区间条件];

演示案例:

  • where: 
#查询期末考试表中数学成绩在70到90之间的学生姓名;
select student_name from 期末考试 where math_score between 70 and 90;#查询数学成绩为90的学生姓名以及年级
select student_name,grade from 期末考试 where math_score = 90;#查询数学成绩为90的student_name并将列名重设为"学生","姓名"
select student_name as "学生" from 期末考试 where math_score = 90;#查询期末考试表中所有的年级并去重
select distinct grade from 期末考试;#查询名字中含"e"的学生信息
select  * from 期末考试 where student_name like "%e%";
like "xxx%"  以XXX开头
like "%xxx"  以XXX结尾
like "%xxx%" 包含XXX#查询数学成绩是90或88的学生信息
select  * from 期末考试 where math_score = 88 or  math_score = 90;#查询数学成绩不是88和90的学生信息
select  * from 期末考试 where math_score not in (88,90);
  • 分组: 
#以年级为10分组查询期末考试这张表中的数学平均分
select  avg(math_score) as "平均分" from 期末考试 group by grade = 10;
max  最大值  min 最小值  avg 平均值 sum 求和 #使用having对分组筛选后的条件再次筛选
以年级为10分组查询期末考试这张表中的数学平均分并过滤90分以下的
select  avg(math_score) as "平均分" from 期末考试 group by grade having  avg(math_score) >= 90 ;
  •  排序
#根据学生成绩降序查看学生信息:降序(desc) 升序(asc)
select  * from 期末考试 ORDER BY math_score desc;
  • Limit 
limit 初始行数 查询几行#根据学生成绩降序查看学生信息并显示前三行
select  * from 期末考试 ORDER BY math_score desc limit 0,3;

二. 多表连接查询

  • 演示案例:

等值连接:

#查询年级表和期末考试表中数学成绩重复的信息
SELECT * FROM 年级成绩,期末考试
where 期末考试.math_score = 年级成绩.math_score;

 内连接

语法:

SELECT 列名
FROM 表1
INNER JOIN 表2
ON 表1.列名 = 表2.列名;SELECT 列名 指定要查询的列,可以是表1的列、表2的列或者其他计算字段但不能同时属于同一张表
FROM 表1 INNER JOIN 表2 指定要进行连接的两个表,并使用 INNER JOIN 关键字表示内连接。
ON 表1.列名 = 表2.列名 指定连接条件,即连接两个表的列。这里的列名应该是两个表中相同的列名。
#查询期末考试以及年级成绩这两张表中数学成绩相同的学生并显示该学生的总成绩
select total_score from 期末成绩 inner join 年级成绩 
on 期末成绩.math_score = 期末成绩.math_score;

 子查询:A查询的结果是B查询的条件

left join:代表选择的是前面一个表的全部。
左连接是以左表为标准,只查询在左边表中存在的数据,当然需要两个表中的键值一致。语法如下:
SELECT 列名1 FROM 表1 LEFT OUTER JOIN 表2 ON 表1.外键=表2.主键 WhERE 条件语句;3. right join:代表选择的是后面一个表的全部
同理,右连接将会以右边作为基准,进行检索。语法如下:
SELECT 列名1 FROM 表1 RIGHT OUTER JOIN 表2 ON 表1.外键=表2.主键 WhERE 条件语句;

 演示案例:

#查询数学成绩是90的学生总分成绩
select total_score from 期末成绩 
where 期末成绩.math_score = (select math_score from 年级成绩 where 年级成绩.math_score = 92);注:子查询中的语句在查询表中不可重复,因为子查询仅返回B一个查询结果给A查询使用

总结

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

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

相关文章

第十四节 JDBC批量处理

批量处理允许将相关的SQL语句分组到批处理中,并通过对数据库的一次调用来提交它们,一次执行完成与数据库之间的交互。 一次向数据库发送多个SQL语句时,可以减少通信开销,从而提高性能。 不需要JDBC驱动程序来支持此功能。应该使…

5.1.4.4【AI技术新纪元:Spring AI解码】Titan Chat

Amazon Titan 基础模型 亚马逊Titan基础模型(FMs)通过完全托管的API,为客户提供了广泛的高性能图像、多模态嵌入和文本模型选择。Amazon Titan模型由AWS创建,预训练在大型数据集上,使其成为强大的通用模型,支持多种用例,同时也支持AI的负责任使用。用户可以按原样使用,…

Linux环境JMeter脚本性能测试、easyNmon生成监控报告

一、下载JMeter安装包 Jmeter是Java开发的,需要依赖JDK环境,因此我们需提前安装好JDK。 Jmeter是开源的工具,我们直接到官网下载即可。 最新版本下载地址:Apache JMeter - Download Apache JMeter 二、安装JMeter #新建jmete…

【GIT】最好用的git可视化教程网站推荐

最好用可视化学习git 网站:https://learngitbranching.js.org/?demo&localezh_CN 玩遍所有关卡&#xff0c;花半天时间便能掌握git &#x1f603; 本地仓库 基础命令介绍 git commit 提交 git branch <分支名> 创建分支 git checkout <分支名> 切换分支 git…

鸿蒙Harmony应用开发—ArkTS(@State装饰器:组件内状态)

State装饰的变量&#xff0c;或称为状态变量&#xff0c;一旦变量拥有了状态属性&#xff0c;就和自定义组件的渲染绑定起来。当状态改变时&#xff0c;UI会发生对应的渲染改变。 在状态变量相关装饰器中&#xff0c;State是最基础的&#xff0c;使变量拥有状态属性的装饰器&a…

【C++ leetcode】双指针问题

1. 611. 有效三角形的个数 题目 给定一个包含非负整数的数组 nums &#xff0c;返回其中可以组成三角形三条边的三元组个数。 题目链接 . - 力扣&#xff08;LeetCode&#xff09; 画图 和 文字 分析 判断是否是三角形要得到三边&#xff0c;由于遍历三边要套三层循环&#x…

苍穹外卖Day3碰到的元注解

1. Target Target注解用于指定自定义注解可以应用的Java元素范围。它的参数是ElementType的枚举值&#xff0c;可以指定一个或多个范围。使用Target可以限制注解只能用于特定的程序元素&#xff0c;如类、方法、字段等。 import java.lang.annotation.ElementType; import ja…

文兴业:从内蒙古小镇到全球金融巨擘的不凡旅程

文兴业的传奇人生&#xff0c;如同一部跨越时间和地域的史诗&#xff0c;描绘了一个内蒙古小镇男孩如何凭借自己的智慧、勤奋和不屈不挠的精神&#xff0c;在全球商界创造了辉煌成就的故事。这个故事不仅仅是关于个人的成功&#xff0c;更是关于如何通过教育和持续的自我提升&a…

开发调试、远程访问、内网穿透解决方案集合

开发调试、远程访问、内网穿透解决方案集合 前言Cpolar下载安装配置与使用 Ngrok购买隧道下客户端配置与使用 ZeroTier注册与安装创建虚拟网络加入虚拟网络配置授权 花生壳Centos系统Ubuntu系统使用花生壳控制台SN码登录添加映射 Loophole通过CLI方式安装登录与注销简单使用身份…

网络安全是什么? 为什么要学网络安全 ?网络安全怎么学习?

网络安全是什么&#xff1f; 网络安全是指保护计算机网络、网络设备、应用程序、数据和用户免受非法访问、攻击、破坏或泄漏的过程和技术。网络安全包括多个领域&#xff0c;例如网络防御、漏洞管理、加密技术、身份验证和访问控制等等。 网络安全非常重要&#xff0c;因为现…

【好玩的经典游戏】Docker环境下部署RPG网页小游戏

【好玩的经典游戏】Docker环境下部署RPG网页小游戏 一、react-tetris小游戏介绍1.1 react-tetris小游戏简介1.2 项目预览二、本次实践介绍2.1 本地环境规划2.2 本次实践介绍三、本地环境检查3.1 安装Docker环境3.2 检查Docker服务状态3.3 检查Docker版本3.4 检查docker compose…

省一餐,是减瘦捷径?还是牺牲健康的换取?

肥胖从来不是靠短时间的&#xff0c;每天少吃一餐就能减掉的&#xff0c;需要长期坚持。但三餐不管哪一餐&#xff0c;长期不吃&#xff0c;都不会有好结果。为了瘦&#xff0c;失去健康值不值呢&#xff1f; 长期不吃早饭后果 1、消耗率、吸收率减慢&#xff1a;身体经过一整…

解锁新功能,Dynadot现支持BITPAY平台虚拟货币

Dynadot现已支持虚拟货币付款&#xff01;借助与BitPay平台的合作&#xff0c;Dynadot为您提供了多种安全的虚拟货币选择。我们深知每位客户都有自己偏好的支付方式&#xff0c;因此我们努力扩大了支付方式范围。如果您对这一新的支付方式感兴趣&#xff0c;在结账时您可以尝试…

扩散模型零样本分类应用笔记

1 Title Your Diffusion Model is Secretly a Zero-Shot Classifier&#xff08;Alexander C. Li, Mihir Prabhudesai, Shivam Duggal, Ellis Brown, Deepak Pathak&#xff09;【ICCV 2023】 2 Conclusion This paper shows that the density estimates from large-scale tex…

阿里云4核8G服务器多少钱一年?

阿里云4核8G服务器优惠价格955元一年&#xff0c;配置为ECS通用算力型u1实例&#xff08;ecs.u1-c1m2.xlarge&#xff09;4核8G配置、1M到3M带宽可选、ESSD Entry系统盘20G到40G可选&#xff0c;CPU采用Intel(R) Xeon(R) Platinum处理器&#xff0c;阿里云活动链接 aliyunfuwuq…

SSH介绍及检测规则思路分析

一、SSH 1、定义 SSH是安全的加密协议&#xff0c;用于远程连接linux服务器。 2、ssh服务的主要功能&#xff1a; 1&#xff09;提供远程链接服务器的功能&#xff1b; 2&#xff09;对远程链接传输的数据进行加密 3、ssh与telnet的区别&#xff1a; 服务链接方式 服务数据…

DBO优化LSBoost回归预测(matlab代码)

DBO-LSBoost回归预测matlab代码 蜣螂优化算法(Dung Beetle Optimizer, DBO)是一种新型的群智能优化算法&#xff0c;在2022年底提出&#xff0c;主要是受蜣螂的的滚球、跳舞、觅食、偷窃和繁殖行为的启发。 数据为Excel股票预测数据。 数据集划分为训练集、验证集、测试集,比…

【国家计算机二级C语言】高分笔记

二叉树 参考 http://t.csdnimg.cn/ozVwT 数据库 SQL程序语言有四种类型&#xff0c;对数据库的基本操作都属于这四类&#xff0c;它们分别为&#xff1b;数据定义语言(DDL)、数据查询语言&#xff08;DQL&#xff09;、数据操纵语言&#xff08;DML&#xff09;、数据控制语言…

领夹麦配LDR6028,电力持久畅聊畅!

#无线麦克风#麦克风&#xff0c;对于大多数人来说&#xff0c;并不陌生。然而&#xff0c;领夹式麦克风&#xff0c;这个看似小巧的音频设备&#xff0c;或许在日常生活中并不常为我们所见。但在自媒体行业、新闻记者等领域&#xff0c;它却是不可或缺的好帮手。这款领夹式麦克…

树状数组优化dp,2617. 网格图中最少访问的格子数

目录 一、题目 1、题目描述 2、接口描述 3、原题链接 二、解题报告 1、思路分析 2、复杂度 3、代码详解 一、题目 1、题目描述 给你一个下标从 0 开始的 m x n 整数矩阵 grid 。你一开始的位置在 左上角 格子 (0, 0) 。 当你在格子 (i, j) 的时候&#xff0c;你可以移动…