赞
踩
目录
插入insert:
使用 INSERT 语句向数据库已有的表中插入一行或者多行元组数据。
两种语法形式:
INSERT…VALUES 语句
INSERT INTO <表名> [ <列名1> , … <列名n> ] VALUES [(值1)… , (值n) ];INSERT…SET 语句
INSERT INTO <表名> SET <列名1> = <值1>, <列名2> = <值2>, …
牛客后台会记录每个用户的试卷作答记录到exam_record表,现在有两个用户的作答记录详情如下:
用户1001在2021年9月1日晚上10点11分12秒开始作答试卷9001,并在50分钟后提交,得了90分;
用户1002在2021年9月4日上午7点1分2秒开始作答试卷9002,并在10分钟后退出了平台。
试卷作答记录表exam_record中,表已建好,其结构如下,请用一条语句将这两条记录插入表中。表结构:
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; TRUNCATE exam_record;表样例
exam_record
表:
Field Type Null Key Extra Default Comment id int(11) NO PRI auto_increment (NULL) 自增ID uid int(11) NO (NULL) 用户ID exam_id int(11) NO (NULL) 试卷ID start_time datetime NO (NULL) 开始时间 submit_time datetime YES (NULL) 提交时间 score tinyint(4) YES (NULL) 得分 输出
该题最后会通过执行SELECT uid, exam_id, start_time, submit_time, score FROM exam_record;来对比结果
Insert into exam_record (id,uid, exam_id, start_time, submit_time, score) values (null,1001, 9001, '2021-09-01 22:11:12', '2021-09-01 23:01:12', 90), (null,1002, 9002, '2021-09-04 07:01:02', NULL, NULL);
现有一张试卷作答记录表exam_record,结构如下表,其中包含多年来的用户作答试卷记录,由于数据越来越多,维护难度越来越大,需要对数据表内容做精简,历史数据做备份。
表结构:
表exam_record:
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;表样例
exam_record
表:
Field Type Null Key Extra Default Comment id int(11) NO PRI auto_increment (NULL) 自增ID uid int(11) NO (NULL) 用户ID exam_id int(11) NO (NULL) 试卷ID start_time datetime NO (NULL) 开始时间 submit_time datetime YES (NULL) 提交时间 score tinyint(4) YES (NULL) 得分 结果判定:
后台会通过执行"SELECT * FROM exam_record_before_2021;"语句来对比结果
insert into exam_record_before_2021 select null,uid, exam_id, start_time, submit_time, score from exam_record where year(submit_time) < '2021';
更新update
UPDATE:更新表中的数据。和INSERT的第二种用法相似。必须提供表名及SET表达式,在后面可以加WHERE以限制更新范围。
语法
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
现有一张试卷信息表examination_info,
请把examination_info表中tag为PYTHON的tag字段全部修改为Python。表结构:
请在这里写定义表结构的SQL语句。例如:
drop table if EXISTS examination_info; CREATE TABLE IF NOT EXISTS examination_info ( id int PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID', exam_id int UNIQUE NOT NULL COMMENT '试卷ID', tag varchar(32) COMMENT '类别标签', difficulty varchar(8) COMMENT '难度', duration int NOT NULL COMMENT '时长', release_time datetime COMMENT '发布时间' )CHARACTER SET utf8 COLLATE utf8_bin; TRUNCATE examination_info;表样例
请在这里给出上述表结构对应的表样例。例如
examination_info
表:
Field Type Null Key Extra Default Comment id int(11) NO PRI auto_increment (NULL) 自增ID exam_id int(11) NO UNI (NULL) 试卷ID tag varchar(32) YES (NULL) 类别标签 difficulty varchar(8) YES (NULL) 难度 duration int(11) NO (NULL) 时长 release_time datetime YES (NULL) 发布时间 结果判定:
后台会通过执行'SELECT exam_id,tag,difficulty,duration,release_time FROM examination_info;'语句来对比结果
update examination_info set tag="Python" where tag="PYTHON"
现有一张试卷作答记录表exam_record,其中包含多年来的用户作答试卷记录,结构如下表:
作答记录表exam_record:submit_time为 完成时间
请把exam_record表中2021年9月1日之前开始作答的未完成记录全部改为被动完成,即:将完成时间改为'2099-01-01 00:00:00',分数改为0。表结构:
请在这里写定义表结构的SQL语句。例如:
输出样例:
uid exam_id start_time submit_time score 1001 9001 2020-01-02 09:01:01 2020-01-02 09:21:01 80 1001 9002 2021-09-01 09:01:01 2021-09-01 09:21:01 90 1002 9001 2021-08-02 19:01:01 2099-01-01 00:00:00 0 1002 9002 2021-09-05 19:01:01 2021-09-05 19:40:01 89 1003 9001 2021-09-02 12:01:01 1003 9002 2021-09-01 12:01:01
update exam_record set submit_time = "2099-01-01 00:00:00",score=0 where start_time <"2021-09-01" and score is null
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。