首页 > 数据库 >3.5 MySQL数据的维护详解(插入数据、更新数据、删除数据)

3.5 MySQL数据的维护详解(插入数据、更新数据、删除数据)

时间:2024-09-09 11:22:58浏览次数:5  
标签:name 删除 employees MySQL 插入 3.5 表中 数据

文章目录


MySQL插入数据

3.5.1 基本的INSERT语句

插入单个值

当你只需要向表中的一列插入一个值时,可以使用以下语法:

INSERT INTO table_name (column1) VALUES (value1);
  • table_name 是你要插入数据的表名。
  • column1 是你要插入数据的列名。
  • value1 是你要插入的值。
插入多列值

当你需要向表中的多个列插入数据时,可以使用以下语法:

INSERT INTO table_name (column1, column2) VALUES (value1, value2);
  • column1column2 是你要插入数据的列名。
  • value1value2 是对应列的值。
插入多行数据

如果你需要一次性插入多行数据,可以使用以下语法:

INSERT INTO table_name (column1, column2) VALUES (value1, value2), (value3, value4);
  • 每对括号内的数据代表一行,可以连续插入多行。

2. 使用子查询向表中插入数据

插入子查询结果作为单行

当你需要从另一个表或子查询中获取数据并插入到当前表中时,可以使用以下语法:

INSERT INTO table_name (column1, column2)
SELECT columnA, columnB FROM another_table WHERE condition;
  • table_name 是你要插入数据的表名。
  • column1column2 是你要插入数据的列名。
  • another_table 是子查询中使用的表名。
  • columnAcolumnB 是子查询中选择的列名。
  • condition 是子查询中的条件,用于筛选数据。
插入子查询结果作为多行

如果你需要从子查询中获取多行数据并插入到当前表中,可以使用以下语法:

INSERT INTO table_name (column1, column2)
SELECT * FROM another_table WHERE condition;
  • * 表示选择 another_table 中的所有列。
  • 其他部分与上述相同。

注意事项

  • 确保插入的数据类型与表中的列类型相匹配。
  • 在使用子查询时,子查询的结果列数应该与插入表的列数相匹配。
  • 在插入数据之前,最好先备份数据,以防意外丢失。
  • 使用子查询插入数据时,子查询中不能包含 ORDER BY 子句,除非它是一个 SELECT INTO 语句。

3.5.2 MySQL更新数据

在MySQL中,更新数据通常使用 UPDATE 语句。以下是 UPDATE 语句的基本语法和一些使用示例:

基本语法

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
  • table_name 是你要更新数据的表名。
  • column1, column2, … 是你要更新的列名。
  • value1, value2, … 是你要设置的新值。
  • condition 是用于确定哪些行将被更新的条件。

示例

更新单列

如果只想更新表中的一列,可以这样做:

UPDATE employees
SET status = 'active'
WHERE id = 3;

这个例子将 employees 表中 id 为 3 的行的 status 列更新为 ‘active’。

更新多列

如果需要同时更新多个列,可以这样做:

UPDATE employees
SET first_name = 'Jane', last_name = 'Doe', salary = 50000
WHERE id = 3;

这个例子将 employees 表中 id 为 3 的行的 first_name, last_name, 和 salary 列分别更新为 ‘Jane’, ‘Doe’, 和 50000。

更新所有行

如果想要更新表中的所有行,可以省略 WHERE 子句:

UPDATE employees
SET status = 'active';

这个例子将 employees 表中所有行的 status 列更新为 ‘active’。请注意,这样做会更新表中的所有行,所以通常需要谨慎使用。

使用函数更新数据

也可以在 UPDATE 语句中使用函数来更新数据:

UPDATE employees
SET salary = salary * 1.10
WHERE department = 'Sales';

这个例子将 employees 表中 department 为 ‘Sales’ 的所有员工的 salary 增加10%。

基于其他表更新数据

还可以根据另一个表中的数据来更新当前表的数据:

UPDATE employees e
JOIN departments d ON e.department_id = d.id
SET e.department_name = d.name
WHERE d.location = 'New York';

这个例子将 employees 表中与 departments 表中 location 为 ‘New York’ 相匹配的 department_id 对应的行的 department_name 更新为 departments 表中的 name

注意事项

  • 在执行 UPDATE 语句之前,最好先执行 SELECT 查询来确认哪些行将被更新。
  • 如果不使用 WHERE 子句,UPDATE 语句将更新表中的所有行。
  • 在执行更新操作之前,建议备份数据库,以防意外更新导致数据丢失。

3.5.3 MySQL删除数据

在MySQL中,删除数据通常使用 DELETE 语句。以下是 DELETE 语句的基本语法和一些使用示例:

基本语法

DELETE FROM table_name
WHERE condition;
  • table_name 是你要删除数据的表名。
  • condition 是用于确定哪些行将被删除的条件。

示例

删除特定行

如果你只想删除表中的特定行,可以这样做:

DELETE FROM employees
WHERE id = 3;

这个例子将 employees 表中 id 为 3 的行删除。

删除多行

如果你需要根据某个条件删除多行数据,可以这样做:

DELETE FROM employees
WHERE department = 'Sales';

这个例子将 employees 表中所有 department 为 ‘Sales’ 的行删除。

删除所有行

如果你想要删除表中的所有行,可以省略 WHERE 子句:

DELETE FROM employees;

这个例子将 employees 表中的所有行删除。请注意,这样做不会删除表结构,只会删除数据。

使用 JOIN 删除数据

你还可以根据关联表中的数据来删除当前表的数据:

DELETE e
FROM employees e
JOIN departments d ON e.department_id = d.id
WHERE d.location = 'New York';

这个例子将 employees 表中与 departments 表中 location 为 ‘New York’ 相匹配的 department_id 对应的行删除。

注意事项

  • 在执行 DELETE 语句之前,最好先执行 SELECT 查询来确认哪些行将被删除。
  • 如果不使用 WHERE 子句,DELETE 语句将删除表中的所有行。
  • 在执行删除操作之前,建议备份数据库,以防意外删除导致数据丢失。
  • 使用 DELETE 语句时,如果涉及到外键约束,可能会遇到限制,需要考虑级联删除或先删除子表数据。

请谨慎使用 DELETE 语句,因为一旦数据被删除,如果没有备份,将很难恢复。

标签:name,删除,employees,MySQL,插入,3.5,表中,数据
From: https://blog.csdn.net/Argonaut_/article/details/142052278

相关文章

  • 11.DQL(数据查询语言)-分组查询
    语法:SELECT字段列表FROM表名[WHERE条件]GROUPBY分组字段名[HAVING分组后的过滤条件];where和having的区别:执行时机不同:where是分组之前进行过滤,不满足where条件不参与分组;having是分组后对结果进行过滤。判断条件不同:where不能对聚合函数进行判断,而having可......
  • mysql主从复制
    mysql主从复制描述:MySQL数据库的主从复制方案,是其自带的功能,并且主从复制并不是复制磁盘上的数据库文件,而是通过binlog日志复制到需要同步的从服务器上。MySQL数据库支持单向、双向、链式级联,等不同业务场景的复制。在复制的过程中,一台服务器充当主服务器(Master),接收来自用户的内......
  • centos7安装mysql
    centos7安装mysql8卸载MariaDBMariaDBMySQL的一个分支,主要由开源社区维护CentOS7+不再默认使用MySQL数据库,而是MariaDB数据库。直接安装MySQL会与MariaDB的文件冲突。#使用yum卸载yumremovemariadb安装mysql压缩包去官网找mysql官网wget下......
  • 中移ML307R(4G Cat1,C-SDK,OpenCPU)模组学习开发-使用i2c采集sht30温湿度数据
    <p><iframename="ifd"src="https://mnifdv.cn/resource/cnblogs/ML307R_OPEN"frameborder="0"scrolling="auto"width="100%"height="1500"></iframe></p>  测试1,把文件拷贝到自己工程的 ......
  • 数据结构-堆-详解
    数据结构-堆-详解1.性质大根堆小根堆2.实现2.1structHeap、HeapInit、HeapDestroy2.2HeapPushAdjustUp2.3HeapPopAdjustDown2.4HeapTop、HeapSize、HeapEmpty3.应用3.1堆排建堆排序3.2TopK问题1.性质堆是一种特殊的完全二叉树,其父节点总是不大于/不小于子节......
  • Python用CNN+LSTM+Attention对新闻文本分类、锂离子电池健康、寿命数据预测
     分析师:WeiqiaoJue在当今的数字化时代,数据的爆炸式增长既带来了机遇,也带来了挑战。如何从海量的数据中高效地提取有价值的信息,并进行准确的分类和预测,成为了众多领域亟待解决的关键问题。本研究通过CNN+LSTM+Attention模型提高新闻文本分类的精确性的案例,结合Attention+CNN+BiLST......
  • 以MySQL为例,来看看maven-shade-plugin如何解决多版本驱动共存的问题?
    开心一刻清明节那天,看到一小孩在路边烧纸时不时地偷偷往火堆里扔几张考试卷子边烧边念叨:爷爷呀,你岁数大了,在那边多做做题吧,对脑子好,要是有不懂的地方,就把我老师带走,让他教您!前提说明假设MySQL5.7.36的库qsl_datax有表qsl_datax_source和数据CREATETABLE`qsl_datax_source`......
  • 如何使用API接口获取 TaoBao 商品数据详情
    在电子商务的快速发展中,淘宝作为中国最大的电商平台之一,提供了丰富的API接口,使得开发者能够高效地获取淘宝商品的详细信息。这些信息包括商品的基本属性、价格、库存状态、销售策略、卖家信息等,对于电商分析、市场研究或者商品信息管理等场景非常有用。什么是淘宝API接口?淘......
  • MySQL int(10) 与 int(11) 的区别
    不知道大家是不是和我一样,每次给有个列添加 int(11) 的时候都会想,会不会是 int(10) ,偶尔也会发神经的想,如果 int(32) 这样的可否?索性,我们就先来解决这个问题吧。int 类型的底层存储采用的是 4 字节,也就是32位,这样能够存储的实际最大值为 4294967296,大家数数一下......
  • mysql数据库,外键关联删除主表数据,binlog只记主表binlog
    环境:8.0.32场景一、开启外键约束关联删除时,删除主表记录,binlog中内容解析1、写入测试数据,并删除主键id=1,子表id=1一并删除mysql>createtablet1(idintprimarykey,namevarchar(200));QueryOK,0rowsaffected(0.01sec)mysql>insertintot1select1,'zs';Que......