insérer un enregistrement

Insérer des enregistrements

Il existe deux syntaxes de base pour insérer des enregistrements

Insérer une syntaxe de base

QQ截图20161009153143.png

Insérer la grammaire de base 2

QQ截图20161009153225.png

Explication

Grammaire de base 1 et grammaire de base La différence entre 2 est :

1 Pour l'instruction d'insertion de la syntaxe de base 1, il faut insérer autant de valeurs qu'il y a de champs dans la table. Personne ne peut être plus et personne ne peut être moins. S'il existe une valeur par défaut et que vous ne souhaitez pas la transmettre, vous pouvez écrire null.

2. Dans la syntaxe de base 2, sauf s'il y a des champs obligatoires, les valeurs doivent être écrites. Si vous ne souhaitez pas écrire de valeur par défaut, vous pouvez l'ignorer. mysql complétera automatiquement la valeur par défaut.

3. Dans la syntaxe de base 2, l'ordre des champs utilisateur (id, nom d'utilisateur, sexe) est l'ordre des valeurs.

Supposons qu'il existe une table appelée table utilisateur. Nous décrivons les champs, les descriptions des champs, les types et les états facultatifs et obligatoires des champs. La structure de la table est la suivante :

QQ截图20161009153254.png<. 🎜>

Écrivez l'instruction d'insertion dans le tableau ci-dessus selon la syntaxe de base :

insert into user values(null,'王开 ','php@163.com',null ,1);

Remarque

1 Il n'est pas nécessaire de spécifier le nom du champ, mais l'ordre après les valeurs. ​​doit être cohérent avec le tri des champs du tableau.

2. Les champs avec des valeurs par défaut n'ont pas besoin d'être écrits, alors les valeurs par défaut seront utilisées.

3. S'il existe une valeur par défaut ou un champ nullable et que vous ne souhaitez pas transmettre de valeur spécifique, vous pouvez écrire null.

4. Le format des données doit être cohérent avec le format de données spécifié dans le tableau.

Écrivez l'instruction d'insertion dans le tableau ci-dessus selon la syntaxe de base 2 :

insert into user(username,sex) values('王开',1);

Remarque

1 Les champs avec des ID à incrémentation automatique n'ont pas besoin de transmettre une valeur. . Chaque fois que ceci est inséré, la valeur du champ augmentera automatiquement de 1.

2. Les champs avec des valeurs par défaut et des valeurs nullables n'ont pas besoin d'être transmis

3 En fonction de l'ordre d'insertion de l'utilisateur de la table (nom d'utilisateur, sexe)

. 4. Syntaxe de base La seconde est l'utilisation la plus courante

Variation de la syntaxe de base : insérer plusieurs enregistrements à la fois

insert into user(username,password,sex)
 values('黄晓明', 'abcdef', 1),
 ( 'angelababy', 'bcdeef', 0),
 ( '陈赫', '123456', 1),
 ('王宝强', '987654', 1);

Après avoir inséré l'enregistrement, renvoyez l'ID de l'enregistrement

Mysql提供了一个LAST_INSERT_ID()的函数。
mysql> SELECT LAST_INSERT_ID();  -> 195

En termes simples, cette fonction renvoie la valeur du champ auto-incrémenté dans la table de l'enregistrement inséré. Généralement, nous nommons l'ID du champ auto-incrémenté. Cela renverra la valeur ID de l’enregistrement qui vient d’être inséré.

Méthode d'implémentation MySQL consistant à insérer un enregistrement lorsqu'il n'existe pas puis à le mettre à jour s'il existe

mysql> truncate `200702`; 
 Query OK, 0 rows affected (0.01 sec) 
 mysql> select * from `200702`; 
 Empty set (0.01 sec) 
 mysql> insert into `200702` (`domain`, `2nd_domain`, `tld`, `query_ns1`, `query_ns2`, `report_date`) values ('dnspod.com', 'dnspod', 'com', 1000, 2000, '2007-02-04') ON DUPLICATE KEY UPDATE `query_ns1` = `query_ns1` + 1000, `query_ns2` = `query_ns2` + 2000; 
 Query OK, 1 row affected (0.00 sec)

Bien sûr, lors de la création d'une table, n'oubliez pas de créer un unique

UNIQUE KEY `domain` (`domain`,`report_date`)

pour le domaine


Formation continue
||
<?php echo "Hello Mysql"; ?>
soumettreRéinitialiser le code
  • Recommandations de cours
  • Téléchargement du didacticiel