当前位置: 首页 > news >正文

[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 以其卓越的缓存命中率和内存管理能力而广受欢迎&#xff…...

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业务价值流中的需求设计,从调研、整理、原…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...

C++:std::is_convertible

C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...

【JavaEE】-- HTTP

1. HTTP是什么&#xff1f; HTTP&#xff08;全称为"超文本传输协议"&#xff09;是一种应用非常广泛的应用层协议&#xff0c;HTTP是基于TCP协议的一种应用层协议。 应用层协议&#xff1a;是计算机网络协议栈中最高层的协议&#xff0c;它定义了运行在不同主机上…...

【项目实战】通过多模态+LangGraph实现PPT生成助手

PPT自动生成系统 基于LangGraph的PPT自动生成系统&#xff0c;可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析&#xff1a;自动解析Markdown文档结构PPT模板分析&#xff1a;分析PPT模板的布局和风格智能布局决策&#xff1a;匹配内容与合适的PPT布局自动…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中&#xff0c;新增了一个本地验证码接口 /code&#xff0c;使用函数式路由&#xff08;RouterFunction&#xff09;和 Hutool 的 Circle…...

论文笔记——相干体技术在裂缝预测中的应用研究

目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术&#xff1a;基于互相关的相干体技术&#xff08;Correlation&#xff09;第二代相干体技术&#xff1a;基于相似的相干体技术&#xff08;Semblance&#xff09;基于多道相似的相干体…...