Fordelene ved å bruke CTE:
Syntaks:
Med CTE-navn (kolonne1, kolonne2, ... kolonne) som (Her kan du definere enhver SQL -setning som spørring, velg, oppdatere, slette, sette inn eller opprette uttalelse. Hvis du definerer kolonneliste i med leddet, må antall kolonner i spørringen være det samme med antall kolonner definert i med leddet.
Forutsetning:
CTE -funksjonen støttes ikke av noen MySQL -versjon mindre enn 8.0. Så du må installere mysql 8.0 Før du øver på eksemplet med denne artikkelen. Du kan sjekke den for øyeblikket installerte versjonen av MySQL ved å kjøre følgende kommando.
$ mysql -vUtgangen viser at MySQL versjon 8.0.19 er installert i systemet.
Hvis riktig versjon er installert, oppretter du en database som heter MYDB og lage to tabeller som heter Brukere og brukere_profil med noen data for å kjenne bruken av CTE i MySQL. Kjør følgende SQL -setninger for å gjøre oppgavene. Disse uttalelsene vil lage to relaterte tabeller som er navngitt Brukere og brukere_profil. Deretter vil noen data bli satt inn i begge tabellene ved å sette inn utsagn.
Opprette database MyDB;Bruk av enkel CTE:
Her en veldig enkel CTE kalt cte_users_profile opprettes der ingen feltliste er definert med CTE -navn i med leddet og den vil hente alle data fra brukere_profil bord. Deretter brukes den utvalgte uttalelsen til å lese alle poster fra cte_users_profile CTE.
Med cte_users_profile som (Følgende utgang vises etter å ha kjørt uttalelsen.
Bruk av enkel CTE med kolonneliste:
Du kan opprette CTE mer spesifikt ved å definere feltlisten med CTE -navn med klausul. I dette tilfellet vil feltnavnene som er definert med CTE -navnet være det samme som feltnavnene som er definert i SELECT -spørringen i With -leddet. Her, Navn og e -post Felt brukes begge steder.
Med cte_users_profile (navn, e -post) som (Følgende utdata vises etter å ha kjørt ovennevnte uttalelse.
Bruk av enkel CTE med hvor klausul:
SELECT -setningen med hvor leddet kan defineres i CTE -setning som en annen SELECT -spørring. SELECT -spørringen med hente poster fra Brukere og brukere_profil tabeller der verdiene til Brukernavn feltet er like for begge tabellene og verdien av Brukernavn er ikke 'personale'.
Med cte_usere som (Følgende utgang vises etter å ha kjørt uttalelsen.
Bruk av enkel CTE med gruppe etter klausul:
Enhver aggregatfunksjon kan brukes i spørringen som brukes i CTE. Følgende CTE -setning viser bruk av Select Query med Count () -funksjonen. Den første valgte uttalelsen brukes til å vise alle poster over Brukere tabell og den siste valgte setningen brukes til å vise utdataene til CTE som vil telle det totale antallet brukere fra Brukere Tabell som er aktive.
Velg * fra brukere;Følgende utgang vises etter å ha kjørt uttalelsen.
Bruk av enkel CTE med unionsoperatør:
Følgende CTE -uttalelse viser bruken av unionsoperatøren i CTE -setningen. Utgangen vil vise verdiene til Brukernavn fra Brukere bord der status Verdien er 'Inaktiv'Og de andre verdiene av Brukernavn fra brukere_profil bord.
Med cte_usere som (Følgende utgang vises etter å ha kjørt uttalelsen.
Bruk av enkel CTE med venstre sammenføyning:
Følgende CTE -setning viser bruken av venstre sammen med CTE. Utgangen vil vise verdiene til Navn og e -post felt fra brukere_profil tabell ved å bruke venstre sammenføyning basert på Brukernavn felt mellom Brukere og brukere_profil tabeller og hvor tilstand, som vil filtrere disse postene fra Brukere tabell der verdien av status er 'Inaktiv'.
Med cte_usere som (Følgende utgang vises etter å ha kjørt uttalelsen.
Konklusjon:
Hvis du vil øke spørringsytelsen og få spørsmål om spørringen raskere, er CTE det bedre alternativet enn andre MySQL -alternativer. Denne artikkelen vil hjelpe MySQL -brukere til å lære bruken av CTE for SELECT -spørringen veldig enkelt.