首页 > 数据库 >插入记录(二)(sql练习)

插入记录(二)(sql练习)

时间:2024-07-08 09:56:49浏览次数:14  
标签:COMMENT 01 exam 插入 练习 record time sql NULL

现有一张试卷作答记录表exam_record,结构如下表,其中包含多年来的用户作答试卷记录,由于数据越来越多,维护难度越来越大,需要对数据表内容做精简,历史数据做备份。

表exam_record:

FiledTypeNullKeyExtraDefaultComment
idint(11)NOPRIauto_increment(NULL)自增ID
uidint(11)NO(NULL)用户ID
exam_idint(11)NO(NULL)试卷ID
start_timedatetimeNO(NULL)开始时间
submit_timedatetimeYES(NULL)提交时间
scoretinyint(4)YES(NULL)得分

我们已经创建了一张新表exam_record_before_2021用来备份2021年之前的试题作答记录,结构和exam_record表一致,请将2021年之前的已完成了的试题作答纪录导入到该表。

后台会通过执行"SELECT * FROM exam_record_before_2021;"语句来对比结果

示例1

输入:

drop table if EXISTS exam_record;
CREATE TABLE IF NOT EXISTS exam_record (
id int PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',
uid int NOT NULL COMMENT '用户ID',
exam_id int NOT NULL COMMENT '试卷ID',
start_time datetime NOT NULL COMMENT '开始时间',
submit_time datetime COMMENT '提交时间',
score tinyint COMMENT '得分'
)CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE TABLE IF NOT EXISTS exam_record_before_2021 (
id int PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',
uid int NOT NULL COMMENT '用户ID',
exam_id int NOT NULL COMMENT '试卷ID',
start_time datetime NOT NULL COMMENT '开始时间',
submit_time datetime COMMENT '提交时间',
score tinyint COMMENT '得分'
)CHARACTER SET utf8 COLLATE utf8_general_ci;
TRUNCATE exam_record;
TRUNCATE exam_record_before_2021;
INSERT INTO exam_record(uid,exam_id,start_time,submit_time,score) VALUES
(1001, 9001, '2020-01-01 09:00:01', null, null),
(1001, 9002, '2020-01-02 09:01:01', '2020-01-02 09:21:01', 70),
(1001, 9002, '2020-09-02 09:00:01', null, null),
(1002, 9001, '2021-05-02 10:01:01', '2021-05-02 10:30:01', 81),
(1002, 9002, '2021-09-02 12:01:01', null, null);

输出:

1|1001|9002|2020-01-02 09:01:01|2020-01-02 09:21:01|70

本题涉及了表插入的进阶应用。当我们想从一个表中获取数据并插入到另一张表中时,就可以用子查询的方式插入。需要注意的点是要制定被插入表的哪些字段要被插入数据,并且子查询中获取的字段要与被插入表的字段一一对应。

insert into
    exam_record_before_2021
(uid,exam_id,start_time,submit_time,score)
(select
    uid,
    exam_id,
    start_time,
    submit_time,
    score
from
    exam_record
where
    year(submit_time)<2021)

标签:COMMENT,01,exam,插入,练习,record,time,sql,NULL
From: https://blog.csdn.net/JYXCCC/article/details/140260132

相关文章

  • sql 索引
    SQL中的索引分为两种,一种为聚集索引和非聚集索引,下面介绍两者的异同。一、聚集索引与非聚集索引:1、聚集索引:聚集索引的意思可以理解为顺序排列,比如一个主键自增的表即为聚集索引,即id为1的存在于第一条,id为2的存在于第二条...假使数据库中是使用数组来存放的这张表中的数据,那么......
  • Spark_06 SparkSQL补充知识点
    说明:本章主要分享Spark自定义函数的使用,catalyst以及sparksql与hive的联动自定义函数分类UDF:一对一关系,输出一行数据得到一行结果,可以自定义UDAF:聚合函数,多对一关系,输入多行数据经过函数以后输出一行计算结果,通常与groupBy联合使用UDTF:一对多的关系,输入一行数据经过函......
  • NoSQL之Redis集群
    目录1.Redis主从复制(1)Redis主从复制工作原理(2)搭建Redis主从复制2.Redis哨兵模式(1)Redis哨兵工作原理(2)搭建Redis哨兵模式3.Redis集群模式(1)集群模式的工作原理(2)集群模式的特点(3)搭建Redis群集模式(4)集群模式与哨兵模式的主要区别1.Redis主从复制(1)Redis主从复制工作原理1.......
  • NoSQL之 Redis配置与优化
    目录1.关系数据库和非关系数据库2.Redis安装部署(1)Redis简介(2)Redis为什么那么快?(3)Redis安装部署(1)环境准备(2)安装redis(3)修改配置文件(4)定义systemd服务管理脚本(4)redis-benchmark测试工具3.Redis数据库常用命令(1)Redis数据类型4.Redis高可用(1)Redis持久化5.Redis性能管理(1)内存碎片6.re......
  • 下载,连接mysql数据库驱动(最详细)
    前言本篇博客,我讲讲如何连接数据库?我使用mysql数据库举例。目录下载对应的数据库jar包百度网盘存有8.4.0版本压缩包:链接:https://pan.baidu.com/s/13uZtXRmuewHRbXaaCU0Xsw?pwd=uipy 提取码:uipy 复制这段内容后打开百度网盘手机App,操作更方便哦一下是具体的操作步骤......
  • Mysql 5.7 免安装版windows安装完整教程
    目录1.配置mysql环境变量2.修改my.ini文件1)设置base和data目录3.安装mysql服务4.初始化数据库5.启动mysql服务,访问mysql数据库6.如果忘记密码了怎么办?1)修改my.ini文件2)在powershell里重启mysql服务3)重启完毕后,就不需要密码就能进入到数据库。选择数据库mysql,......
  • 命令行修改MySQL5.7数据库密码
    命令行修改MySQL5.7数据库密码命令行修改MySQL5.7数据库密码教程概述本教程将教会刚入行的小白如何使用命令行方式修改MySQL5.7数据库密码。通过以下步骤,你将能够完成密码修改操作。步骤步骤描述1进入命令行终端2登录MySQL数据库3切换到MySQL系统数据库......
  • HarmonyOS NEXT 学习笔记2 --百度小练习
    1.百度的小案例:@Entry@ComponentstructPage0707_baidu{@Statemessage:string='HelloWorld';build(){Column({space:20}){Image('https://www.baidu.com/img/flexible/logo/pc/result.png').width('50%'......
  • Mysql
    MySql1.事务的四大特性?事务特性ACID:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。1.原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚。2.一致性是指一个事务执行之前和执行之后都必须处于一致性状态。比如a与b账户共有1000块,两人之间......
  • bat还原mssql数据库,可设置服务器 ip等相关信息,和备份路径
    以下是一个使用BAT脚本来还原MSSQL数据库,并设置服务器IP、用户名、密码以及备份路径的示例:bat@echooffsetSERVER_IP=127.0.0.1setUSERNAME=sasetPASSWORD=YourPasswordsetDATABASE_NAME=YourDatabaseNamesetBACKUP_PATH="C:\Backup\YourBackup.bak"sq......