Exemples de requêtes SQL vers la base de données MySQL. Exemples de requêtes SQL vers la base de données MySQL Paramètres ou arguments

Exemples de requêtes SQL vers la base de données MySQL. Exemples de requêtes SQL vers la base de données MySQL Paramètres ou arguments

11.05.2021

Ce tutoriel MySQL explique comment utiliser MySQL Instruction UPDATE 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 :

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 :

UPDATE table1, table2, ... SET colonne1 = expression1, colonne2 = expression2, ... WHERE table1.column = table2.column AND 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 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 entraîne une violation d'une clé primaire ou d'un index unique, la mise à jour sur cette ligne n'est pas effectuée. colonne1, colonne2 Les colonnes que vous souhaitez mettre à jour. expression1, expression2 Les nouvelles valeurs à affecter au colonne1, colonne2... Donc colonne1 expression1, colonne2 se verrait attribuer la valeur de expression2, etc. O conditions Facultatif. Les conditions qui doivent être remplies pour que la mise à jour s'exécute. ORDER BY expression 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 nombre_lignes Facultatif. Si LIMIT est fourni, il contrôle le nombre maximal 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 de mise à jour MySQL mettrait à jour le nom de familleà "Anderson" dans le les clients tableau où le N ° de client est de 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, vous pouvez le faire en séparant les paires colonne/valeur par des virgules.

Etat vers la "Californie" et le client_repà 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.

METTRE À JOUR les clients
SET ville = (SELECT ville
DE Fournisseurs
O fournisseurs.nom_fournisseur = clients.nom_client)
O customer_id> 2000 ;

Cet exemple UPDATE mettrait à jour uniquement le les clients table 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 les clients tableau, le ville de la table des fournisseurs serait copié dans le ville terrain dans le les clients table.

Exemple - Mettre à jour plusieurs tables

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

MISE À JOUR clients, fournisseurs SET clients.ville = fournisseurs.ville WHERE clients.id_client = fournisseurs.id_fournisseur;

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

Syntaxe de MISE À JOUR

Syntaxe à table unique :
METTRE À JOUR shya_tabltsh
ENSEMBLE nom_colonne1 = expression1 [, Nom_ colonne2 = expression2 ...]


Syntaxe multi-tables :

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 qui leur sont affectées. Si une clause WHERE est spécifiée, elle spécifie quelles lignes doivent être mises à jour. Sinon, toutes les lignes de la table sont mises à jour. Si ORDER BY est spécifié, les lignes seront mises à jour dans l'ordre spécifié. La clause LIMIT impose une limite au nombre de lignes mises à jour.
L'instruction UPDATE prend en charge les modificateurs suivants :

  1. Si le mot clé LOW_PRIORITY est spécifié, la MISE À JOUR est différé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'abandonnera pas, même si des erreurs de clé en double se produisent. Les lignes qui conduisent à des conflits ne seront pas mises à jour.

Si vous utilisez des colonnes d'un tableau nom de la table dans les expressions, UPDATE utilise la valeur actuelle des colonnes. Par exemple, l'instruction suivante incrémente la valeur de la colonne age de un :
mysql> UPDATE persondata SET age = age + l;
Les affectations UPDATE sont faites de gauche à droite. Par exemple, l'instruction suivante double la valeur de la colonne age, puis l'incrémente de un : mysql> UPDATE persondata SET age = age * 2, age = age + l;
Si vous définissez la valeur d'une colonne sur ce qu'elle est, MySQL le détecte et ne se met pas à jour.
Si vous mettez à jour une colonne qui a été déclarée NON NULL en NULL, elle est définie sur la valeur par défaut pour le type de données particulier et incrémente le nombre d'avertissements de un. La valeur par défaut est 0 pour les colonnes numériques, une chaîne vide ("") pour les colonnes de caractères et zéro pour les colonnes de date et d'heure.
UPDATE renvoie le nombre de lignes qui ont réellement été mises à jour. Dans MySQL 3.22 et versions ultérieures, la fonction mysql_info () de l'API C API renvoie le nombre de lignes correspondant à la requête et mises à jour, ainsi que le nombre d'avertissements générés lors de la MISE À JOUR.
Depuis MySQL 3.23 limite peut être utilisé nombre de lignes limiter la portée de la MISE À JOUR.
La clause LIMIT fonctionne comme suit :

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

Si une 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é depuis MySQL 4.0.0.
À partir de 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 WHERE items.id-month. id / Cet exemple illustre une jointure interne utilisant l'opérateur virgule, mais les UPDATE multi-tables peuvent utiliser n'importe quel type de jointure autorisé dans l'instruction SELECT, telle que LEFT JOIN.
Sur une note !

  • Vous ne pouvez pas utiliser ORDER BY ou LIMIT sur des 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, pour de telles tables dont les colonnes ne sont que lues mais pas mises à jour, vous n'avez besoin que du privilège SELECT.
Si vous utilisez une instruction UPDATE multi-tables sur des tables InnoDB qui ont des contraintes de clé étrangère définies, l'optimiseur MySQL peut les traiter dans un ordre différent de leur relation parent-enfant. Dans ce cas, l'instruction échouera et la transaction sera annulée. Mettez à jour une table à la place et comptez sur la propriété ON UPDATE fournie par le moteur InnoDB mise à jour automatique tableaux associés. UPDATE tbl_name SET col_name1 = expr1 [, col_name2 = expr2, ...]

L'instruction UPDATE met à jour les colonnes en fonction de leurs nouvelles valeurs dans les lignes de la table existante. L'instruction SET spécifie quelles colonnes doivent être modifiées et quelles valeurs doivent y être définies. La clause WHERE, si elle est présente, spécifie les lignes à mettre à jour. Sinon, toutes les lignes sont mises à jour. Si une clause ORDER BY est spécifiée, les lignes seront mises à jour dans l'ordre spécifié dans celle-ci.

Si le mot clé LOW_PRIORITY est spécifié, l'exécution de cette commande UPDATE est retardée jusqu'à ce que les autres clients aient fini de lire cette table.

Si le mot clé IGNORE est spécifié, la commande de mise à jour ne sera pas interrompue, même si une erreur de clé en double se produit lors de la mise à jour. Les lignes en conflit ne seront pas mises à jour.

Si une colonne de l'expression spécifiée est accessible à l'aide de l'argument tbl_name, la commande UPDATE utilise sa valeur actuelle pour cette colonne. Par exemple, la commande suivante définit la colonne age sur une valeur supérieure à sa valeur actuelle :

Mysql> UPDATE persondata SET age = age + 1;

La commande UPDATE attribue des valeurs de gauche à droite. Par exemple, la commande suivante duplique la colonne age, puis l'incrémente :

Mysql> UPDATE persondata SET age = age * 2, age = age + 1;

Si une colonne est définie sur sa valeur actuelle, MySQL le remarque et ne la met pas à jour.

La commande UPDATE renvoie le nombre de lignes réellement modifiées. Dans MySQL 3.22 et versions ultérieures, la fonction API C mysql_info () renvoie le nombre de lignes trouvées et mises à jour et le nombre d'avertissements qui se sont produits lors de l'exécution de la MISE À JOUR.

Depuis MySQL 3.23, vous pouvez utiliser LIMIT # pour vous assurer que seul un nombre donné de lignes a été modifié.



Le contenu de l'article
1. Les requêtes MySQL les plus basiques
2. Requêtes SELECT simples
3. Requêtes INSERT (nouvel enregistrement) simples
4. Requêtes simples de MISE À JOUR (réécrire, ajouter)
5. Requêtes simples DELETE (supprimer l'enregistrement)
6. Requêtes DROP (supprimer la table) simples
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.

MONTRER les bases de données ;
2. Répertorie TOUTES les tables de la base de données nom_base.

SHOW tables dans base_name ;

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

SÉLECTIONNER- une requête qui sélectionne les données déjà existantes de la base de données. Pour la sélection, vous pouvez spécifier certains paramètres de sélection. Par exemple, l'essence d'une requête en russe est : SELECTIONNER 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 compte (*) FROM tbl_name;
3. Sélectionne (SELECT) dans (FROM) table tbl_name limite (LIMIT) 3 enregistrements, à partir de 2.

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

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

SELECT * FROM tbl_name ORDER BY id DESC;
6. Sélectionne ( SÉLECTIONNER) TOUS (*) les enregistrements de ( DE) les tables utilisateurs et les trie ( COMMANDÉ PAR) sur le terrain identifiant dans l'ordre croissant, limite ( LIMITE) les 5 premiers enregistrements.

SELECT * FROM utilisateurs ORDER BY id LIMIT 5;
7. Sélectionne tous les enregistrements de la table utilisateurs où est le champ fnom 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 fnom commencer avec .

SELECT * FROM utilisateurs WHERE fname LIKE "Ge%";
9. Sélectionne tous les enregistrements de la table utilisateurs, où fnom se termine par n / A, et classe les entrées 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 fnom, lnom de la table utilisateurs.

SELECT fname, lname FROM utilisateurs ;

11. Disons que vous avez un pays dans le tableau des données utilisateur. Donc, si vous souhaitez afficher UNIQUEMENT une liste de valeurs qui se produisent (afin que, par exemple, la Russie ne soit pas affichée 20 fois, mais une seule), utilisez DISTINCT. Il déduira de la masse des valeurs répétées la Russie, l'Ukraine, la Biélorussie. Alors de la table utilisateurs Colonnes pays TOUTES les valeurs UNIQUES seront affichées

SÉLECTIONNEZ LE pays DISTINCT DES utilisateurs ;
12. Sélectionne TOUTES les données de ligne d'une table utilisateursâge a les valeurs 18,19 et 21.

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

SELECT max (âge) FROM utilisateurs;
14. Sélectionne les données de la table utilisateurs par champs Nom et âgeâge prend la plus petite valeur.

SELECT nom, min (âge) FROM utilisateurs ;
15. Sélectionne les données de la table utilisateurs sur le terrain Nomidentifiant PAS ÉGAL 2.

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

3. Requêtes INSERT (nouvel enregistrement) simples

INSÉRER- une requête qui permet d'insérer INITIALEMENT un enregistrement dans la base de données. C'est-à-dire qu'il crée un NOUVEL enregistrement (ligne) dans la base de données.

1. Crée une nouvelle entrée dans le tableau utilisateurs, dans le champ Nom insère Sergey, et sur le terrain âge insère 25. Ainsi, une nouvelle ligne avec les valeurs données est ajoutée au tableau. S'il y a plus de colonnes, elles 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 de mise à jour vers la base de données MySQL

METTRE À JOUR- une requête qui vous permet de RÉÉCRIRE les valeurs des champs ou d'AJOUTER quelque chose à une ligne existante dans la base de données. Par exemple, il existe une chaîne toute faite, mais vous devez écraser le paramètre d'âge qu'elle contient, car il a changé au fil du temps.

1. Dans le tableau utilisateurs âge devient 18.

UPDATE utilisateurs SET age = "18" WHERE id = "3";
2. Tout est identique à la première requête, seule la syntaxe de la requête est affichée, où deux champs ou plus sont écrasés.
Dans la table utilisateurs O l'id est la valeur du champ 3 âge devient 18, et pays Russie.

UPDATE utilisateurs SET age = "18", country = "Russia" WHERE id = "3";

5. Simples requêtes DELETE (supprimer l'enregistrement) dans la base de données MySQL

EFFACER- une requête qui supprime une ligne de la table.

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

DELETE FROM utilisateurs WHERE id = "10";

6. Des requêtes DROP (supprimer une table) simples à la base de données MySQL

TOMBER- une requête qui supprime une table.

1. Supprime toute la table nom_table.

DROP TABLE nom_table;

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

Des requêtes curieuses qui peuvent être utiles même pour les 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 SELECT colonnes identifiant, nom, pays DANS LES TABLEAUX utilisateurs, administrateursDate d'inscription(date) pas plus vieux 14 jours et Activation INÉGAL 0 , Trier par Date d'inscription dans l'ordre inverse (nouveau au début).

UPDATE utilisateurs SET age = "18+" WHERE age = (SELECT age FROM utilisateurs WHERE male = "man");
Ce qui précède est un exemple de ce qu'on appelle demande en demande en SQL. Mettez à jour l'âge de l'utilisateur à 18+, où le sexe est masculin. Je ne recommande pas de telles options de requête. D'après mon expérience personnelle, je dirai qu'il est préférable d'en créer plusieurs séparés - ils seront élaborés plus rapidement.

8. Requêtes sur la base de données MySQL et PHP

Dans les requêtes MySQL dans une page PHP, vous pouvez insérer des variables en tant que comparaisons et autres valeurs. Quelques exemples

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

SELECT * FROM utilisateurs WHERE fname = "$ nom";
2. Dans le tableau utilisateurs O l'id est la valeur du champ 3 âge change la valeur de la variable d'âge $.

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

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

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 commune de MySQL Sheet Data :

UPDATE nom_table SET champ1 = nouvelle-valeur1, champ2 = 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 de la table WHERE, cela est très utile.

Ligne de commande pour mettre à jour les données

Ci-dessous, nous mettrons à jour le w3big_tbl spécifié dans la table de données à l'aide de la commande SQL UPDATE WHERE :

exemples

L'exemple suivant mettra à jour la table de données en tant que valeur w3big_title w3big_id pour le champ 3 :

# mysql -u root -p mot de passe ; Entrez le mot de passe : ******* mysql> use w3big ; Base de données modifiée mysql> UPDATE w3big_tbl -> SET w3big_title = "(! LANG: Apprendre 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 pour utiliser mysql_query () pour exécuter des instructions SQL, vous pouvez utiliser UPDATE SQL ou WHERE 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 pour le champ w3big_title 3.

© 2021 hecc.ru - Actualités informatiques