PostgreSQL. Основы языка SQL
Моргунов, Е. П.
PostgreSQL. Основы языка SQL: учеб. пособие / Е. П. Моргунов; под ред. Е. В. Рогова, П. В. Лузанова. — СПб.: БХВ-Петербург, 2018. — 336 с.: ил.
ISBN 978-5-9775-4022-3 (БХВ-Петербург)
ISBN 978-5-6041193-2-7 (Постгрес Профессиональный, электронное издание)
Учебно-практическое пособие охватывает первую, базовую, часть учебного курса по языку SQL, созданного при участии российской компании Postgres Professional. Учебный материал излагается в расчете на использование системы управления базами данных PostgreSQL. Рассмотрено создание рабочей среды, описаны языки определения данных и основные операции выборки и изменения данных. Показаны примеры использования транзакций, уделено внимание методам оптимизации запросов. Материал сопровождается многочисленными практическими примерами. Пособие может использоваться как для самостоятельного обучения, так и при проведении занятий под руководством преподавателя.
Автор пособия – Евгений Павлович Моргунов, кандидат технических наук, доцент кафедры информатики и вычислительной техники Сибирского государственного университета науки и технологий имени академика М. Ф. Решетнева.
Живет в Красноярске. До перехода в вуз в 2000-ом году более 10 лет работал программистом. В том числе, занимался разработкой прикладной системы для банка. Познакомился с СУБД PostgreSQL в 1998 году. Сторонник использования в учебном процессе открытого и свободного программного обеспечения. Автор учебного пособия «Технологии разработки программ на основе инструментария с открытым исходным кодом» и более 50 других публикаций. По его инициативе в ходе изучения дисциплины «Технология программирования» стали применяться операционная система FreeBSD и система управления базами данных PostgreSQL. Член Международного общества инженерной педагогики (IGIP) с 2004 года. На сегодня опыт использования PostgreSQL в преподавании составляет более 17 лет.
Еще один учебник по языку SQL. Нужен ли он в наше время, когда подобных книг составлено уже немало, и, главное, как исследовательская и специальная литература, так и средства массовой информации буквально переполнены рекламой noSQL-систем?
Да, нужен. Потому что в этой книге показаны не только обычные средства языка SQL-92, без которых, конечно, обойтись нельзя, но и новые возможности, включенные в последние версии системы PostgreSQL (до версии 9.6). В том числе тип данных JSON, фактически обеспечивающий возможность применения PostgreSQL в качестве noSQL-системы.
Изложение построено в стиле подхода hands-on, сразу после введения следует обзорная иллюстрация основных возможностей SQL на небольших примерах. Далее следуют главы, в которых каждая группа команд SQL иллюстрируется огромным количеством примеров и упражнений, при этом попутно объясняются наиболее важные из используемых понятий, связанных с базами данных, и конструкций языка.
Основной материал книги не предполагает наличие у читателя каких-либо предварительных знаний или навыков, связанных с базами данных и почти не требует навыков программирования или знания алгоритмов. Книга удачно дополняет другие курсы по дисциплинам, связанным с применением вычислительных систем, в которых вопросы применения баз данных зачастую представляются чересчур упрощенно.
Исключение составляет последняя глава книги, в которой представлены некоторые сведения по алгоритмам выполнения запросов. Для успешного применения сведений, содержащихся в этой главе, необходимо более глубокое знание алгоритмов и методов, реализуемых в ядре СУБД, чем можно получить из этой книги.
Подчеркнем, что это учебник именно по SQL. В нем не рассматриваются ни теория баз данных, ни методы проектирования баз данных, ни методы проектирования и разработки приложений, работающих с базами данных. Такое самоограничение позволило автору изложить огромный материал в весьма компактной форме, что должно существенно облегчить освоение этого материала.
Б. А. Новиков, доктор физико-математических наук, профессор кафедры информационно-аналитических систем Санкт-Петербургского государственного университета.
В пособии рассматриваются следующие темы:
- Введение в базы данных и SQL
- Создание рабочей среды
- Основные операции с таблицами
- Типы данных СУБД PostgreSQL
- Основы языка определения данных
- Запросы
- Изменение данных
- Индексы
- Транзакции
- Повышение производительности
Скачать книгу в формате PDF (2 МБ)
Основы SQL — Stepik
What you will learn
- Устанавливать сервер MySQL на свой компьютер, запускать СУБД, а также подключаться к ней с помощью программы-клиента.
- С нуля создавать базы данных и таблицы под бизнес требования.
- Извлекать из баз данных информацию с помощью SQL запросов.
- Использовать SQL для анализа данных.
- Обрабатывать и изменять исходную информацию для удобного вывода.
- Производить арифметические операции, форматировать дату, приводить текст к нужному виду.
- Искать информацию с помощью инструментов полнотекстового поиска.
- Изменять и добавлять в таблицы новые данные.
- Выбирать оптимальные типы данных.
- Создавать уникальные и составные индексы.
- Использовать WHERE и HAVING для фильтрации данных.
- Агрегировать данные с помощью GROUP BY.
- Вычислять среднее, минимальное и максимальное значения.
- Группировать данные по категориям и датам, формировать сводные отчеты.
- Извлекать данные из нескольких связанных между собой таблиц с помощью JOIN.
- Объединять несколько таблиц с помощью UNION.
- Создавать вложенные SQL запросы.
About this course
Практический Online-курс по основам SQL с серией коротких видео-уроков и большим количеством заданий. На курсе вы научитесь писать как простые SQL-запрос, так и делать многотабличные выборки с использование JOIN и UNION, а также освоите группировку и функции агрегации.
Курс — победитель V международного конкурса
Курс можно купить в рамках пакета SQL-курсов со скидкой.
SQL – это язык для общения программ с базами данных. Умение писать запросы на SQL – один из ключевых навыков современного программиста.
- 99% IT-компаний используют базы данных в своей работе
- 55% вакансий на должность программиста требуют знания языка SQL
- 83% вакансий на должность backend-программиста требуют уверенного владения SQL.
Каждое серьезное собеседование или тестовое задание содержит вопросы о базах данных и SQL. Знание SQL значительно повышает шанс устройства на работу.
Изучаем SQL на примере MySQL — одной из самых популярных баз данных.
Поддержка
Отвечаем на все вопросы в течение 24 часов.
Whom this course is for
Начинающие разработчики, маркетологи, аналитики.
Initial requirements
Онлайн-курс для широкого круга слушателей. Не требует специализированных знаний ни в программировании, ни в базах данных.
Meet the Instructors
How you will learn
Короткие видео-лекции с закреплением материала на тренажере с автоматической проверкой. В случае сложностей можно задать вопрос преподавателю.
Course content
Certificate
Stepik
What you will get
Price
FAQ
How to purchase the course in installments?
How to pay from the company?
https://stepik.org/course/51562/promo
Direct link:
https://stepik.org/51562
SQL Tutorial: Изучение SQL бесплатно
Skip to ContentMini Arrow Down IconChecker DenseБесплатно
Курс
Научитесь взаимодействовать с базами данных с помощью SQL, стандартного языка управления данными.
Начало
922 721 зарегистрированных учащихся
Об этом курсе
Информация окружает нас повсюду. Вы можете использовать его, изучив основы SQL. SQL, используемый в науке о данных, аналитике и проектировании, упрощает работу с данными и позволяет принимать более обоснованные стратегии, операции и бизнес-решения. Это полезный навык для всех, кто работает с данными (даже на нетехнических должностях). В этом курсе SQL вы узнаете, как управлять большими наборами данных и анализировать реальные данные.
Навыки, которые вы приобретете
- Миниатюрная иконка в виде круга
Работа с базами данных с использованием SQL
- Мини-значок круга проверки
Создание запросов для таблиц
- Мини-значок круга проверки
Сборка проектов SQL
Программа
4 урока • 5 проектов • 4 тестаНачало
Платформа
Практическое обучение — смотри свой код вживую или пиши о нем
наша интерактивная онлайн-платформа. Вы даже получите рекомендации на основе ИИ о том, что вам нужно просмотреть, чтобы не сбиться с пути. Checker DenseПроекты в этом курсе
Проект
Создание таблицы
Научитесь бегло работать с SQL. Мы собираемся попрактиковаться в создании таблиц в SQL, чтобы вы могли отточить свои навыки и чувствовать себя уверенно, применяя их в реальном мире.
Проект
Рестораны Нью-Йорка
Попрактикуйтесь в написании наиболее распространенных типов запросов.
Проект
Тенденции в стартапах
В следующем проекте Pro мы будем практиковать агрегатные функции в SQL, чтобы вы могли отточить свои навыки и чувствовать себя уверенно, применяя их в реальном мире. Использование этих функций будет объединять значения строк вместе и возвращать один результат. Что дальше? Это ваш первый день в качестве репортера TechCrunch, и вам нужен SQL! Ты получил это!
Наши учащиеся работают в
Логотип GoogleMeta LogoApple LogoEA LogoЛоготип AmazonЛоготип IBMЛоготип Microsoft Reddit LogoЛого SpotifyЛоготип UberЛоготип YouTubeInstagram LogoChecker DenseРазблокируйте дополнительные функции с помощью платного плана учимся.
Значок викториныОценки
Автоматически оцениваемые викторины и немедленная обратная связь помогут вам закрепить свои навыки во время обучения. Значок сертификатаСертификат об окончании
Получите документ, подтверждающий, что вы прошли курс или путь, которым вы можете поделиться со своей сетью.Посмотреть цены и планы
Присоединяйтесь к более чем 50 миллионам учащихся и начните изучать SQL сегодня!
Startосновные понятия, словарный запас и синтаксис
Когда вы хотите получить данные из базы данных, вы запрашиваете данные с помощью языка структурированных запросов или SQL. SQL — это компьютерный язык, очень похожий на английский, но понятный программам баз данных. Каждый выполняемый вами запрос использует SQL за кулисами.
Понимание того, как работает SQL, может помочь вам создавать более качественные запросы и упростить понимание того, как исправить запрос, который не возвращает нужных вам результатов.
Это одна из статей о Access SQL. В этой статье описывается основное использование SQL для выбора данных и используются примеры для иллюстрации синтаксиса SQL.
В этой статье
Что такое SQL?
Основные предложения SQL: SELECT, FROM и WHERE.
Сортировка результатов: ORDER BY
Работа с суммированными данными: GROUP BY и HAVING
Объединение результатов запроса: UNION
Что такое SQL?
SQL — это компьютерный язык для работы с наборами фактов и отношениями между ними. Программы реляционных баз данных, такие как Microsoft Office Access, используют SQL для работы с данными. В отличие от многих компьютерных языков, SQL несложно читать и понимать даже новичку. Как и многие компьютерные языки, SQL является международным стандартом, признанным такими органами стандартизации, как ISO и ANSI.
Вы используете SQL для описания наборов данных, которые могут помочь вам ответить на вопросы. Когда вы используете SQL, вы должны использовать правильный синтаксис. Синтаксис — это набор правил, по которым правильно сочетаются элементы языка. Синтаксис SQL основан на синтаксисе английского языка и использует многие из тех же элементов, что и синтаксис Visual Basic для приложений (VBA).
Например, простой оператор SQL, который извлекает список фамилий для контактов, чье имя — Мария, может выглядеть следующим образом:
ВЫБЕРИТЕ Фамилию
ИЗ Контактов
ГДЕ Имя = 'Мэри';
Примечание. SQL используется не только для управления данными, но также для создания и изменения структуры объектов базы данных, таких как таблицы. Часть SQL, используемая для создания и изменения объектов базы данных, называется языком определения данных (DDL). В этом разделе не рассматривается DDL. Дополнительные сведения см. в статье Создание или изменение таблиц или индексов с помощью запроса определения данных.
Операторы SELECT
Чтобы описать набор данных с помощью SQL, вы пишете оператор SELECT. Оператор SELECT содержит полное описание набора данных, которые вы хотите получить из базы данных. В том числе:
Какие таблицы содержат данные.
Как связаны данные из разных источников.
Какие поля или вычисления будут создавать данные.
Критерии, которым должны соответствовать данные для включения.
Нужно ли и как сортировать результаты.
SQL-предложения
Как и предложение, оператор SQL имеет разделы. Каждое предложение выполняет функцию оператора SQL. Некоторые предложения необходимы в операторе SELECT. В следующей таблице перечислены наиболее распространенные предложения SQL.
Предложение SQL | Что он делает | Обязательно |
ВЫБЕРИТЕ | Список полей, содержащих интересующие данные. | Да |
ИЗ | Список таблиц, содержащих поля, перечисленные в предложении SELECT. | Да |
ГДЕ | Указывает критерии поля, которым должна соответствовать каждая запись, чтобы быть включенной в результаты. | № |
ЗАКАЗАТЬ | Указывает, как сортировать результаты. | № |
СГРУППИРОВАТЬ ПО | В операторе SQL, содержащем агрегатные функции, перечислены поля, которые не суммируются в предложении SELECT. | Только при наличии таких полей |
ИМЕЮЩИЙ | В операторе SQL, содержащем агрегатные функции, задает условия, которые применяются к полям, суммируемым в операторе SELECT. | № |
Термины SQL
Каждое предложение SQL состоит из терминов — сравнимых с частями речи. В следующей таблице перечислены типы терминов SQL.
Термин SQL | Сопоставимая часть речи | Определение | Пример |
идентификатор | существительное | Имя, которое вы используете для идентификации объекта базы данных, например имя поля. | Клиенты. [Номер телефона] |
оператор | глагол или наречие | Ключевое слово, которое представляет действие или изменяет действие. | КАК |
константа | существительное | Неизменяемое значение, например число или NULL. | 42 |
выражение | прилагательное | Комбинация идентификаторов, операторов, констант и функций, результатом которой является одно значение. | >= Товары. [Цена за единицу] |
Верх страницы
Основные предложения SQL: SELECT, FROM и WHERE
Оператор SQL имеет общий вид:
ВЫБЕРИТЕ поле_1
ИЗ таблицы_1
ГДЕ критерий_1
;
Примечания:
Access игнорирует разрывы строк в операторе SQL. Однако рассмотрите возможность использования строки для каждого предложения, чтобы улучшить читаемость ваших операторов SQL для себя и других.
Каждый оператор SELECT заканчивается точкой с запятой (;). Точка с запятой может стоять в конце последнего предложения или в отдельной строке в конце оператора SQL.
Пример в Access
Ниже показано, как может выглядеть оператор SQL для простого запроса на выборку в Access:
1. Предложение SELECT
2. ИЗ статьи
3. ГДЕ пункт
В этом примере инструкция SQL гласит: «Выберите данные, хранящиеся в полях с именами «Адрес электронной почты» и «Компания», из таблицы «Контакты», в частности те записи, в которых значением поля «Город» является Сиэтл».
Давайте рассмотрим пример, по одному предложению за раз, чтобы увидеть, как работает синтаксис SQL.
Предложение SELECT
ВЫБЕРИТЕ [Адрес электронной почты], Компания
Это предложение SELECT. Он состоит из оператора (SELECT), за которым следуют два идентификатора ([Адрес электронной почты] и Компания).
Если идентификатор содержит пробелы или специальные символы (например, «Адрес электронной почты»), он должен быть заключен в квадратные скобки.
Предложение SELECT не должно указывать, какие таблицы содержат поля, и не может указывать какие-либо условия, которым должны соответствовать данные, которые должны быть включены.
Предложение SELECT всегда появляется перед предложением FROM в операторе SELECT.
Предложение FROM
ОТ Контакты
Это предложение FROM. Он состоит из оператора (FROM), за которым следует идентификатор (Contacts).
В предложении FROM не указаны поля для выбора.
Пункт WHERE
ГДЕ Город=»Сиэтл»
Это предложение WHERE. Он состоит из оператора (WHERE), за которым следует выражение (City=»Seattle»).
Примечание. В отличие от предложений SELECT и FROM, предложение WHERE не является обязательным элементом инструкции SELECT.
Многие действия, которые позволяет выполнять SQL, можно выполнять с помощью предложений SELECT, FROM и WHERE. Дополнительные сведения о том, как вы используете эти пункты, представлены в следующих дополнительных статьях:
.Доступ к SQL: предложение SELECT
Доступ к SQL: предложение FROM
org/ListItem»>
Доступ к SQL: предложение WHERE
Верх страницы
Сортировка результатов: ПОРЯДОК ПО
Как и Microsoft Excel, Access позволяет сортировать результаты запроса в таблице. Вы также можете указать в запросе, как вы хотите сортировать результаты при выполнении запроса, используя предложение ORDER BY. Если вы используете предложение ORDER BY, это последнее предложение в операторе SQL.
Предложение ORDER BY содержит список полей, которые вы хотите использовать для сортировки, в том же порядке, в котором вы хотите применять операции сортировки.
Например, предположим, что вы хотите, чтобы ваши результаты сначала отсортировались по значению поля «Компания» в порядке убывания, а — если есть записи с таким же значением для компании — затем отсортированы по значениям в поле «Адрес электронной почты» в порядке возрастания. заказ. Ваше предложение ORDER BY будет выглядеть следующим образом:
ЗАКАЗАТЬ Компания DESC, [Адрес электронной почты]
Примечание. По умолчанию Access сортирует значения в порядке возрастания (от A до Z, от меньшего к большему). Вместо этого используйте ключевое слово DESC для сортировки значений в порядке убывания.
Дополнительные сведения о предложении ORDER BY см. в разделе Предложение ORDER BY.
Верх страницы
Работа со сводными данными: GROUP BY и HAVING
Иногда вам нужно работать со сводными данными, такими как общий объем продаж за месяц или самые дорогие товары в инвентаре. Для этого вы применяете агрегатную функцию к полю в предложении SELECT. Например, если вы хотите, чтобы ваш запрос отображал количество адресов электронной почты, перечисленных для каждой компании, ваше предложение SELECT может выглядеть следующим образом:
ВЫБЕРИТЕ COUNT([Адрес электронной почты]), Компания
Доступные для использования агрегатные функции зависят от типа данных в поле или выражении, которые вы хотите использовать. Дополнительные сведения о доступных агрегатных функциях см. в статье Агрегатные функции SQL.
Указание полей, которые не используются в агрегатной функции: предложение GROUP BY
При использовании агрегатных функций обычно необходимо также создать предложение GROUP BY. В предложении GROUP BY перечислены все поля, к которым не применяется агрегатная функция. Если вы применяете агрегатные функции ко всем полям запроса, вам не нужно создавать предложение GROUP BY.
Предложение GROUP BY следует непосредственно за предложением WHERE или предложением FROM, если предложение WHERE отсутствует. Предложение GROUP BY перечисляет поля в том виде, в каком они появляются в предложении SELECT.
Например, продолжая предыдущий пример, если ваше предложение SELECT применяет агрегатную функцию к [Адрес электронной почты], но не к компании, ваше предложение GROUP BY будет выглядеть следующим образом:
ГРУППА КОМПАНИЙ
Дополнительные сведения о предложении GROUP BY см. в разделе Предложение GROUP BY.
Ограничение совокупных значений с помощью групповых критериев: предложение HAVING
Если вы хотите использовать критерии для ограничения результатов, но поле, к которому вы хотите применить критерии, используется в агрегатной функции, вы не можете использовать предложение WHERE. Вместо этого вы используете предложение HAVING. Предложение HAVING работает так же, как предложение WHERE, но используется для агрегированных данных.
Например, предположим, что вы используете функцию AVG (которая вычисляет среднее значение) с первым полем в предложении SELECT:
ВЫБЕРИТЕ COUNT([Адрес электронной почты]), Компания
Если вы хотите, чтобы запрос ограничивал результаты на основе значения этой функции COUNT, вы не можете использовать критерий для этого поля в предложении WHERE. Вместо этого вы помещаете критерии в предложение HAVING. Например, если вы хотите, чтобы запрос возвращал строки только в том случае, если с компанией связано несколько адресов электронной почты, предложение HAVING может выглядеть следующим образом:
.HAVING COUNT([Адрес электронной почты])>1
Примечание. Запрос может содержать предложение WHERE и предложение HAVING — критерии для полей, которые не используются в агрегатной функции, указываются в предложении WHERE, а критерии для полей, которые используются с агрегатными функциями, — в предложении HAVING.
Дополнительные сведения о предложении HAVING см. в разделе Предложение HAVING.
Верх страницы
Объединение результатов запроса: UNION
Если вы хотите просмотреть все данные, которые возвращаются несколькими похожими запросами на выборку вместе, как объединенный набор, вы используете оператор UNION.
Оператор UNION позволяет объединить два оператора SELECT в один. Объединяемые операторы SELECT должны иметь одинаковое количество выходных полей, в том же порядке и с одинаковыми или совместимыми типами данных. Когда вы запускаете запрос, данные из каждого набора соответствующих полей объединяются в одно выходное поле, так что выходные данные запроса имеют то же количество полей, что и каждый из операторов select.
Примечание. Для целей запроса на объединение типы данных Number и Text совместимы.
При использовании оператора UNION можно также указать, должны ли результаты запроса включать повторяющиеся строки, если они существуют, с помощью ключевого слова ALL.
Базовый синтаксис SQL для запроса на объединение, который объединяет две инструкции SELECT, выглядит следующим образом:
ВЫБЕРИТЕ поле_1
ИЗ таблицы_1
UNION [ALL]
SELECT field_a
FROM table_a
;
Например, предположим, что у вас есть таблица с именем «Продукты» и другая таблица с именем «Службы».