La mise à jour MySQL est une requête de mise à jour complexe. MISE À JOUR de la syntaxe. Exemple de mise à jour d'une colonne



Le contenu de l'article
1. Les requêtes MySQL les plus simples
2. Requêtes SELECT simples
3. Requêtes simples INSERT (nouvelle entrée)
4. Requêtes simples de MISE À JOUR (écraser, ajouter)
5. Requêtes simples DELETE (suppression d'enregistrement)
6. Requêtes DROP simples (suppression de table)
7. Requêtes MySQL complexes
8. Requêtes MySQL et variables PHP

1. Les requêtes SQL les plus simples

1. Affiche une liste de TOUTES les bases de données.

AFFICHER les bases de données ;
2. Répertorie TOUTES les tables de la base de données base_name.

SHOW tables dans base_name ;

2. Requêtes SELECT simples vers la base de données MySQL

SÉLECTIONNER– une requête qui sélectionne les données existantes de la base de données. Vous pouvez spécifier des paramètres de sélection spécifiques pour la sélection. Par exemple, l'essence de la requête en russe ressemble à ceci : SÉLECTIONNER telle ou telle colonne DE telle ou telle table OÙ le paramètre de telle ou telle colonne est égal à la valeur.

1. Sélectionne TOUTES les données dans la table tbl_name.

SELECT * FROM nom_table ;
2. Affiche le nombre d'enregistrements dans la table tbl_name.

SELECT count(*) FROM nom_table ;
3. Sélectionne (SELECT) dans (FROM) la table tbl_name limit (LIMIT) 3 enregistrements, en commençant par 2.

SELECT * FROM nom_table LIMIT 2,3;
4. Sélectionne (SELECT) TOUS (*) les enregistrements de la table (FROM) tbl_name et les trie (ORDER BY) par champ id dans l'ordre.

SELECT * FROM nom_table ORDER BY id ;
5. Sélectionne (SELECT) TOUS les enregistrements de (FROM) la table tbl_name et les trie (ORDER BY) par le champ id dans l'ordre INVERSE.

SELECT * FROM nom_table ORDER BY id DESC ;
6. Sélectionne ( SÉLECTIONNER) TOUS (*) enregistrements de ( DEPUIS) les tables utilisateurs et les trie ( COMMANDÉ PAR) sur le terrain identifiant par ordre croissant, limite ( LIMITE) les 5 premières entrées.

SELECT * FROM utilisateurs ORDER BY id LIMIT 5 ;
7. Sélectionne tous les enregistrements de la table utilisateurs, où est le champ nom de famille correspond à la valeur Géna.

SELECT * FROM utilisateurs WHERE fname="Gena";
8. Sélectionne tous les enregistrements de la table utilisateurs, où la valeur du champ nom de famille commencer avec Ge.

SELECT * FROM utilisateurs WHERE fname LIKE "Ge%" ;
9. Sélectionne tous les enregistrements de la table utilisateurs, Où nom de famille se termine par n / A, et trie les enregistrements par ordre croissant de valeur identifiant.

SELECT * FROM utilisateurs WHERE fname LIKE "%na" ORDER BY id ;
10. Sélectionne toutes les données des colonnes nom de famille, Nom de la table utilisateurs.

SELECT fname, lname FROM utilisateurs ;

11. Disons que vous avez un pays dans votre table de données utilisateur. Donc, si vous souhaitez afficher UNIQUEMENT une liste de valeurs apparaissant (de sorte que, par exemple, la Russie ne soit pas affichée 20 fois, mais une seule fois), alors nous utilisons DISTINCT. Cela sortira la Russie, l’Ukraine et la Biélorussie de la masse des valeurs répétitives. Ainsi, d'après le tableau utilisateurs haut-parleurs pays TOUTES les valeurs UNIQUES seront affichées

SÉLECTIONNEZ un pays DISTINCT DES utilisateurs ;
12. Sélectionne TOUTES les données de ligne du tableau utilisateursâge a les valeurs 18,19 et 21.

SELECT * FROM utilisateurs WHERE age IN (18,19,21);
13. Sélectionne la valeur MAXIMUM âge dans la table utilisateurs. Autrement dit, si vous avez la plus grande valeur dans votre table âge(à partir de l'âge anglais) est 55, alors le résultat de la requête sera 55.

SELECT max(age) FROM utilisateurs ;
14. Sélectionnez les données du tableau utilisateurs par champs nom Et âgeâge prend la plus petite valeur.

SELECT nom, min(age) FROM utilisateurs ;
15. Sélectionnez les données du tableau utilisateurs sur le terrain nomidentifiant DIFFÉRENT DE 2.

SELECT nom FROM utilisateurs WHERE id!="2";

3. Requêtes simples INSERT (nouvelle entrée)

INSÉRER– une requête qui permet d’insérer INITIALEMENT un enregistrement dans la base de données. Autrement dit, il crée un NOUVEL enregistrement (ligne) dans la base de données.

1. Fait nouvelle entrée dans la table utilisateurs, dans le champ nom insère Sergey, et sur le terrain âge insère 25. Ainsi, une nouvelle ligne avec ces valeurs est ajoutée au tableau. S'il y a plus de colonnes, les colonnes restantes resteront soit vides, soit avec des valeurs par défaut.

INSÉRER DANS LES VALEURS des utilisateurs (nom, âge) ("Sergey", "25");

4. Requêtes simples UPDATE sur la base de données MySQL

MISE À JOUR– une requête qui vous permet de RÉSERVER les valeurs des champs ou d’AJOUTER quelque chose à une ligne déjà existante dans la base de données. Par exemple, il existe une ligne toute faite, mais le paramètre d'âge doit y être réécrit, car il a changé au fil du temps.

1. Dans le tableau utilisateurs âge devient 18.

MISE À JOUR des utilisateurs SET age = "18" WHERE id = "3" ;
2. Tout est pareil que dans la première requête, cela montre simplement la syntaxe de la requête, où deux champs ou plus sont écrasés.
Dans la table utilisateurs OÙ l'identifiant est égal à 3 valeurs de champ âge aura 18 ans et pays Russie.

MISE À JOUR des utilisateurs SET age = "18", country = "Russie" WHERE id = "3" ;

5. Requêtes simples DELETE (suppression d'enregistrement) vers la base de données MySQL

SUPPRIMER– une requête qui supprime une ligne d'une table.

1. Supprime une ligne du tableau utilisateursidentifiant est égal à 10.

DELETE FROM utilisateurs WHERE id = "10" ;

6. Requêtes DROP (suppression de table) simples vers une base de données MySQL

BAISSE– une requête qui supprime une table.

1. Supprime le tableau entier nom_table.

DROP TABLE nom_table ;

7. Requêtes complexes vers la base de données MySQL

Requêtes intéressantes qui peuvent être utiles même aux utilisateurs expérimentés

SELECT id, nom, pays FROM utilisateurs, administrateurs WHERE TO_DAYS (NOW()) - TO_DAYS (registration_date)<= 14 AND activation != "0" ORDER BY registration_date DESC;
Cette requête complexe SELECTS les colonnes identifiant, nom, pays DANS LES TABLEAUX utilisateurs, administrateursDate d'inscription(date) pas plus vieux 14 jours où je Activation INÉGAL 0 , Trier par Date d'inscription dans l'ordre inverse (le nouveau en premier).

MISE À JOUR des utilisateurs SET age = "18+" WHERE age = (SELECT age FROM users WHERE male = "man");
Ci-dessus est un exemple de ce qu'on appelle demande dans une demande en SQL. Mettez à jour l'âge des utilisateurs à 18 ans et plus, le sexe étant masculin. Je ne recommande pas de telles options de demande. Par expérience personnelle, je dirai qu'il est préférable d'en créer plusieurs distincts - ils seront traités plus rapidement.

8. Requêtes de bases de données MySQL et PHP

Dans les requêtes MySQL dans une page PHP, vous pouvez insérer des variables comme valeurs comparées, etc. Quelques exemples

1. Sélectionne tous les enregistrements de la table utilisateurs, où est le champ nom de famille correspond à la valeur de la variable $nom.

SELECT * FROM utilisateurs WHERE fname="$name";
2. Dans le tableau utilisateurs OÙ l'identifiant est égal à 3 valeurs de champ âge modifie la valeur de la variable $age.

UPDATE utilisateurs SET age = "$age" WHERE id = "3";

Attention! Si vous êtes intéressé par un autre exemple, écrivez une question dans les commentaires !

Dans ce tutoriel, vous apprendrez à utiliser Instruction MySQL UPDATE avec syntaxe et exemples.

Description

Instruction MySQL UPDATE utilisé pour mettre à jour les enregistrements existants dans une table de la base de données Données MySQL. Il existe trois syntaxes pour l'instruction UPDATE, selon le type de mise à jour que vous souhaitez effectuer.

Syntaxe

Une forme simple de syntaxe pour l'instruction UPDATE lors de la mise à jour d'une seule table dans MySQL :

Désormais, la syntaxe complète de l'instruction MySQL UPDATE lors de la mise à jour d'une seule table est :

OU
La syntaxe de l'instruction UPDATE lors de la mise à jour d'une table avec les données d'une autre table dans MySQL est :

OU
La syntaxe MySQL pour l'instruction UPDATE lors de la mise à jour de plusieurs tables est la suivante :

Paramètres ou arguments

LOW_PRIORITY - facultatif. Si LOW_PRIORITY est spécifié, la mise à jour sera retardée jusqu'à ce qu'il n'y ait plus de processus lisant la table. LOW_PRIORITY peut être utilisé avec les tables MyISAM, MEMORY et MERGE qui utilisent le verrouillage au niveau de la table.
IGNORER - facultatif. Si IGNORE est fourni, toutes les erreurs rencontrées lors de la mise à jour sont ignorées. Si une mise à jour sur une ligne viole une clé primaire ou un index unique, la mise à jour sur cette ligne échouera.
column1, column2 sont les colonnes que vous souhaitez mettre à jour.
expression1 , expression2 — nouvelles valeurs pour l'attribution de column1 , column2 . Ainsi, column1 reçoit la valeur de expression1 , column2 reçoit la valeur de expression2 , et ainsi de suite.
Conditions OÙ - facultatives. Conditions qui doivent être remplies pour que la mise à jour ait lieu.
Expression ORDER BY - facultatif. Il peut être utilisé conjointement avec LIMIT pour trier les enregistrements de manière appropriée tout en limitant le nombre d'enregistrements à mettre à jour.
LIMIT number_rows - facultatif. Si LIMIT est spécifié, il contrôle le nombre maximum d'enregistrements à mettre à jour dans la table. Le nombre maximum d'enregistrements spécifié dans le fichier number_rows sera mis à jour dans le tableau.

Exemple de mise à jour d'une colonne

Regardons un exemple très simple de requête MySQL UPDATE.

Dans cet exemple MySQL, UPDATE a mis à jour le champ last_name en « Ford » dans la table clients, où customer_id = 500.

Exemple de mise à jour de plusieurs colonnes

Regardons l'exemple MySQL UPDATE, où vous pouvez mettre à jour plusieurs colonnes à l'aide d'une seule instruction UPDATE.

Si vous souhaitez mettre à jour plusieurs colonnes, vous pouvez le faire en séparant les paires colonne/valeur par des virgules.
Cet exemple d'instruction MySQL UPDATE a mis à jour l'état sur « Nevada » et customer_rep sur 23, où customer_id est supérieur à 200.

Exemple de mise à jour d'une table avec les données d'une autre table

Regardons l'exemple UPDATE, qui montre comment mettre à jour une table avec les données d'une autre table dans MySQL.

MySQL

Cet exemple de MISE À JOUR mettra à jour uniquement la table clients pour tous les enregistrements où customer_id est supérieur à 5 000. Lorsque le nom_fournisseur de la table des fournisseurs correspond au nom_client de la table clients, la ville de la table des fournisseurs sera copiée dans le champ ville de la table clients.

Ce tutoriel MySQL explique comment utiliser MySQL Instruction MISE À JOUR avec syntaxe et exemples.

Syntaxe

Dans sa forme la plus simple, la syntaxe de l'instruction UPDATE lors de la mise à jour d'une table dans MySQL est :

UPDATE table SET colonne1 = expression1, colonne2 = expression2, ... ;

Cependant, la syntaxe complète de l'instruction MySQL UPDATE lors de la mise à jour d'une table est la suivante :

UPDATE [ LOW_PRIORITY ] [ IGNORE ] table SET colonne1 = expression1, colonne2 = expression2, ... ] ;

La syntaxe de l'instruction UPDATE lors de la mise à jour d'une table avec les données d'une autre table dans MySQL est :

UPDATE table1 SET colonne1 = (SELECT expression1 FROM table2 WHERE conditions) ;

La syntaxe de l'instruction MySQL UPDATE lors de la mise à jour de plusieurs tables est la suivante :

UPDATE table1, table2, ... SET colonne1 = expression1, colonne2 = expression2, ... WHERE table1.column = table2.column ET conditions ;

Paramètres ou arguments

LOW_PRIORITY Facultatif. Si LOW_PRIORITY est fourni, la mise à jour sera retardée jusqu'à ce qu'il n'y ait plus de processus lisant à partir du tableau. LOW_PRIORITY peut être utilisé avec les tables MyISAM, MEMORY et MERGE qui utilisent le verrouillage au niveau de la table. IGNORER Facultatif. Si IGNORE est fourni, toutes les erreurs rencontrées lors de la mise à jour sont ignorées. Si une mise à jour sur une ligne entraîne une violation d'une clé primaire ou d'un index unique, la mise à jour sur cette ligne n'est pas effectuée. column1, column2 Les colonnes que vous souhaitez mettre à jour. expression1, expression2 Les nouvelles valeurs à attribuer au colonne1, colonne2. Donc colonne1 expression1, colonne2 se verrait attribuer la valeur de expression2, et ainsi de suite. Conditions OÙ Facultatif. Les conditions qui doivent être remplies pour que la mise à jour s'exécute. Expression ORDER BY Facultatif. Il peut être utilisé en combinaison avec LIMIT pour trier les enregistrements de manière appropriée lors de la limitation du nombre d'enregistrements à mettre à jour. LIMIT number_rows Facultatif. Si LIMIT est fourni, il contrôle le nombre maximum d'enregistrements à mettre à jour dans la table. Au maximum, le nombre d'enregistrements spécifié par nombre_lignes sera mis à jour dans le tableau.

Exemple – Mettre à jour une seule colonne

Regardons un exemple de requête MySQL UPDATE très simple.

UPDATE clients SET last_name = "Anderson" WHERE customer_id = 5000 ;

Cet exemple MySQL UPDATE mettrait à jour le nom de familleà "Anderson" dans le clients table où le N ° de client est 5000.

Exemple - Mettre à jour plusieurs colonnes

Examinons un exemple MySQL UPDATE dans lequel vous souhaiterez peut-être mettre à jour plusieurs colonnes avec une seule instruction UPDATE.

UPDATE clients SET state = "Californie", customer_rep = 32 WHERE customer_id > 100 ;

Lorsque vous souhaitez mettre à jour plusieurs colonnes, tu peux Pour ce faire, séparez les paires colonne/valeur par des virgules.

Étatà la « Californie » et au représentant_clientà 32 où le N ° de client est supérieur à 100.

Exemple - Mettre à jour la table avec les données d'une autre table

Regardons un exemple UPDATE qui montre comment mettre à jour une table avec les données d'une autre table dans MySQL.

MISE À JOUR des clients
DÉFINIR la ville = (SELECT ville
DES fournisseurs
OÙ fournisseurs.nom_fournisseur = clients.nom_client)
OÙ id_client > 2000 ;

Cet exemple UPDATE mettrait à jour uniquement le clients tableau pour tous les enregistrements où le N ° de client est supérieur à 2000. Lorsque le Nom du fournisseur du Fournisseurs le tableau correspond au nom_client du clients tableau, le ville de la table des fournisseurs serait copié dans le ville champ dans le clients tableau.

Exemple - Mettre à jour plusieurs tables

Examinons un exemple MySQL UPDATE dans lequel vous souhaiterez peut-être effectuer une mise à jour impliquant plusieurs tables dans une seule instruction UPDATE.

UPDATE clients, fournisseurs SET clients.city = fournisseurs.ville WHERE clients.customer_id = fournisseurs.supplier_id;

Cet exemple d'instruction MySQL UPDATE mettrait à jour le ville champ dans le clients table au ville du Fournisseurs table où le N ° de client correspond à ID du fournisseur.

Si nous devons modifier ou mettre à jour des données dans MySQL, nous pouvons utiliser la commande SQL UPDATE pour fonctionner. ,

grammaire

Voici la commande UPDATE pour modifier la syntaxe SQL générale des données de feuille MySQL :

UPDATE nom_table SET field1=nouvelle-valeur1, field2=nouvelle-valeur2

  • Vous pouvez mettre à jour un ou plusieurs champs en même temps.
  • Vous pouvez spécifier n'importe quelle condition dans la clause WHERE.
  • Vous pouvez également mettre à jour les données dans un tableau séparé.

Lorsque vous devez mettre à jour les données spécifiées dans les lignes d'un tableau, INEKE est très utile.

Ligne de commande pour mettre à jour les données

Ci-dessous, nous mettrons à jour w3big_tbl spécifié dans le tableau de données en utilisant Commandes SQL METTRE À JOUR INEKE :

exemples

L'exemple suivant mettra à jour la table de données avec la valeur de champ w3big_title w3big_id 3 :

# mysql -u root -p mot de passe ; Entrez le mot de passe : ******* mysql> utilisez w3big ; Base de données modifiée mysql> UPDATE w3big_tbl -> SET w3big_title="Apprentissage JAVA" -> WHERE w3big_id=3; Query OK, 1 row affected (0.04 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> !}

Utiliser un script PHP pour mettre à jour les données

Fonction PHP à utiliser mysql_query() pour exécuter Instructions SQL, vous pouvez utiliser l'instruction UPDATE SQL sinon INEKE ne s'applique pas.

Cette fonction dans MySQL> ligne de commande l'effet de l'exécution d'instructions SQL est le même.

exemples

L'exemple suivant mettra à jour les données w3big_id dans le champ w3big_title 3.

Syntaxe de MISE À JOUR

Syntaxe de table unique :
MISE À JOUR shya_tabletsh
ENSEMBLE nom_colonne1=expression1 [, Nom_ colonne2=expression2 ...]


Syntaxe multi-table :

UPDATE nom_table [, nom_table...] SET nom_colonne 1=expression1 [,nom_colonne2=expression2...]
L'instruction UPDATE met à jour les colonnes des lignes de table existantes avec de nouvelles valeurs. La clause SET liste les colonnes à modifier et les valeurs à leur attribuer. Si la clause WHERE est spécifiée, elle spécifie quelles lignes doivent être mises à jour. Sinon, toutes les lignes du tableau sont mises à jour. Si la clause ORDER BY est spécifiée, les lignes seront mises à jour dans l'ordre spécifié. La construction LIMIT impose une limite sur le nombre de lignes à mettre à jour.
L'instruction UPDATE prend en charge les modificateurs suivants :

  1. Si le mot clé LOW_PRIORITY est spécifié, la mise à jour est retardée jusqu'à ce que tous les autres clients aient fini de lire la table.
  2. Si le mot-clé IGNORE est spécifié, l'opération de mise à jour n'échouera pas même si des erreurs de clé en double se produisent. Les lignes provoquant des conflits ne seront pas mises à jour.

Si vous utilisez les colonnes d'une table nom de la table dans les expressions, UPDATE utilise la valeur actuelle des colonnes. Par exemple, déclaration suivante incrémente la colonne d'âge de un :
mysql> UPDATE persondata SET age=age+l;
Les affectations dans UPDATE se font de gauche à droite. Par exemple, l'instruction suivante double la valeur de la colonne age puis l'incrémente de un : mysql> MISE À JOUR des données personnelles SET age=age*2, age=age+l ;
Si vous définissez la valeur d'une colonne quelle qu'elle soit, MySQL le détecte et n'effectue pas de mise à jour.
Si vous mettez à jour une colonne qui a été déclarée NOT null en NULL, elle est définie sur la valeur par défaut appropriée au type de données particulier et incrémente le compteur d'avertissements de un. La valeur par défaut est 0 pour les colonnes numériques, la chaîne vide ("") pour les colonnes de caractères et "null" pour les colonnes de date et d'heure.
UPDATE renvoie le nombre de lignes réellement mises à jour. Dans MySQL 3.22 et versions ultérieures, la fonction mysql_info() interface logicielle AVEC API renvoie le nombre de lignes correspondant à la requête et qui ont été mises à jour, ainsi que le nombre d'avertissements survenus lors de la MISE À JOUR.
Depuis MySQL 3.23, vous pouvez utiliser la limite nombre de lignes pour limiter la portée de UPDATE.
La construction LIMIT fonctionne comme suit :

  1. Avant MySQL 4.0.13, LIMIT était une limite sur le nombre de lignes traitées. L'opérateur s'est arrêté dès qu'il a été mis à jour nombre de lignes lignes qui satisfont à la condition WHERE.
  2. Depuis MySQL 4.0.13, limit est la limite de correspondance de chaîne. L'opérateur sort dès qu'il trouve nombre de lignes lignes qui satisfont à la condition WHERE, qu'elles aient été ou non réellement mises à jour.

Si l'instruction UPDATE inclut une clause order by, les lignes sont mises à jour dans l'ordre spécifié par cette clause. ORDER BY peut être utilisé à partir de MySQL 4.0.0.
Depuis MySQL 4.0.0, il est également possible d'effectuer des opérations UPDATE qui opèrent sur plusieurs tables à la fois :
UPDATE items,month SET items.price=month.price OÙ items.id-month. id/ Cet exemple montre une jointure interne utilisant l'opérateur virgule, mais les UPDATE multi-tables peuvent utiliser n'importe quel type de jointure autorisé dans Instruction SELECT, par exemple, LEFT JOIN.
Sur une note !

  • Vous ne pouvez pas utiliser ORDER BY ou LIMIT dans les instructions UPDATE multi-tables.
Avant MySQL 4.0.18, il était nécessaire d'avoir le privilège UPDATE sur toutes les tables utilisées dans une UPDATE multi-tables, même si elles n'étaient pas réellement mises à jour. À partir de MySQL 4.0.18, les tables dont les colonnes sont uniquement lues mais non mises à jour doivent uniquement disposer du privilège SELECT.
Si vous utilisez une instruction UPDATE multi-tables sur des tables InnoDB dont les contraintes de clé étrangère sont définies, l'optimiseur MySQL peut les traiter dans un ordre différent de celui spécifié par leurs relations parent-enfant. Dans ce cas, la déclaration échouera et la transaction sera annulée. Au lieu de cela, mettez à jour une seule table et comptez sur la propriété ON UPDATE, qui fournit le moteur InnoDB pour mise à jour automatique tableaux associés.


Haut