Инструкция CREATE TABLE
Инструкция CREATE TABLE используется для создания новой таблицы в базе данных.
Синтаксис CREATE TABLE
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
column3 datatype,
….
);
Параметры столбцов задают имена столбцов таблицы.
Параметр datatype указывает тип данных, которые может содержать столбец (например, varchar, integer, date и т.д.).
Пример CREATE TABLE
В следующем примере создается таблица «Persons», содержащая пять столбцов: PersonID, LastName, FirstName, Address, и City:
Пример
CREATE TABLE Persons
(
PersonID int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);
Попробуйте сами »
Столбец PersonID имеет тип int и будет содержать целое число.
Столбцы LastName, FirstName, Address, and City имеют тип varchar и будут содержать символы,
а максимальная длина этих полей составляет 255 символов.
Пустая таблица «Persons» теперь будет выглядеть так:
PersonID | LastName | FirstName | Address | City |
---|---|---|---|---|
Совет: Пустая таблица «Persons» теперь может быть заполнена данными с помощью инструкции SQL INSERT INTO.
Создать таблицу, используя другую таблицу
Копия существующей таблицы также может быть создана с помощью команды CREATE TABLE.
Новая таблица получает те же определения столбцов. Можно выбрать все столбцы или отдельные столбцы.
Если вы создадите новую таблицу, используя существующую таблицу, новая таблица будет заполнена существующими значениями из старой таблицы.
Синтаксис CREATE TABLE
CREATE TABLE new_table_name AS
SELECT column1, column2,…
FROM
existing_table_name
WHERE ….;
Следующий SQL создает новую таблицу под названием «TestTables» (которая является копией таблицы «Customers»):
Пример
CREATE TABLE TestTable AS
SELECT customername, contactname
FROM customers;
Попробуйте сами »
В этом учебном материале вы узнаете, как использовать оператор CREATE TABLE с синтаксисом, примерами и практическими упражнениями.
Описание
SQL оператор CREATE TABLE позволяет создавать и определять таблицу.
Синтаксис
Синтаксис для оператора CREATE TABLE в SQL.
CREATE TABLE table_name
(
column1 datatype [ NULL | NOT NULL ],
column2 datatype [ NULL | NOT NULL ],
…
);
Параметры или аргумент
- table_name
- Имя таблицы, которую вы хотите создать
- column1, column2
- Столбцы, которые вы хотите создать в таблице. Каждый столбец должен иметь тип данных. Столбец должен быть определен как NULL или NOT NULL, и если это значение оставить пустым, база данных принимает NULL в качестве значения по умолчанию
Пример
Рассмотрим SQL пример CREATE TABLE.
CREATE TABLE suppliers ( supplier_id int NOT NULL, supplier_name char(50) NOT NULL, contact_name char(50) ); |
Этот SQL пример CREATE TABLE создает таблицу suppliers, которая имеет 3 столбца.
- Первый столбец называется supplier_id, который создается в виде числового типа (максимум 10 цифр в длину) и не может содержать нулевые значения
- Второй столбец называется supplier_name, который представляет собой тип данных char (максимальная длина 50 символов) и также не может содержать нулевые значения
- Третий столбец называется contact_name, который является типом данных char, но может содержать нулевые значения
Теперь единственная проблема с этим SQL оператором CREATE TABLE заключается в том, что вы не определили первичный ключ для таблицы. Мы могли бы изменить этот SQL оператор CREATE TABLE и определить supplier_id в качестве первичного ключа следующим образом.
CREATE TABLE suppliers ( supplier_id int NOT NULL, supplier_name char(50) NOT NULL, contact_name char(50), CONSTRAINT suppliers_pk PRIMARY KEY (supplier_id) ); |
Подробнее о первичных ключах.
Подробнее о внешних ключах..
Практическое упражнение № 1
Создайте таблицу SQL с именем customers, в которой хранится информация о клиенте, его имени и адресе.
Решение для упражнения № 1
Инструкция SQL CREATE TABLE для таблицы customers.
CREATE TABLE customers ( customer_id int NOT NULL, customer_name char(50) NOT NULL, address char(50), city char(50), state char(25), zip_code char(10) ); |
Практическое упражнение № 2
Создайте таблицу SQL с именем customers, в которой хранится информация о клиенте, его имени и адресе.
Но на этот раз идентификатор клиента должен быть первичным ключом для таблицы.
Решение для упражнения № 2
Инструкция SQL CREATE TABLE для таблицы customers.
CREATE TABLE customers ( customer_id int NOT NULL, customer_name char(50) NOT NULL, address char(50), city char(50), state char(25), zip_code char(10), CONSTRAINT customers_pk PRIMARY KEY (customer_id) ); |
Практическое упражнение № 3
На основе приведенной ниже таблицы departments создайте таблицу SQL с именем employees, в которой хранится информация о номере сотрудника, его имени, отделе и зарплате. Первичный ключ для таблицы employees должен быть номером сотрудника. Создайте внешний ключ в таблице employees, которая ссылается на таблицу departments, на основе поля department_id.
CREATE TABLE departments ( department_id int NOT NULL, department_name char(50) NOT NULL, CONSTRAINT departments_pk PRIMARY KEY (department_id) ); |
Решение для упражнения № 3
Инструкция SQL CREATE TABLE для таблицы employees.
CREATE TABLE employees ( employee_number int NOT NULL, employee_name char(50) NOT NULL, department_id int, salary int, CONSTRAINT employees_pk PRIMARY KEY (employee_number), CONSTRAINT fk_departments FOREIGN KEY (department_id) REFERENCES departments(department_id) ); |
От автора: создание таблицы SQL включает в себя присвоение имени таблицы и определение ее столбцов и типа данных для каждого столбца.
Для создания новой таблицы используется инструкция CREATE TABLE.
Синтаксис
Основной синтаксис инструкции CREATE TABLE выглядит следующим образом:
CREATE TABLE имя_таблицы( столбец1 типданных, столбец2 типданных, столбец3 типданных, ..... столбецN типданных, PRIMARY KEY ( один или несколько столбцов ) ); |
CREATE TABLE — это ключевое слово, сообщающее системе баз данных, что вы хотите сделать. В данном случае мы хотим создать новую таблицу. После оператора CREATE TABLE указывается уникальное имя или идентификатор таблицы.
Затем в скобках указывается список, определяющий каждый столбец в таблице и тип данных для него. Чтобы вам было понятнее, давайте рассмотрим следующий пример.
Копию существующей таблицы можно создать с помощью комбинации инструкций CREATE TABLE и SELECT. По следующей ссылке вы можете найти полную информацию, как Создать таблицу используя другую таблицу
Пример
В следующем примере мы создаем таблицу CUSTOMERS с идентификатором в качестве первичного ключа, а NOT NULL — это ограничения, указывающие, что эти поля не могут содержать значение NULL при создании записей в этой таблице:
CREATE TABLE CUSTOMERS( ID INT NOT NULL, NAME VARCHAR (20) NOT NULL, AGE INT NOT NULL, ADDRESS CHAR (25) , SALARY DECIMAL (18, 2), PRIMARY KEY (ID) ); |
Вы можете проверить, была ли таблица создана, просмотрев сообщение, отображаемое сервером SQL, или вы можете использовать команду DESC следующим образом:
Теперь таблица CUSTOMERS доступна в базе данных, вы можете использовать ее для хранения необходимой информации, связанной с клиентами.
Источник: //www.tutorialspoint.com/
Редакция: Команда webformyself.
Перед изучением данной темы рекомендуется ознакомиться с темой:
- Microsoft SQL Server Management Studio 2018. Пример создания простейшего запроса
Содержание
- 1. Оператор CREATE TABLE. Создание таблицы. Общая форма
- 2. Примеры создания таблиц
- 2.1. Пример создания простейшей таблицы учета товаров в магазине
- 2.2. Пример создания таблицы учета телефонов абонентов
- 2.3. Пример создания таблицы учета заработной платы и отчислений в организации
- Связанные темы
Поиск на других ресурсах:
1. Оператор CREATE TABLE. Создание таблицы. Общая форма
Таблица является основным элементом любой реляционной базы данных. Вся необходимая информация, которая должна храниться в базе данных, размещается в таблицах. Таблицы могут быть связаны между собой. Количество таблиц в базе данных не ограничено и зависит от сложности решаемой задачи.
Для создания таблицы в языке SQL используется оператор CREATE TABLE. В простейшем случае общая форма оператора CREATE TABLE следующая
CREATE TABLE Table_Name (
Field_Name_1 Type_1,
Field_Name_2 Type_2,
...
Field_Name_N Type_N
)
здесь
- Table_Name – имя таблицы базы данных. Если в базе данных есть таблица с таким именем, то возникнет ошибка;
- Field_Name_1, Field_Name_2, Field_Name_N – имена полей (столбцов) таблицы базы данных. Имя каждого поля должно быть уникальным. В разных таблицах имена полей могут совпадать;
- Type_1, Type_2, Type_N – соответственно типы полей Field_Name_1, Field_Name_2, Field_Name_N такие как INTEGER, DECIMAL, DATE и другие.
На поля Field_Name_1, Field_Name_2, Field_Name_N могут накладываться ограничения. Каждое ограничение указывается после имени поля. В этом случае общая форма оператора CREATE TABLE выглядит примерно следующим образом:
CREATE TABLE Table_Name (
Field_Name_1 Type_1 Attribute_1,
Field_Name_2 Type_2 Attribute_2,
...
Field_Name_N Type_N Attribute_N
)
здесь
- Attribute_1, Attribute_2, Attribute_N – ограничения, накладываемые на поля Field_Name_1, Field_Name_2, Field_Name_N. Ограничения задаются одним из возможных слов: NULL, NOT NULL, UNIQUE, CHECK, PRIMARY KEY, FOREIGN KEY и других.
Рассмотрение существующих полей атрибутов в языке SQL не является предметом изучения данной темы.
⇑
2. Примеры создания таблиц
2.1. Пример создания простейшей таблицы учета товаров в магазине
Условие задачи.
- Используя средства языка SQL создать таблицу с именем Product, которая будет отображать следующую информацию об учете товаров в магазине
Название товара | Стоимость закупки, грн. | Количество, штук | Дата получения | Примечание |
… | … | … | … | … |
- Таблица обязана содержать первичный ключ и обеспечивать уникальность записей.
Решение.
- Для обеспечения уникальности записей в таблице нужно создать дополнительное поле, которое будет являться счетчиком (автоинкрементом). Название поля – ID_Product. Это поле есть первичным ключом. Также это поле имеет ограничение NOT NULL (непустое поле).
- Следующим шагом решения есть назначение имен полям таблицы. В связи с тем, что не все системы управления базами данных (СУБД) поддерживают символы кириллицы, имена полей таблицы будут задаваться латинскими символами. В нашем случае формируются имена и типы данных, сформированные в следующей таблице:
Название поля в условии задачи | Название поля на языке SQL | Тип поля | Объяснение |
ID_Product | ID_Product | INTEGER | Первичный ключ, счетчик, NOT NULL |
Название товара | [Name] | VARCHAR(100) | Строковый тип переменной длины максимум до 100 символов |
Стоимость закупки | Price | DECIMAL(15, 2) | Точность равна 15 знакам, масштаб равен 2 знакам после запятой |
Количество штук | [Count] | INTEGER | Целое число |
Дата получения | [Date] | DATE | |
Примечание | Note | VARCHAR(200) |
- Написание кода на языке SQL с учетом особенностей предыдущих шагов. Текст программы создания таблицы на языке SQL следующий
CREATE TABLE [Product] ( [ID_Product] Integer Not Null Primary Key, [Name] VarChar(100) , [Price] Decimal(15, 2), [Count] Integer, [Date] Date, [Note] VarChar(200) )
В Microsoft SQL Server допускается задавать имена полей без их обрамления в квадратные скобки []. То есть, предыдущая команда может быть переписана следующим образом
CREATE TABLE Product ( ID_Product Integer Not Null Primary Key, Name VarChar(100) , Price Decimal(15, 2), Count Integer, Date Date, Note VarChar(200) )
В приведенном выше коде для поля ID_Product задаются ограничения Not Null и Primary Key. В результате запуска программы на SQL будет создана следующая таблица
ID_Product | Name | Price | Count | Date | Note |
… | … | … | … | … | … |
На рисунке 1 отображаются поля созданной таблицы в Microsoft SQL Server Management Studio.
Рисунок 1. Этапы создания таблицы Product в Microsoft SQL Server Management Studio 18: 1 – создание файла; 2 – набор SQL-запроса; 3 – запуск запроса на выполнение; 4 – результирующая таблица
Конечно, можно создать таблицу, в которой нет поля ID_Product и нету первичного ключа. Такая таблица не будет обеспечивать уникальность записей, поскольку возможна ситуация, когда данные в двух записях могут совпасть. В этом случае SQL код программы имеет вид
CREATE TABLE Product ( Name VarChar(100) , Price Decimal(15, 2), Count Integer, Date Date, Note VarChar(200) )
⇑
2.2. Пример создания таблицы учета телефонов абонентов
Условие задачи.
Используя средства языка SQL (T-SQL) создать таблицу учета телефонов абонентов.
Name | Address | Phone Number 1 | Phone Number 2 | Phone Number 3 |
Ivanov I.I. | New York | 123456 | 067-1234567 | – |
Johnson J. | Kiev | 789012 | 033-7777778 | 102 |
Petrenko P.P. | Warshaw | 044-2521412 | – | – |
… | … | … | … | … |
Обеспечить уникальность и корректное сохранение записей таблицы.
Решение.
Для обеспечения уникальности записей нужно создать дополнительное поле – счетчик. Это поле будет увеличивать свое значение на 1 при каждом добавлении новой записи. Если запись будет удаляться, текущее максимальное значение счетчика не будет уменьшаться. Таким образом, все числовые значения этого поля будут различаться между собой (будут уникальными). В нашем случае добавляется поле ID_Subscriber. Это поле не допускает нулевые значения (NULL).
Для полей Name и [Phone Number 1] целесообразно задать ограничение (атрибут) NOT NULL. Это означает, что в эти поля обязательно нужно ввести значение. Это логично, поскольку абонент в базе данных должен иметь как минимум имя и хотя бы один номер телефона.
После внесенных изменений поля таблицы будут иметь следующие свойства
Название поля | Тип данных | Объяснение |
ID_Subscriber | INTEGER | Первичный ключ, счетчик, NOT NULL |
Name | VARCHAR(50) | Фамилия и имя абонента |
Address | VARCHAR(100) | Адрес |
[Phone Number 1] | VARCHAR(20) | NOT NULL |
[Phone Number 2] | VARCHAR(20) | |
[Phone Number 3] | VARCHAR(20) |
Учитывая вышесказанное, команда CREATE TABLE на языке Transact-SQL (T-SQL) будет выглядеть следующим образом
Create Table Subscriber ( ID_Subscriber Int Not Null Primary Key, [Name] VarChar(50) Not Null, [Address] VarChar(100), [Phone Number 1] VarChar(20) Not Null, [Phone Number 2] VarChar(20), [Phone Number 3] VarChar(20) )
В запросе имена полей
[Phone Number 1] [Phone Number 2] [Phone Number 3]
обязательно должны быть в квадратных скобках [], поскольку имена состоят из нескольких слов (между словами есть символ пробела).
На рисунке 2 показаны этапы создания таблицы в системе Microsoft SQL Server Management Studio.
Рисунок 2. Окно Microsoft SQL Server Management Studio. Этапы формирования запроса: 1 — создание файла «SQL Query 2.sql»; 2 — набор SQL-запроса; 3 — выполнение; 4 — результирующая таблица
⇑
2.3. Пример создания таблицы учета заработной платы и отчислений в организации
Условие задачи
Используя язык SQL сделать таблицу Account, в которой ведется учет начисленной заработной платы в некой организации. Образец таблицы следующий
Name | Position | Accrued salary | Date of employment | Gender |
Johnson J. | Manager | 3200.00 | 01.02.2128 | M |
Petrova M.P. | Clerk | 2857.35 | 02.03.2125 | F |
Williams J. | Secretary | 3525.77 | 01.08.2127 | F |
Wilson K. | Recruiter | 1200.63 | 22.07.2125 | F |
… | … | … | … | … |
Таблицу реализовать так, чтобы обеспечивалась уникальность записей.
Решение.
Чтобы обеспечить уникальность записей, создается дополнительное поле-счетчик ID_Account типа Int. Это поле целесообразно выбрать первичным ключом, если нужно будет использовать данные этой таблицы в других связанных таблицах.
После модификации поля таблицы будут иметь следующие свойства.
Название поля (атрибут) | Тип данных | Дополнительные объяснения |
ID_Account | Int | Автоинкремент (счетчик), первичный ключ (Primary Key), ненулевое поле (Not Null), обеспечивает уникальность записей |
[Name] | VARCHAR(50) | Фамилия и имя, не нулевое поле (Not Null) |
Position | VARCHAR(100) | Должность, не нулевое поле (Not Null) |
Salary | DECIMAL | Тип, предназначенный для сохранения денежных величин |
[Employment Date] | DATE | Дата, не нулевое поле (Not Null) |
Gender | CHAR(1) | Стать, не нулевое поле (Not Null) |
В модифицированной таблице поле Salary допускает нулевые (Null) значения. Таким случаем может быть, например, когда человек принят на работу, но заработная плата ему еще не начислена. В данной ситуации временно устанавливается Null-значение. Все остальные поля обязательны для заполнения.
Запрос на язык SQL, создающий вышеприведенную таблицу имеет вид
/* Create the Account table */ Create Table Account ( ID_Account Int Not Null Primary Key, [Name] VarChar(50) Not Null, [Position] VarChar(100) Not Null, Salary Decimal Null, [Employment Date] Date Not Null, Gender Char(1) )
Результат выполнения SQL-запроса показан на рисунке 3
Рисунок 3. Результат выполнения запроса на языке Transact-SQL (T-SQL)
⇑
Связанные темы
- Microsoft SQL Server Management Studio 18. Пример создания простейшего запроса
- Модификация таблиц. Оператор ALTER TABLE. Примеры
⇑
The SQL CREATE TABLE Statement
The SQL CREATE TABLE Statement
The CREATE TABLE statement is used to create a new table in a database.
CREATE TABLE table_name (
The column parameters specify the names of the columns of the table.
The datatype parameter specifies the type of data the column can hold (e.g. varchar, integer, date, etc.).
The following example creates a table called «Student» that contains three columns.
Create Table Using Another Table
A copy of an existing table can also be created using CREATE TABLE.
The new table gets the same column definitions. All columns or specific columns can be selected.
If you create a new table using an existing table, the new table will be filled with the existing values from the old table.
CREATE TABLE new_table_name AS
SELECT column1, column2,…
WHERE ….;The following SQL creates a
new table called «TestTables» (which is a copy of the
The following SQL creates a new table called «TestTables» (which is a copy of the «Customers» table):
Select * into TestTables from Customers;