Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Utwórz tabelę w SQL Server 2017

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 przypadku Artists ), 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, a PRIMARY 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 to nvarchar(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ę na NOT NULL aby nie zawierał pustych wpisów.
ActiveFrom date
Ostatnia kolumna nazywa się ActiveFrom i ustawiamy go tak, aby akceptował typ danych date
);
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ś.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zaktualizować statystyki programu SQL Server dla dużych tabel

  2. Napraw komunikat 8116 „Argument typ danych varchar jest nieprawidłowy dla argumentu 1 funkcji session_context” w programie SQL Server

  3. SqlDataSourceEnumerator.Instance.GetDataSources() nie lokalizuje lokalnego wystąpienia serwera SQL 2008

  4. SQL Server Wyzwalacz do pracy z wstawianiem wielu wierszy

  5. Sekwencja jako wartość domyślna dla kolumny