当前位置: 代码网 > it编程>数据库>Mysql > MySQL数据库数据处理之增删改代码示例

MySQL数据库数据处理之增删改代码示例

2026年09月04日 Mysql 我要评论
1. 插入数据1.1 方式1:values的方式添加一次只能向表中插入一条数据情况1:为表的所有字段按默认顺序插入数据insert into 表名 values (value1,value2,....

1. 插入数据

1.1 方式1:values的方式添加

一次只能向表中插入一条数据

情况1:为表的所有字段按默认顺序插入数据

insert into 表名 
values (value1,value2,....);

值列表中需要为表的每一个字段指定值,并且值的顺序必须和数据表中字段定义时的顺序相同(顺序与字段严格匹配)

eg:

insert into emp1
values (1,'tom','2000-12-21',3400);

情况2:为表的指定字段插入数据

insert into 表名(column1 [, column2, …, columnn]) 
values (value1 [,value2, …, valuen]);

为表的指定字段插入数据,就是在insert语句中只向部分字段中插入值,而其他字段的值为表定义时的默认值(与小括号内指明字段顺序匹配

注意:没有指明的字段的值默认为null

eg:

insert into departments(department_id, department_name) values (80, 'it');

情况3:同时插入多条记录
插入时指定多个值列表,每个值列表之间用逗号分隔开

语法格式:

insert into table_name 
values 
(value1 [,value2, …, valuen]), 
(value1 [,value2, …, valuen]), 
…… 
(value1 [,value2, …, valuen]);

或:

insert into table_name(column1 [, column2, …, columnn]) 
values 
(value1 [,value2, …, valuen]), 
(value1 [,value2, …, valuen]), 
…… 
(value1 [,value2, …, valuen]);

使用insert同时插入多条记录时,mysql会返回一些在执行单行插入时没有的额外信息
这些信息的含义如下:
● records:表明插入的记录条数
● duplicates:表明插入时被忽略的记录,原因可能是这些记录包含了重复的主键值
● warnings:表明有问题的数据值,例如发生数据类型转换

多行的insert语句在处理过程中效率更高
因为mysql执行单条insert语句插入多行数据比使用多条insert语句快,所以在插入多条记录时最好选择使用单条insert语句的方式插入

注意:

  • values 也可以写成 value ,但是values是标准写法
  • 字符和日期型数据应包含在单引号中

1.2 方式2:将查询结果插入到表中

语法格式:

insert into 目标表名 
(tar_column1 [, tar_column2, …, tar_columnn]) 
select (src_column1 [, src_column2, …, src_columnn]) 
from 源表名 
[where condition]
  • 在 insert 语句中加入子查询
  • 不必书写 values 子句
  • 子查询中的值列表应与 insert 子句中的列名对应
  • 范围大到小,不报错,但会发生截断

eg:

insert into sales_reps(id, name, salary, commission_pct) 
select employee_id, last_name, salary, commission_pct 
from employees 
where job_id like '%rep%';

2. 更新数据

使用 update 语句更新数据

语法格式:

update table_name 
set column1=value1, column2=value2, … , column=valuen 
[where condition]
  • 可以一次更新多条数据
  • 如果需要回滚数据,需要保证在dml前,进行设置:set autocommit = false;
  • 使用 where 子句指定需要更新的数据
update employees 
set department_id = 70 
where employee_id = 113;
  • 如果省略 where 子句,则表中的所有数据都将被更新
  • 可能由于约束影响导致修改失败

3. 删除数据

使用 delete 语句从表中删除数据

语法格式:

delete from table_name 
[where <condition>];
  • 解释:
    • table_name指定要执行删除操作的表
    • [where ]”为可选参数,指定删除条件
    • 如果没有where子句, delete语句将删除表中的所有记录

eg : 使用 where 子句删除指定的记录

delete from departments 
where department_name = 'finance';
  • 可能由于约束影响导致删除失败

4. mysql8新特性:计算列

计算列:某一列的值是通过别的列计算得来的

eg:a列值为1、b列值为2,c列不需要手动插入,定义a+b的结果为c的值,那么c就是计算列

mysql 8.0中,create table 和 alter table 都支持增加计算列,下面以create table为例学习

eg:定义数据表tb1,然后定义字段id、字段a、字段b和字段c,其中字段c为计算列,用于计算a+b的值。首先创建测试表tb1,语句如下:

create table tb1( 
	id int, 
	a int, 
	b int, 
	c int generated always as (a + b) virtual 
);

总结 

到此这篇关于mysql数据库数据处理之增删改的文章就介绍到这了,更多相关mysql数据增删改内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com