PostgreSQL WHERE EXISTS Query

PostgreSQL: gebruik van Where EXISTS clausule

wanneer een SQL query wordt gebruikt binnen een andere SQL query dan wordt het een subquery genoemd. De ingewikkelde query kan eenvoudig worden geschreven door een grote query te verdelen in meerdere subqueries. EXISTS clausule wordt gebruikt met een subquery in een SQL statement. De uitvoer van EXISTS hangt af van het aantal records dat door de subquery wordt geretourneerd, maar is niet afhankelijk van de waarden van de records. Het resultaat van bestaat zal waar zijn als de bijbehorende subquery ten minste één rij retourneert. Hoe je EXISTS en NOT EXISTS clausule kunt gebruiken in select, insert, update and delete statements worden getoond in deze tutorial met behulp van verschillende voorbeelden.

bestaat Clausule syntaxis:

selecteer col1, col2, col3…..
van table_name1
waar bestaat (selecteer 1
van
table_name2
waar col1 = table_name1.kol1);

Maak drie tabellen met de naam bedrijf, items en klanten en voeg wat gegevens. Voer de volgende SELECT query uit om de inhoud van deze tabellen weer te geven.

SELECT * from company;
SELECT * from items;
selecteer * van klanten;

Voorbeeld-1: het gebruik van EXISTS clausule in SELECT query

(a) EXISTS

de volgende query zal records ophalen uit items tabel gebaseerd op bedrijf tabel. De subquery doorzoekt alle records van bedrijf tabel waar company_id van bedrijf tabel is gelijk aan company_id van items tabel en de waarde van de telefoon veld is niet leeg. Er is een record in bedrijf tabel die geen telefoonnummer heeft en dit record zal worden weggelaten uit de output.

selecteer item_id, naam, hoeveelheid
uit items
waar bestaat (selecteer 1
uit bedrijf
waar items.company_id = company.bedrijf_id en bedrijf.telefoon<>”);

Output:

het record van LG heeft geen telefoon in de bedrijfstabel. Dus het is niet verschenen in de output.

(b) niet bestaat

niet bestaat clausule is het tegenovergestelde van bestaat clausule. De volgende query zal die records ophalen uit de items tabel wanneer de subquery geeft false.

selecteer item_id, naam, hoeveelheid
uit items
indien niet bestaat (selecteer 1
uit bedrijf
indien items.company_id = company.bedrijf_id en bedrijf.website_url is NULL);

Output:

er is geen record in de bedrijfstabel waar website_url NULL is. Dus de uitvoer van subquery is false Voor alle records en alle records van de items tabel worden opgehaald.

Voorbeeld-2: Gebruikmakend van EXISTS clausule in insert query

volgens de volgende insert query worden de gegevens ingevoegd in items tabel wanneer company_id van zowel bedrijf en klanten tabellen gelijk zijn.

INSERT INTO items
(company_id)
SELECT company_id
FROM customers
WHERE EXISTS (sELECT 1
FROM company,customers
WHERE customers.company_id = company.company_id);

Output:

er zijn drie vermeldingen voor company_id in de klantentabel met waarden 1 en 2. Dus de subquery zal terugkeren true voor drie keer en drie records zullen worden ingevoegd.

Voer de SELECT query uit om de inhoud van de itementabel te controleren.

Voorbeeld-3: met behulp van bestaat clausule in UPDATE query

de volgende query zal de records van items tabel bijwerken waar company_id is 1 en de subquery geeft true.

items bijwerken
SET name= ‘Nokia’
waar company_id = 1 bestaat (selecteer 1
uit items
waar name=’ niet toewijzen’);

uitvoer:

Hier geeft de subquery drie keer true terug en company_id is 1 voor drie records. Drie records zullen worden bijgewerkt na het uitvoeren van de update query.

Voer de SELECT query uit om de inhoud van de itementabel te controleren.

Voorbeeld-4: Gebruik van EXISTS clausule in delete query

de volgende query zal die records van items tabel waar company_id is verwijderen en de subquery retourneert true.

DELETE FROM items
WHERE company_id=1 and EXISTS (SELECT 1
FROM items
WHERE name= “Not Assign’);

Output:

er zijn drie records met waarde 1 van company_id en één record heeft naamwaarde ‘niet toewijzen’. De voorwaarde geldt dus drie keer en verwijdert drie records uit de itementabel.

Voer de SELECT query uit om de inhoud van de itementabel te controleren.

hoop, heb je een duidelijk idee van het gebruik van bestaat clausule in SQL query na het lezen van deze tutorial.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.