莫道桑榆晚,为霞尚满天。这篇文章主要讲述#yyds干货盘点# MySQL数据库语句进阶--随手笔记相关的知识,希望能为你提供帮助。
前言
最近看完mysql必知必会后。找了一些题目来练习,语句本身不难 但是有练手的意义,主要是要熟悉一下运用的场景。目的:
- 随手记录了一些常用的命令
- 熟悉应用场景
语句书写约定:专有名词均需要大写,自己定义的函数方法为小写
常见的SQL场景1 插入记录(三)描述
现在有一套ID为9003的高难度SQL试卷,时长为一个半小时,请你将 2021-01-01 00:00:00 作为发布时间插入到试题信息表examination_info(其表结构如下图),不管该ID试卷是否存在,都要插入成功,请尝试插入它。
REPLACE INTO examination_info
VALUES(NULL, 9003, SQL, hard, 90, 2021-01-01 00:00:00)
普通插入的会报错
Duplicate entry 9003 for key examination_info.exam_id 说明原来的表中已经有了id=9003的试卷
- 关键字NULL可以用DEFAULT替代。
- 掌握replace into···values的用法
- 如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据;
- 否则,直接插入新数据。
UPDATE exam_record
SET submit_time=2099-01-01 00:00:00,score =0
WHERE start_time < 2021-09-01 00:00:00and submit_time is NUL
3 删除记录3.1 时间戳函数
请删除exam_record表中作答时间小于5分钟整且分数不及格(及格线为60分)的记录;时间戳函数
timestampdif
DELETE FROM exam_record
WHERE timestampdiff(MINUTE,start_time , submit_time) < 5
AND score < 6
3.2最早的3条记录
请删除exam_record表中未完成作答或作答时间小于5分钟整的记录中,开始作答时间最早的3条记录。
DELETE FROM exam_record
WHERE TIMESTAMPDIFF(minute, start_time, submit_time) < 5
OR submit_time IS NULL
ORDER BY start_time
limit
3.3 TRUNCATE
请删除exam_record表中所有记录,并重置自增主键。
TRUNCATE TABLE exam_recor
- DROP TABLE 清除数据并且销毁表,是一种数据库定义语言(DDL Data Definition Language), 执行后不能撤销,被删除表格的关系,索引,权限等等都会被永久删除。
- TRUNCATE TABLE 只清除数据,保留表结构,列,权限,索引,视图,关系等等,相当于清零数据,是一种数据库定义语言(DDL Data Definition Language),执行后不能撤销。
每天都要进步一点点,立下个FLAG 大家一起加油欧.
后面会一天更新一则随手笔记在博客上欧,觉得有用的小伙伴们 点赞加收藏查看欧~~
【#yyds干货盘点# MySQL数据库语句进阶--随手笔记】加油!
推荐阅读
- #yyds干货盘点#--k8s-存储
- 面试官(手撕LRU缓存了解一下#2021年底大盘点#)
- MySQL性能测试之insert&deleteFunTester框架#yyds干货盘点#
- Python包管理 pip教程 | 解决用pip更新pip失败 #yyds干货盘点#
- #私藏项目实操分享#Maven实战技巧「插件使用专题」Maven-Archetype插件创建自定义maven项目骨架
- Go 语言入门很简单 -- 12. Go 方法 #私藏项目实操分享#
- #私藏项目实操分享# SAP 软件的精髓之一(各种各样的决定机制 - Determination Logic)
- 大厂高频面试题Spring Bean生命周期最详解
- #星光计划2.0#基于3861智能开发套件软件开发环境搭建