【mysql数据库中常见的增删改操作】

常见的新增操作

mysql数据库中常使用insert into 关键字添加数据,在使用insert into过程中,最常见的就是

insert into tb_name(字段1,字段2, 字段3... ) 
values('data1', 'data2', 'data3'...);

但除了上述的操作之外,还有很多种用法

1. 全字段单条数据插入

全字段就是一个表中所有的字段,包括自增的主键(该字段值可写为null)

insert into tb_name
values('data1', 'data2', 'data3'...)
-- values();中必须包含该表中的所有字段

2. 指定字段单条插入

insert into tb_name(字段1,字段2, 字段3... ) 
values('data1', 'data2', 'data3'...);

3. 多条数据插入

多条数据插入又分为全字段和指定字段,和上述一样,下来只介绍全字段的多条数据插入,. 注意的是,多条插入中,values只写一个,括号后用逗号隔开

insert into tb_name 
values('data1', 'data2', 'data3', 'data4'...), 
('data1', 'data2', 'data3', 'data4'...), 
('data1', 'data2', 'data3', 'data4'...), 
('data1', 'data2', 'data3', 'data4'...), 
('data1', 'data2', 'data3', 'data4'...);

4. 替换插入

mysql除了使用insert into插入数据之外,还有replace into,顾名思义,如果表中存在相同主键的数据,则覆盖它。例如,学生表中有学号为’2120802’,姓名为’张三’的一条数据,该学生已经毕业,此时,李四同学使用该学号可直接使用replace into替换掉张三的数据,其用法和insert into 一样,分为全字段,指定字段,多条和单条,以下只演示指定字段单条数据替换插入用法:

replace into tb_name(字段1,字段2, 字段3... ) 
values('data1', 'data2', 'data3'...);

5.表中数据复制

如果把一个表中符合条件的数据复制到另一张表中,可以使用该方法,该语法中没有values关键字,select语句把符合条件的数据从已知表中查询出来作为插入目标表中的数据
语法格式如下:

insert into tb_name 
select 字段1, 字段2, 字段3... 
from tb_name2 
where 条件表达式 

其中被插入表的字段类型必须和插入表的一致

常见的更新操作

mysql数据库中使用update关键字来修改表中数据
更新操作的常用语法格式如下:

设置为新值:UPDATE table_name SET
 			column_name=new_value 
 			[, column_name2=new_value2] 
 			[WHERE column_name3=value3]
根据已有值替换:UPDATE table_name SET
			 key1=replace(key1, '查找内容', '替换成内容') 
			 [WHERE column_name3=value3]

常见删除操作汇总

根据条件删除:

DELETE FROM tb_name [WHERE options]
 [ [ ORDER BY fields ] LIMIT n ]

limit的用法有两种:
带一个参数limit n :表示罗列查询后的前n项数据
带两个参数limit m, n :表示从第m行数据开始,罗列出n行数据

全部删除(表清空,包含自增计数器重置):

TRUNCATE tb_name

使用delete from tb_name 也可以删除所有的数据,但不能重置自增计数器

要想重置已存在数据的自增id,也可以使用代码:

-- 重置已有数据主键
SET @rownum = 0;
UPDATE timer SET id = @rownum := @rownum +1;

删除中常见的日期操作方法:
求时间差:

TIMESTAMPDIFF(interval, time_start, time_end)可计算time_start-time_end的时间差,单位以指定的interval为准,常用可选:
SECOND 秒
MINUTE 分钟(返回秒数差除以60的整数部分)
HOUR 小时(返回秒数差除以3600的整数部分)
DAY 天数(返回秒数差除以3600*24的整数部分)
MONTH 月数
YEAR 年数
例如牛客上一道经典例题
请删除exam_record表中作答时间小于5分钟整且分数不及格(及格线为60分)的记录;

delete from exam_record 
where timestampdiff(minute, start_time, submit_time) < 5 
-- where submit_time - start_time < 500
and score < 60;

求日期可以用函数timestampdiff(), 如果用两个日期相减,得到结果为一个将日期看做整数的整数。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

只影~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值