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

前言 最近看完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的试卷 关键字NULL可以用DEFAULT替代。 掌握replace into···values的用法 replace into 跟 insert into功能类似,不同点在于:replace into 首先尝试插入数据到表中, 如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据; 否则,直接插入新数据。 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:00'and 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  大家一起加油欧. 后面会一天更新一则随手笔记在博客上欧,觉得有用的小伙伴们 点赞加收藏查看欧~~  加油!

尚美源码坑位教程提供精美的网站源码教程,小程序、公众号、H5、APP、游戏、直播、支付、区块链、商城、影音、小说等源码信息大全。
尚美源码教程库 » #yyds干货盘点# MySQL数据库语句进阶--随手笔记(1)
赞助VIP 享更多特权,立即登录下载海量资源
喜欢我嘛?喜欢就按“ctrl+D”收藏我吧!♡