[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,可以存放的数量是和你储存的大小有关系的,所以要注意这一点,)

无符号值可以避免误存负数,扩大了表示范围

如何理解清空表.删除表需要谨慎:

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

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

相关文章

GIS地形图配准实验

地形图配准:指将地形图或其他地理数据(如航拍图像、卫星图像等)与地理坐标系统对齐的过程,使得这些图像或图形能够在地理空间中正确地定位。配准是将非地理坐标的地图或图像转换为地理坐标的一个重要步骤 分析原地形图 地图左上…

Python酷库之旅-第三方库Pandas(198)

目录 一、用法精讲 921、pandas.Index.get_level_values方法 921-1、语法 921-2、参数 921-3、功能 921-4、返回值 921-5、说明 921-6、用法 921-6-1、数据准备 921-6-2、代码示例 921-6-3、结果输出 922、pandas.Index.get_loc方法 922-1、语法 922-2、参数 92…

机器学习(四)——神经网络(神经元、感知机、BP神经网络、梯度下降、多层神经网络、Python源码)

目录 关于1 神经元模型2 感知机与多层网络3 误差逆传播算法4 全局最小与局部极小5 其他常见神经网络6 深度学习X 案例代码X.1 源码X.2 数据集(加州房价数据)X.3 模型效果 关于 本文是基于西瓜书(第五章)的学习记录。内容包括神经…

Diving into the STM32 HAL-----Clock Tree笔记

几乎每个数字电路都需要一种方法来同步其内部电路或与其他电路同步。时钟是一种产生周期性信号的设备,它是数字电子学中最普遍的心跳源形式。 然而,相同的时钟信号不能用于馈送现代微控制器(如 STM32 微控制器)提供的所有组件和外…

每日科技资讯:2024年11月06日【龙】农历十月初六 ---文末送书

目录 1.OpenAI因算力瓶颈暂缓GPT-5发布 合作芯片开发寻求突破2.现在,𝕏 允许被你屏蔽的人继续查看你的帖子3.硬刚Intel与AMD!NVIDIA明年推出PC芯片4.苹果停止签署 iOS 18.0.1,不再允许从 18.1 降级5.Nvidia 加入道琼斯指数成份股 …

高效率的快捷回复软件 —— 客服宝聊天助手

在电商行业日益繁荣的今天,高效的客户沟通对于企业的成功至关重要。无论是电商平台、居家客服还是其他各类客服行业,都需要一款强大的工具来提升工作效率。今天,我们就来介绍一款高效率的快捷回复软件 —— 客服宝聊天助手。 一、跨平台跨店铺…

RabbitMQ如何保证发送的消息可靠(RabbitMQ的Confirm模式和2.Return模式)

RabbitMQ如何保证发送的消息可靠(RabbitMQ的Confirm模式和2.Return模式) 1、RabbitMQ消息Confirm模式(保证从生产者到交换机的消息可靠)1.1、Confirm模式简介1.2、具体代码实现1.2.1、application.yml 开启确认模式1.2.2、生产者方…

讲讲分布式事务?

大家好,我是锋哥。今天分享关于【讲讲分布式事务?】面试题。希望对大家有帮助; 讲讲分布式事务? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在现代的分布式系统中,数据往往分布在不同的服务器、数据中…

【职场日常】软件测试平台如何搭建?

作为一名软件测试工程师,搭建测试环境是我们日常工作的一部分。搭建一个适合各类测试的测试环境至关重要,可以在后期的测试过程中为我们提供便利。接下来我将向大家介绍如何搭建测试环境,以及需要注意的事项。 首先,我们需要确保…

Spring Boot关闭时,如何确保内存里面的mq消息被消费完?

1.背景 之前写一篇文章Spring Boot集成disruptor快速入门demo,有网友留言如下图: 针对网友的留言,那么我们如何解决这个问题呢 Spring-Boot应用停机时,如何保证其内存消息都处理完成? 2.解决方法 方法其实挺简单的&…

3D一览通更新三大功能更新,进一步提升协同效率

大腾智能3D一览通新功能正式发布!本次新版本在通用功能的基础上,新增并优化了3大功能点,为用户带来更加流畅、高效的使用体验,提升设计协同效率。 功能点1:在结构树中管理测量标注对象 在新版本中,我们将…

基于DCT的数字水印算法

摘要 数字水印技术近年来得到了较大的发展,基于变换域的水印技术是目前研究的热点。数字水印是利用数字作品中普遍存在的冗余数据和随机性,把标识版权的水印信息嵌入到数字作品中,从而可以起到保护数字作品的版权或其完整性的一种技术。 一个…

JAVA——反射

目录 1.概述 2.Class类 a.实例化对象 1.利用Class类的静态方法 2. 利用类名 3.利用类的成员方法 b.常见方法 1.获取所有公共构造方法对象的数组 2.获取所有构造方法对象数组 3.获取单个公共构造方法对象 4.获取单个构造方法对象 5.获取所有公共成员变量对象的数组 …

CMDB模型管理:构筑高效IT运维的坚实基础

在CMDB中,模型是一个非常重要的概念,在前面的文章中我们提到了模型对于保障CMDB数据准确性的重要性。那么,要如何理解CMDB的模型呢?模型在CMDB中又是什么地位?能起到什么作用呢? 一、模型概述 在CMDB中&…

一个月调研分析标的“英伟达”

放在现在依然成立 一、移动网兴起至今的最佳股票与人工智能时代的目标 9 年移动网兴起至今,若选一只股票长期持有,最佳解是 ARM(涨了 20 倍),因为无论系统层和应用层谁胜出,底层一定是芯片,而…

实现金蝶和简道云仓库数据的高效集成

实现金蝶和简道云仓库数据的高效集成 金蝶-仓库--->简道云-仓库:高效数据集成方案 在企业信息化管理中,数据的高效流转和实时监控是提升业务效率的关键。本文将分享一个实际案例,展示如何通过轻易云数据集成平台,将金蝶云星空…

Redis - Hash 哈希

一、基本认识 ⼏乎所有的主流编程语⾔都提供了哈希(hash)类型,它们的叫法可能是哈希、字典、关联数 组、映射。在Redis中,哈希类型是指值本⾝⼜是⼀个键值对结构,形如key"key",value{{ field1, v…

基于python的简单web服务器示例

安装flask flask 简介:是一个用Python编写的Web应用程序框架。 它由 Armin Ronacher 开发,他领导一个名为Pocco的国际Python爱好者团队。 Flask基于Werkzeug WSGI工具包和Jinja2模板引擎。两者都是Pocco项目 新建项目 创建好的效果 pip list 检索 安装…

职场日常:多年的测试工程师如何继续在测试行业中砥砺前行

大家好,今天我们一起聊聊测试工程师在职业、在团队、在家庭中如何更好的做好角色。 作为一个工作了多年测试工作的大牛来说,从今天开始或许未来会因为各个方面的原因可能不在从事软件测试了,但是会继续总结过往的经验,从事这么多…

【图神经网络】 AM-GCN代码实战(4)【pytorch】代码可运行

AM-GCN 网络系列 代码实践部分1. dataprocess.py1.1 模块导入1.2 特征文件生成1.3 KNN构图 2. configparser.py3. layers.py4. models.py5. utils.py6. main.py总结 代码实践部分 本专栏致力于深入探讨图神经网络模型相关的学术论文,并通过具体的编程实验来深化理解…