Site Overlay

En Introduksjon til MySQL CTE

Oppsummering: i denne opplæringen vil du lære hvordan å bruke MySQL CTE eller felles bord uttrykk for å lage komplekse spørringer i en mer lesbar måte.

MySQL innført felles bord uttrykk eller CTE har siden versjon 8.0, så du bør ha MySQL 8.0+ for å øve med uttalelser i denne opplæringen.

Hva er et felles bord uttrykk eller CTE

Et felles bord uttrykk er en navngitt midlertidig resultat som eksisterer kun i utførelse omfanget av en enkelt SQL-setningen f.eks.,,SELECT, INSERT, UPDATE, eller DELETE.

Ligner på en avledet, bord, ETC er ikke lagret som et objekt og sist bare under utførelse av en spørring.

i Motsetning til en avledet, bord, ETC kan være selv-referanse (en rekursiv ETC) eller kan bli referert til flere ganger i den samme spørringen. I tillegg, en CTE gir bedre lesbarhet og ytelse i sammenligning med en avledet bordet.

MySQL ETC syntaks

strukturen av en CTE inkluderer navn, en ekstra kolonne liste, og en spørring som definerer ETC., Etter CTE er definert, kan du bruke den som en visning i en SELECT, INSERT, UPDATE, DELETE, eller CREATE VIEW uttalelse.

følgende illustrerer den grunnleggende syntaksen til en CTE:

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

legg Merke til at antall kolonner i query må være det samme som antall kolonner i column_list., Hvis du utelater column_list, CTE vil bruke kolonnen liste av spørringen som definerer CTE

Enkel MySQL ETC eksempler

Vi vil bruke customers tabell fra eksempeldatabasen for demonstrasjon:

følgende eksempel illustrerer hvordan å bruke en CTE for spørring data fra customers tabellen i eksempel databasen.

Merk at i dette eksemplet er kun for demonstrasjon formål å gjøre det enkelt for deg å forstå ETC-konseptet.,

I dette eksemplet er navnet på CTE er customers_in_usa, spørringen som definerer ETC returnerer to kolonner customerName og state. Derfor, customers_in_usa CTE returnerer alle kunder som befinner seg i USA.

Når du har angitt. customers_in_usa ETC, vi henvist til den i SELECT uttalelse for å velge kun kunder som ligger i California.,

Se følgende eksempel:

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

I dette eksempelet, CTE gir topp 5 sales rep i 2003. Etter at vi refererte til topsales2003 ETC, for å få mer informasjon om sales rep inkludert fornavn og etternavn.,

En mer avansert MySQL ETC eksempel

Se følgende eksempel:

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

I dette eksempelet har vi to CTEs i den samme spørringen. Den første CTE ( salesrep) får de ansatte som har som jobb titler er det salgsrepresentant. Den andre CTE ( customer_salesrep ) referanser første CTE i INNER JOIN punkt for å få sales rep og kunder som hver selgeren er ansvarlig.,

Etter å ha andre ETC, vi spørring data fra den CTE ved hjelp av en enkel SELECT uttalelse med ORDER BY klausulen.,

klausulen kan brukes i begynnelsen av SELECT, UPDATE, og DELETE uttalelser:

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

Andre, en WITH klausulen kan brukes i begynnelsen av et subquery eller en avledet tabell subquery:

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

Tredje, en WITH klausulen kan brukes umiddelbart foregående SELECT av uttalelser som inkluderer en SELECT klausulen:

I denne opplæringen, har du lært hvordan du skal bruke MySQL CTE å forenkle komplekse spørringer.,

  • Var denne opplæringen nyttig?
  • YesNo

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *