【大数据系列之MySQL】(二十九):MySQL中的DML语言

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 【大数据系列之MySQL】(二十九):MySQL中的DML语言

一、插入操作

方式一

insert into 表名 (列名, ...) values(值1, ...)
# 增加一条数据
insert into employees(last_name, salary, age) values('Tom', 1800, 20)
# 同时增加多条数据
insert into employees(last_name, salary, age)
values('Tom', 1800, 20),('Mack', 2300, 30),('Adam', 3000, 18)
# 如果有字段为可空(salary可空)
insert into employees(last_name, salary, age) values('Tom', NULL, 20)
insert into employees(last_name, age) values('Tom', 20)
# 如果是全部字段都有值,可以省略字段名
insert into employees values('Tom', 1800, 20)
# 字段名的顺序可以改变
insert into employees(salary, last_name, age) values(1800, 'Tom', 20)
# 子查询
insert into employees(last_name, salary, age)
select 'Bob', 3200, 24

方式二

insert into 表名
set 列名=值, 列名=值,...
insert into employees
set last_name='Tom', salary=1800, age=20
  • 方式一支持插入多行,方式二不支持
  • 方式一支持子查询,方式二不支持

二、修改操作

1.修改单表的记录

update 表名
set 列=新值,...
where 筛选条件
# 修改beauty表中姓唐的女神的电话
update beauty
set phone=99999
where NAME like '唐%'

2.修改多表的记录

方式一:sql92语法

update 表1 别名, 表2 别名
set 列=新值,...
where 连接条件
and 筛选条件
# 修改张无忌的女朋友的手机号为114
update beauty b, boys bo
set b.phone=114
where bo.id = b.boyfriend_id 
and bo.boyName='张无忌'

方式二:sql99语法

update 表1 别名
【连接类型】 JOIN 表2 别名
on 连接条件
set 列=新值
where 筛选条件
# 修改张无忌的女朋友的手机号为114
update beauty b
JOIN boys bo
on bo.id = b.boyfriend_id
set b.phone=114
where bo.boyName='张无忌'

三、删除操作

# 清空表数据,但不会删除表结构
delete from 表名

方式一

1.单表删除

delete 
from 表名
where 筛选条件
# 删除手机号以9结尾的女神信息
delete
from beauty
where phone like '%9'

2.多表删除

sql92语法

delete 表1的别名, 表2的别名(删除哪个表写哪个表)
from 表1 别名, 表2 别名
where 连接条件
and 筛选条件
# 删除张无忌的女朋友的信息
delete b
from boys bo, beauty b
where bo.id = b.boyfriend_id 
and bo.boyName='张无忌'

sql99语法

delete 表1的别名, 表2的别名((删除哪个表写哪个表))
from 表1 别名
【连接类型】 JOIN 表2 别名
on 连接条件
where 筛选条件
# 删除张无忌的女朋友的信息
delete b
from boys bo
JOIN beauty b
on bo.id = b.boyfriend_id 
where bo.boyName='张无忌'

方式二

# 清空表
truncate table 表名
  • delete可以加where条件,truncate不能加
  • truncate删除,效率会高
  • 使用delete删除后,再增加数据从断点开始,使用truncate删除,再插入数据从1开始
  • delete有返回值(几行受影响),truncate没有返回值
  • truncate删除不可以回滚,delete删除可以回滚


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
|
分布式计算 关系型数据库 MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
53 3
|
2月前
|
消息中间件 分布式计算 关系型数据库
大数据-140 - ClickHouse 集群 表引擎详解5 - MergeTree CollapsingMergeTree 与其他数据源 HDFS MySQL
大数据-140 - ClickHouse 集群 表引擎详解5 - MergeTree CollapsingMergeTree 与其他数据源 HDFS MySQL
56 0
|
2月前
|
消息中间件 关系型数据库 MySQL
大数据-117 - Flink DataStream Sink 案例:写出到MySQL、写出到Kafka
大数据-117 - Flink DataStream Sink 案例:写出到MySQL、写出到Kafka
177 0
|
1月前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
43 4
|
1月前
|
SQL 关系型数据库 MySQL
|
4月前
|
关系型数据库 MySQL 大数据
教你使用Python玩转MySQL数据库,大数据导入不再是难题!
教你使用Python玩转MySQL数据库,大数据导入不再是难题!
|
4月前
|
存储 JSON 关系型数据库
MySQL与JSON的邂逅:开启大数据分析新纪元
MySQL与JSON的邂逅:开启大数据分析新纪元
|
4月前
|
SQL 关系型数据库 MySQL
|
6天前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
62 15
|
7天前
|
关系型数据库 MySQL 数据库
数据库数据恢复—MYSQL数据库文件损坏的数据恢复案例
mysql数据库文件ibdata1、MYI、MYD损坏。 故障表现:1、数据库无法进行查询等操作;2、使用mysqlcheck和myisamchk无法修复数据库。