SQL增删改操作实例分析
这篇文章主要讲解了“SQL增删改操作实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SQL增删改操作实例分析”吧!
插入记录SQL1 插入记录(一)
表exam_record结构
题目描述牛客后台会记录每个用户的试卷作答记录到exam_record表,现在有两个用户的作答记录详情如下:用户1001在2021年9月1日晚上10点11分12秒开始作答试卷9001,并在50分钟后提交,得了90分;用户1002在2021年9月4日上午7点1分2秒开始作答试卷9002,并在10分钟后退出了平台。试卷作答记录表exam_record中,表已建好,其结构如下,请用一条语句将这两条记录插入表中。该题最后会通过执行SELECTuid,exam_id,start_time,submit_time,scoreFROMexam_record;来对比结果建表语句droptableifEXISTSexam_record;CREATETABLEIFNOTEXISTSexam_record(idintPRIMARYKEYAUTO_INCREMENTCOMMENT'自增ID',uidintNOTNULLCOMMENT'用户ID',exam_idintNOTNULLCOMMENT'试卷ID',start_timedatetimeNOTNULLCOMMENT'开始时间',submit_timedatetimeCOMMENT'提交时间',scoretinyintCOMMENT'得分')CHARACTERSETutf8COLLATEutf8_general_ci;TRUNCATEexam_record;答案insertINTOexam_recordvalues(null,1001,9001,'2021-09-0122:11:12','2021-09-0123:01:12',90),(null,1002,9002,'2021-09-0407:01:02',null,null);
SQL2 插入记录(二)表exam_record结构
题目描述现有一张试卷作答记录表exam_record,其中包含多年来的用户作答试卷记录,由于数据越来越多,维护难度越来越大,需要对数据表内容做精简,历史数据做备份。我们已经创建了一张新表exam_record_before_2021用来备份2021年之前的试题作答记录,结构和exam_record表一致,请将2021年之前的已完成了的试题作答纪录导入到该表。后台会通过执行"SELECT*FROMexam_record_before_2021;"语句来对比结果建表语句droptableifEXISTSexam_record;CREATETABLEIFNOTEXISTSexam_record(idintPRIMARYKEYAUTO_INCREMENTCOMMENT'自增ID',uidintNOTNULLCOMMENT'用户ID',exam_idintNOTNULLCOMMENT'试卷ID',start_timedatetimeNOTNULLCOMMENT'开始时间',submit_timedatetimeCOMMENT'提交时间',scoretinyintCOMMENT'得分')CHARACTERSETutf8COLLATEutf8_general_ci;CREATETABLEIFNOTEXISTSexam_record_before_2021(idintPRIMARYKEYAUTO_INCREMENTCOMMENT'自增ID',uidintNOTNULLCOMMENT'用户ID',exam_idintNOTNULLCOMMENT'试卷ID',start_timedatetimeNOTNULLCOMMENT'开始时间',submit_timedatetimeCOMMENT'提交时间',scoretinyintCOMMENT'得分')CHARACTERSETutf8COLLATEutf8_general_ci;TRUNCATEexam_record;TRUNCATEexam_record_before_2021;INSERTINTOexam_record(uid,exam_id,start_time,submit_time,score)VALUES(1001,9001,'2020-01-0109:00:01',null,null),(1001,9002,'2020-01-0209:01:01','2020-01-0209:21:01',70),(1001,9002,'2020-09-0209:00:01',null,null),(1002,9001,'2021-05-0210:01:01','2021-05-0210:30:01',81),(1002,9002,'2021-09-0212:01:01',null,null);答案INSERTINTOexam_record_before_2021SELECTNULL,uid,exam_id,start_time,submit_time,scoreFROMexam_recordWHEREsubmit_time<'2021-01-0100:00:00';
SQL3 插入记录(三)试题信息表examination_info结构
题目描述现在有一套ID为9003的高难度SQL试卷,时长为一个半小时,请你将2021-01-0100:00:00作为发布时间插入到试题信息表examination_info,不管该ID试卷是否存在,都要插入成功,请尝试插入它。后台会通过执行SELECTexam_id,tag,difficulty,duration,release_timeFROMexamination_info语句来对比结果。建表语句droptableifEXISTSexamination_info;CREATETABLEIFNOTEXISTSexamination_info(idintPRIMARYKEYAUTO_INCREMENTCOMMENT'自增ID',exam_idintUNIQUENOTNULLCOMMENT'试卷ID',tagvarchar(32)COMMENT'类别标签',difficultyvarchar(8)COMMENT'难度',durationintNOTNULLCOMMENT'时长(分钟数)',release_timedatetimeCOMMENT'发布时间')CHARACTERSETutf8COLLATEutf8_bin;TRUNCATEexamination_info;INSERTINTOexamination_info(exam_id,tag,difficulty,duration,release_time)VALUES(9001,'SQL','hard',60,'2020-01-0110:00:00'),(9002,'算法','easy',60,'2020-01-0110:00:00'),(9003,'SQL','medium',60,'2020-01-0210:00:00'),(9004,'算法','hard',80,'2020-01-0110:00:00');答案replaceintoexamination_info(id,exam_id,tag,difficulty,duration,release_time)values(null,9003,'SQL','hard',90,'2021-01-0100:00:00');
2 更新记录SQL4 更新记录(一)现有一张试卷信息表examination_info,表结构如下图所示:
题目描述请把examination_info表中tag为PYTHON的tag字段全部修改为Python。后台会通过执行'SELECTexam_id,tag,difficulty,duration,release_timeFROMexamination_info;'语句来对比结果。建表语句droptableifEXISTSexamination_info;CREATETABLEIFNOTEXISTSexamination_info(idintPRIMARYKEYAUTO_INCREMENTCOMMENT'自增ID',exam_idintUNIQUENOTNULLCOMMENT'试卷ID',tagvarchar(32)COMMENT'类别标签',difficultyvarchar(8)COMMENT'难度',durationintNOTNULLCOMMENT'时长',release_timedatetimeCOMMENT'发布时间')CHARACTERSETutf8COLLATEutf8_bin;TRUNCATEexamination_info;INSERTINTOexamination_info(exam_id,tag,difficulty,duration,release_time)VALUES(9001,'SQL','hard',60,'2020-01-0110:00:00'),(9002,'python','easy',60,'2020-01-0110:00:00'),(9003,'Python','medium',80,'2020-01-0110:00:00'),(9004,'PYTHON','hard',80,'2020-01-0110:00:00');答案UPDATEexamination_infosettag='Python'WHEREtag='PYTHON';
SQL5 更新记录(二)作答记录表exam_record表结构
题目描述现有一张试卷作答记录表exam_record,其中包含多年来的用户作答试卷记录,submit_time为完成时间请把exam_record表中2021年9月1日之前开始作答的未完成记录全部改为被动完成,即:将完成时间改为'2099-01-0100:00:00',分数改为0。建表语句droptableifEXISTSexam_record;CREATETABLEIFNOTEXISTSexam_record(idintPRIMARYKEYAUTO_INCREMENTCOMMENT'自增ID',uidintNOTNULLCOMMENT'用户ID',exam_idintNOTNULLCOMMENT'试卷ID',start_timedatetimeNOTNULLCOMMENT'开始时间',submit_timedatetimeCOMMENT'提交时间',scoretinyintCOMMENT'得分')CHARACTERSETutf8COLLATEutf8_general_ci;INSERTINTOexam_record(uid,exam_id,start_time,submit_time,score)VALUES(1001,9001,'2020-01-0209:01:01','2020-01-0209:21:01',80),(1001,9002,'2021-09-0109:01:01','2021-09-0109:21:01',90),(1002,9001,'2021-08-0219:01:01',null,null),(1002,9002,'2021-09-0519:01:01','2021-09-0519:40:01',89),(1003,9001,'2021-09-0212:01:01',null,null),(1003,9002,'2021-09-0112:01:01',null,null);答案UPDATEexam_recordsetsubmit_time='2099-01-0100:00:00',score=0WHEREstart_time<'2021-09-01'andsubmit_timeisnull;
3 删除记录 SQL6 删除记录(一)作答记录表exam_record表结构,start_time是试卷开始时间,submit_time 是交卷,即结束时间
题目描述现有一张试卷作答记录表exam_record,其中包含多年来的用户作答试卷记录,start_time是试卷开始时间submit_time是交卷,即结束时间请删除exam_record表中作答时间小于5分钟整且分数不及格(及格线为60分)的记录;后台会执行您的SQL,然后通过SELECT*FROMexam_record;语句来筛选出剩下的数据,与正确数据进行对比。建表语句droptableifEXISTSexam_record;CREATETABLEIFNOTEXISTSexam_record(idintPRIMARYKEYAUTO_INCREMENTCOMMENT'自增ID',uidintNOTNULLCOMMENT'用户ID',exam_idintNOTNULLCOMMENT'试卷ID',start_timedatetimeNOTNULLCOMMENT'开始时间',submit_timedatetimeCOMMENT'提交时间',scoretinyintCOMMENT'得分')CHARACTERSETutf8COLLATEutf8_general_ci;TRUNCATEexam_record;INSERTINTOexam_record(uid,exam_id,start_time,submit_time,score)VALUES(1001,9001,'2020-01-0122:11:12','2020-01-0123:16:12',50),(1001,9002,'2020-01-0209:01:01','2020-01-0209:06:00',58),(1002,9001,'2021-05-0210:01:01','2021-05-0210:05:58',60),(1002,9002,'2021-06-0219:01:01','2021-06-0219:05:01',54),(1003,9001,'2021-09-0519:01:01','2021-09-0519:40:01',49),(1003,9001,'2021-09-0519:01:01','2021-09-0519:15:01',70),(1003,9001,'2021-09-0619:01:01','2021-09-0619:05:01',80),(1003,9002,'2021-09-0907:01:02',null,null);答案deletefromexam_recordwheretimestampdiff(minute,start_time,submit_time)<5andscore<60;
SQL7 删除记录(二)作答记录表exam_record结构如下:
题目描述现有一张试卷作答记录表exam_record,其中包含多年来的用户作答试卷记录,start_time是试卷开始时间submit_time是交卷时间,即结束时间,如果未完成的话,则为空请删除exam_record表中未完成作答或作答时间小于5分钟整的记录中,开始作答时间最早的3条记录。后台会通过SELECT*FROMexam_record语句来对比结果。建表语句droptableifEXISTSexam_record;CREATETABLEIFNOTEXISTSexam_record(idintPRIMARYKEYAUTO_INCREMENTCOMMENT'自增ID',uidintNOTNULLCOMMENT'用户ID',exam_idintNOTNULLCOMMENT'试卷ID',start_timedatetimeNOTNULLCOMMENT'开始时间',submit_timedatetimeCOMMENT'提交时间',scoretinyintCOMMENT'得分')CHARACTERSETutf8COLLATEutf8_general_ci;TRUNCATEexam_record;INSERTINTOexam_record(uid,exam_id,start_time,submit_time,score)VALUES(1001,9001,'2020-01-0122:11:12','2020-01-0123:16:12',50),(1001,9002,'2020-01-0209:01:01','2020-01-0209:06:00',58),(1001,9002,'2020-01-0209:01:01','2020-01-0209:05:01',58),(1002,9001,'2021-05-0210:01:01','2021-05-0210:06:58',60),(1002,9002,'2021-06-0219:01:01',null,null),(1003,9001,'2021-09-0519:01:01',null,null),(1003,9001,'2021-09-0519:01:01',null,null),(1003,9002,'2021-09-0907:01:02',null,null);答案deletefromexam_recordwheretimestampdiff(minute,start_time,submit_time)<5orsubmit_timeisnullorderbystart_timelimit3;
SQL8 删除记录(三)试卷作答记录表exam_record表结构
题目描述现有一张试卷作答记录表exam_record,其中包含多年来的用户作答试卷记录,请删除exam_record表中所有记录,并重置自增主键。后台会通过SELECTtable_rows,auto_incrementFROMinformation_schema.tablesWHEREtable_name='exam_record'语句来对比输出结果建表语句droptableifEXISTSexam_record;CREATETABLEIFNOTEXISTSexam_record(idintPRIMARYKEYAUTO_INCREMENTCOMMENT'自增ID',uidintNOTNULLCOMMENT'用户ID',exam_idintNOTNULLCOMMENT'试卷ID',start_timedatetimeNOTNULLCOMMENT'开始时间',submit_timedatetimeCOMMENT'提交时间',scoretinyintCOMMENT'得分')CHARACTERSETutf8COLLATEutf8_general_ci;TRUNCATEexam_record;INSERTINTOexam_record(uid,exam_id,start_time,submit_time,score)VALUES(1001,9001,'2020-01-0122:11:12','2020-01-0123:16:12',50),(1001,9002,'2020-01-0209:01:01','2020-01-0209:06:00',58);答案TRUNCATEtableexam_record;
感谢各位的阅读,以上就是“SQL增删改操作实例分析”的内容了,经过本文的学习后,相信大家对SQL增删改操作实例分析这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。