SQL删除记录方式汇总

您所在的位置:网站首页 删除记录sql SQL删除记录方式汇总

SQL删除记录方式汇总

2024-07-09 08:32| 来源: 网络整理| 查看: 265

大家好,我是RecordLiu!

今天给大家分享的是SQL中删除记录的不同方式,我会用几道真题来给大家讲解。

题目直达链接:

牛客网在线SQL编程练习

切换到SQL篇就能看到了。

我这里先列下知识点:

SQL中进行简单删除的语法是什么?SQL中如何限定条数删除记录?SQL中如何清空表记录并重置自增长ID主键的值?

接下来,我们详细看看。

题目1:简单删除 描述

exam_record是一张试卷作答记录表,其中包含多年来的用户作答试卷记录,结构如下表:

作答记录表exam_record中: start_time是试卷开始时间 submit_time 是交卷,即结束时间。

请删除exam_record表中作答时间小于5分钟整且分数不及格(及格线为60分)的记录。

题解

SQL中删除记录可以使用以下语法:

DELETE FROM tableName [WHERE xxx]

同样,跟update语句一样,在不指定where条件下,delete会把表里面的记录全部删除,这点是需要特别注意的,不加where条件的delete语句相当危险,线上应该避免这样的操作。

这道题的难点在于判断作答时间小于5分钟,作答时间我们知道,可以用结束时间减去开始时间得到。

观察exam_record可以发现,start_time和submit_time设置的都是datetime类型,即它们存储的是2020-01-01 22:11:12这样格式的数据,是一个时间字符串,这样就不能直接相减了。

一种办法是可以使用unix_timestamp 函数,将start_time和submit_time的值转化成时间戳格式(即时间对应的秒数),在判断相差小于300秒(5分钟*60=300秒),SQL代码如下:

DELETE FROM exam_record WHERE (UNIX_TIMESTAMP(submit_time) - UNIX_TIMESTAMP(start_time))


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3