[mysql]mysql的DML数据操作语言增删改,以及新特性计算列,阿里巴巴开发手册mysql相关
1DML数据操作语言,增加删除改数据
插入数据INSERT
插入添加数据,两种方法
方式1:VALUES添加数据
#准备工作
USE atguigudb;
CREATE TABLE IF NOT EXISTS emp1(
id INT,
`name` VARCHAR(15),
hire_data DATE,
salary DOUBLE(10,2));
SELECT * FROM emp1

INSERT INTO emp1
VALUES (1,'tom','2000-12-21',3400)

#如果没有声明字段,就必须按照表的字段的先后顺序添加,不能乱来
这个方法好不好呢,当然是不好的,我们必须清楚知道表的字段内容.
所以我们可以再表名后面用括号声明字段
INSERT INTO emp1(id,`name`,hire_data,salary)#这里我们就可以添加一个括号声明字段
VALUES (1,'tom','2000-12-21',3400)

说明:没有进行赋值的字段的值为null,如果有约束可能就会出错
如何插入多条记录:
INSERT INTO emp1(id,NAME ,salary)
VALUES (2,'tom2',34000),(3,'toem2',34000)#我们可以把我们要插入的数据用,隔开,这样效率比用一对INSERT效率会高不少
#方式2将查询结果插入到表中
INSERT INTO emp1(id,NAME ,salary)
SELECT employee_id,last_name,salary FROM employees WHERE department_id in (20,30)#字段一定要和表一一对应
![]()
我们发现类型和我们的表的类型是不太一致,如果把小的范围放到大的范围是可以的,但是如果大的范围插入小的范围是有可能报错的.如果要用这个方法去添加这个范围和长度一定要先看一下,添加的表的数据范围一定要小于我们表的范围.是否出错,主要是看是否出现太长的值
还有就是VALUES关键词是可以写成VALUE的不影响,但是VALUES是标准写法
更新数据(修改数据)UPDATE
UPDATE….SET …..WHERE
我们希望把id等于5的hiredate改成当前的日期.
我们一般都会有WHERE的条件,因为如果不进行条件限制,那么字段全部的值都会被调整为当前的日期,或其他值
UPDATE emp1 SET hire_date=curdate().WHERE id=1

是可以实现批量修改数据的.我们要改哪些数据呢,看WHERE就行
#同时修改一条数据的多个字段
UPDATE emp1 SET hire_data=CURDATE(),salary=5000 WHERE id=3

#同时修改一条数据的多个字段
修改名字包含’a’的工作+100
UPDATE emp1 SET salary=salary+100 WHERE id like ‘’

修改数据时可能会存在不成功的情况的,(可能由于约束的影响造成的)
比如我们约束要求部门必须存在部门表中,如果部门没有100那么就会失败.
#删除数据只能一条一条的删DELECT FROM…… WHERE
DELETE FROM emp1 WHERE ID=1

删除数据时也可能会存在不成功的情况的,(也可能由于约束的影响造成的)
比如我们要删除50号部门,但是我们50号部门还有员工,我们约束员工是必须在部门表里有50号部门.那么除非部门里的员工都拆了,才能瞒住我们的外键约束.
小结:DML操作默认情况喜爱执行后会自动提交数据,如果希望执行之后不自动提交数据,需要使用SET autocommit=FALSE
使用频率上DML是非常频繁的,比如我们删除购物车的数据,那么久要DELECTE添加就要INSERT,查询的就更多了
mysql8.0的新特性,计算列
计算列就是根据其他列计算得来,那么就叫计算列比如a列的值是1b列的值是2,c列为a+b,c的值就是a+b..比如我们sql查询的时候要对10万条记录的6个字段进行计算或者连接,每条记录都要计算之后才能得到,因为要临时运算,所以结果就会比较复杂.那么我们如果有计算列就可以直接查询列.
我们可以造表的时候就添加我们的计算列.
CREATE TABLE test1(
A int,
B int,
C int GENERATED ALWAYS AS (a+b) VIRTUAL#字段c就是我们的计算列
)#这里可以不添加GENERATED ALWAYS,C int (a+b) VIRTUAL,也可行,virtual代表实时计算,不物理存储在数据库中
#我们再插入一个数据
INSERT INTO test1(a,b)
VALUES(1,2)

我们可以发现c自动就有值了
我们来修改一下A和B的值
UPDATE test1 SET a=5,b=6 WHERE A=1
SELECT * FROM test1

这是一个非常好的特性,大家就可以在工作环境中使用了.
阿里巴巴开发手册内容拓展:
mysql字段命名规范
1(强制)表名和字段名必须用小写字母和数字,禁止出现数字开头,禁止两个下划线中间只出现数字,数据库中字段名的修改代价很大,不能进行预发布,所以字段名需要慎重考虑: ![]()
2(强制)禁止使用保留字(关键词,函数名)比如desc,range,match,delayed等
3(强制)表必须有3个字段:id;gmt_create,gmt_modified,第一个是主键id,类型为BIGINT UNSIGNED,单表时自增,步长为1. gmt_create,gmt_modified,都是DATETIME类型,前者是创建时间,主动添加,后者更新时被动添加
4(推荐)表的命名最好是遵循”业务名称_表的应用”,
ALIPAY_test.for
5(推荐)库名与应用名尽量一致..
(参考)合适的字符储存长度,不但节省数据库表空间,(这个好理解,短的空间肯定少,储存空间也小),节省索引储存,更重要的是提升检索速度.(数据页内存只能加载16k,可以存放的数量是和你储存的大小有关系的,所以要注意这一点,)
无符号值可以避免误存负数,扩大了表示范围

如何理解清空表.删除表需要谨慎:
相关文章:
[mysql]mysql的DML数据操作语言增删改,以及新特性计算列,阿里巴巴开发手册mysql相关
1DML数据操作语言,增加删除改数据 插入数据INSERT 插入添加数据,两种方法 方式1:VALUES添加数据 #准备工作 USE atguigudb; CREATE TABLE IF NOT EXISTS emp1( id INT, name VARCHAR(15), hire_data DATE, salary DOUBLE(10,2)); SELECT * FROM emp1 INSERT INTO em…...
Github 2024-11-07 Go开源项目日报 Top10
根据Github Trendings的统计,今日(2024-11-07统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Go项目10HTML项目1Kubernetes: 容器化应用程序管理系统 创建周期:3618 天开发语言:Go协议类型:Apache License 2.0Star数量:106913 个Fork数…...
【黑盒测试】等价类划分法及实例
本文主要介绍黑盒测试之等价类划分法,如什么是等价类划分法,以及如何划分,设计等价类表。以及关于三角形案例的等价类划分法。 文章目录 一、什么是等价类划分法 二、划分等价类和列出等价类表 三、确定等价类的原则 四、建立等价类表 …...
LeetCode17. 电话号码的字母组合(2024秋季每日一题 59)
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例 1: 输入:digits “23” 输出:[“…...
SQLite数据库是什么?DB Browser for SQLite是什么?
SQLite是一个轻量级的嵌入式数据库,它是一个遵守ACID原则的关系型数据库管理系统。SQLite的主要特点是占用资源少、无需配置、支持多种操作系统和编程语言,并且具有高性能和跨平台特性。 SQLite的基本概念和特性 轻量级:SQLite的数据…...
核心概念解析Caffeine 缓存模型与策略
1. 简介 什么是 Caffeine Caffeine 是一个高性能的 Java 缓存库,专为提高内存缓存的效率和灵活性而设计。它由 Google 的 Guava Cache 项目启发,并提供了更高的性能和更丰富的功能集。Caffeine 以其卓越的缓存命中率和内存管理能力而广受欢迎ÿ…...
ubuntu 22.04 防火墙
Ubuntu(22.04)云主机SSH安全加固 https://blog.csdn.net/qq_44846097/article/details/141098092 ubuntu22.04防火墙策略 https://blog.csdn.net/sunyuhua_keyboard/article/details/139493464 Ubuntu 22.04 防火墙设置和开放端口命令 https://blog.c…...
【数据结构-合法括号字符串】力扣678. 有效的括号字符串
给你一个只包含三种字符的字符串,支持的字符类型分别是 ‘(’、‘)’ 和 ‘*’。请你检验这个字符串是否为有效字符串,如果是 有效 字符串返回 true 。 有效 字符串符合如下规则: 任何左括号 ‘(’ 必须有相应的右括号 ‘)’。 任何右括号 …...
ThreadX在STM32上的移植:F1,F4通用启动文件tx_initialize_low_level.s
在嵌入式系统开发中,实时操作系统(RTOS)的选择对于系统性能和稳定性至关重要。ThreadX是一种广泛使用的RTOS,它以其小巧、快速和可靠而闻名。在本文中,我们将探讨如何将ThreadX移植到STM32微控制器上,特别是…...
【算法】递归+深搜:814.二叉树剪枝
目录 1、题目链接 2、题目 3、解法(后序遍历) 4、代码 1、题目链接 814.二叉树剪枝(LeetCode) 2、题目 3、解法(后序遍历) 我们这次不使用宏观的观察法,而是从具体实现开始。 题目要求我们,去掉不含1的子树。 对于子树这个…...
spring Framework 特定条件下目录遍历漏洞(CVE-2024-38816)修复
spring Framework 特定条件下目录遍历漏洞(CVE-2024-38816)修复 漏洞描述 CVE-2024-38816: Path traversal vulnerability in functional web frameworks 通过功能性 Web 框架 WebMvc.fn 或 WebFlux.fn 提供静态资源的应用程序容易受到路径遍历攻击。攻…...
ESP32-C3 入门笔记03:VScode + flash_download_tool 下载烧录程序(ESP-IDF + PlatformIO)
ESP32-C3 支持多种烧录方式,主要包括以下几种: VS Code 串口烧录:使用 VS Code 配合 PlatformIO 或 ESP-IDF 插件进行串口烧录。串口连接通常使用 UART 接口,通过 USB 转串口芯片与电脑连接。步骤大致如下: 配置 VS Co…...
Node.js——fs模块-文件重命名和移动
1、在Node.js中,我们可以使用 rename 或 renameSync 来移动或重命名文件或文件夹 2、语法: fs.rename(oldPath,newPath,callback) fs.renameSync(oldPath,newPath) 参数说明: oldPath 文件当前的路径 newPath 文件新的路径 callback 操…...
vue2.0版本引入Element-ui问题解决
作者:fyupeng 技术专栏:☞ https://github.com/fyupeng 项目地址:☞ https://github.com/fyupeng/distributed-blog-system-api 留给读者 使用版本: vue:2.6.14 element-ui:2.15.14 一、问题及解决 1、安装后组件没有生效&#x…...
qt QTableView详解
1、概述 QTableView 是 Qt 框架中的一个高级视图类,用于以表格形式展示二维数据。它基于 QAbstractItemView,并与模型(通常是 QAbstractTableModel 或 QStandardItemModel)结合使用,以实现数据的展示和交互。QTableVi…...
将Notepad++添加到右键菜单【一招实现】
一键添加注册表 复制以下代码保存为 Notepad.reg,将红框内路径修改为自己电脑的“Notepad.exe路径”后,再双击运行即可。 Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\*\shell\NotePad] "Notepad" "Icon""D:\\N…...
Nature Methods | 基于流形约束的RNA速度推断精准解析细胞周期动态调节规律
生信碱移 VeloCycle算法 VeloCycle:基于流形约束的RNA速度推断在细胞周期动态中的精准解析 今天给各位老铁们分享一篇于2024年10月31号发表在 Nature Methods [IF: 36.1] 的文章:"Statistical inference with a manifold-constrained RNA velocity…...
在离线环境中使用sealos工具快速部署一套高可用的k8s服务集群
文章目录 项目基础信息工具版本测试环境 下载资源文件下载sealos二进制命令文件下载k8s安装镜像和组件资源下载docker离线安装包下载Docker Registry容器镜像 NFS共享配置coredns服务的DNS解析配置安装配置sealos、k8s服务安装sealos工具导入k8s及相关组件镜像安装 K8s 集群部署…...
ReactPress系列—Next.js 的动态路由使用介绍
ReactPress Github项目地址:https://github.com/fecommunity/reactpress 欢迎提出宝贵的建议,感谢Star。 Next.js 的动态路由使用介绍 Next.js 是一个流行的 React 框架,支持服务端渲染、静态站点生成和动态路由等功能,极大地简化…...
DevOps业务价值流:需求设计最佳实践
DevOps实践正推动着产品快速迭代与高质量交付,但需求设计作为产品开发的关键起点,往往被忽视。它不仅是收集与分析需求的过程,更是将需求转化为可实施产品特性的核心。本文深入探讨DevOps业务价值流中的需求设计,从调研、整理、原…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...
Nginx server_name 配置说明
Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...
DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...
鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南
1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...
零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...
windows系统MySQL安装文档
概览:本文讨论了MySQL的安装、使用过程中涉及的解压、配置、初始化、注册服务、启动、修改密码、登录、退出以及卸载等相关内容,为学习者提供全面的操作指导。关键要点包括: 解压 :下载完成后解压压缩包,得到MySQL 8.…...
安卓基础(Java 和 Gradle 版本)
1. 设置项目的 JDK 版本 方法1:通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分,设置 Gradle JDK 方法2:通过 Settings File → Settings... (或 CtrlAltS)…...
