SQL Server CREATE, ALTER, DROP Table [Przykłady T-SQL]

⚡ Inteligentne podsumowanie

Tabele SQL Server przechowują dane w wierszach i kolumnach. Język Transact-SQL używa polecenia CREATE TABLE do tworzenia tabeli, ALTER TABLE do dodawania lub zmiany kolumn oraz DROP TABLE do usuwania tabeli, jej danych i struktury.

  • 🧱 Czym jest tabela: Tabela przechowuje dane w wierszach i kolumnach i stanowi podstawowy obiekt do przechowywania danych w bazie danych.
  • 🛠️. UTWÓRZ TABELĘ: Polecenie CREATE TABLE definiuje każdą kolumnę za pomocą nazwy, typu danych i ustawienia NULL lub NOT NULL.
  • 📋 Utwórz z istniejącego: SELECT … INTO kopiuje wybrane kolumny i wiersze z istniejącej tabeli do zupełnie nowej tabeli.
  • ZMIEŃ TABELĘ: ALTER TABLE … ADD dodaje nowe kolumny do tabeli bez jej ponownego tworzenia.
  • 🗑️ USUŃ TABELĘ: DROP TABLE usuwa całą tabelę łącznie z danymi i strukturą.
  • 🖱️. Projektant tabel: SQL Server Management Studio umożliwia również wizualne tworzenie i modyfikowanie tabel za pomocą Projektanta tabel.

Przykłady tworzenia, zmiany i usuwania tabeli w programie SQL Server w języku T-SQL

Co to jest tabela?

Tabela jest obiektem w SQL Server który przechowuje dane w formacie wierszowo-kolumnowym. Poniższy diagram przedstawia odpowiednio wiersze i kolumny.

Schemat tabeli przechowującej dane w wierszach i kolumnach

Jak utworzyć tabelę w SQL Server za pomocą T-SQL

Pierwszym krokiem do przechowywania danych jest utworzenie tabeli w baza danych gdzie będą przechowywane dane. Po utworzeniu tabeli możesz nadal wstawiać do niej wiersze.

Tabelę można utworzyć na następujące sposoby:

  • T-SQL: utwórz nową tabelę definiując wszystkie kolumny i ich typy danych.
  • T-SQL: tworzenie nowej tabeli przy użyciu istniejącej tabeli.
  • Korzystanie z Projektanta tabel.

Przyjrzyjmy się temu szczegółowo.

T-SQL: Utwórz nową tabelę, definiując wszystkie kolumny i ich typy danych

Poniżej przedstawiono składnię tworzenia tabeli w programie SQL Server.

Składnia:

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

Tutaj,

  • Parametr tableName oznacza nazwę tabeli, którą zamierzasz utworzyć.
  • Parametry kolumna_1, kolumna_2… oznaczają kolumny, które mają zostać dodane do tabeli.
  • Kolumna powinna być określona jako NULL lub NOT NULL. Jeśli tego nie zrobisz, SQL Server domyślnie przyjmie wartość NULL.

Utwórzmy prostą tabelę z dwiema kolumnami.

zapytanie:

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

Warunek wstępny: Wybierz bazę danych, w której chcesz utworzyć tabelę.

Krok 1) Uruchom zapytanie, klikając „Wykonaj”. Przed uruchomieniem zapytania nie istniała żadna tabela, jak pokazano poniżej.

Eksplorator obiektów nie wyświetla tabeli Kurs przed uruchomieniem polecenia CREATE

Po uruchomieniu zapytania kliknij przycisk Odśwież. Nowa tabela będzie teraz nosić nazwę Course, jak pokazano poniżej.

Tabela kursów wyświetlana w Eksploratorze obiektów po wykonaniu i odświeżeniu

Krok 2) Wprowadź dane. Poniższe zrzuty ekranu pokazują nowo utworzoną tabelę Kurs gotową do przyjęcia wierszy.

Nowo utworzona tabela kursu wybrana w Eksploratorze obiektów przed wstawieniem danych

Struktura tabeli kursu z dwiema kolumnami pokazana przed wprowadzeniem danych

Na razie istnieje tylko tabela, ale nie ma w niej jeszcze żadnych danych.

Język Transact-SQL udostępnia instrukcję INSERT do wstawiania danych do tabeli. Za pomocą tej instrukcji można wstawić jeden lub więcej wierszy do tabeli.

Składnia:

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

Powyższa składnia pokazuje podstawową formę polecenia, gdy używa się słowa kluczowego VALUES w celu wstawienia danych do tabeli.

Wstawmy cztery wiersze za pomocą polecenia 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');

Poniższa migawka pokazuje, że wstawienie czterech wierszy powiodło się.

Panel wiadomości potwierdzający wstawienie czterech wierszy do tabeli Kurs

Krok 3) Użyj instrukcji SELECT, aby wyświetlić dane. Aby wyświetlić dane w programie SQL Server, użyj następującej składni:

SELECT expression
FROM tableName
[WHERE condition];

Przykładowe zapytanie:

SELECT * FROM COURSE;

Tabela została utworzona i zawiera teraz cztery rekordy. Należy pamiętać, że można utworzyć rekordy z duplikatem wartości w dowolnej kolumnie, ponieważ nie ma Ograniczenia.

Siatka wyników pokazująca cztery wiersze kursu zwrócone przez SELECT

T-SQL: Tworzenie nowej tabeli przy użyciu istniejącej tabeli

Załóżmy, że chcesz mieć inną tabelę, podobną do tabeli COURSE utworzonej powyżej, ale potrzebujesz tylko kolumny Course_Name, a nie Course_ID.

Składnia:

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

Przykładowe zapytanie:

SELECT COURSE_NAME INTO COURSE_NAMES FROM COURSE;

Krok 1) Uruchom zapytanie, klikając „Wykonaj”. Zostanie utworzona nowa tabela o nazwie COURSE_NAMES z jedną kolumną i czterema rekordami skopiowanymi ze starej tabeli, jak pokazano poniżej.

Nowa tabela COURSE_NAMES utworzona z istniejącej tabeli za pomocą polecenia SELECT INTO

Przykładowe zapytanie:

SELECT * FROM COURSE_NAMES;

Poniżej znajduje się lista czterech rekordów Course_Name w nowej tabeli COURSE_NAMES.

Siatka wyników pokazująca wartości Course_Name w tabeli COURSE_NAMES

Korzystanie z Projektanta tabel

Można również utworzyć tabelę z SQL Server Management Studio IDE wykorzystujące Projektanta tabel.

Krok 1) Kliknij prawym przyciskiem myszy Tabela > Nowy > Tabela, jak pokazano poniżej.

Kliknij prawym przyciskiem myszy Tabelę, następnie Nowy, a potem Tabela w Eksploratorze obiektów

Krok 2) Wprowadź nazwy kolumn i typy danychi wybierz, czy każda kolumna dopuszcza wartości null.

Pasek narzędzi projektanta tabel umożliwiający definiowanie nowej tabeli

Siatka projektanta tabel z nazwami kolumn, typami danych i opcjami zezwalającymi na wartości null

Krok 3) Naciśnij CTRL+S, aby zapisać tabelę i wpisz nazwę w formacie Course_Title.

Wybierz okno dialogowe Nazwa, aby zapisać nową tabelę jako Tytuł_kursu

Po kliknięciu przycisku Odśwież pojawi się nowa tabela o nazwie Course_Title i jednej kolumnie o nazwie Course_Name, jak pokazano poniżej.

Tabela Course_Title z pojedynczą kolumną Course_Name w Eksploratorze obiektów

Zmień tabelę w SQL Server

Istnieją dwa sposoby modyfikacji tabeli w programie SQL Server:

  • T-SQL: zmodyfikuj tabelę, dodając nowe kolumny.
  • Korzystanie z Projektanta tabel.

T-SQL: Zmień tabelę, wstawiając kolumny

Poniżej przedstawiono składnię polecenia ALTER w SQL:

Składnia:

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

zapytanie:

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

Krok 1) Uruchom zapytanie, klikając „Wykonaj”. W tabeli „Tytuł kursu” pojawiła się nowa kolumna o nazwie „Czas trwania kursu”, jak pokazano poniżej.

Polecenie ALTER TABLE ADD dodające kolumnę Course_Duration

Kolumny Course_Title, w tym nowo dodana kolumna Course_Duration

Korzystanie z Projektanta tabel

Tabelę można również modyfikować z poziomu interfejsu użytkownika, używając Projektanta tabel.

Krok 1) Kliknij prawym przyciskiem myszy istniejącą tabelę > Projekt, jak pokazano poniżej.

Kliknij prawym przyciskiem myszy tabelę Course_Title i wybierz opcję Projekt

Krok 2) Dodaj nazwę kolumny jako Course_Start_Date i wybierz jej typ danych.

Dodawanie kolumny Course_Start_Date i jej typu danych w Projektancie tabel

Krok 3) Naciśnij CTRL+S, aby zapisać nowo dodaną kolumnę. W tabeli Course_Title zostanie utworzona nowa kolumna o nazwie Course_Start_Date, jak pokazano poniżej.

Tabela Course_Title pokazująca zapisaną kolumnę Course_Start_Date

Usuń tabelę w SQL Server

Tabelę usuwa się, gdy nie jest już potrzebna.

Istnieją dwa sposoby usunięcia tabeli w programie SQL Server:

  • Korzystanie z SQL Server Management Studio.
  • T-SQL: usuń tabelę za pomocą DROP TABLE.

Korzystanie z programu SQL Server Management Studio

Krok 1) Kliknij prawym przyciskiem myszy istniejącą tabelę > Usuń, a następnie wybierz tabelę o nazwie Course_Title, jak pokazano poniżej.

Kliknij prawym przyciskiem myszy tabelę Course_Title i wybierz opcję Usuń

Krok 2) W oknie Usuń obiekt kliknij przycisk OK.

Okno potwierdzenia usunięcia obiektu za pomocą przycisku OK

Tabela Course_Title została usunięta z listy tabel, jak pokazano poniżej.

Lista tabel w Eksploratorze obiektów po usunięciu tabeli Course_Title

T-SQL: Usuwanie tabeli

Poniżej przedstawiono składnię usuwania tabeli.

Składnia:

DROP TABLE <tableName>;

Parametr tableName jest nazwą tabeli, która ma zostać usunięta.

zapytanie:

DROP TABLE COURSE_NAMES;

Krok 1) Uruchom zapytanie, klikając „Wykonaj”. Tabela COURSE_NAMES zostanie usunięta z listy tabel, jak pokazano poniżej.

Polecenie DROP TABLE usuwające tabelę COURSE_NAMES

Lista tabel Eksploratora obiektów po usunięciu tabeli COURSE_NAMES

Alternatywnie źródło pokazuje polecenie DELETE TABLE, którego celem jest usunięcie wyłącznie wierszy (danych), pozostawiając nienaruszoną strukturę tabeli, tak aby można było później ponownie wykorzystać tabelę.

Składnia:

DELETE TABLE <Table name>;

Uwaga: W standardowym języku T-SQL wiersze są usuwane za pomocą DELETE FROM <table>i stół szybko się opróżnia TRUNCATE TABLE <table>; cała tabela jest usuwana za pomocą DROP TABLE, jak pokazano powyżej.

Interesujące fakty!

  • Duże pliki, takie jak XML lub obrazy, można przechowywać w kolumnie, używając typów danych dużych obiektów, takich jak VARBINARY(MAX), VARCHAR(MAX) lub typu XML (serwer SQL Server nie używa tego typu danych). Oracle-nazwy BLOB i CLOB w stylu).
  • Polecenie DELETE usuwa wyłącznie wiersze i można je wycofać w ramach transakcji, natomiast polecenie DROP usuwa całą strukturę tabeli. W programie SQL Server nawet polecenie DROP można wycofać, jeśli zostanie wykonane w ramach jawnej transakcji.

FAQ

DELETE usuwa wybrane wiersze i jest w pełni logowany. TRUNCATE szybko usuwa wszystkie wiersze i resetuje wartości identyfikatorów. DROP usuwa całą tabelę, jej dane i strukturę. W SQL Server wszystkie te trzy elementy można wycofać w ramach jawnej transakcji.

Użyj komendy DROP TABLE IF EXISTS nazwa_tabeli, dostępnej od wersji SQL Server 2016. Usuwa ona tabelę, gdy jest obecna, i nie wykonuje żadnych działań, gdy jej nie ma, unikając błędu. W starszych wersjach przed usunięciem należy sprawdzić OBJECT_ID.ping.

W SQL Server nie ma instrukcji RENAME TABLE. Zamiast tego uruchom systemową procedurę składowaną sp_rename, na przykład EXEC sp_rename 'old_name', 'new_name'. Następnie zaktualizuj zależne widoki, procedury i kod, ponieważ sp_rename nie zmienia tych odwołań automatycznie.

Tak. Polecenie ALTER TABLE table ALTER COLUMN column new_type zmienia typ danych kolumny, a polecenie ALTER TABLE table DROP COLUMN column usuwa go. Zmiana jest skuteczna tylko wtedy, gdy istniejące dane są zgodne, dlatego najpierw przetestuj konwersje i utwórz kopię zapasową.

Zdefiniuj ograniczenia w poleceniu CREATE TABLE, takie jak Course_ID INT PRIMARY KEY lub dodaj je później za pomocą polecenia ALTER TABLE ADD CONSTRAINT. klucz podstawowy wymusza wyjątkowość, podczas gdy klucz obcy łączy wiersze w tabelach.

Tabela tymczasowa, nazwana prefiksem #, jest tworzona w bazie danych tempdb i automatycznie usuwana po zakończeniu sesji. Zwykła tabela jest trwała, dopóki jej nie usuniesz. Tabele tymczasowe są przeznaczone do krótkotrwałych wyników pośrednich w ramach partii lub procedury.

Tak. Drugi pilot GitHub Potrafi generować skrypty CREATE, ALTER i DROP TABLE z komunikatów w języku naturalnym oraz sugerować kolumny, typy danych i ograniczenia. Zawsze sprawdzaj wygenerowany schemat, klucze i dopuszczalność wartości null przed uruchomieniem w środowisku produkcyjnym.

Narzędzia sztucznej inteligencji i uczenia maszynowego rekomendują struktury tabel, typy danych i indeksy na podstawie danych z próbek i wzorców zapytań, sygnalizują nadmiarowe lub zbyt duże kolumny oraz ostrzegają przed ryzykownymi operacjami DROP lub ALTER. Deweloper potwierdza każdą sugestię przed jej zastosowaniem.

Podsumuj ten post następująco: