SQL, of structured query language, is de standaard taal die wordt gebruikt voor het beheren van gegevens in relationele databases. De meeste databases bevatten meerdere tabellen, en de relatie tussen hen wordt verwezen met behulp van een gemeenschappelijk veld, of sleutel. Het beantwoorden van zakelijke vragen met behulp van gegevens uit verschillende tabellen vereist dat de gegevens uit elke tabel binnen de SQL-instructie, vaak door middel van een subquery worden samengevoegd. Subquery's kunnen worden gebruikt met de meeste SQL-Data verklaringen, zoals select, update en delete verklaringen.
Wat die u nodig hebt
- Een relationele database (MySQL, Oracle, Sybase, SQL Server)
- Een hulpprogramma dat wordt uitgevoerd van SQL-query 's
Het bijwerken van een SELECT-instructie met behulp van een Subquery
Open een command line utility die uitvoert van SQL-instructies. Wordt uitgegaan van twee databasetabellen in een database. De eerste tabel heet employee_table en bevat drie velden: werknemer, Voor_naam en salaris. De tweede tabel heet employee_phone en bevat drie velden: werknemer, phone_number en phone_type.
Een select-instructie gebruikt alle records selecteren in de employee_table en toevoegen (som), wordt de waarden in het veld salaris. Deze select-instructie is de buitenste query.
Selecteer Sum(salaris) uit employee_table
Een subquery invoegt in de select-instructie die selecteert alle van de werknemer-id's uit de tabel van de employee_phone waar een record bevat een veldwaarde phone_type "M." Dit is de subquery, of inner query. De buitenste en binnenste query's zijn samengevoegd met behulp van het gemeenschappelijke veld werknemer.
Selecteer Sum(salaris) uit employee_table waar werknemer
in (Selecteer werknemers_id uit employee_phone waar phone_type = "M")
Het bijwerken van een UPDATE-instructie met behulp van een Subquery
Open een command line utility die SQL verklaringen tegen de employee_table en de employee_phone-tabellen voert.
Een update-instructie gebruiken om toegang tot de gegevens in de employee_table en de waarden opgeslagen in het veld salaris aan 500,00 instellen. Deze verklaring is de buitenste query.
Update employee_table set salaris = 500,00
Een subquery aansluit op de update-instructie die selecteert alle van de salarissen in de tabel van de employee_phone waar een record bevat een veldwaarde phone_type "M." Dit is de subquery, of inner query. De buitenste en binnenste query's zijn samengevoegd met behulp van het gemeenschappelijke veld werknemer.
Update employee_table set salaris = 500,00 waar werknemer in (Selecteer werknemers_id uit employee_phone waar phone_type = "M")
Het bijwerken van een DELETE-instructie met behulp van een Subquery
Open een command line utility waarmee uitvoering van SQL-instructies tegen de employee_table en de employee_phone-tabellen.
Gebruik een delete-instructie om te verwijderen van alle records uit de employee_table. Deze query is de buitenste query. Deze verklaring voorafgaand aan de inner query toe te voegen omdat het alle gegevens in de employee_table-tabel verwijderen zal niet uitvoeren.
Verwijderen van employee_table
Invoegen van een subquery aan de delete-instructie die selecteert alle van de salarissen in de tabel van de employee_phone waar een record een veldwaarde phone_type "W. bevat" Dit is de subquery, of inner query. De buitenste en binnenste query's zijn samengevoegd met behulp van het gemeenschappelijke veld werknemer.
Verwijderen van employee_table waar werknemer in (Selecteer werknemers_id uit employee_phone waar phone_type = "W")
- Subquery's kunnen worden genest in andere subquery's, tot een bepaald aantal niveaus.
- Subquery's moeten een specifieke kolomwaarde retourneren.
- Subquery's kunnen worden gebruikt met andere vormen van SQL-instructies en componenten opnemen, zoals invoegen, waar of having.
- Vele subquery's kunnen worden herschreven als verbindingen, die beter in specifieke situaties presteren kunnen.
- Hoewel de meeste databases gebruikt een vergelijkbare syntaxis voor subquery's, moet u controleren de reference manual voor de specifieke database die u gebruikt.