MySQL – наиболее распространенная система управления базами данных. Она поддерживает множество интересных и простых функций, а также бесплатно распространяется. Данная СУБД является одним из самых ранних массовых решений для управления БД. Первый релиз MySQL состоялся в середине 90-х годов.
MySQL появилась за счет необходимости адаптации mSQL для работы с таблицами, сформированными под более ранние и устаревшие способы хранения и управления данных. Системы требовали быстрой обработки, а также начали контактировать с огромными объемами информации.
Далее предстоит разобраться с основами использования MySQL. В качестве изучаемого языка запросов будет использоваться тоже достаточно популярный вариант – SQL. Особое внимание уделено оператору Select, а также подготовке СУБД к полноценному использованию. Эта информация пригодится как новичкам, так и опытным разработчикам, а также аналитикам.
База данных – это…
Данные – это файлы, база – место, где они будут храниться. Данные в БД могут принимать совершенно любой облик.
Пример – сформированный плейлист в Spotify. Пользователь сформировал его, а затем добавил туда новый трек. Плейлист в предложенном случае – это база, очередная «песня» – данные. Каждая композиция, хранящаяся в готовом списке треков, станет элементом уже существующей базы данных. Так она наполняется.
Подобных БД может быть очень много. Они могут быть многоуровневыми, а также поддерживать деление на различные категории. Все это способствует формированию взаимосвязей между разными компонентами базы данных, образовывая структуру. Отсюда происходит термин «реляционная» – поддерживающая зависимость элементов друг от друга.
База данных – набор структурированных данных с выстроенными между ними связями. Пример – деление на категории.
Визуально база данных – это таблица с тысячами составляющих:
- ссылками;
- частями текста;
- цифрами;
- файлами и другими компонентами.
Для управления соответствующими данными необходимо обозначить таблицы, а затем использовать специальные операции. Они помогают выполнять различные команды. Здесь на помощь приходят языки запросов. Один из наиболее популярных вариантов – SQL. Он работает через MySQL и другие СУБД.
Краткое определение MySQL
MySQL – реляционная система управления базами данных, созданная шведскими разработчиками из одноименной компании в 1994 году. Данная СУБД получила свободную лицензию. Позже компанию-создателя поглотила Oracle.
MySQL распространяется бесплатно. Она включена в стандартный набор приложений LAMP для разработки веб-страниц на базе Linux. Некоторые программисты называют серверы баз данных с любым программным обеспечением MySQL. Это связано с тем, что соответствующая СУБД получила достаточно широкое распространение. Она умеет работать с большими массивами информации, предоставляя неплохую скорость обработки. Используется такими компаниями как YouTube, Google, а также FaceBook.
MySQL – популярная система управления базами данных с моделью «клиент-сервер». Именно поэтому некоторые разработчики говорят MySQL-сервер. Такие проекты создаются для обеспечения доступа к данным для различных приложений, а также сервисов.
Что такое SQL
Перед погружением в основы использования MySQL необходимо выяснить, что собой представляет SQL. Это Structured Query Language. В переводе с английского – «язык структурированных запросов».
SQL – стандартизированный язык, используемый для взаимодействия с базами данных. С его помощью удается получать доступ к информации, хранящейся непосредственно в таблицах MySQL. Делится этот язык на несколько частей:
- Семантический синтаксис. Он позволяет идентифицировать отдельные элементы базы данных.
- Синтаксис управления данными в базе. С его помощью осуществляется обновление и поиск информации.
- Синтаксис, предоставляющий выбор прав пользователям на отдельные единицы данных в имеющейся базе.
SQL используется не только MySQL, но и другими СУБД. Примеры – PostgreSQL и Microsoft SQL.
Ключевые задачи SQL
Перед тем как пользоваться MySQL, необходимо выяснить, какие ключевые задачи выполняет SQL. К ним относят:
- Извлечение запрашиваемых сведений из ячеек БД по клиентским запросам.
- Операции с данными, включая добавление новых компонентов в таблицу. Сюда же относят удаление, сортировку и изменение сведений.
- Идентификацию информации из базы. Подразумевается определение отдельных компонентов. Пример – определение чисел в тексте как целых для организации соответствующей дальнейшей обработки. Все это помогает формировать взаимоотношения между табличными слоями в БД.
- Непосредственное управление данными.
- Защиту и шифрование информации в сформированных таблицах.
При помощи SQL можно с легкостью закрыть все перечисленные аспекты. Пользоваться данным языком достаточно легко. Об этом предстоит поговорить позже, рассматривая наиболее распространенные и важные команды языка.
Как работают MySQL-серверы
MySQL часто используется для клиент-серверных моделей. Принцип работы таких проектов прост – устройство будет делать запросы, а другие аппараты – формировать и отправлять ответы. Запрашивающего оборудования может быть более одного. Все зависит от сервера, сети и конкретных задач, которые необходимо выполнить.
В среде MySQL на соответствующих серверах осуществляются различные процессы:
- система создает БД для хранения и обработки информации;
- клиенты (компьютеры в сети) подают запросы к БД при помощи специальных SQL-команд;
- серверное приложение обрабатывает полученные запросы и выдает клиентам ответы (те или иные данные из таблиц).
Для работы с MySQL-сервером используется специальное программное обеспечение. Некоторое поддерживает только командную строку. Наиболее популярными решениями для клиент-серверных моделей MySQL выступают – SequelPro, TablePlus, WorkBench, SQL Studio. Веб-мастеры часто пользуются phpMyAdmin. Связано это с тем, что соответствующее приложение включено в состав LAMP, а работает в обычном браузере.
Преимущества и недостатки MySQL
MySQL пользуется спросом не только в клиент-серверных моделях, но и в других приложениях. Соответствующая СУБД имеет ряд преимуществ и недостатков, благодаря которым она стала одной из наиболее распространенных. Зная плюсы и минусы системы, каждый сможет самостоятельно решить, стоит ли ему пользоваться MySQL или нет.
Сильные стороны
К преимуществам рассматриваемой СУБД относят следующие моменты:
- Гибкость и простота использования. На создание и поддержку БД затрачивается относительно мало времени. Уровень компетенции для полноценной работы с СУБД требуется меньший, чем в случае с конкурентами.
- Открытый исходный код. За счет него систему легко модифицировать. Платить за соответствующие изменения не придется – разработчик справится самостоятельно.
- Поддержка от Oracle и дружелюбное сообщество.
- Быстрая работа. Внутренняя структура MySQL дает возможность использования больших объемов информации, разбирая их за несколько секунд. Специфичность связей между элементами никак не отражается на работоспособности системы.
- Высокий уровень защиты. Связано это с системой выдачи прав, а также с продвинутой системой управления пользователями. Рассматриваемая СУБД поддерживает верификацию для серверов на базе хостингов и шифрования.
MySQL – это уже не просто СУБД, а нарицательное имя, некий стандарт в IT. Но у нее есть ряд недостатков, которые необходимо учесть перед началом работы.
Слабые стороны
Рассматриваемая система управления базами данных имеет следующие слабые стороны:
- Отсутствие полноценной стабильности. Иногда трудно предугадать, какое поведение будет в базе данных MySQL. Часть распространенных задач, особенно связанных с серверами, заканчивается ошибкой.
- Производительность. Изучаемая СУБД умеет обрабатывать большие объемы информации, но по мере ее увеличения скорость обработки данных снижается. В небольших масштабах MySQL ведет себя более корректно и предсказуемо.
- Замедленное развитие после выкупа проекта компанией Oracle.
- Минимизация функций. СУБД MySQL тяжело назвать продвинутой. Эта система производительная и легкая, но инструментов в ней минимум. Для устранения этого недостатка приходится устанавливать всевозможные расширения.
При помощи таблиц MySQL удается решать большинство задач, связанных с запросами и клиент-серверной разработкой. Это – идеальный вариант как для начинающих специалистов, так и для опытных. Если стандартного функционала не хватает, можно в любой момент поставить расширения – они сделают СУБД более мощной.
Начало работы с СУБД
Начало работы с рассматриваемой системой управления – это подготовка среды для дальнейших операций. Сюда также включена установка MySQL. Без предварительной подготовки разрабатывать БД не получится.
Подготовка среды
Предложенная далее информация является универсальной. Она подойдет как для обладателей Linux, так и для других операционных систем с MySQL. Далее будет рассматриваться сервер на базе Ubuntu.
Чтобы начать работу, потребуется:
- сервер Ubuntu 18.04 с использованием sudo;
- установленная система управления базами данных.
При наличии соответствующего программного обеспечения можно будет формировать таблицы, заполнять их информацией, а также управлять данными.
Как установить
Последняя версия MySQL доступна на официальном сайте разработчика. При выборе дистрибутива пользователю будет предложена авторизация через учетную запись Oracle. Делать это необязательно. Файлы будут доступны даже тем, кто не идентифицирован в системе.
Чтобы установить рассматриваемую систему управления, достаточно следовать подсказкам на дисплее устройства. Существуют различные варианты инициализации программного обеспечения:
- developer – платформа разработчика с поддержкой некоторых дополнительных инструментов;
- server only – активация установки только серверной части MySQL;
- client only – клиентская часть СУБД;
- full – полная установка всех модулей и блоков, включенных в инсталлятор;
- custom – выборочная установка (рекомендуется только опытным специалистам).
Основы работы с MySQL поддерживают установку, настройку платформы, создание локальных или удаленных баз данных или подключение к уже существующим. Все эти операции достаточно понятны – в процессе инициализации программного обеспечения появляются необходимые подсказки. Остается лишь внимательно читать их.
При установке MySQL необходимо создать пользователя. Сначала формируется доступ для администратора. Далее поддерживается возможность добавления и удаления аккаунтов по мере смены исполнителей, а также подключения новых сторонних специалистов.
Установка в Ubuntu
По умолчанию Ubuntu 18.04 поддерживает только последнюю версию MySQL. Для установки сборки 5.7 необходимо обновить индекс пакетов сервера. Далее – провести инициализацию стандартного пакета:
При обработке запроса будет предложено указать root-пароль. Он должен быть сложным. За счет соответствующей комбинации будет обеспечена безопасность системы.
Настройка
После того как установка будет завершена, необходимо запустить встроенный сценарий безопасности MySQL. Он изменит некоторые опции по умолчанию, а также заблокирует удаленный root-логин. В старых версиях СУБД это делается автоматически, в новых – через команду:
Сначала система предложит произвести настройку Validate Password Plugin, который отвечает за проверку надежности придуманного пароля. Далее будет запрошен root-пароль. Чтобы принять настройки по умолчанию, необходимо нажать на Y и Enter. Сценарий удалит анонимных пользователей и тестовую базу данных, отключит удаленный root-логин, а также обновит правила. Все это позволит MySQL функционировать с новыми параметрами.
Структура данных
Проект поддерживает работу с несколькими логическими блоками – клиентскими и серверными. Ко второму типу относится непосредственно сама БД MySQL. Технически это набор файлов с расширениями:
- FRM;
- MYI;
- MYD.
В каждой базе существуют одна или несколько таблиц, необходимые для структурированного хранения данных. Они выражены записями в полях. В зависимости от объема информации в БД формируются одна или несколько записей.
Структура БД будет одинаковой во всех проектах, где она используется. Меняется только состав и назначение конкретных ее блоков.
Клиентская часть включает в себя некий набор PHP-скриптов, необходимых для приема данных из внешних источников, а также их дальнейшей обработки и отправки на сервер, извлечения ранее сохраненных материалов для отображения и организации вычислительных работ.
Наглядный пример – это сайт. На нем хранятся базы данных, которые были заранее подключены. Они выражаются текстами, ссылками на анимацию и изображения, а также другие компоненты. При открытии той или иной страницы соответствующие сведения извлекаются оттуда по заданной программе.
В основе структуры БД заложена таблица. Она может поддерживать различный тип данных – текст, ссылки, а также числовые значения. Таблицы включают в себя поле с определенными порядковыми номерами (ID). Табличные названия обычно соответствуют содержимому. Пример – блок USER указывает на данных о зарегистрированных пользователях. В полях будет храниться:
- логин;
- пароль;
- электронный адрес пользователя;
- иные реквизиты человека.
Соответствующая информация распределяется по отдельным записям – ячейкам, заполненным значениями в соответствие с обозначенным типам данных.
Основные операции
Чтобы лучше разобраться с СУБД и SQL, необходимо рассматривать операторы и команды на наглядном примере. Для этого создается отдельная БД. Далее будет изучаться такой сценарий:
Человек с друзьями всегда празднуют дни рождения совместно. Каждый раз все члены группы идут в боулинг на дружеский турнир. После этого – к человеку, где он готовит любимое блюдо именинника.
Данное поведение стало традицией – возникла необходимость в отслеживании результатов организованных турниров. Чтобы сделать планирование обедов более простым, требуется создать записи о днях рождениях друзей и их любимых блюдах, десертах, а также гарнирах. Чтобы не приходилось все записывать в обычной записной книжке, будет использоваться СУБД MySQL.
Создание таблицы
Начать необходимо с открытия командной строки MySQL в качестве root-пользователя:
sudo Mysql.
Для создания БД необходимо использовать команду CREATE Database:
Теперь ее необходимо выбрать:
В ней должны быть созданы две таблицы: первая используется для отслеживания результатов в боулинге, вторая отвечает за сопоставление друзей и их любимых блюд.
В предложенной выше таблице «для боулинга» будут отображаться столбцы с именами друзей (имя пользователя, name), а также количество выигранных ими турниров (wins), лучшие результаты за все время (best). Здесь же выводится размер обуви для боулинга каждого участника (size).
Если запустить предложенный код, на экране появится следующая запись:
Теперь в нее необходимо добавить информацию. Делается это при помощи команды Insert into:
Команда вернет такой результат:
Теперь можно создать вторую таблицу в пределах той же базы посредством команды create table. Она будет использоваться для хранения информации о блюдах и друзьях. В ней будут находиться столбцы с именами друзей, датами рождения, блюдами (entree), гарнирами (side), а также десертами (dessert):
После обработки соответствующего запроса произойдет вывод такого результата:
Можно заполнить предложенную таблицу необходимой пользователю информацией:
На основе соответствующей БД будет происходить изучение основных команд изучаемой системы управления.
Оператор Select
Почти все SQL-запросы начинаются с Select. Соответствующий оператор является основой работы с таблицами. Это – универсальная синтаксическая конструкция. Пользователи смогут добавлять в нее параметры и предложения для выполнения операций по выборке.
Оператор MySQL Select почти всегда включает в себя FROM. Это предложение используется для ссылки на таблицу, с которой будет производиться дальнейшая работа.
Перед применением Select необходимо уяснить следующее:
- Этот оператор возвращает строки – ноль и более.
- Список возвращаемых столбцов указывается в части запроса с Select-предложением.
- С его помощью определяется спектр требований к возвращаемому набору сведений. Это не точная инструкция по вычислению.
Соответствующий оператор включает в себя несколько разделов, каждый из которых отвечает за выборку с уточненными параметрами.
Разделы Select
Рассматриваемый оператор используется для получения информации из электронной таблицы. Он включает в себя несколько разделов (предложений):
- Select – часть, отвечающая за непосредственную выборку. Определяет спектр выводимых столбцов. Используется как для создаваемых элементов, так и для подготовленных заранее. Определяет имена столбцов, ограничения на уникальность строк и их количество в возвращаемом наборе информации.
- From. Ключевое слово, которое определяет базовый набор информации для дальнейшей обработки. Ссылается на пространство, откуда будут извлекаться данные для расчетов.
- Group by. Раздел объединения рядов с одинаковыми свойствами. Использует агрегатные функции.
- Where. Предложение, используемое для формирования ограничений на строки выражений из таблиц, определенных через FROM.
- Order by. Устанавливает требования сортировки строк. Отправляет данные в точку вызова после успешной обработки.
- Having. Предложение, используемое для выборки среди групп, определенных через параметр group by.
Все эти разделы необходимо изучить до непосредственной работы с готовыми БД.
Как составить select-выражение
Эта конструкция поможет сформировать select-выражение:
Здесь:
- поле1 и поле2 – имена столбцов;
- имя таблицы – задает табличное имя;
- limit – используется для ограничения количества возвращаемых строк;
- order by – сортирует результирующие значения столбцов по возрастанию или убыванию.
В случае с ранее подготовленной БД в MySQL можно сформировать запрос на извлечение столбца name из таблицы dinners:
Если необходимо запросить несколько столбцов из одной таблицы, они перечисляются через запятую перед from:
Вместо указания конкретного столбца или их наборов, допускается использование оператора Select вместе со знаком «звездочка» (*). Соответствующий элемент является заполнителем. Он представляет все столбцы в таблице.
Выше – пример, демонстрирующий отображение всех столбцов из таблицы tourneys.
Where
Оператор Where – необязательный. Используется в запросе для того, чтобы фильтровать записи, удовлетворяющие заданному условию. Все строки, не попадающие под установленные «ограничения», будут исключены из результата.
Синтаксис оператора where:
Часто используется с запросами delete и update. Является альтернативой использования OR, а также AND.
Записи в таблице могут быть уточнены при помощи операторов сравнения SQL, записанных в where-предложении. Вот самые распространенные варианты:
Что за оператор используется (обозначение) | Действие (описание) |
= | Равенство |
!= | Неравно |
> | Больше |
< | Меньше |
>= | Больше или равно |
<= | Меньше или равно |
BETWEEN | Проверяет, находится ли заданное значение в пределах установленного диапазона |
IN | Проверяет, содержится ли значение строки в наборе указанных значений |
EXISTS | Проверка на наличие строк при заданных условиях |
Like | Позволяет узнать, существует ли значение в указанной строке |
IS NULL | Проверяет значения NULL |
IS NOT NULL | Проверяет все значения, исключая NULL |
Вот пример, который позволит узнать размер обуви Ирмы:
SQL-запросы позволяют использовать подстановочные знаки. В случае с Where-выражениями это бывает достаточно удобно. Знак процента (%) представляет ноль или более неизвестных символов, а нижнее подчеркивание отвечает за один неизвестных элемент (_).
Подстановочные знаки удобны, когда необходимо найти конкретную запись в таблице, но в правильности ее написания нет уверенности.
Этот пример показывает ситуацию, при которой пользователь выбрал любимые блюда, но он не уверен, что оно начинается на t. Результатом обработки запроса станет tofu.
Order by
Предложение order by используется для того, чтобы привести табличные данные в порядок. С его помощью информация из MySQL будет представлена в упорядоченном виде. Значения поддерживают сортировку по убыванию или возрастанию.
По умолчанию используется принцип вывода информации «от меньшего к большему». Уточнение вводится при помощи таких слов:
- desc – отображение по убыванию;
- asc – вывод информации в порядке возрастания.
Это – пример формирования запроса с order by.
Limit
Предложения Limit применяются в SQL-запросах для получения некоторого ограниченного количества строк из больших информационных объемов. Это – ограничение возвращаемых результатов.
Limit дает возможность возврата одного или двух аргументов. Если «параметров» несколько, то один из них выступает в качестве смещения. Он задаст сдвиг первой возвращаемой строки. Смещение обязательно является или нулевым, или положительным. Если в запросе один аргумент, он будет выступать количеством выводимых строк на дисплей устройства.
Псевдонимы
В Select-запросах MySQL могут использоваться псевдонимы. Они задаются через ключевое слово AS. Позволяют сделать имена таблиц или столбцов более читабельными и понятными. Встречаются преимущественно тогда, когда работать с изначальной формой представления таблиц трудно.
Псевдонимы, сформированные при помощи AS – это временные сведения. Они существуют до тех пор, пока работает запрос, для которого они были созданы.
Соединение таблиц
Соединение (join) используется для одновременного получения информации сразу из нескольких таблиц в MySQL. Пример – есть order и customer. Из них необходимо извлечь информацию для дальнейшей обработки. Для этого применяется запрос типа join.
Она поддерживает такие предложения:
- Cross – перекрестное соединение. Применяется для вывода информации, которая совпала как в левой, так и в правой таблице.
- Inner – внутреннее объединение. Возвращает записи, значения которых совпадают в обеих заданных таблицах.
- Right – правое соединение. Указывает информацию из правой таблицы, значения которых встречаются в левой.
- Left – левое соединение. Отображает данные левой таблицы, совпавшие с параметрами из правой.
Объединить результаты нескольких select-запросов удается при помощи ключевого слова Union. Для каждого select устанавливается одно и то же количество столбцов с одинаковыми типами используемых данных.
Предложение left join отвечает за возврат всех записей из левой таблицы и только совпадающие с аргументами правой таблицы. В контексте соединения левая таблица MySQL – это таблица, на которую будет ссылаться FROM. Правая – любая другая, на которую имеется ссылка после оператора JOIN.
Соответствующий запрос выведет каждую запись из левой таблицы (в приведенном примере – tourneys), даже если в правой таблице совпадающие записи отсутствуют. Каждый раз, когда в правой табличке нет подходящей записи, она вернет пустое значение или NULL. На устройстве появится следующий результат:
Соответствующую команду рекомендуется повторить, но уже при помощи оператора right join:
Результат будет представлен в виде возврата всех записей из правой таблички – dinners. Дата рождения Лесли записана в правой таблице MySQL, но для нее нет соответствующей строки в левой, столбцы name и size получат нулевые значения (NULL):
Левые и правые соединения в MySQL могут быть записаны в виде left outer join или right outer join. То же самое касается Inner join. Эта команда может быть записана просто как join.
В качестве альтернативы JOIN допускается использование Union. Вместо того, чтобы вывести результат из нескольких табличек в виде уникальных столбцов с помощью Select соответствующая команда объединит информацию от двух select-запросов в один столбец.
Вот пример запроса:
Он приведет к отображению такого результата:
Удаление дубликатов
При использовании Select-запросов в MySQL могут встречаться одинаковые значения. Выводить их несколько раз на дисплей нет никакой необходимости. Чтобы удалить повторы в результирующих значениях, необходимо использовать предложение distinct.
В заданной форме записи:
- Expressions – столбцы или вычисления, которые необходимо получить.
- Tables – таблицы, используемые для работы. Этот параметр не является обязательным. Связано это с тем, что в перечислении from должна быть хотя бы одна таблица.
- Where conditions – параметр, указывающий на условия, выполняемые для выбранных записей. Соответствующая запись в SQL-запросе может отсутствовать.
Значения Null MySQL при использовании запроса distinct игнорировать не будет. Он рассматривается системой в виде отдельного значения.
Оператор Load
Оператор Load используется для заполнения таблицы. Применяется при формировании результата из подготовленного заранее документа. Оператор Load data имеет такую форму представления:
Load data ‘[путь/] [имя файла]’ in table [имя таблицы];
Также для вставки данных в таблицу можно использовать Insert:
Здесь:
- table_name – это название таблицы;
- values – значения, которые необходимо добавить.
Value1, ….valueN – это аргументы, перечисляемые через запятую. Значения здесь предоставляются в том же порядке, в котором они указаны изначально в таблице.
Оператор show
В MySQL show используется для предоставления информации о базах данных, таблицах, столбцах и состоянии операций. Следующие команды являются наиболее распространенными:
- show databases – показать базу данных на хосте сервера;
- show tables – перечисление постоянных таблиц;
- show triggers – вывод триггеров;
- show create table – отображение оператора создания таблиц.
Здесь можно увидеть все возможные способы представления оператора show.
Агрегатные функции
В СУБД работа с данными не всегда подразумевает их интерпретацию. Иногда требуется получение информации о них. SQL-синтаксис поддерживает некоторые функции, позволяющие интерпретировать, а также выполнять различные вычисления через Select-запросы. Они носят название агрегатных:
- Count. Используется для подсчета и возврата количества строк, соответствующих заданным критериям. Пример – уточнение информации о том, сколько друзей из заданной БД предпочитают тофу. Сделать это поможет следующий запрос:.
- AVG. Отвечает за возвращение среднего значения заданного столбца в MySQL. Пример – получение среднего лучшего результата в турнире:.
- SUM – общая сумма значений столбца. Пример – просмотр количества турниров, проведенных за установленный период:.
- MIN используется для поиска наименьшего значения по столбцам. Этот запрос в MySQL поможет отыскать наименьшее количество очков победителя в турнире за все годы:.
- MAX – функция, которая работает по обратному принципу MIN. Используется для поиска наибольшего числового значения.
SUM и AVG функционируют правильно в базах данных MySQL, только если речь идет о числах. При попытке работы с нечисловыми значениями результат окажется или нулем, или ошибкой обработки данных. Все зависит непосредственно от используемой СУБД.
Функции MIN и MAX используются не только для числовых, но и для буквенных типов данных. При запуске в столбце со строками, функция MIN отобразит первое значение в алфавитном порядке:
В случае с использованием MAX происходит то же самое, но в алфавитном порядке показывается последнее значение:
Агрегатные функции в MySQL и SQL-запросах получили широкое распространение. Они особо полезны в запросах с group by.
Вывод запроса
Рассматривая select-запросы MySQL, необходимо также обратить внимание на управление выводом. Далее будут представлены наиболее популярные операторы:
- Group by. Используется тогда, когда выполняется агрегатная функция для одного столбца, но в отношении сопоставления значений в другом. Вот – пример, в котором пользователь пытается узнать, сколько друзей любят то или иное блюдо:.
- Оператор order by применяется для сортировки результатов заданного запроса. По умолчанию все числовые значения сортируются по возрастанию, текстовые значения – по алфавиту.
- Having. Используется для выполнения функций, аналогичных Where, но совместимых с агрегатными.
Where используется для фильтрации результатов на основе заданных пользователем условий. Только работу с агрегатными функциями этот оператор не поддерживает. Он возвращает при подобных обстоятельствах ошибку.
Подзапросы
Чтобы обратиться к нескольким таблицам MySQL, можно использовать подзапросы. Они носят название вложенных запросов (или внутренних). Это запрос, включенный в другой. Такой вариант полезен тогда, когда необходимо отфильтровать результаты запроса по сравнению с итогами отдельной агрегатной функции MySQL.
Лучше разобрать с этой операцией в базах данных поможет наглядный пример. Необходимо узнать, кто из друзей выиграл больше матчей, чем Барбара. Вместо того чтобы посмотреть, сколько матчей выиграла девушка, а затем выполнять другой запрос, можно сделать это так:
Подзапрос в операторе выполнялся всего один раз. В заданном примере требовалось найти значение из столбца wins в строке, где в столбце name указано значение Barbara. Данные, возвращаемые при помощи сформированного подзапроса и внешнего запроса, не зависят друг от друга. Бывают ситуации, при которых внешний запрос должен сначала считать каждую строчку в табличке, а затем сравнить соответствующие значения с данными, возвращаемыми подзапросом. Такой подзапрос называется коррелированным.
Этот запрос попытается выяснить, кто из друзей выиграл игр больше среди участников с одинаковым размером обуви. Для обработки MySQL необходимо собрать столбцы name и size из внешнего запроса. После этого она сравнивает каждую строчку из соответствующего результирующего с результатами внутреннего запроса, определяющего среднее количество для людей с одинаковым размером обуви. На экране появится такой вывод:
.
Это связано с тем, что всего два человека среди друзей в изучаемом примере имеют одинаковый размер обуви.
Подзапросы используются для запроса результатов из нескольких таблиц данных MySQL. Для наглядного примера рекомендуется рассмотреть ситуацию, при котором лучший игрок в группе получает сюрприз. Он выражается ужином с его любимыми блюдами.
Данный фрагмент MySQL-запроса позволяет узнать, кто среди друзей показал лучший результат. После этого система выведет его любимое блюдо. Для реализации используется один запрос.
Как освоить MySQL и SQL
MySQL и SQL – популярные инструменты для использования баз данных через специальные запросы. Разобраться с ними помогут специализированные дистанционные онлайн курсы. Пример – от образовательного центра OTUS.
Данные курсы гарантируют:
- Сжатые сроки обучения и грамотно составленные программы. В период от нескольких месяцев до года можно освоить с нуля любую IT-профессию.
- Постоянное кураторство и интересные домашние задания.
- Возможность совмещать работу и учебу, а также быт и семью. Все занятия организованы через интернет. Если ученик отсутствовал на лекции, он сможет просмотреть запись вебинара.
- Помощь в формировании портфолио, а также богатую практику.
- Разнообразие программ обучения. Можно выбрать специализацию или направление в зависимости от первоначальных навыков и знаний каждого конкретного человека.
Вместе с дистанционными компьютерными курсами записи типа «unsigned not null», «in set», «primary key», «not null auto», «select from» и другие используемые в СУБД не вызовут затруднений. Удастся не только освоить базы данных, но и научиться писать сложные приложения на различных языках «с нуля». В конце обучения все участники получают электронные сертификаты, помогающие подтвердить приобретенный спектр навыков и умений.
Прокачать навыки работы с базами данных можно на курсах Otus.