SQL Server CREATE, ALTER, DROP Table [T-SQL Примери]

⚡ Умно обобщение

Таблиците на SQL Server съхраняват данни в редове и колони. Transact-SQL използва CREATE TABLE за изграждане на таблица, ALTER TABLE за добавяне или промяна на колони и DROP TABLE за премахване на таблицата, нейните данни и нейната структура.

  • 🧱 Какво е таблица: Таблицата съхранява данни в редове и колони и е основният обект за съхранение на данни в база данни.
  • 🛠️ СЪЗДАВАНЕ НА ТАБЛИЦА: Операторът CREATE TABLE дефинира всяка колона с име, тип данни и настройка NULL или NOT NULL.
  • 📋 Създаване от съществуващо: SELECT … INTO копира избрани колони и редове от съществуваща таблица в чисто нова таблица.
  • ПРОМЯНА НА ТАБЛИЦА: ALTER TABLE … ADD добавя нови колони към таблица, без да я пресъздава.
  • 🗑️ ИЗПУСКАНЕ НА ТАБЛИЦА: DROP TABLE премахва цялата таблица, включително данните и структурата ѝ.
  • 🖱️ Дизайнер на таблици: SQL Server Management Studio може също да създава и променя таблици визуално чрез Table Designer.

SQL Server CREATE, ALTER и DROP таблица с T-SQL примери

Какво е таблица?

Таблицата е обект в SQL Server който съхранява данни във формат на редове и колони. Диаграмата по-долу показва съответно редове и колони.

Диаграма на таблица, съхраняваща данни в редове и колони

Как да създадете таблица в SQL Server с T-SQL

Първата стъпка за съхраняване на данни е създаването на таблица в база данни където ще се намират данните. След като създадете таблицата, можете да продължите да вмъквате редове в нея.

Можете да създадете таблица по следните начини:

  • T-SQL: създайте нова таблица, като дефинирате всички колони и техния тип данни.
  • T-SQL: създаване на нова таблица, използвайки съществуваща таблица.
  • Използване на дизайнера на таблици.

Нека разгледаме това подробно.

T-SQL: Създаване на нова таблица чрез дефиниране на всички колони и техния тип данни

По-долу е показан синтаксисът за създаване на таблица в SQL Server.

Синтаксис:

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

Тук

  • Параметърът tableName обозначава името на таблицата, която ще създадете.
  • Параметрите column_1, column_2… обозначават колоните, които ще бъдат добавени към таблицата.
  • Колоната трябва да бъде зададена като NULL или NOT NULL. Ако не зададете, SQL Server приема NULL по подразбиране.

Нека създадем основна таблица с две колони.

Запитване:

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

Предпоставка: Изберете базата данни, в която искате да създадете таблицата.

Стъпка 1) Изпълнете заявката, като щракнете върху „Изпълни“. Преди изпълнението на заявката не съществува таблица, както е показано по-долу.

Object Explorer не показва таблица с курсове преди изпълнението на оператора CREATE

След като изпълните заявката, щракнете върху бутона „Обновяване“; новата таблица вече съществува като „Курс“, както е показано по-долу.

Таблицата на курса е показана в Object Explorer след изпълнение и обновяване

Стъпка 2) Въведете някои данни. Снимките на екрана по-долу показват новосъздадената таблица „Курс“, готова за получаване на редове.

Новосъздадена таблица на курса, избрана в Object Explorer преди вмъкване на данни

Структура на таблицата на курса с показани две колони преди въвеждане на данни

Досега таблицата само съществува, но в нея все още няма данни.

Transact-SQL предоставя командата INSERT за вмъкване на данни в таблица. С тази команда можете да вмъкнете един или повече редове в таблица.

Синтаксис:

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

Синтаксисът по-горе показва основната форма на командата, когато се използва ключовата дума VALUES за вмъкване на данни в таблица.

Нека вмъкнем четири реда, използвайки командата 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');

Снимката по-долу показва, че вмъкването на четири реда е успешно.

Панелът със съобщения потвърждава, че четири реда са вмъкнати в таблицата „Курс“

Стъпка 3) Използвайте командата SELECT, за да видите данните. За да видите данни в SQL Server, използвайте следния синтаксис:

SELECT expression
FROM tableName
[WHERE condition];

Примерна заявка:

SELECT * FROM COURSE;

Таблицата беше създадена и сега съдържа четири записа. Обърнете внимание, че можете да създавате записи с дублирана стойност във всяка от колоните, защото няма ограничения.

Таблица с резултати, показваща четирите реда за курса, върнати от SELECT

T-SQL: Създаване на нова таблица с помощта на съществуваща таблица

Да предположим, че искате друга таблица, подобна на таблицата COURSE, създадена по-горе, но ви е необходима само колоната Course_Name, а не Course_ID.

Синтаксис:

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

Примерна заявка:

SELECT COURSE_NAME INTO COURSE_NAMES FROM COURSE;

Стъпка 1) Изпълнете заявката, като щракнете върху „Изпълни“. Създава се нова таблица с име COURSE_NAMES с една колона и четири записа, копирани от по-старата таблица, както е показано по-долу.

Нова таблица COURSE_NAMES е създадена от съществуваща таблица с помощта на SELECT INTO

Примерна заявка:

SELECT * FROM COURSE_NAMES;

Резултатът по-долу изброява четирите записа Course_Name в новата таблица COURSE_NAMES.

Таблица с резултати, показваща стойностите на Course_Name в таблицата COURSE_NAMES

Използване на дизайнер на таблици

Можете също да създадете таблица от Студио за управление на SQL Server IDE, използващ дизайнера на таблици.

Стъпка 1) Щракнете с десния бутон върху Таблица > Нова > Таблица, както е показано по-долу.

Щракнете с десния бутон върху Таблица, след това върху Нова, след това върху Таблица в Object Explorer.

Стъпка 2) Въведете имената на колоните и типове даннии изберете дали всяка колона позволява нули.

Панел с инструменти на дизайнера на таблици за дефиниране на нова таблица

Решетка на дизайнера на таблици с имена на колони, типове данни и опции за разрешаване на нули

Стъпка 3) Натиснете CTRL+S, за да запазите таблицата, и въведете името като Course_Title.

Изберете диалоговия прозорец „Име“, за да запазите новата таблица като „Заглавие_на_курса“

След като щракнете върху „Обновяване“, новата таблица се появява с името „Заглавие_на_курса“ и една колона с име „Име_на_курса“, както е показано по-долу.

Таблица Course_Title с една колона Course_Name в Object Explorer

Промяна на таблица в SQL Server

Има два начина за промяна на таблица в SQL Server:

  • T-SQL: променете таблицата, като добавите нови колони.
  • Използване на дизайнера на таблици.

T-SQL: Промяна на таблица чрез вмъкване на колони

По-долу е показан синтаксисът на командата ALTER в SQL:

Синтаксис:

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

Запитване:

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

Стъпка 1) Изпълнете заявката, като щракнете върху „Изпълни“. В таблицата „Заглавие на курса“ вече съществува нова колона с име „Продължителност на курса“, както е показано по-долу.

ALTER TABLE ADD команда, добавяща колоната Course_Duration

Колоните Course_Title, включително новодобавената колона Course_Duration

Използване на дизайнер на таблици

Можете също да промените таблица от потребителския интерфейс, като използвате дизайнера на таблици.

Стъпка 1) Щракнете с десния бутон върху съществуващата таблица > Дизайн, както е показано по-долу.

Щракнете с десния бутон върху таблицата Course_Title и изберете Design

Стъпка 2) Добавете името на колоната като Course_Start_Date и изберете нейния тип данни.

Добавяне на колоната Course_Start_Date и нейния тип данни в дизайнера на таблици

Стъпка 3) Натиснете CTRL+S, за да запазите новодобавената колона. В таблицата Course_Title се създава нова колона с име Course_Start_Date, както е показано по-долу.

Таблица „Заглавие на курса“, показваща запазената колона „Дата на начало на курса“

Изтриване на таблица в SQL Server

Изтривате таблица, когато вече не е необходима.

Има два начина за изтриване на таблица в SQL Server:

  • Използване на SQL Server Management Studio.
  • T-SQL: изтриване на таблицата с DROP TABLE.

Използване на SQL Server Management Studio

Стъпка 1) Щракнете с десния бутон върху съществуващата таблица > Изтрий за таблицата с име Course_Title, както е показано по-долу.

Щракнете с десния бутон върху таблицата Course_Title и изберете Delete (Изтриване).

Стъпка 2) В прозореца „Изтриване на обект“ щракнете върху „OK“.

Прозорец за потвърждение на изтриване на обект с бутона OK

Таблицата Course_Title вече е изтрита от списъка с таблици, както е показано по-долу.

Списък с таблици в Object Explorer след изтриването на таблицата Course_Title

T-SQL: Изтриване на таблица

По-долу е синтаксисът за премахване на таблица.

Синтаксис:

DROP TABLE <tableName>;

Параметърът tableName е името на таблицата, която трябва да бъде изтрита.

Запитване:

DROP TABLE COURSE_NAMES;

Стъпка 1) Изпълнете заявката, като щракнете върху „Изпълни“. Таблицата COURSE_NAMES се изтрива от списъка с таблици, както е показано по-долу.

Изразът DROP TABLE премахва таблицата COURSE_NAMES

Списък с таблици в Object Explorer след премахване на таблицата COURSE_NAMES

Като алтернатива, източникът показва команда DELETE TABLE, предназначена да премахне само редове (данни), като същевременно остави структурата на таблицата непокътната, така че таблицата да може да се използва повторно по-късно.

Синтаксис:

DELETE TABLE <Table name>;

Забележка: В стандартния T-SQL редовете се премахват с DELETE FROM <table>и масата се изпразва бързо с TRUNCATE TABLE <table>; цялата таблица се премахва с DROP TABLE, както е показано по-горе.

Интересни факти!

  • Големи файлове, като XML или изображения, могат да се съхраняват в колона, използвайки типове данни за големи обекти, като VARBINARY(MAX), VARCHAR(MAX) или типа XML (SQL Server не използва Oracleимена на BLOB и CLOB в стил -).
  • DELETE премахва само редове и може да бъде отменена в рамките на транзакция, докато DROP премахва цялата структура на таблицата; в SQL Server дори DROP може да бъде отменена, когато се изпълнява в рамките на изрична транзакция.

Въпроси и Отговори

DELETE премахва избраните редове и се регистрира напълно. TRUNCATE бързо премахва всички редове и нулира стойностите на идентичността. DROP премахва цялата таблица, нейните данни и структура. В SQL Server и трите могат да бъдат отменени в рамките на изрична транзакция.

Използвайте DROP TABLE IF EXISTS table_name, налично от SQL Server 2016. Премахва таблицата, когато е налична, и не прави нищо, когато тя отсъства, като по този начин се избягва грешка. В по-стари версии проверете OBJECT_ID преди премахване.ping.

SQL Server няма команда RENAME TABLE. Вместо това изпълнете системната съхранена процедура sp_rename, например EXEC sp_rename 'old_name', 'new_name'. Актуализирайте зависимите изгледи, процедури и код след това, защото sp_rename не променя тези препратки автоматично.

Да. ALTER TABLE table ALTER COLUMN column new_type променя типа данни на колоната, а ALTER TABLE table DROP COLUMN column го премахва. Промяната е успешна само когато съществуващите данни са съвместими, така че първо тествайте преобразуванията и направете резервно копие.

Дефинирайте ограничения в CREATE TABLE, като например Course_ID INT PRIMARY KEY, или ги добавете по-късно с ALTER TABLE ADD CONSTRAINT. първичен ключ налага уникалност, докато a външен ключ свързва редове между таблиците.

Временна таблица, именувана с префикс #, се създава във tempdb и се премахва автоматично при края на сесията. Обикновената таблица е постоянна, докато не я премахнете. Временните таблици са подходящи за краткотрайни междинни резултати в рамките на пакет или процедура.

Да. Копилот на GitHub може да генерира скриптове CREATE, ALTER и DROP TABLE от подкани на естествен език и да предлага колони, типове данни и ограничения. Винаги преглеждайте генерираната схема, ключове и null-възможности, преди да я стартирате в продукция.

Инструментите за изкуствен интелект и машинно обучение препоръчват таблични структури, типове данни и индекси от примерни данни и шаблони на заявки, маркират излишни или прекалено големи колони и предупреждават за рискови операции DROP или ALTER. Разработчикът потвърждава всяко предложение, преди да го приложи.

Обобщете тази публикация с: