Site Overlay

Een inleiding tot MySQL CTE

samenvatting: in deze tutorial leert u hoe u MySQL CTE of common table expression kunt gebruiken om complexe query ‘ s op een meer leesbare manier te construeren.

MySQL introduceerde de gemeenschappelijke tabeluitdrukking of CTE functie sinds versie 8.0 dus je moet MySQL 8.0+ hebben om te oefenen met de statements in deze tutorial.

Wat is een gemeenschappelijke tabeluitdrukking of CTE

een gemeenschappelijke tabeluitdrukking is een benoemde tijdelijke resultaatset die alleen bestaat binnen het uitvoerbereik van een enkele SQL-instructie, bijv.,, SELECT, INSERT, UPDATE, of DELETE.

vergelijkbaar met een afgeleide tabel, wordt een CTE niet opgeslagen als een object en duurt alleen tijdens het uitvoeren van een query.

In tegenstelling tot een afgeleide tabel kan een CTE zelfreferencing zijn (een recursieve CTE) of meerdere keren worden verwezen in dezelfde query. Bovendien biedt een CTE betere leesbaarheid en prestaties in vergelijking met een afgeleide tabel.

MySQL CTE syntaxis

de structuur van een CTE bevat de naam, een optionele kolomlijst en een query die de CTE definieert., Nadat de CTE is gedefinieerd, kunt u deze gebruiken als een weergave in een SELECT, INSERT, UPDATE, DELETE, of CREATE VIEW statement.

het volgende illustreert de basissyntaxis van een CTE:

Code language: SQL (Structured Query Language) (sql)

merk op dat het aantal kolommen in de query gelijk moet zijn aan het aantal kolommen in de column_list., Als u de column_list weglaat, zal de CTE de kolomlijst van de query gebruiken die de CTE

eenvoudige MySQL CTE voorbeelden

We zullen de customers tabel uit de voorbeelddatabase gebruiken voor demonstratie:

het volgende voorbeeld illustreert hoe een CTE gebruikt wordt voor het opvragen van gegevens uit de tabel customers in de voorbeelddatabase.

merk op dat dit voorbeeld alleen voor het demonstratie doel is om het gemakkelijk te maken voor u om het CTE concept te begrijpen.,

In dit voorbeeld is de naam van de CTE customers_in_usa, de query die de CTE definieert geeft twee kolommen customerName en state. Daarom retourneert de customers_in_usa CTE alle klanten in de VS.

na het definiëren van decustomers_in_usa CTE, refereerden we ernaar in deSELECT statement om alleen klanten in Californië te selecteren.,

zie het volgende voorbeeld:

Code language: SQL (Structured Query Language) (sql)

In dit voorbeeld geeft de CTE de top 5 van de verkoop in 2003 terug. Daarna refereerden we naar de topsales2003 CTE om aanvullende informatie te krijgen over de vertegenwoordiger, inclusief voornaam en achternaam.,

een meer geavanceerd MySQL CTE voorbeeld

zie het volgende voorbeeld:

Code language: SQL (Structured Query Language) (sql)

In dit voorbeeld hebben we twee CTE ‘ s in de zelfde vraag. De eerste CTE ( salesrep) krijgt de werknemers waarvan de functie de vertegenwoordiger is. De tweede CTE (customer_salesrep ) verwijst naar de eerste CTE in de INNER JOIN clausule om de vertegenwoordiger en klanten van wie elke vertegenwoordiger de leiding heeft te krijgen.,

na het hebben van de tweede CTE, bevragen we gegevens van die CTE met behulp van een eenvoudige SELECT statement met de ORDER BY clausule.,

component kan gebruikt worden aan het begin van de SELECT, UPDATE, en DELETE instructies:

Code language: SQL (Structured Query Language) (sql)

ten Tweede, WITH component kan gebruikt worden aan het begin van een subquery of een afgeleide tabel subquery:

Code language: SQL (Structured Query Language) (sql)

ten Derde, WITH component kan gebruikt worden onmiddellijk voorafgaande SELECT van de verklaringen die zijn voorzien van een SELECT component:

In deze les hebt u geleerd hoe te gebruiken MySQL CTE te vereenvoudigen complexe query ‘ s.,

  • Was deze tutorial nuttig?
  • YesNo

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *