Создаем таблицу в SQL

В этом статье вы научитесь создавать таблицу внутри базы данных с помощью SQL.

В предыдущей статье мы научились создавать базу данных на сервере баз данных. Теперь пришло время создать несколько таблиц внутри нашей базы данных, в которых будут храниться данные. Таблица базы данных просто организует информацию в строки и столбцы.

Для создания таблицы используется SQL-оператор CREATE TABLE.

Синтаксис

Базовый синтаксис для создания таблицы выглядит так:

CREATE TABLE имя_таблицы (
    имя_столбца1 тип_данных ограничения,
    имя_столбца2 тип_данных ограничения,
.... );

Чтобы лучше понять синтаксис, давайте создадим таблицу в нашей базе данных demo. Введите следующую инструкцию в командной строке MySQL и нажмите клавишу Enter:

-- Синтаксис для БД MySQL 
CREATE TABLE persons ( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50) NOT NULL, birth_date DATE, phone VARCHAR(15) NOT NULL UNIQUE ); -- Синтаксис для БД SQL Server CREATE TABLE persons ( id INT NOT NULL PRIMARY KEY IDENTITY(1,1), name VARCHAR(50) NOT NULL, birth_date DATE, phone VARCHAR(15) NOT NULL UNIQUE );

Тип данных

Выше мы показали, как создать таблицу persons с четырьмя столбцами id, name, birth_date и phone. Обратите внимание, что за именем каждого столбца указан его тип данных. Так мы указываем, какой тип данных будет храниться в столбце: целое число, строка, дата и т. д.

Некоторые типы данных могут быть объявлены с параметром длины, который указывает, сколько символов может храниться в столбце. Например, VARCHAR(50) будет хранить до 50 символов.

Примечание. Тип данных столбцов может отличаться в зависимости от системы базы данных. Например, целочисленный тип в MySQL и SQL Server называется INT, а в Oracle — NUMBER.

В следующей таблице приведены наиболее часто используемые типы данных, поддерживаемые в MySQL.

Тип данных Хранит
INT Числовые значения в диапазоне от -2147483648 до 2147483647
DECIMAL Десятичные значения.
CHAR Строки фиксированной длины с максимальным размером 255 символов.
VARCHAR Строки переменной длины с максимальным размером 65 535 символов.
TEXT Строки с максимальным размером 65 535 символов.
DATE Значения даты в формате ГГГГ-ММ-ДД.
DATETIME Значения даты и времени в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС.
TIMESTAMP значения временных меток — количество секунд, прошедших с эпохи Unix ('1970-01-01 00:00:01' UTC).

Ограничения

В SQL также сущетсвуют ограничения (constraits), их еще называются модификаторами. Ограничения можно установить для столбцов таблицы — они определяют допустимые значения в столбцах.

Некоторые из ограничений мы уже использовали в предыдущем примере:

  • Ограничение NOT NULL гарантирует, что поле не может иметь значение NULL.
  • Ограничение PRIMARY KEY отмечает соответствующее поле как первичный ключ таблицы.
  • Атрибут AUTO_INCREMENT — расширение MySQL, которое предписывает MySQL автоматически присваивать значение этому полю, если оно не определено, путем увеличения предыдущего значения на 1. Доступно только для числовых полей.
  • Ограничение UNIQUE гарантирует, что каждая строка для столбца должна иметь уникальное значение.

Более подробно об ограничениях в SQL мы поговорим в следующей статье.

Примечание. Microsoft SQL Server использует свойство IDENTITY для выполнения функции автоинкремента. Значение по умолчанию — IDENTITY(1,1) — означает, что начальное значение и инкремент равны 1.

Совет. Вы можете выполнить инструкцию DESC имя_таблицы;, чтобы посмотреть информацию о столбцах или структуру любой таблицы в базах данных MySQL и Oracle. Аналогичная инструкция в SQL Server — EXEC sp_columns имя_таблицы;.

Используем IF NOT EXISTS

Если вы попытаетесь создать таблицу, которая уже существует в базе данных, вы получите сообщение об ошибке. Чтобы избежать этого в MySQL, можно использовать IF NOT EXISTS, как показано ниже:

CREATE TABLE IF NOT EXISTS persons (
    id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(50) NOT NULL,
    birth_date DATE,
    phone VARCHAR(15) NOT NULL UNIQUE
);

Совет. Если вы хотите увидеть список таблиц внутри выбранной базы данных, используйте команду SHOW TABLES; в командной строке MySQL.

codechick

СodeСhick.io - простой и эффективный способ изучения программирования.

2024 ©