SQL删除记录方式汇总 |
您所在的位置:网站首页 › 删除记录sql › SQL删除记录方式汇总 |
大家好,我是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 |