Как создать таблицу в mysql через консоль

Обновлено: 04.07.2024

MySQL и MariaDB две наиболее распространенные СУБД, использующие язык запросов SQL. Довольно большое число приложений для Ubuntu в той или иной степени используют MySQL или MariaDB, чтобы хранить свои данные.

В этой статье мы рассмотрим как создавать таблицы для MySQL и MariaDB. Все примеры, приведенные ниже, проверялись на сервере Ubuntu 12.04 VPS, но они должны работать на любой машине с установленной системой Ubuntu.

Установка MySQL и MariaDB на Ubuntu

MySQL и MariaDB используют один и тот же синтаксис команд, поэтому любая из этих систем поддерживает команды из примеров. Для установки MySQL выполните команду:

Для установки MariaDB на Ubuntu 12.04 потребуется выпонить ряд команд:

Создание базы данных в MySQL и MariaDB

Прежде чем начать работать с таблицами нам потребуется создать базу данных в MySQL. Зайдите в MySQL или MariaDB при помощи следующей команды:

Введите пароль, указанный при установке. Для целей нашей статьи создадим базу данных под названием playground . Выполните команду:

Перейдите в созданную БД:

А теперь приступим к рассмотрению таблиц.

Создание таблиц в MySQL и MariaDB

Итак, мы имеем БД под названием playground (игровая площадка), давайте создадим таблицу, в которой опишем имеющееся оборудование на площадке.

При создании таблицы следует придерживаться следующего синтаксиса:

Участки в скобках ( [ и ] ) можно опускать. Фраза IF NOT EXISTS указывает на то, что таблица будет создана только в том случае, если она отсутствует в БД. В противном случае возникнет ошибка.

Часть engine=database_engine указывает движок создаваемой таблицы. Её стоит выбирать исходя из требований, предъявляемых к обработке данных. Сам выбор выходит далеко за пределы этой статье, но, скажем так, значение по-умолчанию (InnoDB) подходит в большинстве случаев.

Мы, конечно объясним значение каждого поля, а пока давайте создадим наконец таблицу:

Определение типов столбцов

Давайте проанализируем результат только что выполненной команды:

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

Рассмотрим каждый параметр отдельно:

  • Column Name : имя столбца, как правило, описывает назначение столбца. Например, имя первого стобца - equip_id , он будет содержать уникальный ID номер, который мы будем присваивать каждой записи в таблице.
  • Data Type : указывает тип данных, хранящихся в столбце. Может принимать значению любого из допустимых типов в MySQL. Например, “int” говорит о том, что в поле может храниться только целочисленное значение, а “varchar” используется для хранения строковых данных. Существует довольно большое число возможных типов данных, но их рассмотрение выходит за пределы этой статьи.
  • Null : указывается в случае, если ячейка может иметь значение Null.
  • Default Value : значение по-умолчанию для всех новых записей. За словом “default” следует указать само значение.
  • auto_increment : MySQL автоматически будет увеличивать значение этого поля для каждой последующей записи. Таким образом автоматически поддерживается функция назначения уникального ID номера для каждой записи.

Наконец, следует указать какой столбец использовать в качестве ключевого (“PRIMARY KEY (имена столбцов)”).

Мы назначали в этой роли поле equip_id , так как именно в нем мы использовали опцию auto increment , что гарантирует уникальность этого поля для каждой записи, а это и есть основное требование, накладываемое на ключевое поле.

Ввод данных в таблицу MySQL или MariaDB

До сих пор мы создали только структуру данных. Давайте же начнем вводить сами данные. Ввод данных производится в соответствии со следующим синтаксисом:

Каждое строковое значение должно быть в кавычках. Полям с опцией auto increment задавать значение не требуются. Эти поля обрабатывается СУБД самостоятельно.

Добавим горку к оборудованию на нашей площадке:

Добавим еще одну запись:

Убедимся в том, что запрос отработал корректно:

Удаление таблиц в MySQL и MariaDB

Для удаления используется команда:

Будьте предельно аккуратны с этой командой, так как данные после удаления восстановить невозможно.

Давайте познакомимся с очередной командой, которая показывает существующие таблицы в вашей базе данных:

Удалим наше единственную таблицу:

Как видите, таблица отсутствует, и наша база данных playground опустела.

Заключение

Итак, если вы внимательно читали статью, то вы должны понимать элементарные команды, требуемые при работе с MySQL и MariaDB. Но это только вершина айсберга, углубляйтесь в изучении и вы с легкостью сможете работать во всех сферах управления базами данных.

В этой статье мы рассмотрим создание базы данных SQL и создание таблицы SQL, используя команды в клиенте mysql. Предполагается, что этот инструмент запущен и подключен к серверу базы данных MySQL.

Создание новой базы данных MySQL

Новая база данных создается с помощью оператора SQL CREATE DATABASE, за которым следует имя создаваемой базы данных. Для этой цели также используется оператор CREATE SCHEMA. Например, для создания новой базы данных под названием MySampleDB в командной строке mysql нужно ввести следующий запрос:

Если все прошло нормально, команда сгенерирует следующий вывод:

В этой ситуации следует выбрать другое имя базы данных или использовать опцию IF NOT EXISTS. Она создает базу данных только в том случае, если она еще не существует:

Создание таблицы SQL

Новые таблицы добавляются в существующую базу данных с помощью оператора CREATE TABLE SQL. За оператором CREATE TABLE следует имя создаваемой таблицы, а далее через запятые список имен и определений каждого столбца таблицы:

В определении столбца ​​задается тип данных, может ли столбец быть NULL, AUTO_INCREMENT. Оператор CREATE TABLE также позволяет указать столбец (или группу столбцов) в качестве первичного ключа.
Прежде чем будет создавать таблицу, нужно выбрать базу данных. Это делается с помощью оператора SQL USE:

Создадим таблицу, состоящую из трех столбцов: customer_id , customer_name и customer_address . Столбцы customer_id и customer_name не должны быть пустыми (то есть NOT NULL). customer_id содержит целочисленное значение, которое будет автоматически увеличиваться при добавлении новых строк. Остальные столбцы будут содержать строки длиной до 20 символов. Первичный ключ определяется как customer_id.

Значения NULL и NOT NULL

Если для столбца указано значение NULL, тогда пустые строки будут добавляться в таблицу. И наоборот, если столбец определяется как NOT NULL, тогда пустые строки не будут добавлены​​.

Первичные ключи

Первичный ключ определяется с помощью оператора PRIMARY KEY во время создания таблицы. Если используется несколько столбцов, они разделяются запятой:

В следующем примере создается таблица с использованием двух столбцов в качестве первичного ключа:

AUTO_INCREMENT

Когда столбец определяется с помощью AUTO_INCREMENT, его значение автоматически увеличивается каждый раз, когда в таблицу добавляется новая запись. Это удобно при использовании столбца в качестве первичного ключа. Благодаря AUTO_INCREMENTне нужно писать инструкции SQL для вычисления уникального идентификатора для каждой строки.

AUTO_INCREMENT может быть присвоен только одному столбцу в таблице. И он должен быть проиндексирован (например, объявлен в качестве первичного ключа).

Значение AUTO_INCREMENT для столбца можно переопределить, указав новое при выполнении инструкции INSERT.

Можно запросить у MySQL самое последнее значение AUTO_INCREMENT, используя функцию last_insert_id() следующим образом:

Определение значений по умолчанию при создании таблицы

Значения по умолчанию используются, когда значение не определено при вставке в базу данных.
Значения по умолчанию задаются с помощью ключевого слова DEFAULT в операторе CREATE TABLE. Например, приведенный ниже запрос SQL задает значение по умолчанию для столбца sales_quantity:

Типы движков баз данных MySQL

Каждый из примеров создания таблицы в этой статье до этого момента включал в себя определение ENGINE= . MySQL поставляется с несколькими различными движками баз данных, каждый из которых имеет свои преимущества. Используя директиву ENGINE =, можно выбрать, какой движок использовать для каждой таблицы. В настоящее время доступны следующие движки баз данных MySQL:

Чтобы указать тип движка, который будет использоваться для таблицы, о поместите соответствующее определение ENGINE= после определения столбцов таблицы:

Пожалуйста, опубликуйте ваши комментарии по текущей теме статьи. За комментарии, отклики, лайки, дизлайки, подписки низкий вам поклон!

Пожалуйста, опубликуйте ваши мнения по текущей теме материала. За комментарии, отклики, подписки, дизлайки, лайки низкий вам поклон!

Для примера создадим таблицу books со списком книг условной базы данных Bookstore.

Оповестим сервер MySQL с какой базой данных мы собираемся работать.

При именовании колонок таблицы старайтесь использовать знак подчеркивания в местах где предполагается пробел, не начинать имена с заглавной буквы (кроме имен собственных), а также использовать слова в единственном числе, не совпадающие с именем таблицы.

Составим запрос на создании таблицы со следующими полями:

  • id - Идентификатор записи.
  • title - название книги.
  • author - имя автора книги.
  • genre - жанр произведения в книге.
  • price - цена книги.
  • edition - номер издания.
  • isbn - номер ISBN.
  • page_num - число страниц в книге.
  • publish_year - год выхода книги в печать.
  • creation_date - дата создания записи (когда занесли книгу в БД).

После того как вы указали тип данных для поля, вы можете также указать дополнительные атрибуты:

  • UNSIGNED - позволяет увеличить диапазон числовых значений за счет отключения использования отрицательных чисел. Используется только с числовыми типами данных.
  • AUTO_INCREMENT - значение поля с этим атрибутом будет увеличиваться на 1 при каждом создании новой записи в таблице. Часто используется для автоматического заполнения полей с идентификатором записи.
  • PRIMARY_KEY - первичный ключ используется для идентификации записей в таблице. Первичным ключом может быть только уникальное значение поэтому чаще всего это значение поля id с атрибутом AUTO_INCREMENT .
  • NOT NULL - обязательное поле для заполнения (не может быть пустым).
  • DEFAULT - значение поля по умолчанию.

Каждая таблица должна иметь поле которое помечено как первичный ключ.

Создание таблицы в терминале:

mysql> CREATE TABLE books(
-> id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY ,
-> title VARCHAR(50) NOT NULL ,
-> author VARCHAR(50) NOT NULL ,
-> genre SET( 'Драма' , 'Роман' , 'Повесть' , 'Рассказ' , 'Поэма' ) ,
-> price DECIMAL(15,2) ,
-> edition TINYINT UNSIGNED DEFAULT '1' NOT NULL ,
-> isbn VARCHAR(50) ,
-> page_num SMALLINT UNSIGNED ,
-> publish_year SMALLINT(4) ,
-> creation_date TIMESTAMP );
Query OK, 0 rows affected (0.22 sec)

Это первая часть. Вторая часть, в которой описаны примеры заполнения таблиц данными находится тут>>>.

Ниже будут приведены наиболее полезные при работе с MySQL команды и примеры их выполнения.

Для примера будет создана таблица, содержащая список контактов.

Для подключения к серверу MySQL используется такая команда:

$ mysql -u username -p
Enter password:
mysql>

Threads: 5 Questions: 8391067 Slow queries: 37 Opens: 17162 Flush tables: 1 Open tables: 64 Queries per second avg: 12.044

mysql> use base1;
Database changed

Просмотреть содержащиеся в ней таблицы можно командой:

В базе base1 имеется только одна таблица tablename .

А просмотреть имеющиеся в базе данных MySQL таблицы из консоли можно так:

Посмотреть содержимое таблицы из консоли можно следующим образом:

$ mysqlshow base1 tablename -u root -p

Выполнять запросы SQL можно как из консоли сервера, так и из консоли клиента mysql . Так же, запросы можно вводить не напрямую, а из файла. К примеру, имеется файл с таким содержимым:

$ cat temp.sql
select now()

$ mysql -u root -p < temp.sql
Enter password:
now()
2013-01-31 17:59:43

При этом, файл должен находится в каталоге, в котором вы находились перед подключением к mysql -клиенту.

При создании таблицы используется такой синтаксис:

имя_столбца ТИП(значение) АТРИБУТ

Атрибуты могут иметь значение либо NULL (может быть пустым), либо NOT NULL — обязательно должен быть заполнен.

В примере будут использоваться такие типы столбцов:

PRIMARY KEY указывает, что указанные столбцы являются индексами, подробнее тут>>>.

mysql> CREATE TABLE main_list (contact_id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT NOT NULL, first_name VARCHAR(50) NOT NULL, last_name VARCHAR(50), phone VARCHAR(20), city VARCHAR(20), email VARCHAR(50), skype VARCHAR(20), icq INT UNSIGNED, birth_date DATE, facebook_address VARCHAR(50), vk_address VARCHAR(50), real_type ENUM(‘Y’, ‘N’));
Query OK, 0 rows affected (0.26 sec)

Добавим вторую таблицу:

mysql> CREATE TABLE main_socials (entry_id INT UNSIGNED AUTO_INCREMENT NOT NULL, contact_id INT UNSIGNED NOT NULL, vk_id VARCHAR(100), facebook_id VARCHAR(100), PRIMARY KEY (entry_id, contact_id));
Query OK, 0 rows affected (0.01 sec)

ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key

ERROR 1068 (42000): Multiple primary key defined

mysql> drop table tablename;
Query OK, 0 rows affected (0.75 sec)

mysql> ALTER TABLE tablename DROP COLUMN column_name;
Query OK, 0 rows affected (0.03 sec)
Records: 0 Duplicates: 0 Warnings: 0

Это первая часть. Вторая часть, в которой описаны примеры заполнения таблиц данными находится тут>>>.

Читайте также: