1 added
1 removed
Original
2026-01-01
Modified
2026-03-10
1
<ul><li><a>База данных - это…</a></li>
1
<ul><li><a>База данных - это…</a></li>
2
<li><a>Краткое определение MySQL</a></li>
2
<li><a>Краткое определение MySQL</a></li>
3
<li><a>Что такое SQL</a></li>
3
<li><a>Что такое SQL</a></li>
4
<li><a>Ключевые задачи SQL</a></li>
4
<li><a>Ключевые задачи SQL</a></li>
5
<li><a>Как работают MySQL-серверы</a></li>
5
<li><a>Как работают MySQL-серверы</a></li>
6
<li><a>Преимущества и недостатки MySQL</a><ul><li><a>Сильные стороны</a></li>
6
<li><a>Преимущества и недостатки MySQL</a><ul><li><a>Сильные стороны</a></li>
7
<li><a>Слабые стороны</a></li>
7
<li><a>Слабые стороны</a></li>
8
</ul></li>
8
</ul></li>
9
<li><a>Начало работы с СУБД</a><ul><li><a>Подготовка среды</a></li>
9
<li><a>Начало работы с СУБД</a><ul><li><a>Подготовка среды</a></li>
10
<li><a>Как установить </a></li>
10
<li><a>Как установить </a></li>
11
<li><a>Установка в Ubuntu</a></li>
11
<li><a>Установка в Ubuntu</a></li>
12
<li><a>Настройка</a></li>
12
<li><a>Настройка</a></li>
13
<li><a>Структура данных</a></li>
13
<li><a>Структура данных</a></li>
14
</ul></li>
14
</ul></li>
15
<li><a>Основные операции</a><ul><li><a>Создание таблицы</a></li>
15
<li><a>Основные операции</a><ul><li><a>Создание таблицы</a></li>
16
<li><a>Оператор Select</a><ul><li><a>Разделы Select</a></li>
16
<li><a>Оператор Select</a><ul><li><a>Разделы Select</a></li>
17
<li><a>Как составить select-выражение</a></li>
17
<li><a>Как составить select-выражение</a></li>
18
<li><a>Where</a></li>
18
<li><a>Where</a></li>
19
<li><a>Order by</a></li>
19
<li><a>Order by</a></li>
20
<li><a>Limit</a></li>
20
<li><a>Limit</a></li>
21
<li><a>Псевдонимы</a></li>
21
<li><a>Псевдонимы</a></li>
22
<li><a>Соединение таблиц</a></li>
22
<li><a>Соединение таблиц</a></li>
23
<li><a>Удаление дубликатов</a></li>
23
<li><a>Удаление дубликатов</a></li>
24
</ul></li>
24
</ul></li>
25
<li><a>Оператор Load</a></li>
25
<li><a>Оператор Load</a></li>
26
<li><a>Оператор show</a></li>
26
<li><a>Оператор show</a></li>
27
<li><a>Агрегатные функции</a></li>
27
<li><a>Агрегатные функции</a></li>
28
<li><a>Вывод запроса</a></li>
28
<li><a>Вывод запроса</a></li>
29
<li><a>Подзапросы</a></li>
29
<li><a>Подзапросы</a></li>
30
</ul></li>
30
</ul></li>
31
<li><a>Как освоить MySQL и SQL</a></li>
31
<li><a>Как освоить MySQL и SQL</a></li>
32
</ul><p>MySQL - наиболее распространенная система управления базами данных. Она поддерживает множество интересных и простых функций, а также бесплатно распространяется. Данная СУБД является одним из самых ранних массовых решений для управления БД. Первый релиз MySQL состоялся в середине 90-х годов. </p>
32
</ul><p>MySQL - наиболее распространенная система управления базами данных. Она поддерживает множество интересных и простых функций, а также бесплатно распространяется. Данная СУБД является одним из самых ранних массовых решений для управления БД. Первый релиз MySQL состоялся в середине 90-х годов. </p>
33
<p>MySQL появилась за счет необходимости адаптации mSQL для работы с таблицами, сформированными под более ранние и устаревшие способы хранения и управления данных. Системы требовали быстрой обработки, а также начали контактировать с огромными объемами информации.</p>
33
<p>MySQL появилась за счет необходимости адаптации mSQL для работы с таблицами, сформированными под более ранние и устаревшие способы хранения и управления данных. Системы требовали быстрой обработки, а также начали контактировать с огромными объемами информации.</p>
34
<p>Далее предстоит разобраться с основами использования MySQL. В качестве изучаемого языка запросов будет использоваться тоже достаточно популярный вариант - SQL. Особое внимание уделено оператору Select, а также подготовке СУБД к полноценному использованию. Эта информация пригодится как новичкам, так и опытным разработчикам, а также аналитикам.</p>
34
<p>Далее предстоит разобраться с основами использования MySQL. В качестве изучаемого языка запросов будет использоваться тоже достаточно популярный вариант - SQL. Особое внимание уделено оператору Select, а также подготовке СУБД к полноценному использованию. Эта информация пригодится как новичкам, так и опытным разработчикам, а также аналитикам.</p>
35
<h2>База данных - это…</h2>
35
<h2>База данных - это…</h2>
36
<p>Данные - это файлы, база - место, где они будут храниться. Данные в БД могут принимать совершенно любой облик.</p>
36
<p>Данные - это файлы, база - место, где они будут храниться. Данные в БД могут принимать совершенно любой облик.</p>
37
<p>Пример - сформированный плейлист в Spotify. Пользователь сформировал его, а затем добавил туда новый трек. Плейлист в предложенном случае - это база, очередная "песня" - данные. Каждая композиция, хранящаяся в готовом списке треков, станет элементом уже существующей базы данных. Так она наполняется.</p>
37
<p>Пример - сформированный плейлист в Spotify. Пользователь сформировал его, а затем добавил туда новый трек. Плейлист в предложенном случае - это база, очередная "песня" - данные. Каждая композиция, хранящаяся в готовом списке треков, станет элементом уже существующей базы данных. Так она наполняется.</p>
38
<p>Подобных БД может быть очень много. Они могут быть многоуровневыми, а также поддерживать деление на различные категории. Все это способствует формированию взаимосвязей между разными компонентами базы данных, образовывая структуру. Отсюда происходит термин "реляционная" - поддерживающая зависимость элементов друг от друга.</p>
38
<p>Подобных БД может быть очень много. Они могут быть многоуровневыми, а также поддерживать деление на различные категории. Все это способствует формированию взаимосвязей между разными компонентами базы данных, образовывая структуру. Отсюда происходит термин "реляционная" - поддерживающая зависимость элементов друг от друга.</p>
39
<p>База данных - набор структурированных данных с выстроенными между ними связями. Пример - деление на категории.</p>
39
<p>База данных - набор структурированных данных с выстроенными между ними связями. Пример - деление на категории.</p>
40
<p>Визуально база данных - это таблица с тысячами составляющих:</p>
40
<p>Визуально база данных - это таблица с тысячами составляющих:</p>
41
<ul><li>ссылками;</li>
41
<ul><li>ссылками;</li>
42
<li>частями текста;</li>
42
<li>частями текста;</li>
43
<li>цифрами;</li>
43
<li>цифрами;</li>
44
<li>файлами и другими компонентами.</li>
44
<li>файлами и другими компонентами.</li>
45
</ul><p>Для управления соответствующими данными необходимо обозначить таблицы, а затем использовать специальные операции. Они помогают выполнять различные команды. Здесь на помощь приходят языки запросов. Один из наиболее популярных вариантов - SQL. Он работает через MySQL и другие СУБД.</p>
45
</ul><p>Для управления соответствующими данными необходимо обозначить таблицы, а затем использовать специальные операции. Они помогают выполнять различные команды. Здесь на помощь приходят языки запросов. Один из наиболее популярных вариантов - SQL. Он работает через MySQL и другие СУБД.</p>
46
<p>MySQL - реляционная система управления базами данных, созданная шведскими разработчиками из одноименной компании в 1994 году. Данная СУБД получила свободную лицензию. Позже компанию-создателя поглотила Oracle.</p>
46
<p>MySQL - реляционная система управления базами данных, созданная шведскими разработчиками из одноименной компании в 1994 году. Данная СУБД получила свободную лицензию. Позже компанию-создателя поглотила Oracle.</p>
47
<p>MySQL распространяется бесплатно. Она включена в стандартный набор приложений LAMP для разработки веб-страниц на базе Linux. Некоторые программисты называют серверы баз данных с любым программным обеспечением MySQL. Это связано с тем, что соответствующая СУБД получила достаточно широкое распространение. Она умеет работать с большими массивами информации, предоставляя неплохую скорость обработки. Используется такими компаниями как YouTube, Google, а также FaceBook.</p>
47
<p>MySQL распространяется бесплатно. Она включена в стандартный набор приложений LAMP для разработки веб-страниц на базе Linux. Некоторые программисты называют серверы баз данных с любым программным обеспечением MySQL. Это связано с тем, что соответствующая СУБД получила достаточно широкое распространение. Она умеет работать с большими массивами информации, предоставляя неплохую скорость обработки. Используется такими компаниями как YouTube, Google, а также FaceBook.</p>
48
<p>MySQL - популярная система управления базами данных с моделью "клиент-сервер". Именно поэтому некоторые разработчики говорят MySQL-сервер. Такие проекты создаются для обеспечения доступа к данным для различных приложений, а также сервисов.</p>
48
<p>MySQL - популярная система управления базами данных с моделью "клиент-сервер". Именно поэтому некоторые разработчики говорят MySQL-сервер. Такие проекты создаются для обеспечения доступа к данным для различных приложений, а также сервисов.</p>
49
<h2>Что такое SQL</h2>
49
<h2>Что такое SQL</h2>
50
<p>Перед погружением в основы использования MySQL необходимо выяснить, что собой представляет SQL. Это Structured Query Language. В переводе с английского - "язык структурированных запросов".</p>
50
<p>Перед погружением в основы использования MySQL необходимо выяснить, что собой представляет SQL. Это Structured Query Language. В переводе с английского - "язык структурированных запросов".</p>
51
<p>SQL - стандартизированный язык, используемый для взаимодействия с базами данных. С его помощью удается получать доступ к информации, хранящейся непосредственно в таблицах MySQL. Делится этот язык на несколько частей:</p>
51
<p>SQL - стандартизированный язык, используемый для взаимодействия с базами данных. С его помощью удается получать доступ к информации, хранящейся непосредственно в таблицах MySQL. Делится этот язык на несколько частей:</p>
52
<ol><li>Семантический синтаксис. Он позволяет идентифицировать отдельные элементы базы данных.</li>
52
<ol><li>Семантический синтаксис. Он позволяет идентифицировать отдельные элементы базы данных.</li>
53
<li>Синтаксис управления данными в базе. С его помощью осуществляется обновление и поиск информации.</li>
53
<li>Синтаксис управления данными в базе. С его помощью осуществляется обновление и поиск информации.</li>
54
<li>Синтаксис, предоставляющий выбор прав пользователям на отдельные единицы данных в имеющейся базе.</li>
54
<li>Синтаксис, предоставляющий выбор прав пользователям на отдельные единицы данных в имеющейся базе.</li>
55
</ol><p>SQL используется не только MySQL, но и другими СУБД. Примеры - PostgreSQL и Microsoft SQL.</p>
55
</ol><p>SQL используется не только MySQL, но и другими СУБД. Примеры - PostgreSQL и Microsoft SQL.</p>
56
<h2>Ключевые задачи SQL</h2>
56
<h2>Ключевые задачи SQL</h2>
57
<p>Перед тем как пользоваться MySQL, необходимо выяснить, какие ключевые задачи выполняет SQL. К ним относят:</p>
57
<p>Перед тем как пользоваться MySQL, необходимо выяснить, какие ключевые задачи выполняет SQL. К ним относят:</p>
58
<ol><li>Извлечение запрашиваемых сведений из ячеек БД по клиентским запросам.</li>
58
<ol><li>Извлечение запрашиваемых сведений из ячеек БД по клиентским запросам.</li>
59
<li>Операции с данными, включая добавление новых компонентов в таблицу. Сюда же относят удаление, сортировку и изменение сведений.</li>
59
<li>Операции с данными, включая добавление новых компонентов в таблицу. Сюда же относят удаление, сортировку и изменение сведений.</li>
60
<li>Идентификацию информации из базы. Подразумевается определение отдельных компонентов. Пример - определение чисел в тексте как целых для организации соответствующей дальнейшей обработки. Все это помогает формировать взаимоотношения между табличными слоями в БД.</li>
60
<li>Идентификацию информации из базы. Подразумевается определение отдельных компонентов. Пример - определение чисел в тексте как целых для организации соответствующей дальнейшей обработки. Все это помогает формировать взаимоотношения между табличными слоями в БД.</li>
61
<li>Непосредственное управление данными.</li>
61
<li>Непосредственное управление данными.</li>
62
<li>Защиту и шифрование информации в сформированных таблицах.</li>
62
<li>Защиту и шифрование информации в сформированных таблицах.</li>
63
</ol><p>При помощи SQL можно с легкостью закрыть все перечисленные аспекты. Пользоваться данным языком достаточно легко. Об этом предстоит поговорить позже, рассматривая наиболее распространенные и важные команды языка.</p>
63
</ol><p>При помощи SQL можно с легкостью закрыть все перечисленные аспекты. Пользоваться данным языком достаточно легко. Об этом предстоит поговорить позже, рассматривая наиболее распространенные и важные команды языка.</p>
64
<h2>Как работают MySQL-серверы</h2>
64
<h2>Как работают MySQL-серверы</h2>
65
<p>MySQL часто используется для клиент-серверных моделей. Принцип работы таких проектов прост - устройство будет делать запросы, а другие аппараты - формировать и отправлять ответы. Запрашивающего оборудования может быть более одного. Все зависит от сервера, сети и конкретных задач, которые необходимо выполнить.</p>
65
<p>MySQL часто используется для клиент-серверных моделей. Принцип работы таких проектов прост - устройство будет делать запросы, а другие аппараты - формировать и отправлять ответы. Запрашивающего оборудования может быть более одного. Все зависит от сервера, сети и конкретных задач, которые необходимо выполнить.</p>
66
<p>В среде MySQL на соответствующих серверах осуществляются различные процессы:</p>
66
<p>В среде MySQL на соответствующих серверах осуществляются различные процессы:</p>
67
<ul><li>система создает БД для хранения и обработки информации;</li>
67
<ul><li>система создает БД для хранения и обработки информации;</li>
68
<li>клиенты (компьютеры в сети) подают запросы к БД при помощи специальных SQL-команд;</li>
68
<li>клиенты (компьютеры в сети) подают запросы к БД при помощи специальных SQL-команд;</li>
69
<li>серверное приложение обрабатывает полученные запросы и выдает клиентам ответы (те или иные данные из таблиц).</li>
69
<li>серверное приложение обрабатывает полученные запросы и выдает клиентам ответы (те или иные данные из таблиц).</li>
70
</ul><p>Для работы с MySQL-сервером используется специальное программное обеспечение. Некоторое поддерживает только командную строку. Наиболее популярными решениями для клиент-серверных моделей MySQL выступают - SequelPro, TablePlus, WorkBench, SQL Studio. Веб-мастеры часто пользуются phpMyAdmin. Связано это с тем, что соответствующее приложение включено в состав LAMP, а работает в обычном браузере.</p>
70
</ul><p>Для работы с MySQL-сервером используется специальное программное обеспечение. Некоторое поддерживает только командную строку. Наиболее популярными решениями для клиент-серверных моделей MySQL выступают - SequelPro, TablePlus, WorkBench, SQL Studio. Веб-мастеры часто пользуются phpMyAdmin. Связано это с тем, что соответствующее приложение включено в состав LAMP, а работает в обычном браузере.</p>
71
<h2>Преимущества и недостатки MySQL</h2>
71
<h2>Преимущества и недостатки MySQL</h2>
72
<p>MySQL пользуется спросом не только в клиент-серверных моделях, но и в других приложениях. Соответствующая СУБД имеет ряд преимуществ и недостатков, благодаря которым она стала одной из наиболее распространенных. Зная плюсы и минусы системы, каждый сможет самостоятельно решить, стоит ли ему пользоваться MySQL или нет.</p>
72
<p>MySQL пользуется спросом не только в клиент-серверных моделях, но и в других приложениях. Соответствующая СУБД имеет ряд преимуществ и недостатков, благодаря которым она стала одной из наиболее распространенных. Зная плюсы и минусы системы, каждый сможет самостоятельно решить, стоит ли ему пользоваться MySQL или нет.</p>
73
<h3>Сильные стороны</h3>
73
<h3>Сильные стороны</h3>
74
<p>К преимуществам рассматриваемой СУБД относят следующие моменты:</p>
74
<p>К преимуществам рассматриваемой СУБД относят следующие моменты:</p>
75
<ol><li>Гибкость и простота использования. На создание и поддержку БД затрачивается относительно мало времени. Уровень компетенции для полноценной работы с СУБД требуется меньший, чем в случае с конкурентами.</li>
75
<ol><li>Гибкость и простота использования. На создание и поддержку БД затрачивается относительно мало времени. Уровень компетенции для полноценной работы с СУБД требуется меньший, чем в случае с конкурентами.</li>
76
<li>Открытый исходный код. За счет него систему легко модифицировать. Платить за соответствующие изменения не придется - разработчик справится самостоятельно.</li>
76
<li>Открытый исходный код. За счет него систему легко модифицировать. Платить за соответствующие изменения не придется - разработчик справится самостоятельно.</li>
77
<li>Поддержка от Oracle и дружелюбное сообщество.</li>
77
<li>Поддержка от Oracle и дружелюбное сообщество.</li>
78
<li>Быстрая работа. Внутренняя структура MySQL дает возможность использования больших объемов информации, разбирая их за несколько секунд. Специфичность связей между элементами никак не отражается на работоспособности системы.</li>
78
<li>Быстрая работа. Внутренняя структура MySQL дает возможность использования больших объемов информации, разбирая их за несколько секунд. Специфичность связей между элементами никак не отражается на работоспособности системы.</li>
79
<li>Высокий уровень защиты. Связано это с системой выдачи прав, а также с продвинутой системой управления пользователями. Рассматриваемая СУБД поддерживает верификацию для серверов на базе хостингов и шифрования.</li>
79
<li>Высокий уровень защиты. Связано это с системой выдачи прав, а также с продвинутой системой управления пользователями. Рассматриваемая СУБД поддерживает верификацию для серверов на базе хостингов и шифрования.</li>
80
</ol><p>MySQL - это уже не просто СУБД, а нарицательное имя, некий стандарт в IT. Но у нее есть ряд недостатков, которые необходимо учесть перед началом работы.</p>
80
</ol><p>MySQL - это уже не просто СУБД, а нарицательное имя, некий стандарт в IT. Но у нее есть ряд недостатков, которые необходимо учесть перед началом работы.</p>
81
<h3>Слабые стороны</h3>
81
<h3>Слабые стороны</h3>
82
<p>Рассматриваемая система управления базами данных имеет следующие слабые стороны:</p>
82
<p>Рассматриваемая система управления базами данных имеет следующие слабые стороны:</p>
83
<ol><li>Отсутствие полноценной стабильности. Иногда трудно предугадать, какое поведение будет в базе данных MySQL. Часть распространенных задач, особенно связанных с серверами, заканчивается ошибкой.</li>
83
<ol><li>Отсутствие полноценной стабильности. Иногда трудно предугадать, какое поведение будет в базе данных MySQL. Часть распространенных задач, особенно связанных с серверами, заканчивается ошибкой.</li>
84
<li>Производительность. Изучаемая СУБД умеет обрабатывать большие объемы информации, но по мере ее увеличения скорость обработки данных снижается. В небольших масштабах MySQL ведет себя более корректно и предсказуемо.</li>
84
<li>Производительность. Изучаемая СУБД умеет обрабатывать большие объемы информации, но по мере ее увеличения скорость обработки данных снижается. В небольших масштабах MySQL ведет себя более корректно и предсказуемо.</li>
85
<li>Замедленное развитие после выкупа проекта компанией Oracle.</li>
85
<li>Замедленное развитие после выкупа проекта компанией Oracle.</li>
86
<li>Минимизация функций. СУБД MySQL тяжело назвать продвинутой. Эта система производительная и легкая, но инструментов в ней минимум. Для устранения этого недостатка приходится устанавливать всевозможные расширения.</li>
86
<li>Минимизация функций. СУБД MySQL тяжело назвать продвинутой. Эта система производительная и легкая, но инструментов в ней минимум. Для устранения этого недостатка приходится устанавливать всевозможные расширения.</li>
87
</ol><p>При помощи таблиц MySQL удается решать большинство задач, связанных с запросами и клиент-серверной разработкой. Это - идеальный вариант как для начинающих специалистов, так и для опытных. Если стандартного функционала не хватает, можно в любой момент поставить расширения - они сделают СУБД более мощной.</p>
87
</ol><p>При помощи таблиц MySQL удается решать большинство задач, связанных с запросами и клиент-серверной разработкой. Это - идеальный вариант как для начинающих специалистов, так и для опытных. Если стандартного функционала не хватает, можно в любой момент поставить расширения - они сделают СУБД более мощной.</p>
88
<h2>Начало работы с СУБД</h2>
88
<h2>Начало работы с СУБД</h2>
89
<p>Начало работы с рассматриваемой системой управления - это подготовка среды для дальнейших операций. Сюда также включена установка MySQL. Без предварительной подготовки разрабатывать БД не получится.</p>
89
<p>Начало работы с рассматриваемой системой управления - это подготовка среды для дальнейших операций. Сюда также включена установка MySQL. Без предварительной подготовки разрабатывать БД не получится.</p>
90
<h3>Подготовка среды</h3>
90
<h3>Подготовка среды</h3>
91
<p>Предложенная далее информация является универсальной. Она подойдет как для обладателей Linux, так и для других операционных систем с MySQL. Далее будет рассматриваться сервер на базе Ubuntu.</p>
91
<p>Предложенная далее информация является универсальной. Она подойдет как для обладателей Linux, так и для других операционных систем с MySQL. Далее будет рассматриваться сервер на базе Ubuntu.</p>
92
<p>Чтобы начать работу, потребуется:</p>
92
<p>Чтобы начать работу, потребуется:</p>
93
<ul><li>сервер Ubuntu 18.04 с использованием sudo;</li>
93
<ul><li>сервер Ubuntu 18.04 с использованием sudo;</li>
94
<li>установленная система управления базами данных.</li>
94
<li>установленная система управления базами данных.</li>
95
</ul><p>При наличии соответствующего программного обеспечения можно будет формировать таблицы, заполнять их информацией, а также управлять данными.</p>
95
</ul><p>При наличии соответствующего программного обеспечения можно будет формировать таблицы, заполнять их информацией, а также управлять данными.</p>
96
<h3>Как установить </h3>
96
<h3>Как установить </h3>
97
<p>Последняя версия MySQL доступна на официальном сайте разработчика. При выборе дистрибутива пользователю будет предложена авторизация через учетную запись Oracle. Делать это необязательно. Файлы будут доступны даже тем, кто не идентифицирован в системе.</p>
97
<p>Последняя версия MySQL доступна на официальном сайте разработчика. При выборе дистрибутива пользователю будет предложена авторизация через учетную запись Oracle. Делать это необязательно. Файлы будут доступны даже тем, кто не идентифицирован в системе.</p>
98
<p>Чтобы установить рассматриваемую систему управления, достаточно следовать подсказкам на дисплее устройства. Существуют различные варианты инициализации программного обеспечения:</p>
98
<p>Чтобы установить рассматриваемую систему управления, достаточно следовать подсказкам на дисплее устройства. Существуют различные варианты инициализации программного обеспечения:</p>
99
<ul><li>developer - платформа разработчика с поддержкой некоторых дополнительных инструментов;</li>
99
<ul><li>developer - платформа разработчика с поддержкой некоторых дополнительных инструментов;</li>
100
<li>server only - активация установки только серверной части MySQL;</li>
100
<li>server only - активация установки только серверной части MySQL;</li>
101
<li>client only - клиентская часть СУБД;</li>
101
<li>client only - клиентская часть СУБД;</li>
102
<li>full - полная установка всех модулей и блоков, включенных в инсталлятор;</li>
102
<li>full - полная установка всех модулей и блоков, включенных в инсталлятор;</li>
103
<li>custom - выборочная установка (рекомендуется только опытным специалистам).</li>
103
<li>custom - выборочная установка (рекомендуется только опытным специалистам).</li>
104
</ul><p>Основы работы с MySQL поддерживают установку, настройку платформы, создание локальных или удаленных баз данных или подключение к уже существующим. Все эти операции достаточно понятны - в процессе инициализации программного обеспечения появляются необходимые подсказки. Остается лишь внимательно читать их.</p>
104
</ul><p>Основы работы с MySQL поддерживают установку, настройку платформы, создание локальных или удаленных баз данных или подключение к уже существующим. Все эти операции достаточно понятны - в процессе инициализации программного обеспечения появляются необходимые подсказки. Остается лишь внимательно читать их.</p>
105
<p>При установке MySQL необходимо создать пользователя. Сначала формируется доступ для администратора. Далее поддерживается возможность добавления и удаления аккаунтов по мере смены исполнителей, а также подключения новых сторонних специалистов.</p>
105
<p>При установке MySQL необходимо создать пользователя. Сначала формируется доступ для администратора. Далее поддерживается возможность добавления и удаления аккаунтов по мере смены исполнителей, а также подключения новых сторонних специалистов.</p>
106
<h3>Установка в Ubuntu</h3>
106
<h3>Установка в Ubuntu</h3>
107
<p>По умолчанию Ubuntu 18.04 поддерживает только последнюю версию MySQL. Для установки сборки 5.7 необходимо обновить индекс пакетов сервера. Далее - провести инициализацию стандартного пакета:</p>
107
<p>По умолчанию Ubuntu 18.04 поддерживает только последнюю версию MySQL. Для установки сборки 5.7 необходимо обновить индекс пакетов сервера. Далее - провести инициализацию стандартного пакета:</p>
108
<p>При обработке запроса будет предложено указать root-пароль. Он должен быть сложным. За счет соответствующей комбинации будет обеспечена безопасность системы.</p>
108
<p>При обработке запроса будет предложено указать root-пароль. Он должен быть сложным. За счет соответствующей комбинации будет обеспечена безопасность системы.</p>
109
<h3>Настройка</h3>
109
<h3>Настройка</h3>
110
<p>После того как установка будет завершена, необходимо запустить встроенный сценарий безопасности MySQL. Он изменит некоторые опции по умолчанию, а также заблокирует удаленный root-логин. В старых версиях СУБД это делается автоматически, в новых - через команду:</p>
110
<p>После того как установка будет завершена, необходимо запустить встроенный сценарий безопасности MySQL. Он изменит некоторые опции по умолчанию, а также заблокирует удаленный root-логин. В старых версиях СУБД это делается автоматически, в новых - через команду:</p>
111
<p>Сначала система предложит произвести настройку Validate Password Plugin, который отвечает за проверку надежности придуманного пароля. Далее будет запрошен root-пароль. Чтобы принять настройки по умолчанию, необходимо нажать на Y и Enter. Сценарий удалит анонимных пользователей и тестовую базу данных, отключит удаленный root-логин, а также обновит правила. Все это позволит MySQL функционировать с новыми параметрами.</p>
111
<p>Сначала система предложит произвести настройку Validate Password Plugin, который отвечает за проверку надежности придуманного пароля. Далее будет запрошен root-пароль. Чтобы принять настройки по умолчанию, необходимо нажать на Y и Enter. Сценарий удалит анонимных пользователей и тестовую базу данных, отключит удаленный root-логин, а также обновит правила. Все это позволит MySQL функционировать с новыми параметрами.</p>
112
<h3>Структура данных</h3>
112
<h3>Структура данных</h3>
113
<p>Проект поддерживает работу с несколькими логическими блоками - клиентскими и серверными. Ко второму типу относится непосредственно сама БД MySQL. Технически это набор файлов с расширениями:</p>
113
<p>Проект поддерживает работу с несколькими логическими блоками - клиентскими и серверными. Ко второму типу относится непосредственно сама БД MySQL. Технически это набор файлов с расширениями:</p>
114
<ul><li>FRM;</li>
114
<ul><li>FRM;</li>
115
<li>MYI;</li>
115
<li>MYI;</li>
116
<li>MYD.</li>
116
<li>MYD.</li>
117
</ul><p>В каждой базе существуют одна или несколько таблиц, необходимые для структурированного хранения данных. Они выражены записями в полях. В зависимости от объема информации в БД формируются одна или несколько записей.</p>
117
</ul><p>В каждой базе существуют одна или несколько таблиц, необходимые для структурированного хранения данных. Они выражены записями в полях. В зависимости от объема информации в БД формируются одна или несколько записей.</p>
118
<p>Структура БД будет одинаковой во всех проектах, где она используется. Меняется только состав и назначение конкретных ее блоков.</p>
118
<p>Структура БД будет одинаковой во всех проектах, где она используется. Меняется только состав и назначение конкретных ее блоков.</p>
119
<p>Клиентская часть включает в себя некий набор PHP-скриптов, необходимых для приема данных из внешних источников, а также их дальнейшей обработки и отправки на сервер, извлечения ранее сохраненных материалов для отображения и организации вычислительных работ.</p>
119
<p>Клиентская часть включает в себя некий набор PHP-скриптов, необходимых для приема данных из внешних источников, а также их дальнейшей обработки и отправки на сервер, извлечения ранее сохраненных материалов для отображения и организации вычислительных работ.</p>
120
<p>Наглядный пример - это сайт. На нем хранятся базы данных, которые были заранее подключены. Они выражаются текстами, ссылками на анимацию и изображения, а также другие компоненты. При открытии той или иной страницы соответствующие сведения извлекаются оттуда по заданной программе.</p>
120
<p>Наглядный пример - это сайт. На нем хранятся базы данных, которые были заранее подключены. Они выражаются текстами, ссылками на анимацию и изображения, а также другие компоненты. При открытии той или иной страницы соответствующие сведения извлекаются оттуда по заданной программе.</p>
121
<p>В основе структуры БД заложена таблица. Она может поддерживать различный тип данных - текст, ссылки, а также числовые значения. Таблицы включают в себя<a>поле</a>с определенными порядковыми номерами (ID). Табличные названия обычно соответствуют содержимому. Пример - блок USER указывает на данных о зарегистрированных пользователях. В полях будет храниться:</p>
121
<p>В основе структуры БД заложена таблица. Она может поддерживать различный тип данных - текст, ссылки, а также числовые значения. Таблицы включают в себя<a>поле</a>с определенными порядковыми номерами (ID). Табличные названия обычно соответствуют содержимому. Пример - блок USER указывает на данных о зарегистрированных пользователях. В полях будет храниться:</p>
122
<ul><li>логин;</li>
122
<ul><li>логин;</li>
123
<li>пароль;</li>
123
<li>пароль;</li>
124
<li>электронный адрес пользователя;</li>
124
<li>электронный адрес пользователя;</li>
125
<li>иные реквизиты человека.</li>
125
<li>иные реквизиты человека.</li>
126
</ul><p>Соответствующая информация распределяется по отдельным записям - ячейкам, заполненным значениями в соответствие с обозначенным типам данных.</p>
126
</ul><p>Соответствующая информация распределяется по отдельным записям - ячейкам, заполненным значениями в соответствие с обозначенным типам данных.</p>
127
<h2>Основные операции</h2>
127
<h2>Основные операции</h2>
128
<p>Чтобы лучше разобраться с СУБД и SQL, необходимо рассматривать операторы и команды на наглядном примере. Для этого создается отдельная БД. Далее будет изучаться такой сценарий:</p>
128
<p>Чтобы лучше разобраться с СУБД и SQL, необходимо рассматривать операторы и команды на наглядном примере. Для этого создается отдельная БД. Далее будет изучаться такой сценарий:</p>
129
<p>Человек с друзьями всегда празднуют дни рождения совместно. Каждый раз все члены группы идут в боулинг на дружеский турнир. После этого - к человеку, где он готовит любимое блюдо именинника.</p>
129
<p>Человек с друзьями всегда празднуют дни рождения совместно. Каждый раз все члены группы идут в боулинг на дружеский турнир. После этого - к человеку, где он готовит любимое блюдо именинника.</p>
130
<p>Данное поведение стало традицией - возникла необходимость в отслеживании результатов организованных турниров. Чтобы сделать планирование обедов более простым, требуется создать записи о днях рождениях друзей и их любимых блюдах, десертах, а также гарнирах. Чтобы не приходилось все записывать в обычной записной книжке, будет использоваться СУБД MySQL.</p>
130
<p>Данное поведение стало традицией - возникла необходимость в отслеживании результатов организованных турниров. Чтобы сделать планирование обедов более простым, требуется создать записи о днях рождениях друзей и их любимых блюдах, десертах, а также гарнирах. Чтобы не приходилось все записывать в обычной записной книжке, будет использоваться СУБД MySQL.</p>
131
<h3>Создание таблицы</h3>
131
<h3>Создание таблицы</h3>
132
<p>Начать необходимо с открытия командной строки MySQL в качестве root-пользователя:</p>
132
<p>Начать необходимо с открытия командной строки MySQL в качестве root-пользователя:</p>
133
<p>sudo Mysql.</p>
133
<p>sudo Mysql.</p>
134
<p>Для создания БД необходимо использовать команду CREATE Database:</p>
134
<p>Для создания БД необходимо использовать команду CREATE Database:</p>
135
<p>Теперь ее необходимо выбрать:</p>
135
<p>Теперь ее необходимо выбрать:</p>
136
<p>В ней должны быть созданы две таблицы: первая используется для отслеживания результатов в боулинге, вторая отвечает за сопоставление друзей и их любимых блюд.</p>
136
<p>В ней должны быть созданы две таблицы: первая используется для отслеживания результатов в боулинге, вторая отвечает за сопоставление друзей и их любимых блюд.</p>
137
<p>В предложенной выше таблице "для боулинга" будут отображаться столбцы с именами друзей (имя пользователя, name), а также количество выигранных ими турниров (wins), лучшие результаты за все время (best). Здесь же выводится размер обуви для боулинга каждого участника (size).</p>
137
<p>В предложенной выше таблице "для боулинга" будут отображаться столбцы с именами друзей (имя пользователя, name), а также количество выигранных ими турниров (wins), лучшие результаты за все время (best). Здесь же выводится размер обуви для боулинга каждого участника (size).</p>
138
<p>Если запустить предложенный код, на экране появится следующая запись:</p>
138
<p>Если запустить предложенный код, на экране появится следующая запись:</p>
139
<p>Теперь в нее необходимо добавить информацию. Делается это при помощи команды Insert into:</p>
139
<p>Теперь в нее необходимо добавить информацию. Делается это при помощи команды Insert into:</p>
140
<p>Команда вернет такой результат:</p>
140
<p>Команда вернет такой результат:</p>
141
<p>Теперь можно создать вторую таблицу в пределах той же базы посредством команды create table. Она будет использоваться для хранения информации о блюдах и друзьях. В ней будут находиться столбцы с именами друзей, датами рождения, блюдами (entree), гарнирами (side), а также десертами (dessert):</p>
141
<p>Теперь можно создать вторую таблицу в пределах той же базы посредством команды create table. Она будет использоваться для хранения информации о блюдах и друзьях. В ней будут находиться столбцы с именами друзей, датами рождения, блюдами (entree), гарнирами (side), а также десертами (dessert):</p>
142
<p>После обработки соответствующего запроса произойдет вывод такого результата:</p>
142
<p>После обработки соответствующего запроса произойдет вывод такого результата:</p>
143
<p>Можно заполнить предложенную таблицу необходимой пользователю информацией:</p>
143
<p>Можно заполнить предложенную таблицу необходимой пользователю информацией:</p>
144
<p>На основе соответствующей БД будет происходить изучение основных команд изучаемой системы управления.</p>
144
<p>На основе соответствующей БД будет происходить изучение основных команд изучаемой системы управления.</p>
145
<h3>Оператор Select</h3>
145
<h3>Оператор Select</h3>
146
<p>Почти все SQL-запросы начинаются с Select. Соответствующий оператор является основой работы с таблицами. Это - универсальная синтаксическая конструкция. Пользователи смогут добавлять в нее параметры и предложения для выполнения операций по выборке.</p>
146
<p>Почти все SQL-запросы начинаются с Select. Соответствующий оператор является основой работы с таблицами. Это - универсальная синтаксическая конструкция. Пользователи смогут добавлять в нее параметры и предложения для выполнения операций по выборке.</p>
147
<p>Оператор MySQL Select почти всегда включает в себя FROM. Это предложение используется для ссылки на таблицу, с которой будет производиться дальнейшая работа.</p>
147
<p>Оператор MySQL Select почти всегда включает в себя FROM. Это предложение используется для ссылки на таблицу, с которой будет производиться дальнейшая работа.</p>
148
<p>Перед применением Select необходимо уяснить следующее:</p>
148
<p>Перед применением Select необходимо уяснить следующее:</p>
149
<ol><li>Этот оператор возвращает строки - ноль и более.</li>
149
<ol><li>Этот оператор возвращает строки - ноль и более.</li>
150
<li>Список возвращаемых столбцов указывается в части запроса с Select-предложением.</li>
150
<li>Список возвращаемых столбцов указывается в части запроса с Select-предложением.</li>
151
<li>С его помощью определяется спектр требований к возвращаемому набору сведений. Это не точная инструкция по вычислению.</li>
151
<li>С его помощью определяется спектр требований к возвращаемому набору сведений. Это не точная инструкция по вычислению.</li>
152
</ol><p>Соответствующий оператор включает в себя несколько разделов, каждый из которых отвечает за выборку с уточненными параметрами.</p>
152
</ol><p>Соответствующий оператор включает в себя несколько разделов, каждый из которых отвечает за выборку с уточненными параметрами.</p>
153
<h4><em>Разделы Select</em></h4>
153
<h4><em>Разделы Select</em></h4>
154
<p>Рассматриваемый оператор используется для получения информации из электронной таблицы. Он включает в себя несколько разделов (предложений):</p>
154
<p>Рассматриваемый оператор используется для получения информации из электронной таблицы. Он включает в себя несколько разделов (предложений):</p>
155
<ol><li>Select - часть, отвечающая за непосредственную выборку. Определяет спектр выводимых столбцов. Используется как для создаваемых элементов, так и для подготовленных заранее. Определяет имена столбцов, ограничения на уникальность строк и их количество в возвращаемом наборе информации.</li>
155
<ol><li>Select - часть, отвечающая за непосредственную выборку. Определяет спектр выводимых столбцов. Используется как для создаваемых элементов, так и для подготовленных заранее. Определяет имена столбцов, ограничения на уникальность строк и их количество в возвращаемом наборе информации.</li>
156
<li>From. Ключевое слово, которое определяет базовый набор информации для дальнейшей обработки. Ссылается на пространство, откуда будут извлекаться данные для расчетов.</li>
156
<li>From. Ключевое слово, которое определяет базовый набор информации для дальнейшей обработки. Ссылается на пространство, откуда будут извлекаться данные для расчетов.</li>
157
<li>Group by. Раздел объединения рядов с одинаковыми свойствами. Использует агрегатные функции.</li>
157
<li>Group by. Раздел объединения рядов с одинаковыми свойствами. Использует агрегатные функции.</li>
158
<li>Where. Предложение, используемое для формирования ограничений на строки выражений из таблиц, определенных через FROM.</li>
158
<li>Where. Предложение, используемое для формирования ограничений на строки выражений из таблиц, определенных через FROM.</li>
159
<li>Order by. Устанавливает требования сортировки строк. Отправляет данные в точку вызова после успешной обработки.</li>
159
<li>Order by. Устанавливает требования сортировки строк. Отправляет данные в точку вызова после успешной обработки.</li>
160
<li>Having. Предложение, используемое для выборки среди групп, определенных через параметр group by.</li>
160
<li>Having. Предложение, используемое для выборки среди групп, определенных через параметр group by.</li>
161
</ol><p>Все эти разделы необходимо изучить до непосредственной работы с готовыми БД.</p>
161
</ol><p>Все эти разделы необходимо изучить до непосредственной работы с готовыми БД.</p>
162
<h4><em>Как составить select-выражение</em></h4>
162
<h4><em>Как составить select-выражение</em></h4>
163
<p>Эта конструкция поможет сформировать select-выражение:</p>
163
<p>Эта конструкция поможет сформировать select-выражение:</p>
164
<p>Здесь:</p>
164
<p>Здесь:</p>
165
<ul><li>поле1 и поле2 - имена столбцов;</li>
165
<ul><li>поле1 и поле2 - имена столбцов;</li>
166
<li>имя таблицы - задает табличное имя;</li>
166
<li>имя таблицы - задает табличное имя;</li>
167
<li>limit - используется для ограничения количества возвращаемых строк;</li>
167
<li>limit - используется для ограничения количества возвращаемых строк;</li>
168
<li>order by - сортирует результирующие значения столбцов по возрастанию или убыванию.</li>
168
<li>order by - сортирует результирующие значения столбцов по возрастанию или убыванию.</li>
169
</ul><p>В случае с ранее подготовленной БД в MySQL можно сформировать запрос на извлечение столбца name из таблицы dinners:</p>
169
</ul><p>В случае с ранее подготовленной БД в MySQL можно сформировать запрос на извлечение столбца name из таблицы dinners:</p>
170
<p>Если необходимо запросить несколько столбцов из одной таблицы, они перечисляются через запятую перед from:</p>
170
<p>Если необходимо запросить несколько столбцов из одной таблицы, они перечисляются через запятую перед from:</p>
171
<p>Вместо указания конкретного столбца или их наборов, допускается использование оператора Select вместе со знаком "звездочка" (*). Соответствующий элемент является заполнителем. Он представляет все столбцы в таблице.</p>
171
<p>Вместо указания конкретного столбца или их наборов, допускается использование оператора Select вместе со знаком "звездочка" (*). Соответствующий элемент является заполнителем. Он представляет все столбцы в таблице.</p>
172
<p>Выше - пример, демонстрирующий отображение всех столбцов из таблицы tourneys.</p>
172
<p>Выше - пример, демонстрирующий отображение всех столбцов из таблицы tourneys.</p>
173
<h4><em>Where</em></h4>
173
<h4><em>Where</em></h4>
174
<p>Оператор Where - необязательный. Используется в запросе для того, чтобы фильтровать записи, удовлетворяющие заданному условию. Все строки, не попадающие под установленные "ограничения", будут исключены из результата.</p>
174
<p>Оператор Where - необязательный. Используется в запросе для того, чтобы фильтровать записи, удовлетворяющие заданному условию. Все строки, не попадающие под установленные "ограничения", будут исключены из результата.</p>
175
<p>Синтаксис оператора where:</p>
175
<p>Синтаксис оператора where:</p>
176
<p>Часто используется с запросами delete и update. Является альтернативой использования OR, а также AND.</p>
176
<p>Часто используется с запросами delete и update. Является альтернативой использования OR, а также AND.</p>
177
<p>Записи в таблице могут быть уточнены при помощи операторов сравнения SQL, записанных в where-предложении. Вот самые распространенные варианты:</p>
177
<p>Записи в таблице могут быть уточнены при помощи операторов сравнения SQL, записанных в where-предложении. Вот самые распространенные варианты:</p>
178
Что за оператор используется (обозначение)Действие (описание)=Равенство!=Неравно>Больше<Меньше>=Больше или равно<=Меньше или равноBETWEENПроверяет, находится ли заданное значение в пределах установленного диапазонаINПроверяет, содержится ли значение строки в наборе указанных значенийEXISTSПроверка на наличие строк при заданных условияхLikeПозволяет узнать, существует ли значение в указанной строкеIS NULLПроверяет значения NULLIS NOT NULLПроверяет все значения, исключая NULL<p>Вот пример, который позволит узнать размер обуви Ирмы:</p>
178
Что за оператор используется (обозначение)Действие (описание)=Равенство!=Неравно>Больше<Меньше>=Больше или равно<=Меньше или равноBETWEENПроверяет, находится ли заданное значение в пределах установленного диапазонаINПроверяет, содержится ли значение строки в наборе указанных значенийEXISTSПроверка на наличие строк при заданных условияхLikeПозволяет узнать, существует ли значение в указанной строкеIS NULLПроверяет значения NULLIS NOT NULLПроверяет все значения, исключая NULL<p>Вот пример, который позволит узнать размер обуви Ирмы:</p>
179
<p>SQL-запросы позволяют использовать подстановочные знаки. В случае с Where-выражениями это бывает достаточно удобно. Знак процента (%) представляет ноль или более неизвестных символов, а нижнее подчеркивание отвечает за один неизвестных элемент (_).</p>
179
<p>SQL-запросы позволяют использовать подстановочные знаки. В случае с Where-выражениями это бывает достаточно удобно. Знак процента (%) представляет ноль или более неизвестных символов, а нижнее подчеркивание отвечает за один неизвестных элемент (_).</p>
180
<p>Подстановочные знаки удобны, когда необходимо найти конкретную запись в таблице, но в правильности ее написания нет уверенности.</p>
180
<p>Подстановочные знаки удобны, когда необходимо найти конкретную запись в таблице, но в правильности ее написания нет уверенности.</p>
181
<p>Этот пример показывает ситуацию, при которой пользователь выбрал любимые блюда, но он не уверен, что оно начинается на t. Результатом обработки запроса станет tofu.</p>
181
<p>Этот пример показывает ситуацию, при которой пользователь выбрал любимые блюда, но он не уверен, что оно начинается на t. Результатом обработки запроса станет tofu.</p>
182
<h4><em>Order by</em></h4>
182
<h4><em>Order by</em></h4>
183
<p>Предложение order by используется для того, чтобы привести<a>табличные данные</a>в порядок. С его помощью информация из MySQL будет представлена в упорядоченном виде. Значения поддерживают сортировку по убыванию или возрастанию.</p>
183
<p>Предложение order by используется для того, чтобы привести<a>табличные данные</a>в порядок. С его помощью информация из MySQL будет представлена в упорядоченном виде. Значения поддерживают сортировку по убыванию или возрастанию.</p>
184
<p>По умолчанию используется принцип вывода информации "от меньшего к большему". Уточнение вводится при помощи таких слов:</p>
184
<p>По умолчанию используется принцип вывода информации "от меньшего к большему". Уточнение вводится при помощи таких слов:</p>
185
<ul><li>desc - отображение по убыванию;</li>
185
<ul><li>desc - отображение по убыванию;</li>
186
<li>asc - вывод информации в порядке возрастания.</li>
186
<li>asc - вывод информации в порядке возрастания.</li>
187
</ul><p>Это - пример формирования запроса с order by.</p>
187
</ul><p>Это - пример формирования запроса с order by.</p>
188
<h4><em>Limit</em></h4>
188
<h4><em>Limit</em></h4>
189
<p>Предложения Limit применяются в SQL-запросах для получения некоторого ограниченного количества строк из больших информационных объемов. Это - ограничение возвращаемых результатов.</p>
189
<p>Предложения Limit применяются в SQL-запросах для получения некоторого ограниченного количества строк из больших информационных объемов. Это - ограничение возвращаемых результатов.</p>
190
<p>Limit дает возможность возврата одного или двух аргументов. Если "параметров" несколько, то один из них выступает в качестве смещения. Он задаст сдвиг первой возвращаемой строки. Смещение обязательно является или нулевым, или положительным. Если в запросе один аргумент, он будет выступать количеством выводимых строк на дисплей устройства.</p>
190
<p>Limit дает возможность возврата одного или двух аргументов. Если "параметров" несколько, то один из них выступает в качестве смещения. Он задаст сдвиг первой возвращаемой строки. Смещение обязательно является или нулевым, или положительным. Если в запросе один аргумент, он будет выступать количеством выводимых строк на дисплей устройства.</p>
191
<h4><em>Псевдонимы</em></h4>
191
<h4><em>Псевдонимы</em></h4>
192
<p>В Select-запросах MySQL могут использоваться псевдонимы. Они задаются через ключевое слово AS. Позволяют сделать имена таблиц или столбцов более читабельными и понятными. Встречаются преимущественно тогда, когда работать с изначальной формой представления таблиц трудно.</p>
192
<p>В Select-запросах MySQL могут использоваться псевдонимы. Они задаются через ключевое слово AS. Позволяют сделать имена таблиц или столбцов более читабельными и понятными. Встречаются преимущественно тогда, когда работать с изначальной формой представления таблиц трудно.</p>
193
<p>Псевдонимы, сформированные при помощи AS - это временные сведения. Они существуют до тех пор, пока работает запрос, для которого они были созданы.</p>
193
<p>Псевдонимы, сформированные при помощи AS - это временные сведения. Они существуют до тех пор, пока работает запрос, для которого они были созданы.</p>
194
<h4><em>Соединение таблиц</em></h4>
194
<h4><em>Соединение таблиц</em></h4>
195
<p>Соединение (join) используется для одновременного получения информации сразу из нескольких таблиц в MySQL. Пример - есть order и customer. Из них необходимо извлечь информацию для дальнейшей обработки. Для этого применяется запрос типа join.</p>
195
<p>Соединение (join) используется для одновременного получения информации сразу из нескольких таблиц в MySQL. Пример - есть order и customer. Из них необходимо извлечь информацию для дальнейшей обработки. Для этого применяется запрос типа join.</p>
196
<p>Она поддерживает такие предложения:</p>
196
<p>Она поддерживает такие предложения:</p>
197
<ol><li>Cross - перекрестное соединение. Применяется для вывода информации, которая совпала как в левой, так и в правой таблице.</li>
197
<ol><li>Cross - перекрестное соединение. Применяется для вывода информации, которая совпала как в левой, так и в правой таблице.</li>
198
<li>Inner - внутреннее объединение. Возвращает записи, значения которых совпадают в обеих заданных таблицах.</li>
198
<li>Inner - внутреннее объединение. Возвращает записи, значения которых совпадают в обеих заданных таблицах.</li>
199
<li>Right - правое соединение. Указывает информацию из правой таблицы, значения которых встречаются в левой.</li>
199
<li>Right - правое соединение. Указывает информацию из правой таблицы, значения которых встречаются в левой.</li>
200
<li>Left - левое соединение. Отображает данные левой таблицы, совпавшие с параметрами из правой.</li>
200
<li>Left - левое соединение. Отображает данные левой таблицы, совпавшие с параметрами из правой.</li>
201
</ol><p>Объединить результаты нескольких select-запросов удается при помощи ключевого слова Union. Для каждого select устанавливается одно и то же количество столбцов с одинаковыми типами используемых данных.</p>
201
</ol><p>Объединить результаты нескольких select-запросов удается при помощи ключевого слова Union. Для каждого select устанавливается одно и то же количество столбцов с одинаковыми типами используемых данных.</p>
202
<p>Предложение left join отвечает за возврат всех записей из левой таблицы и только совпадающие с аргументами правой таблицы. В контексте соединения левая таблица MySQL - это таблица, на которую будет ссылаться FROM. Правая - любая другая, на которую имеется ссылка после оператора JOIN.</p>
202
<p>Предложение left join отвечает за возврат всех записей из левой таблицы и только совпадающие с аргументами правой таблицы. В контексте соединения левая таблица MySQL - это таблица, на которую будет ссылаться FROM. Правая - любая другая, на которую имеется ссылка после оператора JOIN.</p>
203
<p>Соответствующий запрос выведет каждую запись из левой таблицы (в приведенном примере - tourneys), даже если в правой таблице совпадающие записи отсутствуют. Каждый раз, когда в правой табличке нет подходящей записи, она вернет пустое значение или NULL. На устройстве появится следующий результат:</p>
203
<p>Соответствующий запрос выведет каждую запись из левой таблицы (в приведенном примере - tourneys), даже если в правой таблице совпадающие записи отсутствуют. Каждый раз, когда в правой табличке нет подходящей записи, она вернет пустое значение или NULL. На устройстве появится следующий результат:</p>
204
<p>Соответствующую команду рекомендуется повторить, но уже при помощи оператора right join:</p>
204
<p>Соответствующую команду рекомендуется повторить, но уже при помощи оператора right join:</p>
205
<p>Результат будет представлен в виде возврата всех записей из правой таблички - dinners. Дата рождения Лесли записана в правой таблице MySQL, но для нее нет соответствующей строки в левой, столбцы name и size получат нулевые значения (NULL):</p>
205
<p>Результат будет представлен в виде возврата всех записей из правой таблички - dinners. Дата рождения Лесли записана в правой таблице MySQL, но для нее нет соответствующей строки в левой, столбцы name и size получат нулевые значения (NULL):</p>
206
<p>Левые и правые соединения в MySQL могут быть записаны в виде left outer join или right outer join. То же самое касается Inner join. Эта команда может быть записана просто как join.</p>
206
<p>Левые и правые соединения в MySQL могут быть записаны в виде left outer join или right outer join. То же самое касается Inner join. Эта команда может быть записана просто как join.</p>
207
<p>В качестве альтернативы JOIN допускается использование Union. Вместо того, чтобы вывести результат из нескольких табличек в виде уникальных столбцов с помощью Select соответствующая команда объединит информацию от двух select-запросов в один столбец.</p>
207
<p>В качестве альтернативы JOIN допускается использование Union. Вместо того, чтобы вывести результат из нескольких табличек в виде уникальных столбцов с помощью Select соответствующая команда объединит информацию от двух select-запросов в один столбец.</p>
208
<p>Вот пример запроса:</p>
208
<p>Вот пример запроса:</p>
209
<p>Он приведет к отображению такого результата:</p>
209
<p>Он приведет к отображению такого результата:</p>
210
<h4><em>Удаление дубликатов</em></h4>
210
<h4><em>Удаление дубликатов</em></h4>
211
<p>При использовании Select-запросов в MySQL могут встречаться одинаковые значения. Выводить их несколько раз на дисплей нет никакой необходимости. Чтобы удалить повторы в результирующих значениях, необходимо использовать предложение distinct.</p>
211
<p>При использовании Select-запросов в MySQL могут встречаться одинаковые значения. Выводить их несколько раз на дисплей нет никакой необходимости. Чтобы удалить повторы в результирующих значениях, необходимо использовать предложение distinct.</p>
212
<p>В заданной форме записи:</p>
212
<p>В заданной форме записи:</p>
213
<ol><li>Expressions - столбцы или вычисления, которые необходимо получить.</li>
213
<ol><li>Expressions - столбцы или вычисления, которые необходимо получить.</li>
214
<li>Tables - таблицы, используемые для работы. Этот параметр не является обязательным. Связано это с тем, что в перечислении from должна быть хотя бы одна таблица.</li>
214
<li>Tables - таблицы, используемые для работы. Этот параметр не является обязательным. Связано это с тем, что в перечислении from должна быть хотя бы одна таблица.</li>
215
<li>Where conditions - параметр, указывающий на условия, выполняемые для выбранных записей. Соответствующая запись в SQL-запросе может отсутствовать.</li>
215
<li>Where conditions - параметр, указывающий на условия, выполняемые для выбранных записей. Соответствующая запись в SQL-запросе может отсутствовать.</li>
216
</ol><p>Значения Null MySQL при использовании запроса distinct игнорировать не будет. Он рассматривается системой в виде отдельного значения.</p>
216
</ol><p>Значения Null MySQL при использовании запроса distinct игнорировать не будет. Он рассматривается системой в виде отдельного значения.</p>
217
<h3>Оператор Load</h3>
217
<h3>Оператор Load</h3>
218
<p>Оператор Load используется для заполнения таблицы. Применяется при формировании результата из подготовленного заранее документа. Оператор Load data имеет такую форму представления:</p>
218
<p>Оператор Load используется для заполнения таблицы. Применяется при формировании результата из подготовленного заранее документа. Оператор Load data имеет такую форму представления:</p>
219
<p>Load data ‘[путь/] [имя файла]’ in table [имя таблицы];</p>
219
<p>Load data ‘[путь/] [имя файла]’ in table [имя таблицы];</p>
220
<p>Также для вставки данных в таблицу можно использовать Insert:</p>
220
<p>Также для вставки данных в таблицу можно использовать Insert:</p>
221
<p>Здесь:</p>
221
<p>Здесь:</p>
222
<ul><li>table_name - это название таблицы;</li>
222
<ul><li>table_name - это название таблицы;</li>
223
<li>values - значения, которые необходимо добавить.</li>
223
<li>values - значения, которые необходимо добавить.</li>
224
</ul><p>Value1, ….valueN - это аргументы, перечисляемые через запятую. Значения здесь предоставляются в том же порядке, в котором они указаны изначально в таблице.</p>
224
</ul><p>Value1, ….valueN - это аргументы, перечисляемые через запятую. Значения здесь предоставляются в том же порядке, в котором они указаны изначально в таблице.</p>
225
<h3>Оператор show</h3>
225
<h3>Оператор show</h3>
226
<p>В MySQL show используется для предоставления информации о базах данных, таблицах, столбцах и состоянии операций. Следующие команды являются наиболее распространенными:</p>
226
<p>В MySQL show используется для предоставления информации о базах данных, таблицах, столбцах и состоянии операций. Следующие команды являются наиболее распространенными:</p>
227
<ul><li>show databases - показать базу данных на хосте сервера;</li>
227
<ul><li>show databases - показать базу данных на хосте сервера;</li>
228
<li>show tables - перечисление постоянных таблиц;</li>
228
<li>show tables - перечисление постоянных таблиц;</li>
229
<li>show triggers - вывод триггеров;</li>
229
<li>show triggers - вывод триггеров;</li>
230
<li>show create table - отображение оператора создания таблиц.</li>
230
<li>show create table - отображение оператора создания таблиц.</li>
231
</ul><p><a>Здесь</a>можно увидеть все возможные способы представления оператора show.</p>
231
</ul><p><a>Здесь</a>можно увидеть все возможные способы представления оператора show.</p>
232
<h3>Агрегатные функции</h3>
232
<h3>Агрегатные функции</h3>
233
<p>В СУБД работа с данными не всегда подразумевает их интерпретацию. Иногда требуется получение информации о них. SQL-синтаксис поддерживает некоторые функции, позволяющие интерпретировать, а также выполнять различные вычисления через Select-запросы. Они носят название агрегатных:</p>
233
<p>В СУБД работа с данными не всегда подразумевает их интерпретацию. Иногда требуется получение информации о них. SQL-синтаксис поддерживает некоторые функции, позволяющие интерпретировать, а также выполнять различные вычисления через Select-запросы. Они носят название агрегатных:</p>
234
<ol><li>Count. Используется для подсчета и возврата количества строк, соответствующих заданным критериям. Пример - уточнение информации о том, сколько друзей из заданной БД предпочитают тофу. Сделать это поможет следующий запрос:.</li>
234
<ol><li>Count. Используется для подсчета и возврата количества строк, соответствующих заданным критериям. Пример - уточнение информации о том, сколько друзей из заданной БД предпочитают тофу. Сделать это поможет следующий запрос:.</li>
235
<li>AVG. Отвечает за возвращение среднего значения заданного столбца в MySQL. Пример - получение среднего лучшего результата в турнире:.</li>
235
<li>AVG. Отвечает за возвращение среднего значения заданного столбца в MySQL. Пример - получение среднего лучшего результата в турнире:.</li>
236
<li>SUM - общая сумма значений столбца. Пример - просмотр количества турниров, проведенных за установленный период:.</li>
236
<li>SUM - общая сумма значений столбца. Пример - просмотр количества турниров, проведенных за установленный период:.</li>
237
<li>MIN используется для поиска наименьшего значения по столбцам. Этот запрос в MySQL поможет отыскать наименьшее количество очков победителя в турнире за все годы:.</li>
237
<li>MIN используется для поиска наименьшего значения по столбцам. Этот запрос в MySQL поможет отыскать наименьшее количество очков победителя в турнире за все годы:.</li>
238
<li>MAX - функция, которая работает по обратному принципу MIN. Используется для поиска наибольшего числового значения.</li>
238
<li>MAX - функция, которая работает по обратному принципу MIN. Используется для поиска наибольшего числового значения.</li>
239
</ol><p>SUM и AVG функционируют правильно в базах данных MySQL, только если речь идет о числах. При попытке работы с нечисловыми значениями результат окажется или нулем, или ошибкой обработки данных. Все зависит непосредственно от используемой СУБД.</p>
239
</ol><p>SUM и AVG функционируют правильно в базах данных MySQL, только если речь идет о числах. При попытке работы с нечисловыми значениями результат окажется или нулем, или ошибкой обработки данных. Все зависит непосредственно от используемой СУБД.</p>
240
<p>Функции MIN и MAX используются не только для числовых, но и для буквенных типов данных. При запуске в столбце со строками, функция MIN отобразит первое значение в алфавитном порядке:</p>
240
<p>Функции MIN и MAX используются не только для числовых, но и для буквенных типов данных. При запуске в столбце со строками, функция MIN отобразит первое значение в алфавитном порядке:</p>
241
<p>В случае с использованием MAX происходит то же самое, но в алфавитном порядке показывается последнее значение:</p>
241
<p>В случае с использованием MAX происходит то же самое, но в алфавитном порядке показывается последнее значение:</p>
242
<p>Агрегатные функции в MySQL и SQL-запросах получили широкое распространение. Они особо полезны в запросах с group by.</p>
242
<p>Агрегатные функции в MySQL и SQL-запросах получили широкое распространение. Они особо полезны в запросах с group by.</p>
243
<h3>Вывод запроса</h3>
243
<h3>Вывод запроса</h3>
244
<p>Рассматривая select-запросы MySQL, необходимо также обратить внимание на управление выводом. Далее будут представлены наиболее популярные операторы:</p>
244
<p>Рассматривая select-запросы MySQL, необходимо также обратить внимание на управление выводом. Далее будут представлены наиболее популярные операторы:</p>
245
<ol><li>Group by. Используется тогда, когда выполняется агрегатная функция для одного столбца, но в отношении сопоставления значений в другом. Вот - пример, в котором пользователь пытается узнать, сколько друзей любят то или иное блюдо:.</li>
245
<ol><li>Group by. Используется тогда, когда выполняется агрегатная функция для одного столбца, но в отношении сопоставления значений в другом. Вот - пример, в котором пользователь пытается узнать, сколько друзей любят то или иное блюдо:.</li>
246
<li>Оператор order by применяется для сортировки результатов заданного запроса. По умолчанию все числовые значения сортируются по возрастанию, текстовые значения - по алфавиту.</li>
246
<li>Оператор order by применяется для сортировки результатов заданного запроса. По умолчанию все числовые значения сортируются по возрастанию, текстовые значения - по алфавиту.</li>
247
<li>Having. Используется для выполнения функций, аналогичных Where, но совместимых с агрегатными.</li>
247
<li>Having. Используется для выполнения функций, аналогичных Where, но совместимых с агрегатными.</li>
248
</ol><p>Where используется для фильтрации результатов на основе заданных пользователем условий. Только работу с агрегатными функциями этот оператор не поддерживает. Он возвращает при подобных обстоятельствах ошибку.</p>
248
</ol><p>Where используется для фильтрации результатов на основе заданных пользователем условий. Только работу с агрегатными функциями этот оператор не поддерживает. Он возвращает при подобных обстоятельствах ошибку.</p>
249
<h3>Подзапросы</h3>
249
<h3>Подзапросы</h3>
250
<p>Чтобы обратиться к нескольким таблицам MySQL, можно использовать подзапросы. Они носят название вложенных запросов (или внутренних). Это запрос, включенный в другой. Такой вариант полезен тогда, когда необходимо отфильтровать результаты запроса по сравнению с итогами отдельной агрегатной функции MySQL.</p>
250
<p>Чтобы обратиться к нескольким таблицам MySQL, можно использовать подзапросы. Они носят название вложенных запросов (или внутренних). Это запрос, включенный в другой. Такой вариант полезен тогда, когда необходимо отфильтровать результаты запроса по сравнению с итогами отдельной агрегатной функции MySQL.</p>
251
<p>Лучше разобрать с этой операцией в базах данных поможет наглядный пример. Необходимо узнать, кто из друзей выиграл больше матчей, чем Барбара. Вместо того чтобы посмотреть, сколько матчей выиграла девушка, а затем выполнять другой запрос, можно сделать это так:</p>
251
<p>Лучше разобрать с этой операцией в базах данных поможет наглядный пример. Необходимо узнать, кто из друзей выиграл больше матчей, чем Барбара. Вместо того чтобы посмотреть, сколько матчей выиграла девушка, а затем выполнять другой запрос, можно сделать это так:</p>
252
<p>Подзапрос в операторе выполнялся всего один раз. В заданном примере требовалось найти значение из столбца wins в строке, где в столбце name указано значение Barbara. Данные, возвращаемые при помощи сформированного подзапроса и внешнего запроса, не зависят друг от друга. Бывают ситуации, при которых внешний запрос должен сначала считать каждую строчку в табличке, а затем сравнить соответствующие значения с данными, возвращаемыми подзапросом. Такой подзапрос называется коррелированным.</p>
252
<p>Подзапрос в операторе выполнялся всего один раз. В заданном примере требовалось найти значение из столбца wins в строке, где в столбце name указано значение Barbara. Данные, возвращаемые при помощи сформированного подзапроса и внешнего запроса, не зависят друг от друга. Бывают ситуации, при которых внешний запрос должен сначала считать каждую строчку в табличке, а затем сравнить соответствующие значения с данными, возвращаемыми подзапросом. Такой подзапрос называется коррелированным.</p>
253
-
<p>Этот запрос попытается выяснить, кто из друзей выиграл игр больше среди участников с одинаковым размером обуви. Для обработки MySQL необходимо собрать столбцы name и size из внешнего запроса. После этого она сравнивает каждую строчку из соответствующего результирующего с результатами внутреннего запроса, определяющего среднее количество для людей с одинаковым размером обуви. На экране появится такой вывод:</p>
253
+
<p>Этот запрос попытается выяснить, кто из друзей выиграл игр больше среди участников с одинаковым размером обуви. Для обработки MySQL необходимо собрать столбцы name и size из внешнего запроса. После этого она сравнивает каждую строчку из соответствующего результирующего с результатами внутреннего запроса, ��пределяющего среднее количество для людей с одинаковым размером обуви. На экране появится такой вывод:</p>
254
<p>.</p>
254
<p>.</p>
255
<p>Это связано с тем, что всего два человека среди друзей в изучаемом примере имеют одинаковый размер обуви.</p>
255
<p>Это связано с тем, что всего два человека среди друзей в изучаемом примере имеют одинаковый размер обуви.</p>
256
<p>Подзапросы используются для запроса результатов из нескольких таблиц данных MySQL. Для наглядного примера рекомендуется рассмотреть ситуацию, при котором лучший игрок в группе получает сюрприз. Он выражается ужином с его любимыми блюдами.</p>
256
<p>Подзапросы используются для запроса результатов из нескольких таблиц данных MySQL. Для наглядного примера рекомендуется рассмотреть ситуацию, при котором лучший игрок в группе получает сюрприз. Он выражается ужином с его любимыми блюдами.</p>
257
<p>Данный фрагмент MySQL-запроса позволяет узнать, кто среди друзей показал лучший результат. После этого система выведет его любимое блюдо. Для реализации используется один запрос.</p>
257
<p>Данный фрагмент MySQL-запроса позволяет узнать, кто среди друзей показал лучший результат. После этого система выведет его любимое блюдо. Для реализации используется один запрос.</p>
258
<h2>Как освоить MySQL и SQL</h2>
258
<h2>Как освоить MySQL и SQL</h2>
259
<p>MySQL и SQL - популярные инструменты для использования баз данных через специальные запросы. Разобраться с ними помогут специализированные дистанционные онлайн курсы. Пример - от образовательного центра OTUS.</p>
259
<p>MySQL и SQL - популярные инструменты для использования баз данных через специальные запросы. Разобраться с ними помогут специализированные дистанционные онлайн курсы. Пример - от образовательного центра OTUS.</p>
260
<p>Данные курсы гарантируют:</p>
260
<p>Данные курсы гарантируют:</p>
261
<ol><li>Сжатые сроки обучения и грамотно составленные программы. В период от нескольких месяцев до года можно освоить с нуля любую IT-профессию.</li>
261
<ol><li>Сжатые сроки обучения и грамотно составленные программы. В период от нескольких месяцев до года можно освоить с нуля любую IT-профессию.</li>
262
<li>Постоянное кураторство и интересные домашние задания.</li>
262
<li>Постоянное кураторство и интересные домашние задания.</li>
263
<li>Возможность совмещать работу и учебу, а также быт и семью. Все занятия организованы через интернет. Если ученик отсутствовал на лекции, он сможет просмотреть запись вебинара.</li>
263
<li>Возможность совмещать работу и учебу, а также быт и семью. Все занятия организованы через интернет. Если ученик отсутствовал на лекции, он сможет просмотреть запись вебинара.</li>
264
<li>Помощь в формировании портфолио, а также богатую практику.</li>
264
<li>Помощь в формировании портфолио, а также богатую практику.</li>
265
<li>Разнообразие программ обучения. Можно выбрать специализацию или направление в зависимости от первоначальных навыков и знаний каждого конкретного человека.</li>
265
<li>Разнообразие программ обучения. Можно выбрать специализацию или направление в зависимости от первоначальных навыков и знаний каждого конкретного человека.</li>
266
</ol><p>Вместе с дистанционными компьютерными курсами записи типа "unsigned not null", "in set", "primary key", "not null auto", "select from" и другие используемые в СУБД не вызовут затруднений. Удастся не только освоить базы данных, но и научиться писать сложные приложения на различных языках "с нуля". В конце обучения все участники получают электронные сертификаты, помогающие подтвердить приобретенный спектр навыков и умений.</p>
266
</ol><p>Вместе с дистанционными компьютерными курсами записи типа "unsigned not null", "in set", "primary key", "not null auto", "select from" и другие используемые в СУБД не вызовут затруднений. Удастся не только освоить базы данных, но и научиться писать сложные приложения на различных языках "с нуля". В конце обучения все участники получают электронные сертификаты, помогающие подтвердить приобретенный спектр навыков и умений.</p>
267
<p><em>Прокачать <a>навыки работы с базами данных</a> можно на курсах Otus.</em></p>
267
<p><em>Прокачать <a>навыки работы с базами данных</a> можно на курсах Otus.</em></p>
268
268