MySQL数据处理之增、删、改的操作

本文详细介绍了MySQL中数据处理的增、删、改操作。通过实例展示了如何向表中添加数据,包括按顺序添加和自定义顺序添加,并探讨了常见错误及其解决方案。接着,阐述了删除操作,包括按条件删除单行或多行数据。最后,解释了修改操作,演示了如何更新特定行的某个或多个字段值。文章强调了约束对操作可能产生的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MySQL数据处理之增、删、改的操作:
我们先新建一个表emp1作为研究对象,代码如下:

CREATE TABLE emp1(
id INT ,
emp_name VARCHAR(15),
hire_date DATE,
salary DOUBLE(10,2)
);

利用查询语句查询一下新建的表的具体数据,查询结果如下(表里是空的):
在这里插入图片描述

1.

添加数据
方式一:在给定的表里面直接添加数据
注意 :添加字段值的顺序要和原表里字段声明的顺序一致
参考代码如下:

INSERT INTO emp1
VALUES(1,'Tom',CURDATE(),80000);

此时,利用查询语句查询一下新建的表的具体数据,查询结果如下:
在这里插入图片描述
刚刚的数据(1,'Tom',CURDATE(),80000)已经添加进表格了

++++++++++++++(分割线)+++++++++++++++

我们在实际开发中常常这样写(自己定义添加数据的字段的顺序),参考代码如下;

INSERT INTO emp1(id,salary,emp_name,hire_date)
VALUES(6,60000,'king',CURDATE());

此时,利用查询语句查询一下新建的表的具体数据,查询结果如下:

在这里插入图片描述
我们看到,刚刚的自定义的写法添加的数据已经进入了表格中。
接下来,我们讨论几种错误的写法,望读者引以为戒:

错误的写法1(位置没对应)

INSERT INTO emp1
VALUES(2,CURTIME(),'Junry',60000);

错误的写法2(有字段没有被给数据)

INSERT INTO emp1
VALUES(3,'LLL'500000);

注意:未声明赋值的字段,默认赋值为NULL,这种写法有时候会报错,后面的章节会讲解相应的解决和优化的方法
自定义添加顺序的时候,不一定每个字段都要给它定义位置,可以有字段不予赋值

INSERT INTO emp1(id,salary,emp_name)
VALUES(8,80000,'张三')

这种写法有时候会报错,后面会讲解相应的解决和优化的方法。

----------------------------------(分割线)--------------------------------

方式二:基于现有的表进行加工
注意:这种方法属于导入数据,接受数据的表格,它相应字段的字符串长度限制必须 >= 原表格相应字段的字符串长度限制,对应的数据类型必须一致。
还是以表 emp1 为研究对象,基于表 employees 进行加工,参考代码如下:

INSERT INTO emp1(id,emp_name,salary)
SELECT employee_id,last_name,salary
FROM employees
WHERE department_id IN (60,70,80);

备注:以上代码,将新表中的字段id,emp_name,salary 对应原表中的字段employee_id,last_name,salary一一对应去添加数据。添加的数据来源于表 employees ,经过筛选,只将原表中id在 60、70、80 之间的数据添加进来。
执行以上添加命令的代码后,此时,利用查询语句查询一下新建的表的具体数据,查询结果如下:
在这里插入图片描述
我们会发现表中数据变成了42行(如图右下角勾画),增加的这40行来自employees表中id在 60、70、80 之间的数据。

---------------------------------------------(分割线)-------------------------------------------

2.

删除操作:delete from ... where...
该操作自带批量操作的性质(可筛选性地删除,where就是起筛选的作用)
举例代码如下:

举例1:删除 id=6 的这一行所有数据

DELETE FROM emp1
 where id = 6 ; 

执行该命令后,利用查询语句查询一下新建的表的具体数据,查询结果如下:
在这里插入图片描述
此时,我们发现,id=6 的这一行所有数据已经被删除了。

举例2:删除slary<4000 的行的所有数据

DELETE FROM emp1
WHERE salary < 6000; 

执行该命令后,利用查询语句查询一下新建的表的具体数据,查询结果如下:
在这里插入图片描述
我们发现此时数据只剩38行了,说明那三行满足salary< 6000 的数据已经被删除了。

---------------------------------------------(分割线)-------------------------------------------

3.

修改操作 : update ... set ...,...,... where ... (自带批量操作的性质)(可筛选性地删除,where就是起筛选的作用)
举例代码如下:
举例1:将id=1 的人的salary 改成6600

UPDATE emp1
SET salary = 6600  # set 接修改的具体内容
WHERE id = 1;

执行该命令后,利用查询语句查询一下新建的表的具体数据,查询结果如下:
在这里插入图片描述我们发现表中id=1的人的salary 变成了6600

举例2:将满足emp_name = 'Tom' 的那行的salary改成7600,hire_date改成2020-06-06

UPDATE emp1
SET salary = 7600,hire_date = '2020-06-06'  #set 接修改的具体内容,可以接多条,共同修改。
WHERE emp_name = 'Tom';

备注:通过举例2可以看出该修改命令可以同时修改多个字段所对应的数据。

执行该命令后,利用查询语句查询一下新建的表的具体数据,查询结果如下:
在这里插入图片描述
我们可以发现,满足emp_name = 'Tom' 的那行的salary变成了7600,hire_date变成了2020-06-06

在这里需要再强调一下:由于约束的影响,可能会导致增、删、改 操作失败。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值