Программисты чаще используют язык запросов SQL, когда пишут код программы на каком-то языке программирования. Но тестировать его часто приходится в какой-то программе. В этой главе мы поговорим о паре методов доступа к данным.
Тестеры и аналитики данных нуждаютя в хороших инструментах для работы с SQL, потому что они не программисты, а только нуждаются в доступе к базе данных.
Существуют различные базы данных, а я в этой работе буду рассматривать MySQL, потому что она бесплатная и на ее установку уходит не так много времени. Но чтобы начать работать с этой базой данных, нужно ее установить.
На сколько я знаю, можно установить Windows версию базы данных MySQL, которую можно скачать с сайта https://www.mysql.com/. Я когда-то пользовался Windows версией, но это было очень давно, когда компьютеры были слабыми, памяти мало и дорогая, компьютеры были дорогие. Я просто использую MySQL с PHP и люблю эту связку только на Unix подобных ОС.
Когда появилась хорошая поддержка виртуализации и у компьютеров стало достаточно памяти для комфортной работы, то сначала я перебрался на Linux в виртуальной машине, а сейчас полностью перебрался на macOS. В данном случае я использую Windows и тут можно тоже получить опыт Linux, потому что в Windows появилась встроенная поддержка Ubuntu.
Итак, в Windows у нас есть выбор – поставить Windows версию MySQL или Linux. Windows ставится без проблем, просто качаем с сайта установщик и все работает, по крайней мере должно быть все просто (я уже давно не ставил Windows версию). Я покажу, как установить Linux версию MySQL, потому что сам предпочитаю ее. Это чисто предпочтение, но этот опыт очень полезен. В наше время при разработке Web сайтов очень часто используется связка LAMP (Linux, Apache, MySQL и PHP) и умение работать с двумя из этих компонентов будет полезным.
Сначала в магазине приложений устанавливаем Ubuntu. Если в поиске набить слово Ubuntu, то появится несколько вариантов на выбор – просто Ubuntu, 18.04 и 20.04. Лучше ставить конечно последний, а у меня стоит просто Ubuntu уже много лет. Во всех работа MySQL будет одинаково.
После установки Ubuntu запускаем его из магазина приложений или в меню (Вызываем главное меню Windows и печатаем Ubuntu) и появляется командная строка. В командной строке сначала выполняем следующую команду для установки mysql сервера:
sudo apt install mysql-server
а теперь выполняем следующую команду для запуска MySQL сервера:
sudo service mysql restart
Все, две команды и через минуту MySQL уже готов к работе. Плюс этого подхода – таким же образом устанавливается MySQL в самом популярном Linux дистрибутиве Ubuntu.
Под macOS можно скачать графическую программу установки, как и в Windows, а получить потом доступ к данным как с помощью видуальных программ, так и с помощью терминала. Давайте рассмтрим два метода доступа к данным - через терминал и через программу с оконным интерфейсом.
К базе данных можно подключиться выполнив следующую команду в окне терминала:
mysql -u root -p -h 127.0.0.1
Здесь мы выполняем команду mysql программу с ключами:
-u это ключ указывает на имя пользователя user и после этого идет имя пользователя, от которого мы хотим работать и в нашем случае это root. Это имя по умолчанию в MySQL, которое имеет корни Linux.
-p нам нужно будет указать пароль после запуска
-h после этого ключа будет указан компьютер, к которому мы подключаемся. В нашем случае это локальный компьютер, а для локального всегда можно использовать адрес 127.0.0.1.
Если сервер MySql работает, то в результате запуска mysql вы должны увидеть запрос на ввод пароля. Если сервер не работает, то вы можете сразу увидеть примерно следующую ошибку:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
Здесь говориться о том, что доступ запрещен, хотя в реальности сервер просто не работает. Так что эта ошибка может появиться в результате различных проблем, но первым делом проверьте, что сервер реально работает.
Попробуйте запустить сервер, выполнив команду:
sudo service mysql start
Если вы подключаетесь к серверу на локальном компьютеру, то параметр -h можно опустить и тогда команда будет выглядеть так:
mysql -u root -p
Если вы все сделали верно, то вы должны увидеть что-то типа:
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 6 Server version: 5.7.30-0ubuntu0.16.04.1 (Ubuntu) Copyright (c) 2000, 2020, 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> Тут у нас несколько строк с приветствием от сервера, а потом приглашение выполнять команды, которое начинается с mysql>
После этого приглашения мы можем писать команды SQL. Каждая команда может писаться в несколько строк, то есть нажатие клавиши Enter не запускает команду, а просто переводит курсор на новую строку для вашего удобства. Чтобы запустить команду, нужно сначала указать точку с запятой и потом нажать Enter (Ввод), потому что в SQL точка с запятой означает конец команды.
Это требование является обязательным не во всех редакторах. Некоторые программы для работы с запросами SQL выполняют команды и без точки с запятой, особенно с программы с визуальным интерфейсом.
Попробуем для примера выполнить такую команду. Введите ее и нажмите Enter.
SELECT table_name FROM information_schema.tables;
Не имеет значения, что делает эта строка, она что-то отображает и для нас этого пока достаточно. Нам сейчас главное попробовать выполнить что-то, чтобы вы могли ощутить, какой способ выполнения запросов вам больше нравится и какой вы захотите использовать в дальнейшем для выполнения заданий.
Чтобы выйти из команды mysql вернуться в терминал нужно напечатать команду
exit;
На этом пока знакомство с утилитой закончим.
Еще один вариант выполнения запросов SQL – использовать достаточно популярную программу VS Code, которую можно скачать здесь: https://code.visualstudio.com/. Это Windows программа, поэтому она ставиться без проблем. Устанавливаем, и запускаем редактор.
Здесь выполняем три действия для того, чтобы установить расширение, которое позволит работать с MySQL, как показано на рисунке:
1. Открываем окно установки расширений
2. Ищем расширение MySQL
3. Нажимаем кнопку Install для установки
После этого у вас слева должна появиться еще одна кнопка для открытия MySQL расширения:
В окне расширения нажимаем кнопку открытия подключения к базе данных и в центре должно появится окно:
Здесь можно все значения оставить по умолчанию и просто указать пароль и нажать Connect, если вы хотите подключиться к локальному серверу. Если подключение не работает, то убедитесь, что сервер запущен.
Пробежимся по полям, которые есть в окне подключения:
Connection Name – имя соединения, которое можно оставить по умолчанию и программа создаст свое имя, которое будет состоять из адреса сервера, порта и т.д.
Host – адрес сервера, где установлена и запущена база. По умолчанию адрес локального хоста 127.0.0.1, то есть по умолчанию мы подключимся к текущему компьютеру
Port – порт, по умолчанию MySQL использует 3306
Username – имя пользователя, по умолчанию root, потому что этот пользователь чаще всего админ
Password – ясное дело пароль
Database – если на сервере есть уже база, к которой вы хотите подключиться, то самое время указать его здесь. У нас пока нет ничего.
Нажимаем Connect и слева в дереве должен появиться новый элемент подключения сервера. Теперь мы можем создать окно выполнения запросов и выполнять запросы. На следующем рисунке показана кнопка для создания окна выполнения запросов. Нажатие на кнопке создаст новую закладку, в которой можно писать запросы. Для выполнения запросов есть кнопка в правом верхнем углу:
Для выполнения запросов в VS Code точка с запятой не обязательна.
Скопируйте в окно запроса следующий SQL запрос и нажмите кнопку выполнения, чтобы посмотреть на результат:
SELECT table_name FROM information_schema.tables;
Не имеет значения, что делает эта строка, она что-то отображает и для нас этого пока достаточно. Нам сейчас главное попробовать выполнить что-то, чтобы вы могли ощутить, какой способ выполнения запросов вам больше нравится и какой вы захотите использовать в дальнейшем для выполнения заданий.
На этом очень краткий экскурс установки необходимых инструментов можно считать законченным и наконец перейти к самому языку запросов SQL.