Comment mettre à jour vos données SQL existantes

Parce que le monde est en constante évolution, les bases de données SQL utilisées pour modéliser les aspects du monde doivent également changer. Un client peut modifier son adresse. La quantité d'un produit en stock peut changer. Les statistiques de performance de la saison de joueur de basket changent à chaque fois qu'il joue dans un autre jeu. Si votre base de données contient ces éléments, vous devez mettre à jour périodiquement.

SQL fournit la METTRE À JOUR déclaration de modification des données dans un tableau. En utilisant un seul METTRE À JOUR déclaration, vous pouvez modifier une, plusieurs ou toutes les lignes dans un tableau. La METTRE À JOUR instruction utilise la syntaxe suivante:

UPDATE table_nameSET colonne_1 = expression_1, column_2 = expression_2, ..., column_n = expression_n [WHERE prédicats] -

La clause est facultative. Cette clause spécifie les lignes que vous mettez à jour. Si vous ne l'utilisez pas un clause, toutes les lignes de la table sont mises à jour. La SET clause spécifie les nouvelles valeurs pour les colonnes que vous changeants.

Considérez ce tableau CLIENT.

NomVilleCode régionalTéléphone
Abe AbelsonSpringfield(714)555-1111
Bill BaileyDecatur(714)555-2222
Chuck WoodPhilo(714)555-3333
Don StetsonPhilo(714)555-4444
Dolph StetsonPhilo(714)555-5555

Les listes de clients changent de temps en temps - que les gens se déplacent, changer leurs numéros de téléphone, et ainsi de suite. Supposons que Abe Abelson déplace de Springfield et à Kankakee. Vous pouvez mettre à jour son dossier dans le tableau en utilisant le suivant METTRE À JOUR déclaration:




UPDATE CUSTOMERSET Ville = 'Kankakee', Téléphone = 'Nom 666-6666'WHERE =' Abe Abelson '-

Cette déclaration provoque les changements indiqués dans le tableau 6-2.

NomVilleCode régionalTéléphone
Abe AbelsonKankakee(714)666-6666
Bill BaileyDecatur(714)555-2222
Chuck WoodPhilo(714)555-3333
Don StetsonPhilo(714)555-4444
Dolph StetsonPhilo(714)555-5555

Vous pouvez utiliser une déclaration similaire de mettre à jour plusieurs lignes. Supposons que Philon connaît une croissance explosive de la population et exige désormais son propre code de zone. Vous pouvez modifier toutes les lignes pour les clients qui vivent dans Philo en utilisant un seul METTRE À JOUR déclaration, comme suit:

UPDATE CUSTOMERSET AreaCode = '(619)' Où Ville = 'Philo -

Le tableau ressemble maintenant à celui indiqué dans le tableau 6-3.

NomVilleCode régionalTéléphone
Abe AbelsonKankakee(714)666-6666
Bill BaileyDecatur(714)555-2222
Chuck WoodPhilo(619)555-3333
Don StetsonPhilo(619)555-4444
Dolph StetsonPhilo(619)555-5555

Mise à jour de toutes les lignes d'une table est plus facile que la mise à jour seulement une partie des lignes. Vous ne devez pas utiliser un clause WHERE pour limiter la déclaration. Imaginez que la ville de Rantoul a acquis majeure influence politique et a annexé non seulement Kankakee, Decatur, et Philon, mais aussi toutes les villes et villages dans la base de données. Vous pouvez mettre à jour toutes les lignes à l'aide d'une seule instruction:

UPDATE CUSTOMERSET Ville = 'Rantoul' -

Tableau 6-4 montre le résultat.

NomVilleCode régionalTéléphone
Abe AbelsonRantoul(714)666-6666
Bill BaileyRantoul(714)555-2222
Chuck WoodRantoul(619)555-3333
Don StetsonRantoul(619)555-4444
Dolph StetsonRantoul(619)555-5555

Lorsque vous utilisez le avec l'article METTRE À JOUR déclaration à restreindre les lignes qui sont mis à jour, le contenu de la la clause peut être un subselect - un SELECT déclaration, dont le résultat est utilisé en entrée par un autre SELECT déclaration.

Supposons que vous êtes un grossiste et votre base de données comprend une table de VENDEUR contenant les noms de tous les fabricants de qui vous achetez des produits. Vous avez également une table de produit contenant les noms de tous les produits que vous vendez et les prix que vous facturez pour eux. La table de vendeur a colonnes VendorID, Nom du vendeur, De rue, Ville, État, et Zip. Le tableau de produit a ID de produit, ProductName, VendorID, et Prix ​​de vente.

Votre fournisseur, Cumulonimbus Corporation, décide d'augmenter les prix de tous ses produits de 10 pour cent. Pour maintenir votre marge de profit, vous devez augmenter vos prix sur les produits que vous obtenez à partir de cumulonimbus de 10 pour cent. Vous pouvez le faire en utilisant le suivant METTRE À JOUR déclaration:

UPDATE PRODUCTSET SalePrice = (SalePrice * 1.1) OÙ VendorID IN (SELECT VendorID DE VENDORWHERE VendorName = 'Cumulonimbus Société') -

Le subselect trouve le VendorID qui correspond à cumulonimbus. Vous pouvez ensuite utiliser la VendorID champ de la table de produit pour trouver les lignes que vous souhaitez mettre à jour. Les prix sur tous les produits de cumulonimbus augmentation de 10 pourcentage des prix sur tous les autres produits restent les mêmes.


» » » » Comment mettre à jour vos données SQL existantes