Mysql---DML

news2024/9/20 16:08:23

文章目录

  • 前言
  • 一、pandas是什么?
  • 二、使用步骤
    • 1.引入库
    • 2.读入数据
  • 总结


一.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;

总结

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

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

相关文章

Redisson分布式锁(WatchDog分析,浅浅看下源码)

带大家简单了解下Redisson的看门狗机制,这个面试中也比较常见。 目录 WatchDog(看门狗)机制开启WatchDog(看门狗)浅看下源码 WatchDog(看门狗)机制 Redisson看门狗机制是用于解决在业务运行时间…

WSL2的安装步骤

WSL2(Windows Subsystem for Linux 2)是微软公司开发的一项创新性技术,它在Windows操作系统上提供了一个完整的Linux内核,并允许用户在Windows环境中运行Linux发行版。之前想在Windows上使用Linux系统必须先安装VirtualBox或VMWar…

PTA 抢红包 25分 (JAVA)

题目描述 没有人没抢过红包吧…… 这里给出N个人之间互相发红包、抢红包的记录,请你统计一下他们抢红包的收获。 输入格式: 输出格式: 按照收入金额从高到低的递减顺序输出每个人的编号和收入金额(以元为单位,输出小…

JsonUtility.ToJson 和UnityWebRequest 踩过的坑记录

项目场景: 需求:我在做网络接口链接,使用的unity自带的 UnityWebRequest ,数据传输使用的json,json和自定义数据转化使用的也是unity自带的JsonUtility。使用过程中发现两个bug。 1.安全验证失败。 报错为&#xff1a…

day-24 跳跃游戏 III

思路:dfs方法,从开始节点开始进行深度优先遍历,利用一个数组vis[]记录该位置是否被访问过,如果遍历到一个已经访问的位置,返回false 如果遍历到某位置的值为0,返回true code: class Solution {public boo…

006_【基础篇】springboot整合Mybatis

SpringBoot 整合 Mybatis 只需要两步: 案例: 创建数据库 在 IDEA 提供的插件的内置的数据库图形化界面(其他图形化界面软件也可以,都一样) 中创建以下数据库: create database if not exists mybatis;use mybatis…

类于对象(上)--- 类的定义、访问限定符、计算类和对象的大小、this指针

在本篇中将会介绍一个很重要和很基础的Cpp知识——类和对象。对于类和对象的篇目将会有三篇,本篇是基础篇,将会介绍类的定义、类的访问限定符符和封装、计算类和对象的大小、以及类的 this 指针。目录如下: 目录 1. 关于类 1.1 类的定义 2 类…

Spring Boot项目中使用MyBatis连接达梦数据库6

在开发中,使用Spring Boot框架结合MyBatis来操作数据库是一种常见的做法。本篇博客将介绍如何在Spring Boot项目中配置MyBatis来连接达梦数据库6,并提供一个简单的示例供参考。(达梦六不仅分表还分模式.) 我拿SYSTEM表的LPS模式下面Student表做案例。 1.…

AI系统性学习—LangChain入门

文章目录 1、LangChain入门1.1 简介1.2 架构1.3 核心概念1.2 快速入门1.3 安装 2、LangChain Prompt Template2.1 什么是提示词模版2.1 创建一个提示词模版2.2 聊天消息提示词模版2.3 模版追加示例 3、语言模型3.1 LLM基础模型3.2 LangChain聊天模型3.3 自定义模型3.4 输出解析…

Word文档密码设置:Python设置、更改及移除Word文档密码

给Word文档设置打开密码是常见的Word文档加密方式。为Word文档设置打开密码后,在打开该文档时,需要输入密码才能预览及编辑,为Word文档中的信息提供了有力的安全保障。如果我们需要对大量的Word文档进行加密、解密处理,Python是一…

JavaScript parseInt() 函数

JavaScript parseInt() 函数 从官方理解: parseInt() 函数解析字符串并返回整数。 radix 参数用于指定使用哪种数字系统,例如基数为 16(十六进制)表示字符串中的数字应从十六进制数解析为十进制数。 如果 radix 参数被省略&…

基于迭代正则化的边缘投影轮廓测量修复

文章名称:Inpainting For Fringe Projection Profilometry Based on Iterative Regularization 代码地址: 💡 摘要:本文提出了一种基于迭代正则化技术的新的条纹投影轮廓术(Fringe Projection Profilometry, FPP&…

CrossOver 23 用户可以免费升级到 CrossOver24吗?CrossOver用户如何升级呢?

也就是上个月(2024年2月底)左右,CrossOver 刚刚更新了 24 版本,CrossOver更新的内容有哪些,大家可以参考这篇文章:CrossOver24.0新功能介绍,这篇文章详细介绍了CrossOver24有哪些新特点&#xf…

Harbor高可用(nginx和keepalived)

Harbor高可用(nginx和keepalived) 文章目录 Harbor高可用(nginx和keepalived)1.Harbor高可用集群部署架构1.1 主机初始化1.1.1 设置网卡名和ip地址1.1.2 设置主机名1.1.3 配置镜像源1.1.4 关闭防火墙1.1.5 禁用SELinux1.1.6 设置时…

软考90-上午题-【操作系统】-死锁

一、同类资源分配不当引起死锁 系统中有m个资源&#xff0c;被n个进程共享&#xff0c;每个进程都要求k个资源。 当m < n*k时&#xff0c;即&#xff1a;资源数<进程所要求的总数时&#xff0c;可能会引起死锁。&#xff08;但是不一定&#xff01;&#xff09; 例如&…

初识数据库|数据库的特点、分类以及作用

数据库系统&#xff08;DateBase System&#xff0c;简称DBS&#xff09;是指在计算机系统中引入数据库后的系统构成&#xff0c;由计算机硬件&#xff0c;操作系统&#xff0c;DBMS&#xff0c;DB&#xff0c;应用程序和用户以及数据库开发和管理人员等组成。 &#xff08;一…

RK3568 安装Miniconda3

下载链接:https://download.csdn.net/download/smile_5me/89012477?spm=1001.2014.3001.5503 需要RK3568运行Ubuntu,之前的文章有关于如何安装Ubuntu以及遇到的问题 1、 拷贝 Miniconda3-latest-Linux-aarch64.sh 到开发板 2、运行安装 Miniconda3-latest-Linux-aarch64.…

Maven 环境一键部署

文章目录 一、场景说明二、脚本职责三、参数说明四、操作示例五、注意事项 一、场景说明 本自动化脚本旨在为提高研发、测试、运维快速部署应用环境而编写。 脚本遵循拿来即用的原则快速完成 CentOS 系统各应用环境部署工作。 统一研发、测试、生产环境的部署模式、部署结构、…

Oracle 写丢失保护/影子表空间(Lost Write Protection with Shadow Tablespace)

写丢失是Oracle数据库与独立I/O子系统交互时一种错误场景。假如Oracle发出的写磁盘命令&#xff0c;I/O子系统也返回成功写磁盘的消息&#xff08;但数据此时可能依然在I/O系统缓存中&#xff09;&#xff0c;如果在I/O系统实际写盘之前Oracle再次读取该数据&#xff0c;则I/O系…

sparksql简介

什么是sparksql sparksql是一个用来处理结构话数据的spark模块&#xff0c;它允许开发者便捷地使用sql语句的方式来处理数据&#xff1b;它是用来处理大规模结构化数据的分布式计算引擎&#xff0c;其他分布式计算引擎比较火的还有hive&#xff0c;map-reduce方式。 sparksql…