English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этом руководстве вы узнаете, как использовать SQL для создания таблиц в базе данных.
В предыдущей главе мы学习了, как создавать базы данных на сервере базы данных. Теперь пришло время создать несколько таблиц в базе данных, которые фактически будут хранить данные. Таблицы базы данных просто организуют информацию в строки и столбцы.
SQL CREATE TABLE используется для создания таблицы.
Основная грамматика создания таблицы
CREATE TABLE table_name (column1_name data_type constraints, column2_name data_type constraints,.... );
Чтобы легко понять эту грамматику, давайте создадимдемонстрацияСоздайте таблицу в базе данных, введите следующую команду в инструмент командной строки 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 );
следующее предложение создает таблицу с именемpersonтаблица, которая имеетid,name,birth_dateиphoneЧетыре столбца. Обратите внимание, что после каждого имени столбца есть声明 типа данных; эта声明 указывает,何种类型 данных будет храниться в столбце, целое число, строка, дата и т.д.
некоторыетип данных可以使用 параметр length для объявления, который указывает, сколько символов можно хранить в столбце. Например, VARCHAR(50) может содержать до 50 символов.
Внимание:Тип данных столбца может варьироваться в зависимости от системы базы данных. Например, MySQL и SQL Server поддерживают тип данных INT целых чисел, а база данных Oracle поддерживает тип данных NUMBER.
в таблице ниже приведен обзор самых常用的 типов данных, поддерживаемых MySQL.
тип данных | описание |
---|---|
INT | хранит значения от -2147483648 до 2147483647. |
DECIMAL | хранит десятичные значения с точной точностью. |
CHAR | хранит строки фиксированной длины максимальной длиной 255 символов. |
VARCHAR | хранит строки переменной длины, максимальной длиной 65,535 символов. |
TEXT | хранит строки максимальной длиной 65,535 символов. |
DATE | хранит значения даты в формате YYYY-MM-DD. |
DATETIME | хранит комбинированные значения даты и времени в формате YYYY-MM-DD HH:MM:SS. |
TIMESTAMP | хранит значение временной метки.TIMESTAMPзначения хранятся в виде секунд с момента начала эры Unix ('1970-01-01 00:00:01' UTC). |
Пожалуйста, смотрите раздел справкитипах данных SQL DBчтобы получить информацию о всех доступных типах данных в популярных RDBMS (например, MySQL, SQL Server и т.д.),тип данныхподробнее.
В предыдущем предложении были установлены некоторые другие ограничения для столбцов таблицы (также называемыемодификаторы)。Определение ограничений описывает правила, допускаемые значениями в столбце.
Ограничение NOT NULL гарантирует, что поле не может принимать значение NULL.
Ограничение PRIMARY KEY помечает соответствующее поле как главный ключ таблицы.
Атрибут AUTO_INCREMENT является расширением стандартного SQL для MySQL, который говорит MySQL, что если значение не указано, то для поля автоматически назначается значение, увеличенное на 1 по сравнению с предыдущим значением. Применяется только к числовым полям.
UNIQUE ограничение гарантирует, что каждое значение в столбце должно быть уникальным.
В следующей главе мы рассмотрим информацию оSQL ограниченияБолее подробная информация.
Внимание: Microsoft SQL Server использует атрибут IDENTITY для выполнения автоматического инкрементирования. По умолчанию значение IDENTITY(1,1), то есть начное значение 1, значение инкремента 1.
Совет:Вы можете выполнить команду для просмотра информации о столбцах или структуре любой таблицы в базах данных MySQL и Oracle, а в SQL Server (используяtable_nameзамените фактическим именем таблицы)。DESC table_name;EXEC sp_columns table_name;
Если вы пытаетесь создать таблицу, которая уже существует в базе данных, вы получите сообщение об ошибке. Чтобы избежать этого, можно использовать опциональное предложение IF NOT EXISTS в MySQL, как показано ниже:
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.