【MySQL】MySQL对数据的基本操作

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 前两篇博客总结完了MySQL对数据的查询,包括基本查询和高级查询,我们终于结束了查询这一部分了,不过有一说一查询这一部分还是非常非常重要的,有了这部分的基础我们才能继续学习MySQL后面的知识,如果你还没有学习这部分那我建议你先去看一下,再回来继续学习。

前言


前两篇博客总结完了MySQL对数据的查询,包括基本查询和高级查询,我们终于结束了查询这一部分了,不过有一说一查询这一部分还是非常非常重要的,有了这部分的基础我们才能继续学习MySQL后面的知识,如果你还没有学习这部分那我建议你先去看一下,再回来继续学习。


接下来我们正式来学习这部分内容


INSERT语句

在创建数据库完成之后,我们需往数据库中出入数据,在MySQL中可以使用INSERT语句向数据库已有数据库表插入一行或者多行数据。


INSERT语句有两种语法形式,分别是INSERT..VALUES....语句和INSERT...SET...语句,接下来我们就分别来总结一下它们的异同之处。


INSERT LALUES语法格式:


INSERT INTO  表名 (列名1,列名2,列名3...)VALUES(数值1,数值2,数值3...);


如需要向表中所有的列去插入数据,可直接忽略列名,直接采用:


INSERT 表名 VALUES(数值1,数值2,数值3...);


INSERT SET语法格式:


INSERT INTO 表名 SET 列名1 = 值1,列名2=值2,列名3=值3...;


这种SQL语句是MySQL里面的方言,也就是只能在MySQL中使用,比较适合单行插入数据


总结一下INSERT语句的特点:


使用 INSERT…VALUES 语句可以向表中插入一行数据,也可以插入多行数据;

使用 INSERT…SET语句可以指定插入行中每列的值,也可以指定部分列的值;

INSERT…SELECT 语句向表中插入其他表的数据;

采用 INSERT…SET 语句可以向表中插入部分列的值,这种方式更为灵活;

INSERT…VALUES 语句可以一次插入多条数据;

用单条INSERT语句处理多个插入要比使用多条INSERT语句更快;

当使用单条INSERT语句插入插入多行时,只需要将每行数据用园括号括起来即可;

示例:

create  table student(
   id    INT PRIMARY KEY NOT NULL,
   name  VARCHAR(4) NOT NULL,
   age   INT NOT NULL,
   sex   CHAR(1) NOT NULL,
   class VARCHAR(10) ,
   birthplace  varchar(10),
   id_teach INT UNSIGNED NOT NULL
);
INSERT student VALUE
('88201','张三',18,'男','软件211','浙江杭州',689),
('88202','李四',19,'男','软件212','河南郑州',898),
('88203','小红',18,'女','计算机211','北京',758),
('88204','王五',16,'男','软件214','浙江杭州',589);


输出:

image.png

image.png


UPDATE语句

UPDATE的功能是更新表中的数据。这的语法和INSERT的第二种用法相似。必须提供表名以及SET表达式,在后面可以加WHERE语句以限制更新的记录范围。


语法格式:


UPDATE 表名 SET 字段1=值1,字段2=值2... WHERE 条件;


示例:张三变性成为了女性


UPDATE student SET sex="女" WHERE name="张三";


输出:

image.png


如果不加上WHERE子句来限制条件UPDATE将更新表中的所有记录的值,如:


UPDATE student SET sex="女" ;


输出:

image.png

也就是说这个SQL 语句根据WHERE语句来选择是哪几行数据需要更新,然后根据SET语句来选择有哪几个字段需要修改。


DELETE语句

MySQL 中,可以使用 DELETE 语句来删除表的一行或者多行数据。


语法格式:

DELETE FROM 表名 WHERE 条件


示例:张三被退学了

DELETE FROM student WHERE name="张三";


输出:


image.png

注意:在不使用WHERE子句条件时,将会删除所有数据。如下:

DELETE FROM student ;


输出:


image.png


这里要注意删除的是表中的数据而不是表,与之前的DROP语句是不一样的,这里的表还是存在的,只不过是空表而已。


结语

用于操作数据库的SQL一般分为两种,一种是查询语句,也就是我们所说的SELECT语句,另外一种就是更新语句,也叫做数据操作语句,就是我们今天学习的INSERT、UPDATE和DELETE语句。


所以到目前为止,SQL语言我们已经差不多都学完了,剩下来的就是多多的去练习掌握了,坚持与努力!


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
关系型数据库 MySQL Java
【MySQL+java+jpa】MySQL数据返回项目的感悟
【MySQL+java+jpa】MySQL数据返回项目的感悟
45 1
|
2月前
|
安全 关系型数据库 MySQL
如何将数据从MySQL同步到其他系统
【10月更文挑战第17天】如何将数据从MySQL同步到其他系统
218 0
|
2月前
|
SQL 前端开发 关系型数据库
全表数据核对 ,行数据核对,列数据核对,Mysql 8.0 实例(sample database classicmodels _No.3 )
全表数据核对 ,行数据核对,列数据核对,Mysql 8.0 实例(sample database classicmodels _No.3 )
53 0
全表数据核对 ,行数据核对,列数据核对,Mysql 8.0 实例(sample database classicmodels _No.3 )
|
2月前
|
关系型数据库 MySQL 数据库
mysql 里创建表并插入数据
【10月更文挑战第5天】
137 1
|
2月前
|
分布式计算 关系型数据库 MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
52 3
|
28天前
|
存储 Oracle 关系型数据库
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
本文介绍了MySQL InnoDB存储引擎中的数据文件和重做日志文件。数据文件包括`.ibd`和`ibdata`文件,用于存放InnoDB数据和索引。重做日志文件(redo log)确保数据的可靠性和事务的持久性,其大小和路径可由相关参数配置。文章还提供了视频讲解和示例代码。
132 11
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
|
10天前
|
SQL 关系型数据库 MySQL
mysql分页读取数据重复问题
在服务端开发中,与MySQL数据库进行数据交互时,常因数据量大、网络延迟等因素需分页读取数据。文章介绍了使用`limit`和`offset`参数实现分页的方法,并针对分页过程中可能出现的数据重复问题进行了详细分析,提出了利用时间戳或确保排序规则绝对性等解决方案。
|
15天前
|
关系型数据库 MySQL 数据库
GBase 数据库如何像MYSQL一样存放多行数据
GBase 数据库如何像MYSQL一样存放多行数据
|
28天前
|
缓存 NoSQL 关系型数据库
Redis和Mysql如何保证数据⼀致?
在项目中,为了解决Redis与Mysql的数据一致性问题,我们采用了多种策略:对于低一致性要求的数据,不做特别处理;时效性数据通过设置缓存过期时间来减少不一致风险;高一致性但时效性要求不高的数据,利用MQ异步同步确保最终一致性;而对一致性和时效性都有高要求的数据,则采用分布式事务(如Seata TCC模式)来保障。
58 14
|
1月前
|
SQL 前端开发 关系型数据库
SpringBoot使用mysql查询昨天、今天、过去一周、过去半年、过去一年数据
SpringBoot使用mysql查询昨天、今天、过去一周、过去半年、过去一年数据
54 9