Tabele i widoki SQL Temp dla użytkownika usługi LuckyTemplates

W tym samouczku omówimy tymczasowe tabele i widoki SQL . Te dwa mogą być przydatne, jeśli chcesz pobrać określony zestaw danych z fizycznej tabeli do testowania i debugowania. Porozmawiamy również o 2 typach tabel tymczasowych i różnicach między nimi.

Dzięki tabelom tymczasowym i widokom SQL możesz swobodnie manipulować zbiorem danych za pomocą wielu poleceń bez konieczności wykonywania wielokrotnych zapytań, ponieważ są one już przechowywane w oddzielnej tabeli.

Mimo że te dwa działają podobnie, musisz zwrócić uwagę na różnice między nimi. Pomoże Ci to wybrać najlepszą metodę, której możesz użyć w konkretnej sytuacji.

W oparciu o samą nazwę tabele tymczasowe służą do tymczasowego przechowywania danych w sesji.

Możemy również wykonywać na nich wiele operacji, tak jak na fizycznym stole . Wyobraź sobie, że masz bardzo długie polecenie SQL. Możesz po prostu umieścić to w tabeli tymczasowej i rozpocząć debugowanie lub rozwiązywanie problemów bez wpływu na oryginalne zapytanie. Ponadto tabele tymczasowe są potężne i często używane w SQL.

Spis treści

Dwa typy tabel tymczasowych w SQL

Istnieją 2 typy tabel tymczasowych w SQL. Są to lokalne i globalne tabele tymczasowe.

Lokalne tabele tymczasowe istnieją tylko w sesji, w której zostały utworzone. Nie będziemy mogli uzyskać dostępu do tej tabeli w innych sesjach. Z tego powodu lokalne tabele tymczasowe przestaną istnieć po zamknięciu sesji, w której zostały utworzone.

Natomiast globalne tabele tymczasowe są dostępne we wszystkich sesjach po ich utworzeniu. Ale kiedy wszystkie sesje zostaną zamknięte, przestanie istnieć i nie będzie już dostępny.

Zwróć uwagę, że możesz po prostu określić, jaki typ tabeli tymczasowej jest używany w zapytaniu, zaznaczając symbol „ # ” dla lokalnej tabeli i „ ## ” dla globalnej tabeli tymczasowej.

Tabele i widoki SQL Temp dla użytkownika usługi LuckyTemplates

Lokalne tabele tymczasowe zwykle zaczynają się od „ # ” w nazwie tabeli.

Tabele i widoki SQL Temp dla użytkownika usługi LuckyTemplates

Z drugiej strony globalne tabele tymczasowe zaczynają się od „ ## ” przed nazwą tabeli.

Tabele i widoki SQL Temp dla użytkownika usługi LuckyTemplates

Dodatkowo, jeśli chcesz szybko utworzyć dowolną tabelę, możesz wykonać polecenie: SELECT * INTO #customers FROM dbo.courses jako przykład.

Tabele i widoki SQL Temp dla użytkownika usługi LuckyTemplates

To polecenie utworzy nową tymczasową tabelę o nazwie #customers ze wszystkimi danymi z tabeli dbo.courses .

Widoki w Microsoft SQL Server Management Studio

Omówmy teraz widoki SQL z tym przykładowym poleceniem.

Tabele i widoki SQL Temp dla użytkownika usługi LuckyTemplates

Powiedzmy na przykład, że nie chcemy wielokrotnie wykonywać takiego polecenia. Możesz po prostu umieścić go w widoku, wykonując poniższe polecenie.

Tabele i widoki SQL Temp dla użytkownika usługi LuckyTemplates

Tworzenie widoku jest podobne do tworzenia tabel. Użycie tego pozwoli nam wykonać zapytanie, które wprowadziliśmy, wybierając utworzoną przez nas nazwę widoku. W tym przypadku jest to CustomersbyYear_v .

Tabele i widoki SQL Temp dla użytkownika usługi LuckyTemplates

Należy zauważyć, że widoki różnią się od tabel tymczasowych. To dlatego, że widoki są widoczne w Twojej bazie danych tak samo jak fizyczna tabela, chyba że ją usuniesz. Ponadto widoki nie przechowują żadnych danych ani wartości.

Zamiast tego po prostu wyrenderuje polecenie, które wprowadziłeś zaraz po poleceniu CREATE VIEW . W widokach możesz także wykonać dowolną operację na tabelach.

Co najważniejsze, możemy łatwo zidentyfikować widoki, ponieważ są one zwykle reprezentowane przez umieszczenie „v” na początku lub na końcu nazwy widoku.

Tworzenie tymczasowych tabel i widoków w SQL

W tym przykładzie mam to zapytanie, które po wykonaniu połączy i wyświetli rekordy z Sales.SalesOrderHeader i Sales.Customer C.

Tabele i widoki SQL Temp dla użytkownika usługi LuckyTemplates

Tabele i widoki SQL Temp dla użytkownika usługi LuckyTemplates

Tworzenie lokalnych tabel tymczasowych w SQL

Wyobraź sobie, że napisałeś zapytanie o długości 200 wierszy i musisz je debugować i wykonać na nim określone operacje. Nie możesz bezpośrednio edytować zapytania, ponieważ może to spowodować więcej błędów podczas procesu.

W takim przypadku, korzystając z poprzedniego przykładu, utworzymy lokalną tabelę tymczasową, dodając polecenie „ INTO #test_local ” przed poleceniem FROM.

Tabele i widoki SQL Temp dla użytkownika usługi LuckyTemplates

Po uruchomieniu tego polecenia #test_local będzie teraz zawierać połączone rekordy Sales.SalesOrderHeader i Sales.Customer C . Oto, co zobaczysz po wybraniu tabeli #test_local .

Tabele i widoki SQL Temp dla użytkownika usługi LuckyTemplates

Następnie możemy teraz wykonać dowolne operacje na tabeli #test_local . Wybierzemy wszystkie rekordy z #test_local , a następnie zmienimy kolejność rekordów według CustomerID za pomocą następującego polecenia. 

Tabele i widoki SQL Temp dla użytkownika usługi LuckyTemplates

W rezultacie rekordy są teraz sortowane według identyfikatora klienta. Ale ponieważ użyliśmy lokalnej tabeli tymczasowej, nie możemy uzyskać dostępu ani użyć tabeli #test_local w innej sesji. Następny przykład pokazuje, co się stanie, jeśli spróbujemy uzyskać dostęp do #test_local w SQLQuery2.sql .

Tabele i widoki SQL Temp dla użytkownika usługi LuckyTemplates

W oparciu o poprzedni przykład, po wybraniu #test_local po prostu wyświetlił się komunikat o błędzie. Dzieje się tak, ponieważ tabela #test_local istnieje tylko w sesji, w której została utworzona, czyli SQLQuery1.sql .

Tworzenie globalnych tabel temp w SQL

Następnie użyjemy tego samego zapytania, którego użyliśmy w #test_local . Ale tym razem użyjemy globalnej .

Tabele i widoki SQL Temp dla użytkownika usługi LuckyTemplates

Teraz, jeśli wybierzemy ##test_global i uporządkujemy rekordy według CustomerID, wyświetli się ten sam wynik, co w #test_local , ponieważ użyliśmy tego samego zapytania. 

Tabele i widoki SQL Temp dla użytkownika usługi LuckyTemplates

Następnie spróbujemy uzyskać dostęp do tabeli ##test_global w innej sesji, wybierając ją. Działa to bezproblemowo, ponieważ używamy globalnej tabeli tymczasowej.

Tabele i widoki SQL Temp dla użytkownika usługi LuckyTemplates

W tym momencie podkreślamy różnicę między lokalnymi i globalnymi tabelami tymczasowymi.

Pamiętaj, że lokalne tabele tymczasowe są dostępne tylko w sesji, w której zostały utworzone . Gdy zamkniesz tę sesję, przestanie ona istnieć.

Z drugiej strony globalne tabele tymczasowe są widoczne dla wszystkich sesji , chyba że zamkniesz wszystkie aktywne sesje lub samą aplikację.

Tworzenie widoków w SQL

Utworzymy teraz widok. W tym przykładzie mamy istniejące zapytanie podobne do tego.

Tabele i widoki SQL Temp dla użytkownika usługi LuckyTemplates

Możemy rozpocząć tworzenie widoku, dodając do tego zapytania polecenie CREATE VIEW .

Tabele i widoki SQL Temp dla użytkownika usługi LuckyTemplates

Po uruchomieniu polecenia w bazie danych, nad którą pracujemy, zostanie utworzony widok. W tym przypadku jest to AdventureWorks2012 .

Po odświeżeniu powinniśmy również zobaczyć plik dbo.CustomerView_v w folderze Views. Aby odświeżyć folder Widoki, kliknij go prawym przyciskiem myszy, a następnie wybierz opcję Odśwież .

Tabele i widoki SQL Temp dla użytkownika usługi LuckyTemplates

Kliknij ikonę + po prawej stronie folderu Widoki, a dbo.CustomerView_v będzie widoczny.

Tabele i widoki SQL Temp dla użytkownika usługi LuckyTemplates

Możesz otworzyć ten widok, klikając prawym przyciskiem myszy dbo.CustomerView_v , a następnie wybierając z opcji Wybierz 1000 najlepszych wierszy . Spowoduje to wyświetlenie 1000 rekordów w tym widoku .

Tabele i widoki SQL Temp dla użytkownika usługi LuckyTemplates

Następnie możemy teraz użyć dbo.CustomerView_v i wykonać na nim dowolną operację, tak jak na stole. Na przykład chcemy wybrać rekordy z SalesOrderID większym niż 50000 w dbo.CustomerView_v . W takim przypadku użyjemy następującego polecenia.

Tabele i widoki SQL Temp dla użytkownika usługi LuckyTemplates

Teraz możemy uruchomić operację na utworzonym przez nas widoku.

Wniosek

Podsumowując, poznaliśmy 2 rodzaje tabel tymczasowych wraz z różnicami między nimi i dlaczego musimy ich używać. Ponadto omówiliśmy, że tabele tymczasowe służą do naprawiania błędów w zapytaniach bez uszkadzania rzeczywistego zapytania.

Pamiętaj, że tabele tymczasowe są widoczne tylko dla sesji, w których zostały utworzone. W związku z tym przestanie istnieć, gdy zamkniemy aktywne sesje lub samą aplikację.

Dowiedzieliśmy się również, że widoki nie przechowują danych ani rekordów. Pokazuje tylko wyniki oparte na zapytaniu, które chcesz wyświetlić. Widoki te są przechowywane w naszej bazie danych po ich utworzeniu. 

Ucząc się tych dwóch, masz teraz możliwość szybkiego wykonywania długich poleceń i łatwego modyfikowania dużych fragmentów zestawu danych .

Wszystkiego najlepszego,

Hafiz

Leave a Comment

Dodawaj, usuwaj i zmieniaj nazwy kolumn w R za pomocą Dplyr

Dodawaj, usuwaj i zmieniaj nazwy kolumn w R za pomocą Dplyr

W tym samouczku omówimy pakiet dplyr, który umożliwia sortowanie, filtrowanie, dodawanie i zmianę nazw kolumn w języku R.

Funkcje zbierania w Microsoft Power Automate

Funkcje zbierania w Microsoft Power Automate

Odkryj różnorodne funkcje zbierania, które można wykorzystać w Power Automate. Zdobądź praktyczne informacje o funkcjach tablicowych i ich zastosowaniu.

Oceń wydajność kodu DAX w DAX Studio

Oceń wydajność kodu DAX w DAX Studio

Z tego samouczka dowiesz się, jak ocenić wydajność kodów DAX przy użyciu opcji Uruchom test porównawczy w DAX Studio.

Czym jest self w Pythonie: przykłady z życia wzięte

Czym jest self w Pythonie: przykłady z życia wzięte

Czym jest self w Pythonie: przykłady z życia wzięte

Jak zapisać i załadować plik RDS w R

Jak zapisać i załadować plik RDS w R

Dowiesz się, jak zapisywać i ładować obiekty z pliku .rds w R. Ten blog będzie również omawiał sposób importowania obiektów z R do LuckyTemplates.

Powrót do pierwszych N dni roboczych — rozwiązanie języka kodowania DAX

Powrót do pierwszych N dni roboczych — rozwiązanie języka kodowania DAX

Z tego samouczka języka kodowania DAX dowiesz się, jak używać funkcji GENERUJ i jak dynamicznie zmieniać tytuł miary.

Zaprezentuj spostrzeżenia przy użyciu wielowątkowej techniki dynamicznych wizualizacji w usłudze LuckyTemplates

Zaprezentuj spostrzeżenia przy użyciu wielowątkowej techniki dynamicznych wizualizacji w usłudze LuckyTemplates

W tym samouczku omówiono sposób korzystania z techniki wielowątkowych wizualizacji dynamicznych w celu tworzenia szczegółowych informacji na podstawie dynamicznych wizualizacji danych w raportach.

Wprowadzenie do filtrowania kontekstu w usłudze LuckyTemplates

Wprowadzenie do filtrowania kontekstu w usłudze LuckyTemplates

W tym artykule omówię kontekst filtra. Kontekst filtrowania to jeden z głównych tematów, z którym każdy użytkownik usługi LuckyTemplates powinien zapoznać się na początku.

Najlepsze wskazówki dotyczące korzystania z aplikacji w usłudze online LuckyTemplates

Najlepsze wskazówki dotyczące korzystania z aplikacji w usłudze online LuckyTemplates

Chcę pokazać, jak usługa online LuckyTemplates Apps może pomóc w zarządzaniu różnymi raportami i spostrzeżeniami generowanymi z różnych źródeł.

Analizuj zmiany marży zysku w godzinach nadliczbowych — Analizuj za pomocą LuckyTemplates i DAX

Analizuj zmiany marży zysku w godzinach nadliczbowych — Analizuj za pomocą LuckyTemplates i DAX

Dowiedz się, jak obliczyć zmiany marży zysku przy użyciu technik, takich jak rozgałęzianie miar i łączenie formuł języka DAX w usłudze LuckyTemplates.