#yyds干货盘点# MySQL数据库语句进阶--随手笔记

莫道桑榆晚,为霞尚满天。这篇文章主要讲述#yyds干货盘点# MySQL数据库语句进阶--随手笔记相关的知识,希望能为你提供帮助。
前言

最近看完mysql必知必会后。找了一些题目来练习,语句本身不难 但是有练手的意义,主要是要熟悉一下运用的场景。
目的:
  • 随手记录了一些常用的命令
  • 熟悉应用场景
干货推荐:墙裂推荐在学SQL语句的时候要多练习,多熟悉一些常用的场景。推荐牛客网进行刷题。https://www.nowcoder.com/ta/sql-advanced
语句书写约定:专有名词均需要大写,自己定义的函数方法为小写
常见的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的试卷
  1. 关键字NULL可以用DEFAULT替代。
  2. 掌握replace into···values的用法
replace into 跟 insert into功能类似,不同点在于:replace into 首先尝试插入数据到表中,
  1. 如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据;
  2. 否则,直接插入新数据。
2 更新字段请把exam_record表中2021年9月1日之前开始作答的未完成记录全部改为被动完成,即:将完成时间改为2099-01-01 00:00:00,分数改为0

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

  1. DROP TABLE 清除数据并且销毁表,是一种数据库定义语言(DDL Data Definition Language), 执行后不能撤销,被删除表格的关系,索引,权限等等都会被永久删除。
  2. TRUNCATE TABLE 只清除数据,保留表结构,列,权限,索引,视图,关系等等,相当于清零数据,是一种数据库定义语言(DDL Data Definition Language),执行后不能撤销。
每天都要进步一点点,立下个FLAG  大家一起加油欧.
后面会一天更新一则随手笔记在博客上欧,觉得有用的小伙伴们 点赞加收藏查看欧~~ 
【#yyds干货盘点# MySQL数据库语句进阶--随手笔记】加油!

    推荐阅读