Korzyści z korzystania z CTE:
Składnia:
Z CTE-nazwa (kolumna 1, kolumna2,… kolumnan) jako (Tutaj możesz zdefiniować dowolną instrukcję SQL jako zapytanie, wybierz, zaktualizuj, usuń, wstaw lub utwórz instrukcję. Jeśli zdefiniujesz listę kolumn za pomocą klauzuli, liczba kolumn w zapytaniu musi być taka sama z liczbą kolumn zdefiniowanych w klauzuli.
Warunek wstępny:
Funkcja CTE nie jest obsługiwana przez żadną wersję MySQL mniejszą niż 8.0. Więc musisz zainstalować MySQL 8.0 Przed ćwiczeniem przykładu tego artykułu. Możesz sprawdzić aktualnie zainstalowaną wersję MySQL, uruchamiając następujące polecenie.
$ mysql -vWyjście pokazuje, że MySQL wersja 8.0.19 jest zainstalowane w systemie.
Jeśli zainstalowana jest poprawna wersja, utwórz nazwę bazy danych MYDB i utwórz dwa nazwy TABELE użytkownicy I Users_profile z pewnymi danymi, aby poznać zastosowania CTE w MySQL. Uruchom następujące instrukcje SQL, aby wykonać zadania. Te stwierdzenia utworzą dwa powiązane tabele nazwane użytkownicy I Users_profile. Następnie niektóre dane zostaną wstawione w obu tabelach przez instrukcje wstawiania.
Utwórz bazę danych MYDB;Używanie prostego CTE:
Tutaj bardzo proste CTE nazwane CTE_USERS_PROFILE jest utworzony tam, gdzie żadna lista pola nie jest zdefiniowana za pomocą nazwy CTE w klauzuli i odzyska wszystkie dane z Users_profile tabela. Następnie instrukcja Select służy do odczytania wszystkich rekordów z CTE_USERS_PROFILE Cte.
Z CTE_USERS_PROFILE AS (Następujące dane wyjściowe pojawią się po uruchomieniu instrukcji.
Korzystanie z prostej CTE z listą kolumn:
Możesz utworzyć CTE dokładniej, definiując listę pola z nazwą CTE w klauzuli. W takim przypadku nazwy pola zdefiniowane nazwą CTE będą takie same jak nazwy pola zdefiniowane w zapytaniu Wybierz wewnątrz klauzuli z. Tutaj, nazwa I e-mail Pola są używane w obu miejscach.
Z cte_users_profile (nazwa, e -mail) jako (Następujące dane wyjściowe pojawią się po uruchomieniu powyższej instrukcji.
Używanie prostego CTE z klauzulą Where:
Wybierz instrukcję z klauzulą Where można zdefiniować w instrukcji CTE, tak jak inne Wybierz zapytanie. Wybierz zapytanie z rekordami odzyskania z użytkownicy I Users_profile tabele, w których wartości Nazwa użytkowników pole są równe dla obu tabel i wartości nazwa użytkownika nie jest 'personel'.
Z CTE_USERS AS (Następujące dane wyjściowe pojawią się po uruchomieniu instrukcji.
Używanie prostego CTE z grupą według klauzuli:
Każda funkcja łączna może być używana w zapytaniu, która jest używana w CTE. Poniższa instrukcja CTE pokazuje użycie funkcji Wybierz zapytanie z Count (). Pierwsza instrukcja wyboru służy do wyświetlania wszystkich rekordów użytkownicy Tabela i ostatnia instrukcja Select służy do wyświetlania wyjścia CTE, które będą liczyć całkowitą liczbę użytkowników z użytkownicy Stół, który jest aktywny.
Wybierz * od użytkowników;Następujące dane wyjściowe pojawią się po uruchomieniu instrukcji.
Korzystanie z prostego CTE z operatorem Union:
Poniższe oświadczenie CTE pokazuje użycie operatora Unii w oświadczeniu CTE. Wyjście wyświetli wartości nazwa użytkownika z użytkownicy stół, gdzie status wartosc jest 'Nieaktywny'i inne wartości nazwa użytkownika z Users_profile tabela.
Z CTE_USERS AS (Następujące dane wyjściowe pojawią się po uruchomieniu instrukcji.
Używanie prostego CTE z lewym dołączeniem:
Poniższe oświadczenie CTE pokazuje użycie lewej wspólnej w CTE. Wyjście wyświetli wartości nazwa I e-mail pola z Users_profile Tabela, stosując przyłączanie lewej na podstawie nazwa użytkownika pole między użytkownicy I Users_profile tabele i warunki, które odfiltrują te rekordy użytkownicy Tabela, gdzie wartość status Jest 'Nieaktywny'.
Z CTE_USERS AS (Następujące dane wyjściowe pojawią się po uruchomieniu instrukcji.
Wniosek:
Jeśli chcesz zwiększyć wydajność zapytania i szybciej zwiększyć wyjście zapytania. W tym artykule pomoże użytkownikom MySQL w bardzo łatwo nauczyć.