sql >> Databáze >  >> RDS >> Sqlserver

Vytvořte tabulku v SQL Server 2017

Zde vytvoříme tři tabulky v SQL Serveru a poté analyzujeme skript, který je vytvořil. Spustíme také další skript, abychom ověřili, že tabulka byla vytvořena.

Dříve jsme vytvářeli databázi ze skriptu. Databáze je však prázdná databáze – neobsahuje žádné tabulky ani data.

Nyní vytvoříme nějaké tabulky pro naši databázi.

Nejprve, pro osvěžení, zde je to, co jsme dosud udělali:

CREATE DATABASE Music;

Tím vznikla prázdná databáze. Pokud jste tak ještě neučinili, spusťte tento skript.

Nyní spusťte následující skript:

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    
);

Tento skript přidá do databáze tři tabulky. Tabulky se nazývají Artists , Genres a Albums .

Zde je výsledek v SQL Operations Studio/Azure Data Studio:

Jakýkoli nástroj GUI zobrazí tabulky v podstatě stejným způsobem. Každou tabulku lze rozbalit a odhalit její sloupce, stejně jako všechny indexy, spouštěče, klíče atd. Můžete také rozbalit Sloupce uzel pro zobrazení seznamu sloupců a jejich datových typů a také případných omezení, která byla specifikována.

Vysvětlení CREATE TABLE Prohlášení

Skript, který jsme právě spustili, se skládá ze tří CREATE TABLE příkazy — každý vytvoří jinou tabulku. Skript také přidává omezení cizího klíče, ale na to se podíváme později.

Nyní si pojďme analyzovat první CREATE TABLE příkaz v našem skriptu:

USE Music;

CREATE TABLE Artists (
  ArtistId int IDENTITY(1,1) NOT NULL PRIMARY KEY,
  ArtistName nvarchar(255) NOT NULL,
  ActiveFrom date
);
GO

Tento příkaz SQL vytvoří tabulku nazvanou Artists se třemi sloupci nazvanými ArtistId , ArtistName a ActiveFrom . Definice každého sloupce začíná jeho názvem, za nímž následuje jeho datový typ a případná omezení, která mají být na tento sloupec aplikována.

Zde je podrobnější popis „řádek po řádku“:

USE Music;
Tato část ve skutečnosti není součástí CREATE TABLE prohlášení. Slouží pouze k přepnutí na Hudbu databáze. Na serveru může být mnoho databází a my si chceme být jisti, že vytváříme tabulky na správné databázi. Tento řádek nepotřebujete, pokud již pracujete ve správné databázi.
CREATE TABLE Artists (
Toto je začátek CREATE TABLE prohlášení. Za ním následuje název tabulky (v tomto případě Artists ), za kterým následuje první ze závorek, které uzavírají definici tabulky.
ArtistId int IDENTITY(1,1) NOT NULL PRIMARY KEY,
Potom definujeme první sloupec. V tomto případě to nazýváme ArtistId , zadejte jeho datový typ jako celé číslo (int ), nastavte jej jako sloupec indentity (tento sloupec poskytne jedinečné ID pro tabulku a hodnota se bude zvyšovat s každým přidaným řádkem), (1,1) znamená, že hodnota začíná na 1 a zvyšuje se o 1, NOT NULL znamená, že pole nemůže obsahovat hodnoty null a PRIMARY KEY nastaví tento sloupec jako primární klíč pro tabulku. primární klíč je sloupec, který byl nakonfigurován jako pole jedinečného identifikátoru pro tabulku.
ArtistName nvarchar(255) NOT NULL,
Další sloupec se nazývá ArtistName a jeho datový typ je nvarchar(255) , což znamená, že přijímá data řetězce Unicode s proměnnou délkou, s maximální délkou 255 znaků. Tento sloupec jsme také nastavili na NOT NULL takže nemůže obsahovat prázdné položky.
ActiveFrom date
Poslední sloupec se nazývá ActiveFrom a nastavíme jej tak, aby přijímal datový typ date
);
Potom použijeme ) pro uzavření definice a ; pro ukončení příkazu (středník je ukončovací znak příkazu).
GO
Signalizuje konec dávky příkazů Transact-SQL. Toto ve skutečnosti není příkaz Transact-SQL. Je to příkaz, který rozpoznávají obslužné programy sqlcmd a osql a editor kódu SQL Server Management Studio, který signalizuje konec dávky příkazů Transact-SQL.

Jak získat informace o tabulce při použití nástroje příkazového řádku

Když používáte nástroj příkazového řádku, nemáte ten luxus vidět své databázové tabulky na bočním panelu a čekat na rozbalení jediným kliknutím. To však neznamená, že nemůžete zobrazit informace o svých tabulkách nebo jiných databázových objektech.

Při použití nástroje příkazového řádku můžete spustit následující příkaz k zobrazení informací o tabulkách ve výše uvedené databázi:

USE Music; 
SELECT column_name, data_type, character_maximum_length, is_nullable 
FROM information_schema.columns;
Výsledek
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

Dotyčná tabulka je v databázi s názvem Music proto na něj přejdeme jako první.

Můžete ji také zúžit na konkrétní tabulku pomocí WHERE klauzule:

USE Music; 
SELECT column_name, data_type, character_maximum_length, is_nullable 
FROM information_schema.columns 
WHERE table_name = 'Artists';
Výsledek
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

information_schema.columns může vrátit mnohem více polí . Můžete použít SELECT * chcete-li je všechny vrátit.

Metoda příkazového řádku pro načítání informací z tabulky funguje také při použití nástroje GUI (koneckonců jsou to jen příkazy SQL). Chcete-li získat stejná data, můžete zadat stejné příkazy SQL, ať už používáte sql-cli, sqlcmd, SSMS, Azure Data Studio, DBeaver nebo jakýkoli jiný nástroj pro správu serveru SQL:

GO Příkaz

Možná budete muset přidat GO na konec skriptu (například při použití sqlcmd).

Více řádků

Pokud se pokusíte rozložit výše uvedené skripty na více řádků pomocí nástroje příkazového řádku, můžete zjistit, že se zobrazí chyba.

V takovém případě zkuste na konec každého řádku přidat zpětné lomítko. Takto:

USE Music; \
SELECT column_name, data_type, character_maximum_length, is_nullable \
FROM information_schema.columns;

Pokud se vám nelíbí myšlenka přidávat zpětná lomítka, další možností je uložit víceřádkový skript do souboru .sql a poté jej spustit z příkazového řádku.

Způsob spuštění skriptu z příkazového řádku bude záviset na nástroji příkazového řádku, který používáte.

Zde je návod, jak použít sqlcmd ke spuštění souboru uloženého na počítači se systémem Windows:

sqlcmd -S myServer\instanceName -i C:\myScript.sql

A zde je návod, jak použít sql-cli ke spuštění souboru uloženého na Macu:

.run /myScript.sql

Úplná cesta a názvy souborů budou samozřejmě záviset na názvu vašeho souboru a na tom, kam jste jej uložili.


  1. Nástroj pro ověřování clusteru generující velké množství souborů xml na souborovém systému „/u01“.

  2. Automatický sběr dat o dokončených úkolech v MS SQL Server

  3. Jak převést počet minut do formátu hh:mm v TSQL?

  4. MariaDB UCASE() Vysvětleno