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


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

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



Авторизовавшись в консоли сервера нужно подключиться к 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)



От выполнения запроса можно отказаться после введения введения нескольких строк выполнив  \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.

Сказать спасибо