Что такое 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. Но это только вершина айсберга, углубляйтесь в изучении и вы с легкостью сможете работать во всех сферах управления базами данных.