Как создать таблицы в MySQL и MariaDB на сервере Ubuntu

Что такое MySQL и MariaDB?

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

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

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

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

sudo apt-get install mysql-server

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

sudo apt-get update
sudo apt-get install python-software-properties
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
sudo add-apt-repository 'deb http://repo.maxindo.net.id/mariadb/repo/5.5/ubuntu precise main'
sudo apt-get update
sudo apt-get install mariadb-server

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

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

mysql -u root -p

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

CREATE DATABASE playground;

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

USE playground;

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

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

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

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

CREATE TABLE [IF NOT EXISTS] name_of_table (list_of_table_columns) [engine=database_engine]

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

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

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

CREATE TABLE IF NOT EXISTS equipment (
   equip_id int(5) NOT NULL AUTO_INCREMENT,
   type varchar(50) DEFAULT NULL,
   install_date DATE DEFAULT NULL,
   color varchar(20) DEFAULT NULL,
   working bool DEFAULT NULL,
   location varchar(250) DEFAULT NULL,
   PRIMARY KEY(equip_id)
);
Query OK, 0 rows affected (0.03 sec)

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

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

show columns in equipment;
+--------------+--------------+------+-----+---------+----------------+
| Field        | Type         | Null | Key | Default | Extra          | |+--------------+--------------+------+-----+---------+----------------+
| equip_id     | int(5)       | NO   | PRI | NULL    | auto_increment |
| type         | varchar(50)  | YES  |     | NULL    |                |
| install_date | date         | YES  |     | NULL    |                |
| color        | varchar(20)  | YES  |     | NULL    |                |
| working      | tinyint(1)   | YES  |     | NULL    |                |
| location     | varchar(250) | YES  |     | NULL    |                |
+--------------+--------------+------+-----+---------+----------------+
6 rows in set (0.00 sec)

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

Column_Name Data_Type[(size_of_data)] [NULL or NOT NULL] [DEFAULT default_value] [AUTO_INCREMENT]

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

  • 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

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

INSERT INTO table_name (field1, field2, ...) VALUES (value1, value2, ...);

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

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

INSERT INTO equipment (type, install_date, color, working, location)
VALUES
("Slide", Now(), "blue", 1, "Southwest Corner");

Мы воспользовались встроенной функцией now(), которая возвращает текущую дату. Для того, чтобы просмотреть данные, нужно отправить запрос к БД. Знак (*) является особенным, который означает выбор всех полей из таблицы:

SELECT * FROM equipment;
+----------+-------+--------------+-------+---------+------------------+
| equip_id | type  | install_date | color | working | location         |
+----------+-------+--------------+-------+---------+------------------+
|        1 | Slide | 2013-07-26   | blue  |       1 | Southwest Corner |
+----------+-------+--------------+-------+---------+------------------+
1 row in set (0.00 sec)

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

INSERT INTO equipment (type, install_date, color, working, location)
VALUES
("Swing", Now(), "green", 1, "Northwest Corner");

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

SELECT * FROM equipment;
+----------+-------+--------------+-------+---------+------------------+
| equip_id | type  | install_date | color | working | location         |
+----------+-------+--------------+-------+---------+------------------+
|        1 | Slide | 2013-07-26   | blue  |       1 | Southwest Corner |
|        2 | Swing | 2013-07-26   | green |       1 | Northwest Corner |
+----------+-------+--------------+-------+---------+------------------+
2 rows in set (0.00 sec)

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

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

DROP TABLE table_name;

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

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

SHOW tables;
+----------------------+
| Tables_in_playground |
+----------------------+
| equipment            |
+----------------------+
1 row in set (0.00 sec)

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

DROP TABLE equipment;

Проверяем:

SHOW tables;
Empty set (0.00 sec)

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

Заключение

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