В предыдущем совете мы рассмотрели основные этапы создание базы данных в SQL-сервере. База данных не может эффективно использоваться сама по себе, а таблицы очень важным вторым шагом в этом процессе, потому что именно здесь информация хранится. В этом руководстве по SQL мы начнем с основ создания таблицы. (синтаксис, определение столбца, типы данных, ограничения и т. д.) и построить после этого к более продвинутым шагам при создании таблицы.
Решение
Мы создадим несколько тестовых баз данных, а затем создадим в них таблицы. Начиная с простого примера и опираясь на примеры.
Оператор SQL CREATE TABLE
В приведенных ниже примерах мы рассмотрим различные аспекты создания новой таблицы:
Создать таблицу с одним целочисленным столбцом
Создать одну таблицу столбцов varchar
Создайте одну таблицу, содержащую только имена
Создать таблицу со столбцом ID
Создайте таблицу и сделайте столбец ID ограничением первичного ключа
Создайте таблицу, сделайте столбец ID ограничением первичного ключа и укажите столбец ID как личность
Создайте таблицу, сделайте столбец ID ограничением первичного ключа, укажите столбец ID как удостоверение и дать первичному ключу осмысленное имя
Для начала мы создадим базу данных SQL для тестирования со следующим синтаксис:
--Настройте тестовую среду, создав мастер TestDB USE;
ИДТИ
УДАЛИТЬ БАЗУ ДАННЫХ, ЕСЛИ СУЩЕСТВУЕТ TestDB;
ИДТИ
СОЗДАТЬ БАЗУ ДАННЫХ TestDB;
ИДТИ
ИСПОЛЬЗУЙТЕ тестовую базу данных;
ИДТИ
1 — Создание одного целого числа таблица столбцов
--Создайте очень простую таблицу с 1 целочисленным столбцом
CREATETABLE IntTable (intColumn int)
-- вставьте некоторые данные со значениями, разделенными запятыми, чтобы создать новые строки
ВСТАВИТЬ IntTable (intColumn)
ЗНАЧЕНИЯ (1), (2), (3), (4), (5)
-- выбрать данные из существующей таблицы
ВЫБЕРИТЕ* ИЗ IntTable
-- получить подробную информацию о таблице
EXECSP_HELP IntTable
2 — Создание одиночный varchar таблица столбцов для строки символов
--Создать очень простую таблицу с 1 символом столбца
CREATETABLE VarTable (varColumn varchar(10))
-- вставьте некоторые данные со значениями, разделенными запятыми, чтобы создать новые строки
INSERTINTO VarTable (varColumn)
ЗНАЧЕНИЯ ('a'), ('b'), ('c'), ('d'), ('e') ('c'), ('d'), ('e')
-- выбрать данные из существующей таблицы
ВЫБЕРИТЕ* ИЗ VarTable
-- получить подробную информацию о таблице
EXECSP_HELP VarTable
3 — Создание одной таблицы, которая содержит только имена
--Создайте очень простую таблицу с 1-символьным столбцом, содержащим имена
CREATETABLE NamesTable (имя varchar (10))
-- вставьте некоторые данные со значениями, разделенными запятыми, чтобы создать новые строки
INSERTINTO NamesTable (имена)
ЗНАЧЕНИЯ ('Джон'), ('Мэри'), ('Шон'), ('Барри'), ('Гэри') ('Барри'), ('Гэри')
-- выбрать данные из существующей таблицы
ВЫБЕРИТЕ* ИЗ Таблицы имен
-- получить подробную информацию о таблице
EXECSP_HELP Таблица имен
Я разместил 3 окна запроса рядом друг с другом и запустил 3 сценария SQL (выше) по одному в каждом окне запроса. В верхней части вы можете увидеть содержимое таблицы, SELECT * FROM
. Обратите внимание на каждую из 6 частей ниже, поскольку мы будем обсуждая их далее в этом руководстве.
Извиняюсь за маленькое изображение, но можно повторить это с помощью 3 окон запросов рядом друг с другом и выполнения вышеуказанных запросов.
4 — Создать таблицу с Идентификатор столбца
--Создать таблицу со столбцом ID
УДАЛИТЬ ТАБЛИЦУ, ЕСЛИ СУЩЕСТВУЕТ PrimKeyTable
СОЗДАТЬ ТАБЛИЦУ PrimKeyTable (ID int)
EXEC sp_help PrimKeyTable;
5 — Сделать столбец идентификатора первичным ключом
-- Сделать столбец ID первичным ключом
УДАЛИТЬ ТАБЛИЦУ, ЕСЛИ СУЩЕСТВУЕТ PrimKeyTable
CREATE TABLE PrimKeyTable (первичный ключ с идентификатором int)
exec sp_help PrimKeyTable;
6 — Укажите столбец идентификатора как идентификатор по автоинкрементировать значение
-- Укажите столбец ID как Identity DROP TABLE IF EXISTS PrimKeyTable
CREATE TABLE PrimKeyTable (ID int идентификатор первичного ключа)
exec sp_help PrimKeyTable;
7 — Дайте первичному ключу осмысленное имя
-- Дайте первичному ключу осмысленное имя
УДАЛИТЬ ТАБЛИЦУ, ЕСЛИ СУЩЕСТВУЕТ PrimKeyTable
CREATE TABLE PrimKeyTable (ID int ограничение PK_PrimKeyTable идентификатор первичного ключа)
exec sp_help PrimKeyTable
На этот раз я разместил 4 окна запроса рядом с каждым другой и запускал указанные выше SQL-скрипты в каждом окне.
Идентичность, см. разницу между 4 частями результата
Имя_индекса, см. имя, когда вы не указываете имя по сравнению с тем, когда вы даете это имя
Тип_ограничения, см. имя_ограничения, если первичный не имя указано и когда имя указано
Еще раз извиняюсь за маленькое изображение, но просто поставил 4 окна запросов рядом друг с другом и выполнить четыре вышеуказанных запроса.
Очистить, удалив базу данных TestDB.
мастер ЕГЭ;
ИДТИ
--Удалить базу данных, если она существует
УДАЛИТЬ БАЗУ ДАННЫХ, ЕСЛИ СУЩЕСТВУЕТ TestDB;
ИДТИ
База данных HR и таблица
Теперь рассмотрим несколько более полных примеров таблиц. В этом разделе мы создадим отдел кадров. базу данных, которую мы будем расширять в будущих руководствах.
Сначала создадим базу данных, а затем таблицу, в которой будут храниться основные информация о Компании: имя, адрес, контактный номер и адрес электронной почты.
--Создать базу данных HR
ЕГЭ мастер
ИДТИ
УДАЛИТЬ БАЗУ ДАННЫХ, ЕСЛИ СУЩЕСТВУЕТ HRDatabase
ИДТИ
СОЗДАТЬ БАЗУ ДАННЫХ
ИДТИ
ИСПОЛЬЗОВАТЬ базу данных HR
ИДТИ
--Создайте таблицу, содержащую информацию о компании, адресе,
-- его контактный номер и адрес электронной почты
УДАЛИТЬ ТАБЛИЦУ, ЕСЛИ СУЩЕСТВУЕТ Компании
СОЗДАТЬ ТАБЛИЦУ Компаний (
Название компании VARCHAR(80),
Компрессионный адрес VARCHAR(80),
CompContactNoVARCHAR(20),
CompEmail VARCHAR(80)
)
ВСТАВИТЬ В КОМПАНИИ
ЦЕННОСТИ («Компания Альфа», «Северная улица, 123, Гарсфонтейн, Претория», «091 523 6987", "[электронная почта защищена]",
(«Компания Bravo», «456 South Street, Brooklyn, Pretoria», «091 523 4789», «[email protected]»)
(«Компания Чарли», «987 West Street, Lynnwood, Pretoria», «091 523 1235», «[электронная почта защищена]»)
("Delta Company", "258 East Street, The Meadows, Pretoria", "091 523 7414", "[email protected]"),
("Echo Company", "100 Amber Street, Hatfield, Pretoria", "091 523 9685", "[email защищено]")
ВЫБЕРИТЕ * ОТ компаний
EXEC sp_help Компании
Набор результатов из выбранного выше покажет информацию ниже.
Также см. вывод sp_help в таблице. Обратите внимание на раздел Column_name и Identity. выделены желтым цветом на изображении ниже. Мы видим столбцы, которые были создан и что мы не используем Identity.
Добавление столбца идентификаторов в таблицу компаний
Чтобы различать записи, используя только один столбец, мы добавим идентификатор столбец как целочисленный столбец, поэтому мы можем присвоить значение 1,2,3 и т. д. каждому компания.
--Добавить столбец ID
УДАЛИТЬ ТАБЛИЦУ, ЕСЛИ СУЩЕСТВУЕТ Компании;
СОЗДАТЬ ТАБЛИЦУ Компаний (
ID ИНТ,
Название компании VARCHAR(80),
Компрессионный адрес VARCHAR(80),
CompContactNoVARCHAR(20),
CompEmail VARCHAR(80)
)
ВСТАВЬТЕ В КОМПАНИИ (ID, CompanyName, CompAddress, CompContactNo, CompEmail)
ЗНАЧЕНИЯ (1, «Компания Alpha», «123 North Street, Garsfontein, Pretoria», «091 523 6987», «[email protected]»),
(2, «Компания Браво», «456 Саут-стрит, Бруклин, Претория», «091 523 4789", "[электронная почта защищена]",
(3, «Компания Чарли», «987 West Street, Lynnwood, Pretoria», «091 523 1235», «[email protected]»),
(4, "Delta Company", "258 East Street, The Meadows, Pretoria", "091 523 7414", "[email protected]"),
(5, «Echo Company», «100 Amber Street, Hatfield, Pretoria», «091 523 9685», «[email protected]»)
ВЫБЕРИТЕ * ОТ компаний
EXEC sp_help Компании
При просмотре вывода sp_help , разница только в добавление целочисленного столбца с именем ID.
Сделать столбец ID первичным ключом
в таблице компаний
Следующий набор кода покажет, как сделать столбец ID первичным ключом. Это важно, поэтому данные в этом столбце являются УНИКАЛЬНЫМИ. значение для каждой строки.
-- Сделать столбец идентификатора первичным ключом
УДАЛИТЬ ТАБЛИЦУ, ЕСЛИ СУЩЕСТВУЕТ Компании;
СОЗДАТЬ ТАБЛИЦУ Компаний (
ID INT ПЕРВИЧНЫЙ КЛЮЧ,
Название компании VARCHAR(80),
Компрессионный адрес VARCHAR(80),
CompContactNoVARCHAR(20),
CompEmail VARCHAR(80)
)
ВСТАВИТЬ В КОМПАНИИ
ЦЕННОСТИ (1, «Компания Альфа», «Северная улица, 123, Гарсфонтейн, Претория», «091 523 6987", "[электронная почта защищена]",
(2, «Bravo Company», «456 South Street, Brooklyn, Pretoria», «091 523 4789», «[email protected]»),
(3, «Компания Чарли», «987 West Street, Lynnwood, Pretoria», «091 523 1235», «[email protected]»),
(4, "Delta Company", "258 East Street, The Meadows, Pretoria", "091 523 7414", "[email protected]"),
(5, «Echo Company», «100 Amber Street, Hatfield, Pretoria», «091 523 9685», «[email protected]»)
ВЫБЕРИТЕ * ОТ компаний
EXEC sp_help Компании
Когда вы делаете столбец ID ПЕРВИЧНЫМ КЛЮЧОМ, индекс создается, и SQL Server генерирует имя для индекса PK__Companie__3214EC272796CE10 . в нашем примере.
Обратите внимание на index_description и index_keys на изображении ниже.
Сделать столбец ID столбцом
идентификаторов и первичным ключом в таблице компаний
Столбец идентификаторов — это числовой столбец в таблице, автоматически заполняется целочисленным значением каждый раз при вставке строки. Вы можете указать начальный номер и приращение идентификатора следующим образом: identity(startValue, приращение). Итак, если мы используем (1,5), оно начнется со значения 1 и будет увеличиваться значение на 5 для следующей записи. По умолчанию (1,1). Ниже мы начнем с 101 и увеличить на 100.
-- Сделать столбец ID столбцом идентификации
УДАЛИТЬ ТАБЛИЦУ, ЕСЛИ СУЩЕСТВУЕТ Компании;
ИДТИ
СОЗДАТЬ ТАБЛИЦУ Компаний (
ID INT PRIMARY KEY IDENTITY (101 100),
Название компании VARCHAR(80),
Компрессионный адрес VARCHAR(80),
CompContactNoVARCHAR(20),
CompEmail VARCHAR(80)
)
ВСТАВИТЬ В КОМПАНИИ
ЗНАЧЕНИЯ («Компания Alpha», «123 North Street, Garsfontein, Pretoria», «091 523 6987», «[email protected]»),
(«Компания Браво», «Южная улица, 456, Бруклин, Претория», 2009 г. 1 523 4789", "[электронная почта защищена]",
(«Компания Чарли», «987 West Street, Lynnwood, Pretoria», «091 523 1235», «[email защищен]»),
("Delta Company", "258 East Street, The Meadows, Pretoria", "091 523 7414", "[email protected]"),
("Echo Company", "100 Amber Street, Hatfield, Pretoria", "091 523 9685", "[email защищено]")
ВЫБЕРИТЕ * ОТ компаний
EXEC sp_help Компании
Ниже мы можем видеть значения столбца ID, а также информацию об идентичности столбец. Вы можете видеть, что при вставке новых записей идентификатор столбец начинается со 101 и увеличивается на 100, поэтому следующая запись имеет идентификатор 201, и так далее.
Добавить столбец CreateDate с отметкой даты и времени по умолчанию в таблице компаний
Давайте продолжим развивать наши примеры, добавив штамп даты и времени при вставке записи. Для этого мы создадим ограничение и установим по умолчанию значение getdate().
Ограничения используются для указания правил для данных в таблице и могут ограничивать тип данных, которые можно зайти в стол. Это обеспечивает точность и достоверность данных. Если есть какое-либо нарушение между ограничением и действием данных, действие прерывается. Ограничения могут быть на уровне столбца или таблицы. Столбец ограничения уровня применяются к столбцу, а ограничения уровня таблицы применяются ко всему стол.
-- Добавить столбец CreateDate с отметкой даты и времени по умолчанию
УДАЛИТЬ ТАБЛИЦУ, ЕСЛИ СУЩЕСТВУЕТ Компании;
ИДТИ
СОЗДАТЬ ТАБЛИЦУ Компаний (
ID INT PRIMARY KEY IDENTITY,
Название компании VARCHAR(80),
Компрессионный адрес VARCHAR(80),
CompContactNoVARCHAR(20),
CompEmail VARCHAR(80),
CreateDate DATETIMECONSTRAINT DF_CreateDate_Companies ПО УМОЛЧАНИЮ (getdate())
)
ВСТАВИТЬ В КОМПАНИИ (CompanyName, CompAddress, CompContactNo, CompEmail)
ЦЕННОСТИ («Компания Альфа», «Северная улица, 123, Гарсфонтейн, Претория», «091 523 6987", "[электронная почта защищена]",
(«Компания Bravo», «456 South Street, Brooklyn, Pretoria», «091 523 4789», «[email protected]»)
(«Компания Чарли», «987 West Street, Lynnwood, Pretoria», «091 523 1235», «[email защищен]»),
("Delta Company", "258 East Street, The Meadows, Pretoria", "091 523 7414", "[email protected]"),
("Echo Company", "100 Amber Street, Hatfield, Pretoria", "091 523 9685", "[email защищено]")
ВЫБЕРИТЕ * ОТ компаний
EXEC sp_help Компании
Обратите внимание на столбец CreateDate и его определение выше и дополнительное ограничение на изображении ниже.
Добавить столбец true-false в таблицу компаний
Еще одно полезное поле для добавления, чтобы определить, активна запись или нет. Мы создадим столбец IsActive, и если он равен 1, он активен, а если равен 0, то нет. активный.
--Добавить столбец true-false
УДАЛИТЬ ТАБЛИЦУ, ЕСЛИ СУЩЕСТВУЕТ Компании;
ИДТИ
СОЗДАТЬ ТАБЛИЦУ Компаний (
ID INT PRIMARY KEY IDENTITY (101 100),
Название компании VARCHAR(80),
Компрессионный адрес VARCHAR(80),
CompContactNoVARCHAR(20),
CompEmail VARCHAR(80),
Активный бит,
CreateDate DATETIME CONSTRAINT DF_CreateDate_Companies ПО УМОЛЧАНИЮ (getdate())
)
ВСТАВИТЬ В КОМПАНИИ (CompanyName, CompAddress, CompContactNo, CompEmail, IsActive)
ЦЕННОСТИ («Компания Альфа», «Северная улица, 123, Гарсфонтейн, Претория», «091 523 6987", "[электронная почта защищена]", 1),
("Bravo Company", "456 South Street, Brooklyn, Pretoria", "091 523 4789", "[email protected]", 1),
(«Компания Чарли», «987 West Street, Lynnwood, Pretoria», «091 523 1235», «[email protected]», 0),
("Delta Company", "258 East Street, The Meadows, Pretoria", "091 523 7414", "[email protected]", 1),
(«Echo Company», «100 Amber Street, Hatfield, Pretoria», «091 523 9685», «[email protected]», 1)
ВЫБЕРИТЕ * ОТ компаний
EXEC sp_help Компании
В приведенном выше операторе вставки столбец IsActive значения были указаны либо с 0 (= Нет), либо с 1 (= Да).
Создайте столбец IsActive (true-false) с ограничением по умолчанию для таблицы компаний
При создании IsActive с ограничением по умолчанию вам не нужно указывать IsActive в столбце вставки при вставке запись, будет использоваться значение по умолчанию.
--Создайте столбец IsActive с ограничением по умолчанию, равным 1.
УДАЛИТЬ ТАБЛИЦУ, ЕСЛИ СУЩЕСТВУЕТ Компании;
ИДТИ
СОЗДАТЬ ТАБЛИЦУ Компаний (
ID INT PRIMARY KEY IDENTITY,
Название компании VARCHAR(80),
Компрессионный адрес VARCHAR(80),
CompContactNoVARCHAR(20),
CompEmail VARCHAR(80),
IsActive BITCONSTRAINT DF_IsActive_Companies ПО УМОЛЧАНИЮ(1),
CreateDate DATETIMECONSTRAINT DF_CreateDate_Companies ПО УМОЛЧАНИЮ (getdate())
)
ВСТАВИТЬ В КОМПАНИИ (CompanyName, CompAddress, CompContactNo, CompEmail)
ЦЕННОСТИ («Компания Альфа», «Северная улица, 123, Гарсфонтейн, Претория», «091 523 6987", "[электронная почта защищена]",
(«Компания Bravo», «456 South Street, Brooklyn, Pretoria», «091 523 4789», «[email protected]»)
(«Компания Чарли», «987 West Street, Lynnwood, Pretoria», «091 523 1235», «[email защищен]»),
("Delta Company", "258 East Street, The Meadows, Pretoria", "091 523 7414", "[email protected]"),
("Echo Company", "100 Amber Street, Hatfield, Pretoria", "091 523 9685", "[email защищено]")
ВЫБЕРИТЕ * ОТ компаний
EXEC sp_help Компании
При определении столбца IsActive в приведенной выше таблице значение по умолчанию для IsActive будет установлено на 1 (= Да). При вставке записей не было указано значение для столбца IsActive и, как вы можете видеть на изображении ниже, все записи были установите IsActive = 1 (= Да). Обратите внимание на новое ограничение по умолчанию, которое было созданный в нижней части изображения выше.
Столбцы со значениями NULL или NOT в таблице компаний
Еще одна вещь, которую вы можете сделать, это сообщить базе данных, могут ли значения NULL быть хранится или если столбцу требуется значение. В приведенном ниже коде мы видим, что у нас есть добавлено «null» и «not null» рядом с каждым столбцом. Так что для этой таблицы единственное столбец, для которого требуются данные, — это CompanyName.
--Столбцы с NULL или НЕ
УДАЛИТЬ ТАБЛИЦУ, ЕСЛИ СУЩЕСТВУЕТ Компании;
ИДТИ
СОЗДАТЬ ТАБЛИЦУ Компаний (
ID INTне нуль PRIMARY KEY IDENTITY (101 100),
CompanyName VARCHAR(80) не нуль,
CompAddress VARCHAR(80)нуль,
CompContactNoVARCHAR(20)нуль,
CompEmail VARCHAR(80)нуль,
IsActive BITCONSTRAINT DF_IsActive_Companies ПО УМОЛЧАНИЮ(1),
CreateDate DATETIMECONSTRAINT DF_CreateDate_Companies ПО УМОЛЧАНИЮ (getdate())
)
ВСТАВИТЬ В КОМПАНИИ (CompanyName, CompAddress, CompContactNo, CompEmail, IsActive)
ЦЕННОСТИ («Компания Альфа», «Северная улица, 123, Гарсфонтейн, Претория», «091 523 6987", "[электронная почта защищена]", 1),
(«Компания Bravo», null, «091 523 4789», «[email protected]», 1),
("Charlie Company", "987 West Street, Lynnwood, Pretoria", "091 523 1235", "[email protected]", null ),
("Delta Company", "258 East Street, The Meadows, Pretoria", null, "[email protected]", 1 ),
("Echo Company", "100 Amber Street, Hatfield, Pretoria", "091 523 9685", null, 0)
ВЫБЕРИТЕ * ОТ компаний
EXEC sp_help Компании
Обратите внимание на записи со значениями NULL на изображении ниже. Также обратите внимание, что вы можете создать Ограничение NULL для столбца, и оно может принимать NULL при вставке запись как со столбцом IsActive .
Схемы в базе данных
В базе данных схема способ создания логической группы объектов. По умолчанию используется схема «dbo», если указано иное, поэтому все объекты будут в этой группе. Мы можем создать дополнительные схемы, такие как HR, Sales и т. д., чтобы помочь сгруппировать объекты.
SQL Server поставляется со следующими предопределенными схемами:
ДБО
гость
сис
ИНФОРМАЦИЯ_СХЕМА
В SSMS при развертывании дерева в базе данных HRDatabase, а затем развертывании таблиц следует см. таблицу компаний с «dbo». префикс. «ДБО». является схемой, и поскольку по умолчанию схема dbo , таблица компаний находится в «dbo». схема при ее создании без указания схемы.
Чтобы создать таблицу с пользовательской схемой, необходимо сначала создать схему, затем вы можете создать таблицу в новой схеме.
Приведенный ниже код создает схему с именем «hr», а затем создает таблицу в ней. новую схему, указав CREATE TABLE hr.Companies .
УДАЛИТЬ ТАБЛИЦУ, ЕСЛИ СУЩЕСТВУЕТ hr.Companies; ИДТИ
СОЗДАТЬ СХЕМУ час;
ИДТИ
SELECT * FROM sys.schemas;
СОЗДАТЬ ТАБЛИЦУ hr.Companies (
ID INTне нуль PRIMARY KEY IDENTITY (101 100),
CompanyName VARCHAR(80) не нуль,
CompAddress VARCHAR(80)нуль,
CompContactNoVARCHAR(20)нуль,
CompEmail VARCHAR(80)нуль,
IsActive BITCONSTRAINT DF_IsActive_Companies ПО УМОЛЧАНИЮ(1),
CreateDate DATETIMECONSTRAINT DF_CreateDate_Companies ПО УМОЛЧАНИЮ (getdate())
)
ВСТАВИТЬ В hr.Companies (CompanyName, CompAddress, CompContactNo, CompEmail, IsActive)
ЦЕННОСТИ («Компания Альфа», «Северная улица, 123, Гарсфонтейн, Претория», «091 523 6987", "[электронная почта защищена]", 1),
(«Компания Bravo», null, «091 523 4789», «[email protected]», 1),
("Charlie Company", "987 West Street, Lynnwood, Pretoria", "091 523 1235", "[email protected]", null ),
("Delta Company", "258 East Street, The Meadows, Pretoria", null, "[email protected]", 1 ),
("Echo Company", "100 Amber Street, Hatfield, Pretoria", "091 523 9685", null, 0)
ВЫБЕРИТЕ * ОТ hr. Companies
УДАЛИТЬ ТАБЛИЦУ, ЕСЛИ СУЩЕСТВУЕТ hr.Companies;
ИДТИ
DROP СХЕМА час;
ИДТИ
Ниже приведены результаты запроса sys.schemas.
Очистка
Очистить, сбросив ток база данных — HRDatabase .
мастер ЕГЭ;
ИДТИ
--Удалить базу данных, если она существует
УДАЛИТЬ БАЗУ ДАННЫХ, ЕСЛИ СУЩЕСТВУЕТ HRDatabase;
ИДТИ
Следующие шаги
В следующей статье мы рассмотрим, как создать больше таблиц и как чтобы связать таблицы вместе.
Проверьте эту предыдущую статью
Создание базы данных Microsoft SQL Server
Ознакомьтесь с этими дополнительными ресурсами:
Ограничение первичного ключа
Ограничение внешнего ключа
Типы данных SQL Server
Временные таблицы
Усечение или удаление
Об авторе
Ян Потгитер имеет более чем двадцатилетний опыт работы в индустрии баз данных в качестве сертифицированного администратора Microsoft SQL Server и разработчика баз данных.
Посмотреть все мои советы
Последнее обновление статьи: 2022-07-28
Как создать таблицу из результатов запроса в Microsoft SQL | Малый бизнес
Дэвид Уэйн Обновлено 22 февраля 2019 г.
Если ваша компания использует реляционные базы данных для хранения данных, полезно использовать команду SQL SELECT с предложением INTO для создания новых таблиц на основе результатов запроса. Этот метод не соответствует стандарту ANSI SQL, но расширение Microsoft Transact-SQL включает эту удобную функцию. Создание новой таблицы из результатов запроса может помочь вам создать базу данных ваших клиентов, сотрудников, расходов и других сведений о бизнесе, позволяя вам выбирать определенные столбцы из существующих таблиц. Эта стратегия помогает вам управлять взаимосвязанными таблицами в вашей базе данных.
Запустить средство запросов SQL Server
Нажмите кнопку Запустить и запустите Microsoft SQL Server Management Studio. Щелкните меню Server Name и выберите свой сервер из раскрывающегося списка. Щелкните Подключить .
Создать запрос SELECT INTO
Щелкните правой кнопкой мыши базу данных в обозревателе объектов в левой части экрана. Нажмите Новый запрос в контекстном меню. В окне запроса введите оператор, например следующий:
SELECT client_id, first_name, last_name INTO new_table FROM old_table; GO
Замените «new_table» на имя создаваемой таблицы и замените «old_table» на имя таблицы для выбора. Предложение INTO ведет себя так же, как CREATE TABLE в других средах SQL.
Уточните свой запрос
Введите следующие строки в окне Query, чтобы уточнить результаты запроса:
SELECT * INTO new_table FROM old_table WHERE last_name LIKE ‘Ja%’; GO
Ключевое слово LIKE позволяет фильтровать результаты на основе выражения с подстановочными знаками. В этом примере Transact-SQL создаст новую таблицу со всеми столбцами из строк в «old_table», в которых фамилия начинается с «Ja».
Эксперимент с выделением подстановочных знаков
Окружите текстовый шаблон символами «%», чтобы он соответствовал тексту в середине слов. Например, используйте следующее предложение WHERE в инструкции SELECT:
WHERE last_name LIKE ‘%ta%’
В этом примере будут возвращены все совпадения, содержащие образец «ta» в середине слова.
SELECT INTO с UNION
Создать новую таблицу из результатов двух отдельных запросов с ключевым словом UNION. Создайте оператор SELECT, аналогичный следующему, в окне запроса:
SELECT last_name, address INTO new_table FROM old_table_a WHERE address NOT LIKE ‘%Los Angeles%’ UNION SELECT last_name, address FROM old_table_b WHERE address NOT LIKE ‘%Los Angeles%’ ; GO
Вам не нужно включать предложение INTO в оба оператора SELECT. Просто соедините два оператора SELECT с ключевым словом UNION, чтобы объединить результаты двух запросов в новую таблицу.
Совет
При работе с базами данных, отличными от Microsoft SQL Server, проверьте руководство, чтобы узнать, поддерживает ли оно SELECT INTO. Он может поддерживать синтаксис или использовать другой способ выполнения той же задачи.
Ссылки
Microsoft: SELECT
Microsoft: INTO Clause (Transact-SQL)
Microsoft: UNION (Transact-SQL)
Redgate: Когда использовать оператор SELECT…INTO
90 002 Советы
Отсортируйте результаты запроса с помощью предложения ORDER BY. Укажите столбец, по которому следует упорядочивать строки вашей новой таблицы, как в следующем запросе:
SELECT *
INTO new_table
FROM old_table
ORDER BY last_name;
GO
Этот запрос отсортирует новую таблицу в алфавитном порядке.
Биография писателя
Дэвид Уэйн пишет с 2010 года, а колонки о технологиях появляются в нескольких региональных газетах Техаса.