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