W tym artykule wyjaśniono pisanie prostych zapytań SQL od najbardziej podstawowych i stopniowe ulepszanie skryptu w celu rozwiązania niektórych problemów matematycznych i związanych z datami. Dodatkowo zamierzamy wyjaśnić pojęcia związane z zapytaniami SQL.
Chociaż ten artykuł jest przeznaczony głównie dla początkujących, zawiera wskazówki, które będą pomocne na każdym poziomie doświadczenia.
Co to jest zapytanie SQL w bazie danych?
Porozmawiajmy najpierw trochę o zapytaniach SQL, aby właściwie je zrozumieć, zanim zdobędziemy praktyczne doświadczenie w pisaniu.
SQL oznacza ustrukturyzowany język zapytań to jest podstawowy język używany do wykonywania zapytań do relacyjnych baz danych.
T-SQL a SQL – jaka jest różnica?
T-SQL lub Transact-SQL to wersja SQL firmy Microsoft z większą liczbą funkcji i funkcji niż tradycyjny język SQL, znany również jako ANSI SQL.
Dlatego T-SQL jest tradycyjnym językiem SQL oraz innymi elementami dodanymi przez Microsoft. Jest częściej używany i wspominany, gdy mówimy o SQL.
Ten artykuł będzie odnosić się do wersji Microsoft SQL, niezależnie od tego, czy używamy słowa SQL, czy T-SQL.
Dlaczego używamy zapytań SQL w relacyjnej bazie danych?
Relacyjna baza danych to baza danych z kluczami używanymi do łączenia tabel, a nie do fizycznego łączenia tabel.
Na przykład masz tabelę o nazwie Książka które łączysz z inną tabelą o nazwie BookType za pomocą klawiszy, aby dodać więcej znaczeń do rekordów.
Tabele na ilustracji są połączone za pomocą klucza. Nie ma potrzeby ich fizycznego łączenia. To jest podstawowa zasada relacyjnych baz danych – tworzysz relacje między dwiema tabelami za pomocą klucza(ów).
Przeczytaj także relacyjne bazy danych a NoSQL – co wybrać do zarządzania dużymi danymi?
Co to jest wysyłanie zapytań do bazy danych?
Przeszukujesz bazę danych, aby uzyskać odpowiedzi na pytania związane z tą bazą danych. Innymi słowy, piszesz zapytania do bazy danych, aby uzyskać informacje o zawartych w niej danych.
Na przykład jesteś zainteresowany przeglądem wszystkich rekordów księgowych wraz z ich typami w określonej bazie danych. Aby wyświetlić wymagane dane, musisz wykonać zapytanie do tej bazy danych. W tym celu musisz napisać i uruchomić skrypt w bazie danych.
Czego potrzebujesz, aby złożyć zapytanie?
Aby wykonać zapytanie do bazy danych, musi być obecnych kilka warunków wstępnych, ponieważ nie możemy po prostu napisać i uruchomić zapytania w dowolnym miejscu.
Następujące rzeczy są obowiązkowe do przeszukiwania bazy danych:
- Serwer bazy danych, taki jak SQL Server (instalowany lokalnie lub zdalnie), na którym przechowujesz bazę danych.
- Narzędzie do zarządzania bazą danych, takie jak SQL Server Management Studio lub dbForge Studio dla SQL Server, którego będziesz używać do pisania i uruchamiania zapytań
- Baza danych, względem której uruchamiasz zapytania. Możesz utworzyć dowolną przykładową bazę danych do celów edukacyjnych.
Ponadto musisz mieć podstawową wiedzę na temat swojej bazy danych, na przykład, która tabela zawiera żądane informacje i tak dalej. Zrozumienie koncepcji relacyjnych baz danych również jest plusem.
Zakładamy, że spełniłeś już powyższe wymagania. Ale możesz również zapoznać się z następującym artykułem, aby uzyskać więcej informacji:
Podstawy SQL Server Management Studio (SSMS) – część 1
Co należy zrobić przed napisaniem zapytań w SQL
Teraz napiszemy proste zapytania SQL.
Skonfiguruj środowisko, aby rozpocząć pisanie zapytań SQL. Przygotuj narzędzia. Otwórz dbForge Studio dla SQL Server lub SQL Server Management Studio i połącz się z instancją SQL. Tutaj zaczynamy naszą podróż do SQL:
Po pomyślnym połączeniu naciśnij CTRL+N lub przejdź do Plik> Nowy> Zapytanie z bieżącym połączeniem :
Teraz udało Ci się połączyć z główną (systemową bazą danych) aktualnie podłączonego serwera.
Ważna wskazówka: Zawsze twórz przykładową bazę danych, aby uruchamiać na niej zapytania (skrypty). Uruchamianie zapytań do baz danych systemu nie jest dobrą praktyką, z wyjątkiem trzech przypadków:
- Pracujesz z przykładową bazą danych, a następnie stworzony dla niej skrypt zostanie wykonany na systemowej (głównej) bazie danych.
- Celowo wysyłasz zapytanie do głównej bazy danych, aby uzyskać z niej pewne informacje.
- Kwerendy można bezpiecznie uruchamiać w systemie (głównej) bazie danych.
Skonfiguruj przykładową bazę danych
Stwórzmy przykładową bazę danych o nazwie BookSimple bez żadnych stolików. Napisz następujący skrypt do głównej bazy danych, aby utworzyć przykładową bazę danych i Naciśnij F5 aby wykonać zapytanie:
-- Create sample database BookSimple
USE MASTER
GO
CREATE DATABASE BookSimple
GO
USE BookSimple
Koncepcja oparta na zbiorach stojąca za zapytaniami SQL
Zanim napiszesz nawet najprostsze zapytanie SQL, musisz zrozumieć, że SQL jest językiem opartym na zbiorach.
Oznacza to, że jeśli chcesz wysyłać zapytania do bazy danych za pomocą SQL, powinieneś myśleć w kategoriach zestawów lub grup.
SQL jest z założenia i domyślnie bardzo wydajny w obsłudze żądań opartych na zbiorach. Jeśli tworzysz swoje skrypty (zapytania), pamiętając o logice opartej na zbiorach, zrozumiesz i zaimplementujesz SQL szybciej niż te, które podążają typową ścieżką uczenia się (co ma swoje zalety).
Pomyślmy o zestawie występującym naturalnie, takim jak klasa lub grupa. Kiedy odnosimy się do klasy, odnosimy się do wszystkich uczniów w tej klasie. SQL może pomóc w zapytaniu całej klasy.
Podobnie Książka to stół z książkami. Zawiera wszystkie zapisy dotyczące ksiąg. Możemy po prostu wysłać zapytanie do tej tabeli tak, jakbyśmy mówili o pojedynczej książce, ale w rzeczywistości pytamy o całą tabelę książek reprezentowaną przez Książkę tabela.
Więcej korzyści z koncepcji opartej na zbiorach dostrzeżemy później, gdy zapoznamy się z kilkoma podstawowymi przykładami.
Prosta instrukcja SQL SELECT
SELECT to instrukcja T-SQL, która pobiera wszystkie lub wybrane wiersze i kolumny (na podstawie kryteriów) z bazy danych.
Innymi słowy, WYBIERZ pozwala nam przeglądać (wybierać) dane z tabeli lub liczby tabel w oparciu o określone kryteria, które, jeśli nie są wymienione ogólnie, pokazują wszystkie dane.
Dlatego SELECT jest pierwszą instrukcją, której należy szukać, jeśli chcemy pobrać wiersze i kolumny z bazy danych. Najprostsza forma składni SELECT jest następująca:
SELECT * FROM <Table>
Pamiętaj, że z czasem będziemy modyfikować składnię, aby stopniowo ulepszać proces uczenia się.
Inny sposób użycia instrukcji SELECT jest następujący:
SELECT <Expression>
Wyrażeniem może być wiele rzeczy, w tym:
- Stała (np. stała liczba, np. 1)
- Zmienna (np. @X, którą można zmienić na dowolną liczbę).
- Kombinacja stałych lub zmiennych (takich jak 1+2 lub @X [email protected]).
Jednak niezależnie od tego, czy używasz SELECT
Zapytajmy o BookSimple bazy danych, odświeżając Bazy danych węzeł w Eksploratorze obiektów. Kliknij prawym przyciskiem myszy KsiążkaProsta > Nowe zapytanie :
Zapisz najprostsze zapytanie SQL – napisz i uruchom następujący skrypt w przykładowej bazie danych:
Uruchomienie zapytania (naciśnięcie F5) spowoduje wyświetlenie następujących wyników:
Tak więc SELECT 1 zwraca 1, ale z nienazwaną kolumną (Brak nazwy kolumny).
1 jest stałą. Pozostanie 1, więc spodziewamy się, że wynik również będzie równy 1. Jest jednak jeszcze jedna ważna rzecz do zrozumienia:nasze dane wyjściowe są konwertowane na zestaw 1 kolumny i 1 wiersza. Ponieważ nie podaliśmy żadnej nazwy do kolumny i nie ma w niej żadnej tabeli (aby uzyskać nazwę), otrzymujemy wartość 1 dla nienazwanej kolumny nienazwanej tabeli (zestawu).
Język oparty na zbiorach automatycznie zwrócił naszą podaną wartość do nienazwanej kolumny nienazwanej tabeli posiadającej jeden wiersz.
Nazwijmy kolumnę, modyfikując skrypt w następujący sposób:
Uruchom skrypt, aby tym razem zobaczyć następujący zestaw wyników:
Ponieważ to zapytanie zawsze zwraca tę samą wartość (liczbę), którą wprowadzamy (podaż), nie ma wiele do omówienia poza zrozumieniem, dlaczego myślenie oparte na zbiorach jest niezbędne do zrozumienia, jak działają zapytania.
Wykorzystajmy powyższy przypadek do szybkich obliczeń w SQL – zamieniamy pojedynczą wartość w wyrażenie.
Na przykład chcemy szybko dodać dwie liczby 1000 i 200. Możemy po prostu napisać następujące zapytanie bez wspominania o żadnej tabeli, używając tylko instrukcji SELECT:
Wynik jest poniżej:
Podobnie możemy dodawać, wielokrotne, dzielić i odejmować liczby.
Pomocne jest dodanie dwóch kolumn tabeli zawierającej wartości liczbowe. Możemy jednak również użyć tego podejścia, aby dodać dwie zmienne. Korzystanie ze zmiennych jest korzystne, ponieważ możemy dodać dowolne dwie liczby, inicjując te zmienne z żądanymi wartościami. Ilustruje to następujący skrypt:
Uruchomienie skryptu pokazuje nam następujące dane wyjściowe:
Możemy zapisać to zapytanie, aby w dowolnym momencie użyć go ponownie, aby dodać dowolne dwie liczby (zmieniając wartości @X i @Y). Jeśli myślimy o tym w kategoriach zestawu, możemy powiedzieć, że wynik jest zwracany jako nienazwana tabela (zestaw) z jednym wierszem i następującymi trzema kolumnami:
Możesz jednak zrobić więcej za pomocą WYBIERZ
Tutaj użyjemy funkcji GETDATE(), aby pobrać aktualną datę i oczekiwaną datę dostawy nieznanego zamówienia, które nie jest jeszcze częścią naszej tabeli.
Załóżmy, że nie mamy jeszcze żadnej tabeli zamówień, ale chcemy szybko obliczyć przewidywaną datę dostawy zamówienia produktu. Jeśli dodamy jakąkolwiek liczbę do funkcji GETDATE(), powie nam ona datę dodania z podaną liczbą dni.
Innymi słowy, jeśli spodziewamy się, że data dostawy zamówienia to dwa dni po złożeniu zamówienia, możemy ją obliczyć za pomocą SELECT z GETDATE()+2.
Aby zobaczyć to w akcji, uruchom następujący skrypt SQL:
Zestaw wyników jest następujący:
Tym razem możemy obliczyć oczekiwaną datę dostawy zamówienia bezpośrednio za pomocą instrukcji SELECT z funkcją GETDATE() w przypadku braku jakiejkolwiek tabeli.
Jednak gdybyśmy mieli stół, otrzymalibyśmy oczekiwaną datę dostawy dla wszystkich zamówień z tego stołu.
Po raz kolejny, jeśli przeanalizujemy ten wynik pod kątem Set Logic, otrzymamy jedną nienazwaną tabelę (zestaw) z dwiema kolumnami i jednym wierszem. SQL to język oparty na zestawach, który działa bardzo szybko z zestawami, takimi jak tabele. Jeśli nie ma tam tabel, traktuje wartości wejściowe (do przetworzenia) jako nienazwane zestawy.
Krótko mówiąc, zapytanie SQL wymaga instrukcji SELECT, po której następuje wyrażenie, aby wykonać obliczenia oparte na liczbach lub dacie, nawet względem pustej bazy danych (bez tabel).
Gratulacje! Poznałeś podstawy zapytań SQL i napisałeś kilka prostych zapytań za pomocą instrukcji SELECT względem przykładowej bazy danych.
Pozostań w kontakcie, ponieważ pisanie prostych zapytań SQL w tabelach bazy danych dopiero nadejdzie.
Teraz, gdy możesz już napisać kilka podstawowych zapytań SQL, wypróbuj następujące ćwiczenia:, musisz myśleć w kategoriach zestawów.
Jak napisać proste zapytanie SQL
-- Display 1
SELECT 1
-- Show value 1 for the column Number of an unnamed table (set)
SELECT 1 AS Number
Obliczenia w instrukcji Select
-- Adding two numbers 1000 and 200
SELECT 1000+200 AS [Sum Of 1000 And 200]
-- SQL script to add any two numbers
DECLARE @X INT, @Y INT, @Addition INT
SET @X=550 -- Initialise variable X with a value (number)
SET @Y=350 -- Initialise variable Y with a value (number)
SET @[email protected]@sqldat.com -- SUM X and Y
SELECT @X AS FirstNumber_X,@Y as SecondNumber_Y,@Addition as SumOfNumbers
Jeszcze jeden przykład obliczania danych
-- Calculating order date and expected delivery date
SELECT GETDATE() AS [Order Date],GETDATE()+2 as [Expected Delivery Date]
Co warto wiedzieć, jak lepiej pisać zapytania SQL