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

Posted 忆_恒心

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#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数据库语句进阶--随手笔记的主要内容,如果未能解决你的问题,请参考以下文章

#yyds干货盘点# 07 MySQL数据排序

MySQL性能测试之select&updateFunTester框架#yyds干货盘点#

高频面试java高级进阶之锁?与CAS详解#yyds干货盘点#

#yyds干货盘点#几种数据库存储引擎比较

#yyds干货盘点# MySQL性能优化:常见优化SQL的技巧

#yyds干货盘点#MySQL学习-索引的基础篇(下)