Mysql——对数据基本操作(增删查改)——操纵语言(DML)

ops/2024/9/20 7:20:02/ 标签: mysql, 数据库

之前的创建数据库和创建表,类型、约束都是用的DDL【data definition language】 数据定义语言,用来维护存储数据的结构
代表指令: create, drop, alter

那么现在我们来学习数据操纵语言
DML【data manipulation language】 数据操纵语言,用来对数据进行操作
代表指令: insert,delete,update
DML中又单独分了一个DQL,数据查询语言,代表指令: select

insert 插入

在这里插入图片描述

单行/多行/全列/指定列

1、单行全列插入:
在这里插入图片描述
2、单行指定列插入
在这里插入图片描述
3、多行全列插入:
在这里插入图片描述
5、多行指定列插入:
在这里插入图片描述
插入时更新:当插入的数据的主键或者唯一键和表中已有的发生冲突,那么表中的哪行主键或者唯一键之外的数据就更新为新插入的数据
on duplicate key update
在这里插入图片描述
替换:主键或唯一键发生冲突,直接删除后替换 replace
在这里插入图片描述

查询语句

select
全列查询:
在这里插入图片描述
指定列查询:
在这里插入图片描述
查询字段+整数
在这里插入图片描述
查询部分字段的总和+as重命名:总分
在这里插入图片描述
distinct 查询列去重:
在这里插入图片描述

结果去重:显示取中,只是查询显示出来的内容去重,表中的数据并没有真的被删除
distinct
在这里插入图片描述

条件查询

select … from table where 条件
在这里插入图片描述
like 模糊匹配
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

排序:
ASC升序(默认)
DESC降序

select … from table order by … ASC/DESC
在这里插入图片描述
在这里插入图片描述
筛选、查询、排序
在这里插入图片描述

分页:

有的表格太多数据,所以我们查询显示的时候可以分页来显示
limit 2 其实值是0,这里的意思就是显示两页
在这里插入图片描述
limit n1 n2 从其实位置n1页后,开始显示n2页
在这里插入图片描述

update 对查询的结果进行更新

update tablename set 要改变的字段 查询出的字段…
一定是先查询在更新
在这里插入图片描述
体现查询后再更新:
在这里插入图片描述

delete

查询后删除
在这里插入图片描述
删除整张表的数据后,如果表中有字段有自增属性的话,他的初始值不会随着表的删除而值0,而是会延续上一次的。——delete SQL语句的事务机制,
在这里插入图片描述
truncate 截断表,

  1. 只能对整表操作,不能像 DELETE 一样针对部分数据操作;
  2. 实际上 MySQL 不对数据操作,所以比 DELETE 更快,但是TRUNCATE在删除数据的时候,并不经过真正的事
    物,所以无法回滚
  3. 会重置 AUTO_INCREMENT 项

插入查询结果,把查询结果作为一张新表

样例:
把表中的数据去重:
之前的 distinct 只是对显示去重,其实表中的数据并没有去重,

所以我要先 创建一个与原表相同结构的表
在这里插入图片描述
把原表查询后去重的结果插入到新表中
在这里插入图片描述
然后直接把新表的名字改原表的名字,原表的名字改为其他的——直接重命名,就是把文件名和inode的对应改一下是原子的
在这里插入图片描述

聚合函数,把查询后的结果放入函数:

count() 查询个数
在这里插入图片描述
sum() 求总和
在这里插入图片描述
在这里插入图片描述

group by 分组

在这里插入图片描述
显示每个部门的平均工资和最高工资:
在这里插入图片描述
显示平均工资低于2000的部门和它的平均工资 'SMITH’这名运功不参与统计
在这里插入图片描述

where VS having
都是用于筛选 不同的是having可以用于对分组聚合之后的表进行筛选

分组——就相当于把一个表分为多个表,聚合后又形成一个表,不要认为只有磁盘上存储的表才是表,我们用SQL语句筛选出来的表也是表,之后的什么多个表,只要我们能够把他聚合成为一个表现实出来那么他也是表——MySQL一切皆表


http://www.ppmy.cn/ops/93717.html

相关文章

使用Selenium爬取网络页面

在现代网络数据分析和自动化测试中,Selenium 是一个强大而流行的工具。它不仅可以帮助开发者自动化浏览器操作,还能用于爬取网络页面。本文将介绍如何使用 Selenium 爬取网络页面,包括基本设置、常用操作及一些实用的技巧。 一、什么是 Selen…

腾讯cdg提前批一面0726

介绍项目 黑马商城 为什么使用rabbitmq 用于异步更新订单 扣减余额后异步更新订单失败怎么办 分布式事务回滚 什么是接口幂等性,怎么实现 接口幂等性是指同一个接口在短时间点击多次都之后返回只执行一次的结果。 Token机制: 生成Token:在客户…

点赞功能开发

文章目录 1.点赞收藏功能设计1.示意图2.描述1.使用redis记录的数据2.数据库的设计3.功能设计1.新增点赞2.取消点赞3.查询当前题目被点赞的数量4.查询当前题目被当前用户是否点过赞5.我的点赞 2.代码生成器的使用1.找到代码生成器在磁盘的位置,直接复制到项目下2.导入…

微信小程序中实现自动滚动

使用scroll-view组件的scroll-into-view属性&#xff1a; <scroll-view class"container" scroll-y"{{true}}" scroll-into-view"recordBottomScroll"><view class"text_style" style"color: #252526;">{{te…

16 交换机命令行配置

交换机命令行配置 一、交换机命令行基本配置 &#xff08;一&#xff09;配置主机名 Switch>enable Switch#configure terminal Switch(config)#hostname S1&#xff08;二&#xff09;查看配置信息 Switch#show running-config Building configuration...Current confi…

SpringBoot配置

目录 yaml基本含义 yaml基本语法 yaml数据格式 实操 yaml:参数引用 小结 yaml基本含义 通过对比不同配置文件写法&#xff0c;就可以发现yaml配置文件&#xff0c;更加注重数据本身 原因 1 比properties配置文件&#xff0c;更加注重层级关系 2 和xml文件比起来&#xff…

【Unity-UGUI】UI重建

UGUI UI重建二三事(一) UGUI UI重建二三事(二) [UGUI源码二]Unity UI重建(Rebuild)源码分析 这一部分主要是通过以上几篇文章学习的&#xff0c;总结一下&#xff1a; UI重建主要分类两类&#xff0c;一类是布局重建(Layout Rebuild)&#xff0c;另一类是图形重建(Graphic Reb…

jar包扫描不到,idea如何通过Project Structure设置

目录 一、进入Project Structure二、添加你的项目进来三、手动添加依赖 很多时候jar包文件已经存在&#xff0c;但是无法使用&#xff0c;需要通过Project Structure设置 一、进入Project Structure 选择Modules->点击 二、添加你的项目进来 一直next&#xff0c;最后点…

git推送错误:Failed to connect to github.com port 443

今天在push代码到github的时候遇到了错误&#xff1a;fatal: unable to access https://github.com/ShangyiAlone/FacemaskDetection.git/: Failure when receiving data from the peer 网上搜了下教程&#xff0c;是开启梯子的时候代理服务器的问题&#xff0c;开启梯子的时候…

【Python SHA256 摘要算法】

SHA256 是一种广泛使用的密码散列函数&#xff0c;用于生成数据的唯一指纹&#xff0c;即散列值。它属于SHA-2家族&#xff0c;该家族还包括 SHA-384 和 SHA-512 算法。SHA256 算法在许多领域都有应用&#xff0c;例如&#xff1a; 数据完整性验证&#xff1a;用于验证数据在传…

使用 Flask、Celery 和 Python 实现每月定时任务

为了创建一个使用 Flask、Celery 和 Python 实现的每月定时任务&#xff0c;我们需要按照以下步骤进行&#xff1a; 1.安装必要的库 我们需要安装 Flask、Celery 和 Redis&#xff08;作为消息代理&#xff09;。我们可以使用 pip 来安装它们&#xff1a; bash复制代码 ​ p…

C++ | Leetcode C++题解之第331题验证二叉树的前序序列化

题目&#xff1a; 题解&#xff1a; class Solution { public:bool isValidSerialization(string preorder) {int n preorder.length();int i 0;int slots 1;while (i < n) {if (slots 0) {return false;}if (preorder[i] ,) {i;} else if (preorder[i] #){slots--;i…

Ubuntu 将更改版本规则,使用最新内核发布发行版

众所周知&#xff0c;Canonical 开发的 Ubuntu 发行版每半年发布一个新版本&#xff0c;而 Linux 内核却是大约每 2-3 个月发布一个新版本。 这导致一个问题&#xff0c;Ubuntu发行版永远使用的不是最新内核。因为按照Ubuntu的开发周期&#xff0c; Ubuntu 开发阶段选择使用的…

zookeeper集群搭建Windows 7

在 Windows 7 操作系统上搭建 ZooKeeper 集群是可行的,但是由于 Windows 7 是一个较旧的操作系统,可能缺少某些现代的功能或者安全性更新。尽管如此,你仍然可以在 Windows 7 上搭建一个 ZooKeeper 单服务器三节点集群用于测试和学习目的。 下面是针对 Windows 7 系统的步骤…

C# TreeView

添加 TreeView 控件&#xff1a;定义节点&#xff1a;添加节点&#xff1a;设置节点属性&#xff1a;处理节点事件&#xff1a;自定义节点绘制&#xff1a;数据绑定&#xff1a;节点选择&#xff1a;节点展开和折叠&#xff1a;搜索和过滤&#xff1a;示例代码总结 C# 中的 Tre…

C#加载toolblock工具

VisionPro QuickBuild工具 VisionPro QuickBuild是康耐视旗下的与相机配套的软件&#xff0c;主要是设计了一些底层算法&#xff0c;免去了开发者要进行底层开发的工作量&#xff0c;而其中的ToolBlock工具相当于一个函数&#xff0c;可以在这个函数里面完成你想完成的功能&…

nvm下载node时没有下载npm问题的解决

问题&#xff1a; 使用nvm下载node版本时,没有自动下载npm 1&#xff0c;卸载指定的版本 nvm uninstall "版本号" 2&#xff0c;设置npm的镜像地址&#xff08;将npm的地址指定为淘宝镜像&#xff09; nvm npm_mirror https://npmmirror.com/mirrors/npm/ 3&…

IDEA 创建类时自动生成注释

一、背景 在开发的过程中&#xff0c;公司都会要求开发针对自己创建的类进行一些描述说明&#xff0c;为了便于程序员在创建类时快速生成注释。 二、如何配置? 打开File -> Settings -> Editor -> File and Code Templates -> Includes&#xff0c;在File Header…

Java Facade 模式(外观模式)增强您的架构

通过我们的深入解释和实际示例揭示 Java Facade 模式的简单性 - 简化您的代码并增强您的架构。 您是否厌倦了让您头疼的乱七八糟的代码&#xff1f;您是否在为难以操作和维护的复杂软件而苦恼&#xff1f;那么让我们来谈谈外观 — — 不&#xff0c;不是建筑物的正面&#xff0…

三防平板满足多样化定制为工业领域打造硬件解决方案

在当今工业领域&#xff0c;数字化、智能化的发展趋势日益显著&#xff0c;对于高效、可靠且适应各种复杂环境的硬件设备需求不断增长。三防平板作为一种具有坚固耐用、防水防尘防摔特性的工业级设备&#xff0c;正以其出色的性能和多样化的定制能力&#xff0c;为不同行业的应…