SQL Server CREATE, ALTER, DROP Table [Příklady T-SQL]

⚡ Chytré shrnutí

Tabulky SQL Serveru ukládají data v řádcích a sloupcích. Transact-SQL používá příkaz CREATE TABLE k vytvoření tabulky, ALTER TABLE k přidání nebo změně sloupců a DROP TABLE k odebrání tabulky, jejích dat a struktury.

  • 🧱 Co je to tabulka: Tabulka ukládá data v řádcích a sloupcích a je základním objektem pro uchovávání dat v databázi.
  • 🛠️ VYTVOŘIT TABULKU: Příkaz CREATE TABLE definuje každý sloupec s názvem, datovým typem a nastavením NULL nebo NOT NULL.
  • ???? Vytvořit z existujícího: SELECT … INTO zkopíruje vybrané sloupce a řádky z existující tabulky do zcela nové tabulky.
  • ALTER TABULKA: Příkaz ALTER TABLE … ADD přidá do tabulky nové sloupce, aniž by ji znovu vytvořil.
  • 🗑️ PŘESTUP TABULKY: DROP TABLE odstraní celou tabulku, včetně jejích dat a struktury.
  • 🖱️ Návrhář stolů: SQL Server Management Studio může také vizuálně vytvářet a upravovat tabulky pomocí Návrháře tabulek.

Tabulka SQL Server CREATE, ALTER a DROP s příklady T-SQL

Co je to stůl?

Tabulka je objekt v SQL Server který ukládá data ve formátu řádků a sloupců. Níže uvedený diagram znázorňuje řádky a sloupce.

Schéma tabulky ukládající data v řádcích a sloupcích

Jak vytvořit tabulku na serveru SQL pomocí T-SQL

Prvním krokem k ukládání dat je vytvoření tabulky v databáze kde budou data umístěna. Po vytvoření tabulky do ní můžete dále vkládat řádky.

Tabulku můžete vytvořit následujícími způsoby:

  • T-SQL: vytvoření nové tabulky definováním všech sloupců a jejich datových typů.
  • T-SQL: vytvoření nové tabulky s použitím existující tabulky.
  • Používání návrháře tabulek.

Pojďme si to podrobně prostudovat.

T-SQL: Vytvoření nové tabulky definováním všech sloupců a jejich datových typů

Níže je uvedena syntaxe pro vytvoření tabulky v SQL Serveru.

Syntaxe:

CREATE TABLE tableName
( 
  column_1 datatype [ NULL | NOT NULL ],
  column_2 datatype [ NULL | NOT NULL ],
  ...
);

Zde,

  • Parametr tableName označuje název tabulky, kterou se chystáte vytvořit.
  • Parametry column_1, column_2… označují sloupce, které mají být přidány do tabulky.
  • Sloupec by měl být zadán buď jako NULL, nebo NOT NULL. Pokud nezadáte hodnotu, SQL Server použije jako výchozí hodnotu NULL.

Vytvořme si základní tabulku se dvěma sloupci.

Dotaz:

CREATE TABLE COURSE
(
Course_ID Int,
Course_Name Varchar(10)
)

Předpoklad: Vyberte databázi, ve které chcete vytvořit tabulku.

Krok 1) Spusťte dotaz kliknutím na tlačítko Spustit. Před spuštěním dotazu neexistuje žádná tabulka, jak je znázorněno níže.

Průzkumník objektů nezobrazuje žádnou tabulku Course před spuštěním příkazu CREATE.

Po spuštění dotazu klikněte na tlačítko Obnovit; nová tabulka nyní existuje jako Kurz, jak je znázorněno níže.

Tabulka kurzu zobrazená v Průzkumníku objektů po spuštění a aktualizaci

Krok 2) Vložte nějaká data. Níže uvedené snímky obrazovky ukazují nově vytvořenou tabulku Kurz připravenou k přijímání řádků.

Nově vytvořená tabulka kurzu vybraná v Průzkumníku objektů před vložením dat

Struktura tabulky kurzu se dvěma sloupci zobrazenými před vložením dat

Zatím tabulka pouze existuje, ale zatím v ní nejsou žádná data.

Jazyk Transact-SQL poskytuje příkaz INSERT pro vkládání dat do tabulky. Pomocí tohoto příkazu můžete do tabulky vložit jeden nebo více řádků.

Syntaxe:

INSERT INTO tableName
(column_1, column_2, ... )
VALUES
(expression_1, expression_2, ... ),
(expression_1, expression_2, ... ),
...;

Výše uvedená syntaxe ukazuje základní tvar příkazu při použití klíčového slova VALUES k vložení dat do tabulky.

Vložme čtyři řádky pomocí příkazu INSERT.

Insert into COURSE values (1,'SQL');
Insert into COURSE values (2,'Python');
Insert into COURSE values (3,'SQL');
Insert into COURSE values (4,'C');

Níže uvedený snímek ukazuje, že vložení čtyř řádků proběhlo úspěšně.

Panel zpráv potvrzující vložení čtyř řádků do tabulky Kurz

Krok 3) Pro zobrazení dat použijte příkaz SELECT. Pro zobrazení dat v SQL Serveru použijte následující syntaxi:

SELECT expression
FROM tableName
[WHERE condition];

Příklad dotazu:

SELECT * FROM COURSE;

Tabulka byla vytvořena a nyní obsahuje čtyři záznamy. Upozorňujeme, že můžete vytvořit záznamy s duplicitní hodnotou v libovolném sloupci, protože neexistují žádné omezení.

Tabulka výsledků zobrazující čtyři řádky kurzu vrácené funkcí SELECT

T-SQL: Vytvoření nové tabulky pomocí existující tabulky

Předpokládejme, že chcete další tabulku podobnou tabulce COURSE vytvořené výše, ale potřebujete pouze sloupec Course_Name a nikoli Course_ID.

Syntaxe:

SELECT (Column 1, …) INTO <New Table name> FROM <Old Table name>;

Příklad dotazu:

SELECT COURSE_NAME INTO COURSE_NAMES FROM COURSE;

Krok 1) Spusťte dotaz kliknutím na tlačítko Spustit. Vytvoří se nová tabulka s názvem COURSE_NAMES s jedním sloupcem a čtyřmi záznamy zkopírovanými ze starší tabulky, jak je znázorněno níže.

Nová tabulka COURSE_NAMES vytvořená z existující tabulky pomocí příkazu SELECT INTO

Příklad dotazu:

SELECT * FROM COURSE_NAMES;

Níže uvedený výsledek vypíše čtyři záznamy Course_Name v nové tabulce COURSE_NAMES.

Tabulka výsledků zobrazující hodnoty názvu_kurzu v tabulce názvy_kurzů

Pomocí Návrháře tabulek

Tabulku můžete také vytvořit z SQL Server Management Studio IDE s použitím Návrháře tabulek.

Krok 1) Klikněte pravým tlačítkem myši na Tabulka > Nová > Tabulka, jak je znázorněno níže.

V Průzkumníku objektů klikněte pravým tlačítkem myši na Tabulka, poté na Nová a poté na Tabulka.

Krok 2) Zadejte názvy sloupců a typy data zvolte, zda každý sloupec povoluje hodnoty null.

Panel nástrojů Návrhář tabulek pro definování nové tabulky

Mřížka návrháře tabulek s názvy sloupců, datovými typy a možnostmi Povolit hodnoty Null

Krok 3) Stiskněte CTRL+S pro uložení tabulky a zadejte název jako Název_kurzu.

V dialogovém okně Název vyberte možnost Uložit novou tabulku jako Název_kurzu.

Po kliknutí na tlačítko Obnovit se zobrazí nová tabulka s názvem Název_kurzu a jedním sloupcem s názvem Název_kurzu, jak je znázorněno níže.

Tabulka Course_Title s jedním sloupcem Course_Name v Průzkumníku objektů

Změnit tabulku v SQL Server

Existují dva způsoby, jak změnit tabulku v SQL Serveru:

  • T-SQL: úprava tabulky přidáním nových sloupců.
  • Používání návrháře tabulek.

T-SQL: Změňte tabulku vložením sloupců

Níže je uvedena syntaxe příkazu ALTER v SQL:

Syntaxe:

 Alter TABLE <Table name> ADD Column1 datatype, Column2 datatype;

Dotaz:

ALTER TABLE dbo.Course_Title ADD Course_Duration VARCHAR(20);

Krok 1) Spusťte dotaz kliknutím na tlačítko Spustit. V tabulce Název_kurzu nyní existuje nový sloupec s názvem Trvání_kurzu, jak je znázorněno níže.

Příkaz ALTER TABLE ADD přidává sloupec Course_Duration

Sloupce Course_Title včetně nově přidaného sloupce Course_Duration

Pomocí Návrháře tabulek

Tabulku můžete také upravit z uživatelského rozhraní pomocí Návrháře tabulek.

Krok 1) Klikněte pravým tlačítkem myši na existující tabulku > Návrh, jak je znázorněno níže.

Klikněte pravým tlačítkem myši na tabulku Course_Title a vyberte možnost Design.

Krok 2) Přidejte název sloupce jako Datum_zahájení_kurzu a vyberte jeho datový typ.

Přidání sloupce Course_Start_Date a jeho datového typu v Návrháři tabulek

Krok 3) Stisknutím kláves CTRL+S uložte nově přidaný sloupec. V tabulce Název_kurzu se vytvoří nový sloupec s názvem Datum_zahájení_kurzu, jak je znázorněno níže.

Tabulka Název_kurzu zobrazující uložený sloupec Datum_zahájení_kurzu

Odstranit tabulku v SQL Server

Tabulku odstraníte, když již není potřeba.

Existují dva způsoby, jak odstranit tabulku v SQL Serveru:

  • Používání SQL Server Management Studia.
  • T-SQL: smazání tabulky pomocí příkazu DROP TABLE.

Pomocí SQL Server Management Studio

Krok 1) Klikněte pravým tlačítkem myši na existující tabulku > Odstranit u tabulky s názvem Název_kurzu, jak je znázorněno níže.

Klikněte pravým tlačítkem myši na tabulku Course_Title a vyberte možnost Delete.

Krok 2) V okně Odstranit objekt klikněte na tlačítko OK.

Okno s potvrzením odstranění objektu tlačítkem OK

Tabulka Název_kurzu je nyní ze seznamu tabulek odstraněna, jak je znázorněno níže.

Seznam tabulek Průzkumníka objektů po odstranění tabulky Course_Title

T-SQL: Smazání tabulky

Níže je uvedena syntaxe pro odstranění tabulky.

Syntaxe:

DROP TABLE <tableName>;

Parametr tableName je název tabulky, která má být odstraněna.

Dotaz:

DROP TABLE COURSE_NAMES;

Krok 1) Spusťte dotaz kliknutím na tlačítko Spustit. Tabulka COURSE_NAMES se ze seznamu tabulek odstraní, jak je znázorněno níže.

Příkaz DROP TABLE odstraňuje tabulku COURSE_NAMES

Seznam tabulek Průzkumníka objektů po odstranění tabulky COURSE_NAMES

Alternativně zdroj ukazuje příkaz DELETE TABLE, který má odstranit pouze řádky (data) a zároveň ponechat strukturu tabulky neporušenou, takže tabulku lze později znovu použít.

Syntaxe:

DELETE TABLE <Table name>;

Poznámka: Ve standardním T-SQL se řádky odstraňují pomocí DELETE FROM <table>a stůl se rychle vyprázdní TRUNCATE TABLE <table>; celá tabulka se odstraní pomocí příkazu DROP TABLE, jak je znázorněno výše.

Zajímavosti!

  • Velké soubory, jako například XML nebo obrázky, lze ukládat do sloupce pomocí datových typů velkých objektů, jako je VARBINARY(MAX), VARCHAR(MAX) nebo typ XML (SQL Server nepoužívá Oraclenázvy BLOB a CLOB ve stylu -).
  • Příkaz DELETE odstraní pouze řádky a lze jej vrátit zpět v rámci transakce, zatímco příkaz DROP odstraní celou strukturu tabulky; v SQL Serveru lze dokonce i příkaz DROP vrátit zpět, pokud je spuštěn uvnitř explicitní transakce.

Nejčastější dotazy

Příkaz DELETE odstraní vybrané řádky a je kompletně zaprotokolován. Příkaz TRUNCATE rychle odstraní všechny řádky a resetuje hodnoty identity. Příkaz DROP odstraní celou tabulku, její data a strukturu. V SQL Serveru lze všechny tři operace vrátit zpět v rámci explicitní transakce.

Použijte příkaz DROP TABLE IF EXISTS název_tabulky, dostupný od SQL Serveru 2016. Odstraní tabulku, pokud je přítomna, a neprovede nic, pokud chybí, čímž se zabrání chybě. Ve starších verzích zkontrolujte před odstraněním ID_OBJECTU.ping.

SQL Server nemá příkaz RENAME TABLE. Místo toho spusťte systémovou uloženou proceduru sp_rename, například EXEC sp_rename 'old_name', 'new_name'. Následně aktualizujte závislé zobrazení, procedury a kód, protože sp_rename tyto odkazy automaticky nemění.

Ano. Příkaz ALTER TABLE table ALTER COLUMN column new_type změní datový typ sloupce a příkaz ALTER TABLE table DROP COLUMN column jej odstraní. Změna bude úspěšná pouze tehdy, když jsou existující data kompatibilní, proto nejprve otestujte převody a vytvořte zálohu.

Definujte omezení uvnitř CREATE TABLE, například Course_ID INT PRIMARY KEY, nebo je přidejte později pomocí ALTER TABLE ADD CONSTRAINT. primární klíč vynucuje jedinečnost, zatímco a cizí klíč propojuje řádky napříč tabulkami.

Dočasná tabulka s prefixem # se vytvoří v dočasné databázi (dočasná databáze) a po ukončení relace se automaticky odstraní. Běžná tabulka je trvalá, dokud ji neodstraníte. Dočasné tabulky jsou vhodné pro krátkodobé mezivýsledky v rámci dávky nebo procedury.

Ano. GitHub Copilot Může vytvářet skripty CREATE, ALTER a DROP TABLE z výzev v přirozeném jazyce a navrhovat sloupce, datové typy a omezení. Před spuštěním v produkčním prostředí si vždy zkontrolujte vygenerované schéma, klíče a nullabilitu.

Nástroje umělé inteligence a strojového učení doporučují struktury tabulek, datové typy a indexy z ukázkových dat a vzorů dotazů, označují redundantní nebo nadměrně velké sloupce a varují před rizikovými operacemi DROP nebo ALTER. Vývojář každý návrh před jeho použitím potvrdí.

Shrňte tento příspěvek takto: