Статьи

MySQL Server Tutorial

1. Введение в MySQL Server

MySQL — это система управления реляционными базами данных с открытым исходным кодом, разработанная шведской компанией в 1995 году. MySQL, как система с открытым исходным кодом, используется многими известными компаниями, такими как Facebook, Google, Twitter, Flickr, а также Youtube. MySQL-сервер также является центральным компонентом LAMP, платформы веб-приложений с открытым исходным кодом. Сервер баз данных MySQL написан на C и C ++ и использует лексический анализатор для обработки запросов SQL.

Sun Microsystems приобрела сервер MySQL в 2008 году, а затем приобрела Oracle в результате приобретения Sun Microsystem. Основатель развил MySQL во время приобретения Sun Microsystems и запустил Maria DB. Однако MySQL удерживал свои позиции на рынке и продолжал использоваться многими организациями.

В этой статье мы поговорим об установке сервера MySQL. Далее мы познакомим вас с некоторыми основами SQL-запросов и объясним, как их выполнять. Позже мы продолжим обсуждение нескольких сложных структур запросов, таких как объединения и подзапросы в MySQL.

2. Установка сервера MySQL

Сервер MySQL доступен в нескольких вариантах в зависимости от архитектуры базы данных и предпочтений лицензии. Доступные варианты:

Свободно:

MySQL Community Server

Коммерческий:

Облачный сервис MySQL от Oracle

MySQL Cluster GCE сервер

MySQL Entreprise издание

На протяжении всего учебного курса мы будем работать с MySQL Community Server и его функциями. Чтобы установить сервер сообщества MySQL, перейдите на его страницу загрузки .

При прокрутке вниз страницы вы найдете список загрузок и поле выбора, чтобы разрешить выбор ОС. Выберите ОС в соответствии с вашими потребностями.

MySQL поддерживает ОС

После выбора ОС, это рекомендуемые установки для загрузки:

MacOS: архив dmg

Варианты Linux: Соответствующий пакет DEB согласно вашей архитектуре. В вариантах Linux, таких как Ubuntu и Debian, в настоящее время также можно установить с помощью репозитория apt.

Windows: исполняемый файл exe

После загрузки соответствующей настройки продолжите установку, как описано ниже:

2.1 Установка в MacOS

В MacOS дважды щелкните загруженный файл .dmg, чтобы начать настройку. Появится экран, аналогичный показанному ниже. Примите лицензию и выберите место установки. Как только местоположение выбрано, оно покажет количество места, которое будет занято установкой, как показано ниже.

Установка MySQL

При щелчке по установке происходит процесс установки, и сервер MySQL устанавливается. Следующим шагом является настройка MySQL Service и пароля пользователя root. Важно помнить вводимый пароль, поскольку это пароль администратора, необходимый для создания дополнительных пользователей. Настройте имя службы и учетные данные и нажмите «Готово».

2.2 Установка в Windows

Процесс установки в ОС Windows очень похож на MacOS. Запустите файл .exe, который вы уже должны загрузить. Пока исполняемый файл совместим с вашей системой, установка должна начинаться и продолжаться без нареканий.

Установка MySQL Server в Windows

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

2.3 Установка в вариантах Linux

Для вариантов Linux программа установки сервера MySQL доступна в виде файла .deb. Файл .deb позволяет завершить процесс очень похоже, как показано выше. Тем не менее, для людей, которые предпочитают командную строку, возможно установить сервер MySQL с помощью командной строки. Сервер MySQL доступен через apt, yum, а также zypper . Далее мы будем обсуждать установку сервера MySQL с использованием репозитория apt.

Чтобы настроить репозиторий apt для установки сервера MySQL, выполните следующие шаги и выполните необходимые команды.

  1. Выберите правильное имя пакета из этой ссылки . Формат имени будет mysql-apt-config_x.x.xx-x_all.deb.
  2. Загрузите соответствующий пакет
  3. После загрузки выполните приведенную ниже команду.
    1
    $ sudo dpkg -i /PATH/version-specific-package-name.deb
  4. Во время установки вышеуказанного пакета введите версию для установки, когда она предложит установить
  5. После завершения настройки выполните команду ниже, чтобы обновить репозиторий apt.
    1
    $ sudo apt-get update
  6. Чтобы наконец установить сервер MySQL, выполните команду ниже.
    1
    sudo apt-get install mysql-server
  7. После установки сервер запускается автоматически при запуске соответствующей службы. Вы можете проверить статус, используя приведенную ниже команду.
    1
    sudo service mysql status

3. Подключение к базе данных MySQL

Командная строка имеет свои проблемы для запуска каждого приложения. Даже для MySQL вы можете столкнуться с проблемами, особенно когда речь идет о MacOSX. Для начала посмотрим, как подключиться к базе данных MySQL с помощью командной строки в Windows.

3.1 Подключение к серверу базы данных MySQL с помощью командной строки Windows

Перед подключением к серверу MySQL необходимо убедиться, что соответствующая служба запущена и работает. Чтобы проверить это, перейдите к списку сервисов, выполнив поиск Сервисов в меню «Пуск» и проверив список сервисов для сервиса MySQL56. Статус службы указывает, запущен или остановлен сервер MySQL. Как только он будет определен как работающий, мы можем подключиться к серверу с помощью командной строки. Команды Windows работают в основном с переменной окружения PATH. Пока переменная окружения пути содержит запись расположения бина установки MySQL, все команды mysql могут использоваться напрямую. В случае отсутствия записи пути установки MySQL, вы можете перейти в папку установки MySQL Server. Зайдите в папку bin и откройте терминал из папки.

Когда вы находитесь в терминале, вам нужно ввести следующую команду:

1
> mysql -u root -p

Это должно подключиться к серверу mysql с именем пользователя root, указанным в приведенной выше команде. Он запросит пароль, указанный в флаге -p . Введите пароль, настроенный в начале, и вы увидите приглашение MySQL, как показано ниже.

MySQL Client

Это приглашение позволяет вам взаимодействовать с базой данных MySQL с помощью простых запросов SQL. Мы увидим то же самое в следующих разделах.

Вы также можете использовать команду mysql для подключения к другим удаленным базам данных и использовать терминал для взаимодействия с удаленной базой данных. Для этого вам нужно использовать приведенную ниже команду. Атрибуты, передаваемые в команде, не требуют пояснений.

1
> mysql --host=localhost --user=myname --password=password mydb

3.2 Подключение к серверу базы данных MySQL с помощью терминала Linux

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

1
$ ps -eF|grep mysql

Команда выдает список запущенных процессов MySQL. Ищите процессы, отличные от только что выполненного процесса grep. Если сервер MySQL не запущен, его можно запустить с помощью приведенной ниже команды в большинстве дистрибутивов.

1
$ service mysqld start

После запуска сервера введите приведенную ниже команду для подключения к базе данных с пользователем root.

1
$ mysql -u root -p

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

3.3 Подключение к серверу базы данных MySQL через терминал MacOS

В MacOS процесс запуска и остановки сервера сильно отличается с точки зрения пользовательского интерфейса. В MacOS, чтобы проверить состояние, запустить или остановить сервер, вам нужно перейти в Системные настройки . В системных настройках вы сможете найти значок MySQL в нижней области, как показано ниже.

Системные настройки MacOS

Нажмите на значок MySQL, чтобы просмотреть статус сервиса. Будет видно окно, подобное показанному ниже. Сервер может быть остановлен или запущен отсюда при нажатии кнопки довольно легко.

Сервер MacOS MySQL

Как видно на изображении выше, также возможно повторно инициализировать базу данных и установить новый пароль для root прямо из окна выше. Чтобы сбросить пароль и повторно инициализировать базу данных, просто нажмите кнопку «Инициализировать базу данных». Он попросит новый пароль, и вы будете готовы к работе.

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

1
$ mysql -u root -p

4. Подключение к схеме и выполнение запросов

Как только вы подключитесь к серверу базы данных, пришло время выполнять запросы. Независимо от операционной системы, процесс выполнения запроса с использованием командной строки одинаков для всех. Этот раздел будет охватывать все основные операции, связанные с выполнением SQL-запросов.

4.1 Создание и проверка схемы

Первым шагом к работе с базой данных MySQL является создание схемы. Схема создается с помощью приведенной ниже команды.

1
mysql> create schema tutorial;

Здесь учебник может быть заменен именем схемы, которую вы хотите иметь. Чтобы выполнить запрос, введите его в приглашении mysql, как показано выше. После ввода просто нажмите ввод. Это даст сообщение об успехе с упоминанием 1 затронутой строки. Если это не так, убедитесь, что вы ставите точку с запятой после запроса. В случае, если он был пропущен, появится подсказка со стрелкой «>». Если появляется такая подсказка, вам нужно поставить точку с запятой и нажать ввод.

Таким образом, будет создана новая схема. Чтобы подтвердить то же самое, вы можете просмотреть список схем, используя приведенную ниже команду.

1
mysql> show schemas;

MySQL Список Схем

Как видно на изображении выше, список схем отображается в формате отформатированной консоли. Вы можете увидеть немного другой вывод в зависимости от количества созданных вами схем. Если вы точно следовали инструкции, в списке должна отображаться только одна схема.

4.2 Выбор схемы и создание таблиц

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

1
mysql> use tutorial

Обратите внимание, что в этом утверждении точка с запятой в конце утверждения не является действительно необходимой. При выполнении вышеупомянутой команды вы должны увидеть выходную Database Changed . Как только схема базы данных выбрана, проверьте выбор с помощью приведенной ниже команды.

1
mysql> select database() from dual;

Запрос выведет имя выбранной базы данных в формате, аналогичном указанному выше. Следующим шагом является создание первой таблицы в схеме. Мы рассмотрим вариант использования веб-сайта для ведения блогов для создания таблиц. Следовательно, создайте две таблицы, пользователей и статьи, используя запросы ниже.

1
2
3
4
mysql> CREATE TABLE `tutorial`.`users` (`userid` INT NOT NULL,`name` VARCHAR(45) NULL,`email` VARCHAR(100) NULL,`password` VARCHAR(24) NULL, PRIMARY KEY (`userid`));
Table Created
mysql> CREATE TABLE `tutorial`.`articles`(`articleid` INT NOT NULL,`content` TEXT NULL,`userid` INT NULL,PRIMARY KEY (`articleid`), INDEX `user_fk_idx` (`userid` ASC),CONSTRAINT `user_fk` FOREIGN KEY (`userid`) REFERENCES `tutorial`.`users` (`userid`) ON DELETE NO ACTION ON UPDATE NO ACTION);
Table Created

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

01
02
03
04
05
06
07
08
09
10
mysql> show tables;
+--------------------+
| Tables_in_tutorial |
+--------------------+
| articles           |
| users              |
+--------------------+
2 rows in set (0.00 sec)
 
mysql>

Таким образом, он отображает список таблиц с названием схемы в заголовке.

4.3 Добавление и выборка данных в таблицы с использованием командной строки MySQL

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

1
2
3
4
5
6
7
mysql> insert into users values (1,'Abhishek', 'abcd@javacodegeeks.com','mysql123');
Query OK, 1 row affected (0.08 sec)
 
mysql> insert into users values (2,'Dennis', 'denis@javacodegeeks.com','mysql123');
Query OK, 1 row affected (0.04 sec)
 
mysql>

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

1
2
3
4
5
6
7
8
mysql> select * from users;
+--------+----------+-------------------------+----------+
| userid | name     | email                   | password |
+--------+----------+-------------------------+----------+
|      1 | Abhishek | abcd@javacodegeeks.com  | mysql123 |
|      2 | Dennis   | denis@javacodegeeks.com | mysql123 |
+--------+----------+-------------------------+----------+
2 rows in set (0.00 sec)

Как можно увидеть здесь, командная строка отображает список записей в формате консоли. Имена столбцов становятся заголовками таблицы, а остальные строки являются записями. Точно так же можно выполнить почти каждый запрос SQL с помощью командной строки.

4.4 Обновление и удаление записей

Когда у нас есть записи в таблице, может возникнуть необходимость обновить или удалить записи по мере необходимости. Это может быть достигнуто с помощью запросов SQL Update и Delete, как описано далее. Рассмотрим пользователя Дениса в показанных выше записях. Как видно, идентификатор электронной почты содержит ошибку заклинания для Денниса. Давайте исправим это, используя запрос на обновление.

1
2
3
mmysql> update users set email='dennis@javacodegeeks.com' where userid=2;
Query OK, 1 rows affected (0.39 sec)
Rows matched: 1  Changed: 1  Warnings: 0

Аналогично, чтобы удалить запись, используйте запрос на удаление с соответствующим идентификатором пользователя в предложении where.

1
2
mysql> delete from users where userid=2;
Query OK, 1 rows affected (0.50 sec)

4.5 Проверьте структуру таблицы базы данных

Есть вероятность, что вам может понадобиться знать структуру определенной таблицы базы данных в определенный момент в процессе разработки. Структура базы данных — это в основном список столбцов и типы данных столбцов. Структура любой таблицы может быть получена с помощью команды ниже.

1
mysql> desc articles;

При выполнении команды будет получен вывод, аналогичный показанному ниже. Как видно, он предоставляет подробную информацию о типе данных, первичном ключе, значении по умолчанию, а также об ограничении NULL, если он применяется.

1
2
3
4
5
6
7
8
9
mysql> desc articles;
+-----------+---------+------+-----+---------+-------+
| Field     | Type    | Null | Key | Default | Extra |
+-----------+---------+------+-----+---------+-------+
| articleid | int(11) | NO   | PRI | NULL    |       |
| content   | text    | YES  |     | NULL    |       |
| userid    | int(11) | YES  | MUL | NULL    |       |
+-----------+---------+------+-----+---------+-------+
3 rows in set (0.00 sec)

4.6 Предопределенные функции MySQL

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

1
mysql> select count(1) from users;

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

1
2
3
4
5
6
7
mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2018-05-18 11:59:03 |
+---------------------+
1 row in set (0.00 sec)

Таким образом, он показывает текущую дату и время в вышеуказанном формате. Функция now() может использоваться для автоматической установки значения времени создания или обновления записи. В дополнение к этим функциям существует множество других функций, таких как min(), max() , avg() , sum() and few others.

5. Администрирование MySQL

Администрирование базы данных MySQL включает в себя несколько задач. Тем не менее, здесь мы обсудим три простых задачи, а именно: создание пользователя, назначение гранта пользователю и удаление пользователя. Чтобы создать пользователя, сначала выберите базу данных mysql . После выбора базы данных выполните следующие запросы, чтобы получить выходные данные, как показано ниже.

1
2
mysql> create user 'newuser'@'localhost' identified by 'newpassword';
Query OK, 0 rows affected (0.06 sec)

Права на пользователя могут быть назначены выборочно в соответствии с требованиями. Чтобы назначить все права вновь созданному пользователю, выполните приведенный ниже запрос и проверьте вывод.

1
2
mysql> grant all on tutorial.* to 'newuser'@'localhost';
Query OK, 0 rows affected (0.04 sec)

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

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
mysql> exit
Bye
MacBook-Air:bin abhishekkothari$ ./mysql -u newuser -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 14
Server version: 8.0.11 MySQL Community Server - GPL
 
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
 
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
mysql>

После успешного входа попробуйте проверить список схем. Если бы у вас были другие схемы в базе данных ранее, как у меня, вы заметили бы, что список схем не показывает все из них. Вывод будет аналогичен показанному ниже. Первая схема information_schema — это общая схема MySQL для каждого пользователя. Вторая отображаемая схема — это схема, для которой пользователю предоставлены необходимые разрешения для ее просмотра.

1
2
3
4
5
6
7
8
mysql> show schemas;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| tutorial           |
+--------------------+
2 rows in set (0.00 sec)

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

1
2
3
mysql> drop user 'newuser'@'localhost'
    -> ;
Query OK, 0 rows affected (0.07 sec)

Чтобы подтвердить удаление пользователя, вы можете выйти и попытаться войти снова, используя того же пользователя. Вам будет отказано в разрешении. Таким образом, мы можем создавать и удалять пользователей, а также управлять разрешениями, предоставленными пользователям.

6. Заключение

В статье подробно описан процесс установки сервера MySQL для каждой популярной операционной системы. Помимо обсуждения процесса установки, в нем также обсуждались основы использования базы данных MySQL с командной строкой в ​​каждой операционной системе. Таким образом, статья предоставляет глубокие знания любому разработчику, чтобы начать использовать сервер баз данных MySQL. Однако это еще не конец. Для тех, кто считает инструменты командной строки неуклюжими и предпочитает GUI, а не командную строку, ознакомьтесь с этой статьей, чтобы узнать о самом популярном инструменте GUI для базы данных MySQL — MySQL Workbench.