[Défi avancé MYSQL] Niuke.com : Insérer des enregistrements, mettre à jour des enregistrements et supprimer des enregistrements

Insérer un enregistrement :

普通插入(全字段):insert into table_name values(value1,vaule2,...);
普通插入(限定字段):insert into table_name (col1,col2,...) values (value1,value2,...);
多条一次性插入:insert into table_name(col1,col2,...) values (value1_1,value1_2,...),(value2_1,value2_2,...),..;
从另一个表导入:insert into table_name select *from table_name1 [where key=value]
带更新的插入:replace into table_name select *from table_name1 [where key=value]
(检测主键或唯一性索引键重复就删除原记录后重新插入)

 

Exemple 1:

La première colonne est la colonne de clé primaire à incrémentation automatique, les deux dernières colonnes peuvent être vides pour l'heure de soumission et le score, et les autres ne sont pas vides. 

Si la table insérée a une clé primaire auto-incrémentée, ce qui signifie que vous n'avez pas besoin de la remplir manuellement, elle augmentera automatiquement avec le nombre de lignes de la table.

Ainsi, lors de l'insertion de données

Méthode 1 : Spécifiez le nom de la colonne insérée, n'écrivez pas les données de la colonne id et laissez-la s'incrémenter automatiquement

insert into exam_record(uid,exam_id,start_time,submit_time,score)
values (1001,9001,'2021-09-01 22:11:12','2021-09-01 23:01:12',90),
(1002,9002,'2021-09-04 07:01:02',null,null);

Méthode 2 : Définissez la valeur de id sur null ou 0, afin que MYSQL traite la colonne id auto-incrémentée par elle-même

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);

Méthode 3 : Remplissez directement la valeur de l'identifiant, utilisée uniquement lorsqu'il n'y a pas beaucoup de données insérées

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);

Exemple 2 :

La nouvelle table exam_record_before_2021 a été créée, utilisez donc insert into

La première colonne est une colonne clé à incrémentation automatique, qui ne peut pas être copiée directement

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

 Exemple trois :

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

mise à jour de l'enregistrement :

update 表名 set 列名=. [where] 

Exemple 1:

 

update examination_info set tag="Python" where tag="PYTHON"

Exemple 2 :

 

 

update exam_record 
set submit_time="2099-01-01 00:00:00",
    score=0 
where  score is null and start_time<'2021-09-01';

Supprimer l'enregistrement

根据条件删除: delete from tb [where][order by][limit ]
全部删除:(表清空,包含自增计数器重置)truncate tb;

Exemple 1: 

timestampdiff(interval,start,end)计算start和end的时间差,单位以指定的interval为准
常用可选:
second 秒
minutec分钟
hour 小时
day 天数
month 月数
year 年数
delete from exam_record
where timestampdiff(minute,start_time,submit_time)<5
and score<60;

Exemple 2 : Le tableau est identique à l'exemple 1

delete from exam_record
where submit_time is null or timestampdiff(minute,start_time,submit_time)<5 
order by start_time
limit 3;

 Il existe trois conditions de filtre principales pour les informations à supprimer :

L'heure d'achèvement est vide et la différence d'une minute entre l'heure d'achèvement et le temps de réponse est inférieure à 5. Sur la base des informations ci-dessus, le tri est effectué et le temps de réponse est dans le top 3.

Ordre d'exécution : de, où, trier par, limiter, supprimer


 Exemple trois :

truncate table exam_record;

Je suppose que tu aimes

Origine blog.csdn.net/m0_52043808/article/details/124155989
conseillé
Classement