ホームページ >データベース >SQL >SQL の追加、削除、変更操作の詳細な紹介

SQL の追加、削除、変更操作の詳細な紹介

WBOY
WBOY転載
2022-06-27 14:01:592724ブラウズ

この記事では、SQL に関する関連知識を提供します。主に、レコードの挿入、レコードの更新、レコードの削除などの追加、削除、および変更操作に関連する問題を整理します。以下は見てみましょう。 、皆さんのお役に立てれば幸いです。

SQL の追加、削除、変更操作の詳細な紹介

推奨学習: 「

SQL チュートリアル

レコードの挿入


SQL の追加、削除、変更操作の詳細な紹介##SQL1 レコードの挿入 (1)

テーブル 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中,表已建好,其结构如下,请用一条语句将这两条记录插入表中。

该题最后会通过执行SELECT uid, exam_id, start_time, submit_time, score FROM 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;


 答案
insert INTO exam_record 
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);
SQL の追加、削除、変更操作の詳細な紹介

SQL の追加、削除、変更操作の詳細な紹介SQL2 レコードの挿入 (2)

テーブル Exam_record 構造体


#

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

我们已经创建了一张新表exam_record_before_2021用来备份2021年之前的试题作答记录,
结构和exam_record表一致,请将2021年之前的已完成了的试题作答纪录导入到该表。
后台会通过执行"SELECT * FROM exam_record_before_2021;"语句来对比结果


建表语句
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);


 答案
INSERT INTO exam_record_before_2021
SELECT NULL,uid, exam_id, start_time, submit_time, score
FROM exam_record
WHERE submit_time <img src="https://img.php.cn/upload/article/000/000/067/c3d7059c4d6c87a53e1f5fbf8e19a73f-3.png" alt="SQL の追加、削除、変更操作の詳細な紹介"><p><img src="https://img.php.cn/upload/article/000/000/067/c4d8aa2b02d19a84beed2f83cf899099-4.png" alt="SQL の追加、削除、変更操作の詳細な紹介">## SQL3 挿入レコード (3)</p><h4><strong>検査情報テーブル Exam_info 構造体</strong></h4><p></p><pre class="brush:php;toolbar:false"> 题目描述
现在有一套ID为9003的高难度SQL试卷,时长为一个半小时,
请你将 2021-01-01 00:00:00 作为发布时间插入到试题信息表examination_info,不管该ID试卷是否存在,都要插入成功,请尝试插入它。
后台会通过执行 SELECT exam_id,tag,difficulty,duration,release_time FROM examination_info 语句来对比结果。

 建表语句
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;
INSERT INTO examination_info(exam_id,tag,difficulty,duration,release_time) VALUES
(9001, 'SQL', 'hard', 60, '2020-01-01 10:00:00'),
(9002, '算法', 'easy', 60, '2020-01-01 10:00:00'),
(9003, 'SQL', 'medium', 60, '2020-01-02 10:00:00'),
(9004, '算法', 'hard', 80, '2020-01-01 10:00:00');

 答案
replace into examination_info
(id,exam_id,tag,difficulty,duration,release_time)
values(null,9003,'SQL','hard',90,'2021-01-01 00:00:00');

SQL の追加、削除、変更操作の詳細な紹介

#2 レコード更新SQL の追加、削除、変更操作の詳細な紹介

SQL4 レコード更新 (1)

現在、試験用紙情報テーブル Exam_info が存在します。テーブル構造は次のとおりです:

 题目描述
请把examination_info表中tag为PYTHON的tag字段全部修改为Python。
后台会通过执行'SELECT exam_id,tag,difficulty,duration,release_time FROM examination_info;'语句来对比结果。

 建表语句
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;
INSERT INTO examination_info(exam_id,tag,difficulty,duration,release_time) VALUES
(9001, 'SQL', 'hard', 60, '2020-01-01 10:00:00'),
(9002, 'python', 'easy', 60, '2020-01-01 10:00:00'),
(9003, 'Python', 'medium', 80, '2020-01-01 10:00:00'),
(9004, 'PYTHON', 'hard', 80, '2020-01-01 10:00:00');

 答案
UPDATE examination_info
set tag ='Python' WHERE tag='PYTHON';


SQL の追加、削除、変更操作の詳細な紹介

SQL5 更新レコード ( 2) SQL の追加、削除、変更操作の詳細な紹介

解答記録テーブル Exam_record テーブルの構造

 题目描述
现有一张试卷作答记录表exam_record,其中包含多年来的用户作答试卷记录,submit_time为 完成时间
请把exam_record表中2021年9月1日之前开始作答的未完成记录全部改为被动完成,
即:将完成时间改为'2099-01-01 00:00:00',分数改为0。

 建表语句
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;
INSERT INTO exam_record(uid,exam_id,start_time,submit_time,score) VALUES
(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', null, null),
(1002, 9002, '2021-09-05 19:01:01', '2021-09-05 19:40:01', 89),
(1003, 9001, '2021-09-02 12:01:01', null, null),
(1003, 9002, '2021-09-01 12:01:01', null, null);

 答案
UPDATE exam_record
set submit_time='2099-01-01 00:00:00',
    score=0
WHERE start_time<p><br><img src="https://img.php.cn/upload/article/000/000/067/fcb39cc7e5c93da4ccf4ba247c325d14-9.png" alt="SQL の追加、削除、変更操作の詳細な紹介"></p><p>3 レコードの削除<img src="https://img.php.cn/upload/article/000/000/067/fcb39cc7e5c93da4ccf4ba247c325d14-10.png" alt="SQL の追加、削除、変更操作の詳細な紹介"></p><h3><strong> SQL6 レコードの削除 (1) </strong></h3><h4> 解答記録テーブルの Exam_record テーブルの構造、start_time は試験用紙の開始時間、submit_time は提出時間、つまり、終了時刻<strong></strong>
</h4><pre class="brush:php;toolbar:false"> 题目描述
现有一张试卷作答记录表exam_record,其中包含多年来的用户作答试卷记录,
start_time是试卷开始时间
submit_time 是交卷,即结束时间
请删除exam_record表中作答时间小于5分钟整且分数不及格(及格线为60分)的记录;
后台会执行您的SQL,然后通过 SELECT * FROM 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;
INSERT INTO exam_record(uid, exam_id, start_time, submit_time, score) VALUES
(1001, 9001, '2020-01-01 22:11:12', '2020-01-01 23:16:12', 50),
(1001, 9002, '2020-01-02 09:01:01', '2020-01-02 09:06:00', 58),
(1002, 9001, '2021-05-02 10:01:01', '2021-05-02 10:05:58', 60),
(1002, 9002, '2021-06-02 19:01:01', '2021-06-02 19:05:01', 54),
(1003, 9001, '2021-09-05 19:01:01', '2021-09-05 19:40:01', 49),
(1003, 9001, '2021-09-05 19:01:01', '2021-09-05 19:15:01', 70),
(1003, 9001, '2021-09-06 19:01:01', '2021-09-06 19:05:01', 80),
(1003, 9002, '2021-09-09 07:01:02', null, null);

 答案
delete from exam_record
where timestampdiff(minute,start_time,submit_time) <p><br><img src="https://img.php.cn/upload/article/000/000/067/5b7c4e7ac7883ee97235b35a9f62dab9-11.png" alt="SQL の追加、削除、変更操作の詳細な紹介"></p> SQL7 レコードの削除 (2)<p><img src="https://img.php.cn/upload/article/000/000/067/5b7c4e7ac7883ee97235b35a9f62dab9-12.png" alt="SQL の追加、削除、変更操作の詳細な紹介"> 解答レコード テーブル Exam_record の構造は次のとおりです。 </p> <h4>#<pre class="brush:php;toolbar:false"> 题目描述
现有一张试卷作答记录表exam_record,其中包含多年来的用户作答试卷记录,start_time是试卷开始时间
submit_time 是交卷时间,即结束时间,如果未完成的话,则为空
请删除exam_record表中未完成作答或作答时间小于5分钟整的记录中,开始作答时间最早的3条记录。
后台会通过 SELECT * FROM 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;
INSERT INTO exam_record(uid, exam_id, start_time, submit_time, score) VALUES
(1001, 9001, '2020-01-01 22:11:12', '2020-01-01 23:16:12', 50),
(1001, 9002, '2020-01-02 09:01:01', '2020-01-02 09:06:00', 58),
(1001, 9002, '2020-01-02 09:01:01', '2020-01-02 09:05:01', 58),
(1002, 9001, '2021-05-02 10:01:01', '2021-05-02 10:06:58', 60),
(1002, 9002, '2021-06-02 19:01:01', null, null),
(1003, 9001, '2021-09-05 19:01:01', null, null),
(1003, 9001, '2021-09-05 19:01:01', null, null),
(1003, 9002, '2021-09-09 07:01:02', null, null);

 答案
delete from exam_record
where timestampdiff(minute, start_time, submit_time) 


SQL の追加、削除、変更操作の詳細な紹介

SQL8 レコードの削除 (3)

SQL の追加、削除、変更操作の詳細な紹介

試験問題解答記録テーブルの Exam_record テーブル構造

 题目描述
现有一张试卷作答记录表exam_record,其中包含多年来的用户作答试卷记录,
请删除exam_record表中所有记录,并重置自增主键。
后台会通过SELECT table_rows, auto_increment FROM information_schema.tables WHERE table_name='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;
INSERT INTO exam_record(uid, exam_id, start_time, submit_time, score) VALUES
(1001, 9001, '2020-01-01 22:11:12', '2020-01-01 23:16:12', 50),
(1001, 9002, '2020-01-02 09:01:01', '2020-01-02 09:06:00', 58);

 答案
TRUNCATE table  exam_record;

推奨学習:「
SQL チュートリアル SQL の追加、削除、変更操作の詳細な紹介>>

以上がSQL の追加、削除、変更操作の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。