MySQL начало работы

В MySQL начало работы — это прежде всего авторизация, создание базы данных и таблиц, а также наполнение таблиц данными. Изначально информацию можно добавлять выполняя запросы к серверу баз данных или, например, импортируя данные из текстовых документов. Именно таким образом будут загружены данные из документов в таблицы REAL_ESTATE и PEOPLE.

Данный материал — продолжение вступительной статьи цикла.

 

 

MySQL начало работы и импорт данных

Авторизовавшись в консоли сервера нужно подключиться к mysql введя имя пользователя, пароль и указав имя хоста (FQDN или IP адрес — по умолчанию если не указано значение -h используется localhost)

 

mysql -h host -u user -p

Enter password: ********

 

Также можно вводить пароль сразу

mysql -h host -u user -pPASSWORD

 

Между ключем -p и самим паролем при этом не должно быть пробела, иначе пароль будет воспринят как имя базы данных. Этот вариант плох тем, что пароль останется в history и его можно будет посмотреть в дальнейшем.

 

Основы работы с MySQL

Любой запрос (за исключением USE, QUIT и еще нескольких) должен завершаться точкой с запятой. Запрос может быть разнесен на несколько строк и будет выполнен только после введения точки с запятой

SELECT
-> *
-> FROM
-> gebwoocommerce_api_keys
-> ;
Empty set (0.01 sec)

MariaDB [db_locks]>

 

От выполнения запроса можно отказаться после введения введения нескольких строк выполнив  \c

SELECT
-> *
-> FROM
-> gebwoocommerce_api_keys
-> \c

 

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

1) >

( или вариации: mysql>, MariaDB> ) Ожидается ввод

2) ->

Ожидается следующая строка запроса длиной в несколько строк

3) '>

Ожидается следующая строка запроса длиной в несколько строк в случае если запрос начат с одинарной кавычки

4) «>

Ожидается следующая строка запроса длиной в несколько строк в случае если запрос начат с двойной кавычки

5)`>

Ожидается следующая строка запроса длиной в несколько строк в случае если запрос начат с backtick (“`”)
6) /*>

Ожидается следующая строка запроса длиной в несколько строк в случае если запрос начат со знака комментария /*

 

 

Создание базы данных MySQL и ее наполнение данными

Работать от имени пользователя root не желательно, лучшим решением является создание пользователя с ограниченным доступом

Например, добавим пользователя user (в тестовой среде можно работать и от имени root). Авторизовавшись в консоли MySQL создаем базу данных и таблицы

CREATE DATABASE REAL_ESTATE_AGENCY;

Query OK, 1 row affected (0.00 sec)

SHOW DATABASES;

+——————————+
| Database |
+——————————+
| information_schema |
| mysql |
| performance_schema |
| REAL_ESTATE_AGENCY |
+——————————+
4 rows in set (0.03 sec)

 

 

 

USE REAL_ESTATE_AGENCY

Database change

 

CREATE TABLE REAL_ESTATE (type VARCHAR(20), city VARCHAR(20), floorspace INT, district VARCHAR(20), street VARCHAR(20), rentorsale VARCHAR(20), PRICE VARCHAR (20));

Query OK, 0 rows affected (0.01 sec)

CREATE TABLE PEOPLE (name VARCHAR(20), profession VARCHAR(20), age INT, city VARCHAR(20), district VARCHAR(20), rentorsale VARCHAR(20), PRICE VARCHAR (20));

Query OK, 0 rows affected (0.01 sec)

SHOW TABLES;

+——————————+
| Tables_in_REAL_ESTATE_AGENCY |
+——————————+
| PEOPLE |
| REAL_ESTATE |
+——————————+
2 rows in set (0.00 sec)

 

Информацию о структуре таблицы и всех существующих столбцах и колонках можно получить выполнив команду DESCRIBE

 

DESCRIBE REAL_ESTATE;

+————+————-+——+——+———+——-+
| Field | Type | Null | Key | Default | Extra |
+————+————-+——+——+———+——-+
| type | varchar(20) | YES | | NULL | |
| city | varchar(20) | YES | | NULL | |
| floorspace | int(11) | YES | | NULL | |
| district | varchar(20) | YES | | NULL | |
| street | varchar(20) | YES | | NULL | |,

| rentorsale | varchar(20) | YES | | NULL | |
| PRICE | varchar(20) | YES | | NULL | |
+————+————-+——+——+———+——-+
7 rows in set (0.00 sec)

 

Вывести все содержимое таблицы можно с помощью самого общего SELECT запроса (этот вид запросов используется чаще всего и будет подробно рассмотрен в дальнейшем)

SELECT * FROM REAL_ESTATE;

Empty set (0.00 sec)

 

Данных сейчас нет — наполним таблицы. Делать это можно выполняя UPDATE-ы с необходимыми значениями или загружая данные из тексовых документов. На этапе первоначальной загрузки второй способ гораздо удобнее. Воспользуемся им.

 

 

Загрузка данных в таблицы MySQL

Сохраняем информацию в /tmp/real_estate.txt — значения в столбцах разделяем табуляцией. После этого в консоли загружаем данные предварительно выбрав таблицу.

 

LOAD DATA LOCAL INFILE '/tmp/real_estate.txt' INTO TABLE REAL_ESTATE;

Может возникнуть следующая ошибка.

ERROR 1148 (42000): The used command is not allowed with this MySQL version

 

Если ошибка возникает к MySQL нужно подключаться с  опцией —local-infile=1:

mysql —local-infile=1 -u root -p

 

LOAD DATA LOCAL INFILE '/tmp/real_estate.txt' INTO TABLE REAL_ESTATE;

Query OK, 13 rows affected (0.00 sec)
Records: 13 Deleted: 0 Skipped: 0 Warnings: 0

 

 

Результаты SELECT теперь выглядят иначе:

SELECT * FROM REAL_ESTATE;

 

mysql начало работы
Если для какого-то столбца и ряда нужно значение NULL в текстовом документе оно должно быть представлено как \N. В MySQL начало работы с базами и таблицами выглядит именно так. Далее рассмотрим основы использования SELECT.