Les partenaires publicitaires:

Comment utiliser select dans une instruction de mise à jour

Les concepteurs de Structured Query Language (SQL) ont créé un outil puissant pour gérer les données avec seulement quelques commandes simples. L'une des constructions les plus puissants se produit lorsque les commandes sont imbriqués. Un SELECT, UPDATE ou la commande Supprimer utilise un ou plusieurs autres sélectionner les commandes de limiter son fonctionnement. A titre d'exemple, une mise à jour sur la table de la clientèle se produit uniquement lorsque le total des ventes cumulées de plusieurs records de ventes totales de plus de 250 $. Suivez ces étapes pour créer plusieurs commandes de mise à jour imbriqués.

Choses que vous devez

  • Base de données SQL comme Oracle, Sybase, Microsoft SQL Server ou MySQL
  • Connaissance de base des commandes SQL et éditeur de requêtes

Instructions

  1. Ouvrez l'éditeur de requête SQL et créer une nouvelle base de données appelée SampleDB. Choisissez cette base de données pour la session de requête.

    Créer la base de données SampleDB;

    Utilisez SampleDB;

    Ces exemples ont été créés en utilisant l'éditeur de requêtes au sein de la gestion de Microsoft SQL Server 2008 Studio Express.

  2. Créer deux tables, les clients et les ventes, puis ajoutez quelques enregistrements à deux tables en utilisant le script suivant.

    CREATE TABLE clients

    (Clé primaire int CustomerID,

    Nom varchar (50),

    Statut varchar (10));

    Insérez en clients valeurs (1, 'John Smith', 'Nouveau');

    insérer dans Clients Valeurs (2, 'Mary Jones', 'Nouveau');

    Insérez en clients Valeurs (3, 'Fred Adams', 'Nouveau');




    CREATE TABLE ventes

    (SalesID int clé primaire,

    CustomerID int Références Clients,

    Montant int);

    insérer dans les valeurs des ventes (1, 1, 500);

    insérer dans les valeurs des ventes (2, 1, 250);

    insérer dans les valeurs des ventes (3, 3, 50);

  3. Créer une requête imbriquée, combinant une mise à jour avec une instruction Select qui définit le statut de client à Active pour les clients qui ont une activité dans le tableau des ventes.

    mise à jour clients

    Définir l'état = 'Active'

    où CustomerID En

    (Sélectionnez CustomerID de la vente);

    Ceci est une déclaration de mise à jour de SQL standard qui définit le champ d'état d'actif pour un ensemble sélectionné des enregistrements de la table à la clientèle. Dans une requête imbriquée, la clause WHERE inclut une ou plusieurs instructions Select entourés par des parenthèses (). Chaque instruction SELECT renvoie une liste de valeurs qui peuvent être comparés à un champ de la table. Dans ce cas, seuls les dossiers des clients qui ont des identifications client trouvés dans le tableau des ventes seront mis à jour.

  4. Créez une seconde requête imbriquée en utilisant une instruction Select qui regroupe le total des ventes.



    mise à jour clients

    Définir l'état = «Premium»

    où CustomerID En

    (Sélectionnez CustomerID de la vente

    groupe par CustomerID

    Ayant somme de (montant)> 250);

    Lorsque l'on analyse les requêtes imbriquées, commencer avec les instructions Select trouvés dans la clause Where. Dans ce cas, la table Sales est agrégé par ID client (Groupe par CustomerID) pour le total des montants des ventes (Somme (Montant)). Seuls ceux avec des ventes totales de plus de 250 $ sont choisis. Cette liste est ensuite utilisé pour filtrer les dossiers des clients sont mis à jour (client 1).

  5. Créer une autre requête imbriquée qui sélectionne les dossiers des clients qui ne figurent pas dans le tableau des ventes.

    mise à jour clients

    Définir l'état = "inactif"

    où CustomerID Not In

    (Sélectionnez CustomerID de la vente);

    Cette requête sélectionne d'abord une liste d'identifiants de clients trouvés dans le tableau des ventes (1 et 3) et puis met à jour ceux qui ne figurent pas dans la liste (client 2).

  6. Conseils Avertissements

  • Parce que les requêtes imbriquées courent deux recherches distinctes, temps d'exécution devient parfois un problème.
» » » » Comment utiliser select dans une instruction de mise à jour