Tutaj tworzymy trzy tabele w SQL Server, a następnie analizujemy skrypt, który je utworzył. Uruchamiamy również inny skrypt, aby sprawdzić, czy tabela została utworzona.
Wcześniej tworzyliśmy bazę danych ze skryptu. Jednak baza danych jest pustą bazą danych — nie zawiera żadnych tabel ani danych.
Teraz utworzymy kilka tabel dla naszej bazy danych.
Po pierwsze, jako przypomnienie, oto, co zrobiliśmy do tej pory:
CREATE DATABASE Music;
To stworzyło pustą bazę danych. Jeśli jeszcze tego nie zrobiłeś, uruchom ten skrypt.
Teraz uruchom następujący skrypt:
USE Music; CREATE TABLE Artists ( ArtistId int IDENTITY(1,1) NOT NULL PRIMARY KEY, ArtistName nvarchar(255) NOT NULL, ActiveFrom date ); GO CREATE TABLE Genres ( GenreId int IDENTITY(1,1) NOT NULL PRIMARY KEY, Genre nvarchar(50) NOT NULL ); CREATE TABLE Albums ( AlbumId int IDENTITY(1,1) NOT NULL PRIMARY KEY, AlbumName nvarchar(255) NOT NULL, ReleaseDate date NOT NULL, ArtistId int NOT NULL, GenreId int NOT NULL CONSTRAINT FK_Albums_Artists FOREIGN KEY (ArtistId) REFERENCES dbo.Artists (ArtistId) ON DELETE NO ACTION ON UPDATE NO ACTION );
Skrypt ten dodaje do bazy danych trzy tabele. Tabele nazywają się Artists
, Genres
i Albums
.
Oto wynik w SQL Operations Studio/Azure Data Studio:
Każde narzędzie GUI wyświetli tabele w podobny sposób. Każdą tabelę można rozwinąć, aby odsłonić jej kolumny, a także indeksy, wyzwalacze, klucze itp. Możesz także rozwinąć Kolumny węzła, aby wyświetlić listę kolumn i ich typy danych, a także wszelkie określone ograniczenia.
Wyjaśnienie CREATE TABLE
Oświadczenie
Skrypt, który właśnie uruchomiliśmy, składa się z trzech CREATE TABLE
zestawienia — każde z nich tworzy inną tabelę. Skrypt dodaje również ograniczenie klucza obcego, ale przyjrzymy się temu później.
Na razie przeanalizujmy pierwszy CREATE TABLE
oświadczenie w naszym skrypcie:
USE Music; CREATE TABLE Artists ( ArtistId int IDENTITY(1,1) NOT NULL PRIMARY KEY, ArtistName nvarchar(255) NOT NULL, ActiveFrom date ); GO
Ta instrukcja SQL tworzy tabelę o nazwie Artists
z trzema kolumnami o nazwie ArtistId
, ArtistName
i ActiveFrom
. Definicja każdej kolumny zaczyna się od jej nazwy, po której następuje typ danych i wszelkie ograniczenia, które mają być zastosowane do tej kolumny.
Oto bardziej szczegółowy opis „linia po linii”:
USE Music;
- Ta część nie jest w rzeczywistości częścią
CREATE TABLE
oświadczenie. Jest tam tylko po to, aby przełączyć się na Muzykę Baza danych. Na serwerze może być wiele baz danych i chcemy mieć pewność, że tworzymy tabele we właściwej bazie danych. Nie potrzebujesz tej linii, jeśli już pracujesz we właściwej bazie danych. CREATE TABLE Artists (
- To jest początek
CREATE TABLE
oświadczenie. Po nim następuje nazwa tabeli (w tym przypadkuArtists
), po którym następuje pierwszy z nawiasów zamykających definicję tabeli. ArtistId int IDENTITY(1,1) NOT NULL PRIMARY KEY,
- Następnie definiujemy pierwszą kolumnę. W tym przypadku nazywamy to
ArtistId
, określ typ danych jako liczbę całkowitą (int
), ustaw ją jako kolumnę tożsamości (ta kolumna zapewni unikalny identyfikator tabeli, a wartość będzie się zwiększać z każdym dodanym wierszem),(1,1)
oznacza, że wartość zaczyna się od 1 i zwiększa się o 1,NOT NULL
oznacza, że pole nie może zawierać wartości null, aPRIMARY KEY
ustawia tę kolumnę jako klucz podstawowy dla tabeli. klucz podstawowy to kolumna, która została skonfigurowana jako pole unikalnego identyfikatora dla tabeli. ArtistName nvarchar(255) NOT NULL,
- Następna kolumna nazywa się
ArtistName
a jego typ danych tonvarchar(255)
, co oznacza, że akceptuje dane ciągu Unicode o zmiennej długości, o maksymalnej długości 255 znaków. Ustawiamy również tę kolumnę naNOT NULL
aby nie zawierał pustych wpisów. ActiveFrom date
- Ostatnia kolumna nazywa się
ActiveFrom
i ustawiamy go tak, aby akceptował typ danychdate
);
- Następnie używamy
)
aby zamknąć definicję i;
aby zakończyć instrukcję (średnik jest terminatorem instrukcji). GO
- sygnalizuje koniec partii instrukcji języka Transact-SQL. W rzeczywistości nie jest to instrukcja języka Transact-SQL. Jest to polecenie rozpoznawane przez narzędzia sqlcmd i osql oraz edytor kodu SQL Server Management Studio, które sygnalizuje koniec partii instrukcji Transact-SQL.
Jak pobrać informacje o tabeli podczas korzystania z narzędzia wiersza poleceń
Korzystając z narzędzia wiersza poleceń, nie masz luksusu oglądania tabel bazy danych siedzących w panelu bocznym i czekających na rozwinięcie jednym kliknięciem. Ale to nie znaczy, że nie możesz przeglądać informacji o swoich tabelach lub innych obiektach bazy danych.
Używając narzędzia wiersza poleceń, możesz uruchomić następującą instrukcję, aby wyświetlić informacje o tabelach w powyższej bazie danych:
USE Music; SELECT column_name, data_type, character_maximum_length, is_nullable FROM information_schema.columns;Wynik
column_name data_type character_maximum_length is_nullable ----------- --------- ------------------------ ----------- ArtistId int null NO ArtistName nvarchar 255 NO ActiveFrom date null YES GenreId int null NO Genre nvarchar 50 NO AlbumId int null NO AlbumName nvarchar 255 NO ReleaseDate date null NO ArtistId int null NO GenreId int null NO 10 row(s) returned Executed in 1 ms
Dana tabela znajduje się w bazie danych o nazwie Muzyka dlatego najpierw przełączamy się na to.
Możesz także zawęzić go do konkretnej tabeli, używając WHERE
klauzula:
USE Music; SELECT column_name, data_type, character_maximum_length, is_nullable FROM information_schema.columns WHERE table_name = 'Artists';Wynik
column_name data_type character_maximum_length is_nullable ----------- --------- ------------------------ ----------- ArtistId int null NO ArtistName nvarchar 255 NO ActiveFrom date null YES 3 row(s) returned Executed in 1 ms
Istnieje wiele innych pól, które mogą zostać zwrócone przez information_schema.columns
. Możesz użyć SELECT *
aby zwrócić je wszystkie, jeśli chcesz.
Metoda wiersza poleceń do pobierania informacji z tabeli działa również podczas korzystania z narzędzia GUI (w końcu są to tylko instrukcje SQL). Możesz wprowadzić te same instrukcje SQL, aby pobrać te same dane, niezależnie od tego, czy używasz sql-cli, sqlcmd, SSMS, Azure Data Studio, DBeaver, czy dowolnego innego narzędzia do zarządzania SQL Server:
GO
Polecenie
Może być konieczne dodanie GO
do końca skryptu (na przykład podczas używania sqlcmd).
Wiele linii
Może się okazać, że otrzymasz błąd, jeśli spróbujesz rozłożyć powyższe skrypty na wiele wierszy za pomocą narzędzia wiersza poleceń.
W takim przypadku spróbuj dodać ukośnik odwrotny na końcu każdej linii. Tak:
USE Music; \ SELECT column_name, data_type, character_maximum_length, is_nullable \ FROM information_schema.columns;
Jeśli nie podoba ci się pomysł dodawania ukośników odwrotnych, inną opcją jest zapisanie skryptu wielowierszowego w pliku .sql, a następnie uruchomienie go z wiersza polecenia.
Metoda uruchamiania skryptu z wiersza poleceń będzie zależeć od używanego narzędzia wiersza poleceń.
Oto jak używać sqlcmd do uruchamiania pliku zapisanego na komputerze z systemem Windows:
sqlcmd -S myServer\instanceName -i C:\myScript.sql
A oto jak używać sql-cli do uruchamiania pliku zapisanego na komputerze Mac:
.run /myScript.sql
Oczywiście pełna ścieżka i nazwy plików będą zależeć od nazwy pliku i miejsca, w którym go zapisałeś.