【MySQL进阶之路 | 基础篇】DML之操作数据表

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: 【MySQL进阶之路 | 基础篇】DML之操作数据表

1. 插入数据

(1). 前言

前文我们实现了如何创建表,接下来我们将学习如何向数据表中插入数据.插入有两种方式.

(2). 方式1 :

情况1 :

  • 使用该语法一次只能向表中插入一条记录.
  • 为表中的任意字段按默认的顺序插入数据.
  • 值列表中需要为表的每一个字段指定值.并且值的顺序必须和数据表中的字段定义时的顺序相同.


情况2 :

  • 为表的指定字段插入数据,就是在INSERT TO语句中只向部分字段插入值,而其他字段的值为表定义时的默认值.
  • 在INSERT语句中随意列出列名,一旦列出,VALUES中要插入的数据必须和指定时的字段相匹配.如果类型不同,将无法完成插入.且会报错.


情况3 :

  • INSERT语句可以同时向数据表中插入多条记录.插入的时候指定多个值列表.每个值列表之间逗号分隔.
  • 一个同时插入多行记录时的INSERT语句等同于多个单行插入的INSERT语句.但单个的INSERT语句在处理过程中效率更高.因为在MySQL中,执行单个INSERT语句插入多行数据比多个INSERT语句快.所以在插入数据时,最好选择使用第三种情况.


注 :

  • VALUES也可以写成VALUE,但为了规范,还是选择前种.

(3). 方式2

  • INSERT 还可以将SELECT语句查询的结果插入到表中,此时不需要把每一条记录一个一个的输入.只需要一条INSERT语句和一条SELECT语句组成的语句可快速从一个或多个表中向一个表插入多行记录.
  • 在INSERT语句中加入子查询.
  • 不必书写VALUES.
  • 子查询中的值列表应该与INSERT子句的列名对应.

2. 更新数据

  • 使用UPDATE语句更新数据.
  • 使用WHERE指定需要更新数据的条件.并可以一次更新多条数据.
  • 如果需要回滚数据,需要保证在DML操作前,设置SET AUTOCOMMIT=FALSE.不进行自动提交操作.

例1 : 使用WHERE子句指定需要更新记录的条件.如果省略该语句,则表中所有数据将被更新.

例2 : 使用ROLLBACK回滚.

3. 删除数据

  • 使用DELECT FROM删除表的数据.
  • 指定要执行删除操作的表.
  • WHERE子句指定要删除数据的条件.如果没有WHERE子句,如前篇博客,将清空表的所有记录.

4. MySQL8新特性 : 计算列

  • 简单来说就是某一列的值是通过别的列计算得来.如a列值为1,b列值为2,x列不用手动输入,定义a+b的结果为c的值,c就是计算列.
  • 在MySQL8中,CREATE TABLE和ALTER TABLE都支持计算列.

例 :


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
8月前
|
SQL 关系型数据库 MySQL
菜鸟之路Day30一一MySQL之DML&DQL
本文介绍了MySQL中DML(数据操作语言)和DQL(数据查询语言)的核心用法。DML主要包括插入(insert)、更新(update)和删除(delete)语句,通过具体示例演示了如何对表数据进行增删改操作。DQL则聚焦于数据查询,涵盖基本查询、条件查询、聚合函数、分组查询、排序查询和分页查询等内容。文章通过丰富的SQL语句实例,帮助读者掌握如何高效查询和操作数据库中的数据,适合初学者学习和实践。
286 12
|
7月前
|
关系型数据库 MySQL
MySQL数据表添加字段(三种方式)
本文解析了数据表的基本概念及字段添加方法。在数据表中,字段是纵向列结构,记录为横向行数据。MySQL通过`ALTER TABLE`指令支持三种字段添加方式:1) 末尾追加字段,直接使用`ADD`语句;2) 首列插入字段,通过`FIRST`关键字实现;3) 指定位置插入字段,利用`AFTER`指定目标字段。文内结合`student`表实例详细演示了每种方法的操作步骤与结构验证,便于理解与实践。
|
SQL 运维 关系型数据库
MySQL 中 GRANT 操作会引起复制中断吗?
GRANT 操作并不是一个原子性操作,不管执行成功与否,都会触发一个隐式重载授权表的行为。 在生产环境中需要规范用户创建及授权的操作,不推荐使用 DML 语句去直接变更 mysql.user 表,可能会引发其他的问题,若使用了 DML 语句进行变更, 需要手工执行 flush privileges。
323 4
|
存储 SQL 关系型数据库
MySQL语句详解:从基础到进阶的全面指南
MySQL语句详解:从基础到进阶的全面指南
|
存储 SQL 关系型数据库
MySQL 给数据表增加一列,一定会锁表吗?
【8月更文挑战第8天】在数据库管理和开发中,给数据表增加一列是一个常见的操作。然而,当面试官提出“MySQL 给数据表增加一列,一定会锁表吗?”这一问题时,答案并非绝对。这主要取决于MySQL的版本、存储引擎以及具体的操作方式。
780 0
|
JavaScript 关系型数据库 MySQL
创建nodejs项目并接入mysql,完成用户相关的增删改查的详细操作
创建nodejs项目并接入mysql,完成用户相关的增删改查的详细操作
279 0
|
监控 关系型数据库 MySQL
MySQL数据表索引命名规范
MySQL数据表索引命名规范
1082 1
|
存储 SQL 关系型数据库
MySQL 数据表操作
MySQL 数据表操作
145 1
|
存储 监控 关系型数据库
MySQL造数据占用临时表空间
MySQL造数据占用临时表空间
245 0

推荐镜像

更多