Site Overlay

En introduktion till MySQL CTE

sammanfattning: i den här handledningen lär du dig hur du använder MySQL CTE eller common table expression för att konstruera komplexa frågor på ett mer läsbart sätt.

MySQL introducerade common table expression eller CTE-funktionen sedan version 8.0 så du borde ha MySQL 8.0+ för att träna med uttalandena i den här handledningen.

vad är ett vanligt tabelluttryck eller CTE

ett vanligt tabelluttryck är en namngiven tillfällig resultatuppsättning som endast finns inom exekveringsområdet för en enda SQL-sats, t. ex.,,SELECT, INSERT, UPDATE, eller DELETE.

i likhet med en härledd tabell lagras inte en CTE som ett objekt och varar endast under utförandet av en fråga.

Till skillnad från en härledd tabell kan en CTE vara självreferenser (en rekursiv CTE) eller kan refereras flera gånger i samma fråga. Dessutom ger en CTE bättre läsbarhet och prestanda i jämförelse med en härledd tabell.

MySQL CTE syntax

strukturen för en CTE innehåller namnet, en valfri kolumnlista och en fråga som definierar CTE., När CTE har definierats kan du använda den som en vy i ett SELECT, INSERT, UPDATE, DELETE eller CREATE VIEW uttalande.

följande visar den grundläggande syntaxen för en CTE:

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

Observera att antalet kolumner iquery måste vara samma som antalet kolumner icolumn_list., Om du utelämnar column_list använder CTE kolumnlistan för frågan som definierar CTE

enkla MySQL CTE-exempel

vi använder tabellen customers från provdatabasen för demonstration:

följande exempel visar hur man använder en CTE för att fråga data från tabellen customers I provdatabasen.

Observera att detta exempel endast är för demonstrationsändamål för att göra det enkelt för dig att förstå CTE-konceptet.,

i det här exemplet är namnet på CTE customers_in_usa, frågan som definierar CTE returnerar två kolumner customerName och state. Därför returnerarcustomers_in_usa CTE alla kunder i USA.

Efter att ha definieratcustomers_in_usa CTE refererade vi till det iSELECT – uttalandet för att bara välja kunder i Kalifornien.,

se följande exempel:

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

i det här exemplet returnerar CTE de 5 bästa försäljningsrapporten 2003. Därefter refererade vi tilltopsales2003 CTE för att få ytterligare information om försäljningsrapporten inklusive förnamn och efternamn.,

ett mer avancerat MySQL CTE-exempel

se följande exempel:

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

i det här exemplet har vi två CTEs i samma fråga. Den första CTE (salesrep) får de anställda vars jobbtitlar är säljare. Den andra CTE (customer_salesrep ) refererar till den första CTE iINNER JOIN – klausulen för att få säljare och kunder som varje säljare ansvarar för.,

Efter att ha den andra CTE, vi fråga data från den CTE med hjälp av en enkelSELECT uttalande medORDER BY klausul.,

– klausulen kan användas i början av SELECT, UPDATE och DELETE – satser:

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

För det andra kan en WITH – klausul användas i början av en subquery eller en härledd tabell subquery:

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

tredje, en WITH – klausul kan användas omedelbart före SELECT av de uttalanden som innehåller en SELECT – klausul:

i den här handledningen har du lärt dig hur du kan använd MySQL CTE för att förenkla komplexa frågor.,

  • var den här handledningen till hjälp?
  • YesNo

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *