Основы языка sql: PostgreSQL. Основы языка SQL : Компания Postgres Professional

Содержание

PostgreSQL. Основы языка SQL : Компания Postgres Professional

Моргунов, Е. П.
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 МБ)

Access SQL. Основные понятия, лексика и синтаксис

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

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

Это статья из цикла статей о языке SQL для Access. В ней описаны основы использования SQL для выборки данных и приведены примеры синтаксиса SQL.

В этой статье



Что такое SQL?

SQL — это язык программирования, предназначенный для работы с наборами фактов и отношениями между ними. В программах управления реляционными базами данных, таких как Microsoft Office Access, язык SQL используется для работы с данными. В отличие от многих языков программирования, SQL удобочитаем и понятен даже новичкам. Как и многие языки программирования, SQL является международным стандартом, признанным такими комитетами по стандартизации, как ISO и ANSI.

На языке SQL описываются наборы данных, помогающие получать ответы на вопросы. При использовании SQL необходимо применять правильный синтаксис. Синтаксис — это набор правил, позволяющих правильно сочетать элементы языка. Синтаксис SQL основан на синтаксисе английского языка и имеет много общих элементов с синтаксисом языка Visual Basic для приложений (VBA).

Например, простая инструкция SQL, извлекающая список фамилий контактов с именем Mary, может выглядеть следующим образом:


SELECT Last_Name
FROM Contacts
WHERE First_Name = 'Mary';



Примечание: Язык SQL используется не только для выполнения операций над данными, но еще и для создания и изменения структуры объектов базы данных, например таблиц. Та часть SQL, которая используется для создания и изменения объектов базы данных, называется языком описания данных DDL. Язык DDL не рассматривается в этой статье. Дополнительные сведения см. в статье Создание и изменение таблиц или индексов с помощью запроса определения данных.

Инструкции SELECT

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

  • таблицы, в которых содержатся данные;

  • связи между данными из разных источников;

  • поля или вычисления, на основе которых отбираются данные;

  • условия отбора, которым должны соответствовать данные, включаемые в результат запроса;

  • необходимость и способ сортировки.

Предложения SQL

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








Предложение SQL


Описание


Обязательное

SELECT

Определяет поля, которые содержат нужные данные.

Да

FROM

Определяет таблицы, которые содержат поля, указанные в предложении SELECT.

Да

WHERE

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

Нет

ORDER BY

Определяет порядок сортировки результатов.

Нет

GROUP BY

В инструкции SQL, которая содержит статистические функции, определяет поля, для которых в предложении SELECT не вычисляется сводное значение.

Только при наличии таких полей

HAVING

В инструкции SQL, которая содержит статистические функции, определяет условия, применяемые к полям, для которых в предложении SELECT вычисляется сводное значение.

Нет

Термины SQL

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






Термин SQL


Сопоставимая часть речи


Определение


Пример

идентификатор

существительное

Имя, используемое для идентификации объекта базы данных, например имя поля.

Клиенты.[НомерТелефона]

оператор

глагол или наречие

Ключевое слово, которое представляет действие или изменяет его.

AS

константа

существительное

Значение, которое не изменяется, например число или NULL.

42

выражение

прилагательное

Сочетание идентификаторов, операторов, констант и функций, предназначенное для вычисления одного значения.

>= Товары.[Цена]


К началу страницы


Основные предложения SQL: SELECT, FROM и WHERE

Общий формат инструкций SQL:


SELECT field_1
FROM table_1
WHERE criterion_1
;



Примечания: 

  • Access не учитывает разрывы строк в инструкции SQL. Несмотря на это, каждое предложение рекомендуется начинать с новой строки, чтобы инструкцию SQL было удобно читать как тому, кто ее написал, так и всем остальным.

  • Каждая инструкция SELECT заканчивается точкой с запятой (;). Точка с запятой может стоять как в конце последнего предложения, так и на отдельной строке в конце инструкции SQL.

Пример в Access

В приведенном ниже примере показано, как в Access может выглядеть инструкция SQL для простого запроса на выборку.

1. Предложение SELECT

2. Предложение FROM

3. Предложение WHERE

Эту инструкцию SQL следует читать так: «Выбрать данные из полей «Адрес электронной почты» и «Компания» таблицы «Контакты», а именно те записи, в которых поле «Город» имеет значение «Ростов».

Разберем пример по предложениям, чтобы понять, как работает синтаксис SQL.

Предложение SELECT


SELECT [E-mail Address], Company

Это предложение SELECT. Оно содержит оператор (SELECT), за которым следуют два идентификатора («[Адрес электронной почты]» и «Компания»).

Если идентификатор содержит пробелы или специальные знаки (например, «Адрес электронной почты»), он должен быть заключен в прямоугольные скобки.

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

В инструкции SELECT предложение SELECT всегда стоит перед предложением FROM.

Предложение FROM


FROM Contacts

Это предложение FROM. Оно содержит оператор (FROM), за которым следует идентификатор (Контакты).

В предложении FROM не указываются поля для выборки.

Предложение WHERE


WHERE City=»Seattle»

Это предложение WHERE. Оно содержит оператор (WHERE), за которым следует выражение (Город=»Ростов»).


Примечание: В отличие от предложений SELECT и FROM, предложение WHERE является необязательным элементом инструкции SELECT.

С помощью предложений SELECT, FROM и WHERE можно выполнять множество действий. Дополнительные сведения об использовании этих предложений см. в следующих статьях:


К началу страницы


Сортировка результатов: ORDER BY

Как и в Microsoft Excel, в Access можно сортировать результаты запроса в таблице. Используя предложение ORDER BY, вы также можете указать способ сортировки результатов при выполнении запроса. Если используется предложение ORDER BY, оно должно находиться в конце инструкции SQL.

Предложение ORDER BY содержит список полей, для которых нужно выполнить сортировку, в том же порядке, в котором будут применена сортировка.

Предположим, например, что результаты сначала нужно отсортировать по полю «Компания» в порядке убывания, а затем, если присутствуют записи с одинаковым значением поля «Компания», — отсортировать их по полю «Адрес электронной почты» в порядке возрастания. Предложение ORDER BY будет выглядеть следующим образом:


ORDER BY Company DESC, [E-mail Address]


Примечание: По умолчанию Access сортирует значения по возрастанию (от А до Я, от наименьшего к наибольшему). Чтобы вместо этого выполнить сортировку значений по убыванию, необходимо указать ключевое слово DESC.

Дополнительные сведения о предложении ORDER BY см. в статье Предложение ORDER BY.


К началу страницы


Работа со сводными данными: предложения GROUP BY и HAVING

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


SELECT COUNT([E-mail Address]), Company

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

Задание полей, которые не используются в агрегатной функции: предложение GROUP BY

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

Предложение GROUP BY должно следовать сразу же за предложением WHERE или FROM, если предложение WHERE отсутствует. В предложении GROUP BY поля указываются в том же порядке, что и в предложении SELECT.

Продолжим предыдущий пример. Пусть в предложении SELECT агрегатная функция применяется только к полю [Адрес электронной почты], тогда предложение GROUP BY будет выглядеть следующим образом:


GROUP BY Company

Дополнительные сведения о предложении GROUP BY см. в статье Предложение GROUP BY.

Ограничение агрегированных значений с помощью условий группировки: предложение HAVING

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

Предположим, например, что к первому полю в предложении SELECT применяется функция AVG (которая вычисляет среднее значение):


SELECT COUNT([E-mail Address]), Company

Если вы хотите ограничить результаты запроса на основе значения функции COUNT, к этому полю нельзя применить условие отбора в предложении WHERE. Вместо него условие следует поместить в предложение HAVING. Например, если нужно, чтобы запрос возвращал строки только в том случае, если у компании есть несколько адресов электронной почты, можно использовать следующее предложение HAVING:


HAVING COUNT([E-mail Address])>1


Примечание: Запрос может включать и предложение WHERE, и предложение HAVING, при этом условия отбора для полей, которые не используются в статистических функциях, указываются в предложении WHERE, а условия для полей, которые используются в статистических функциях, — в предложении HAVING.

Дополнительные сведения о предложении HAVING см. в статье Предложение HAVING.


К началу страницы


Объединение результатов запроса: оператор UNION

Оператор UNION используется для одновременного просмотра всех данных, возвращаемых несколькими сходными запросами на выборку, в виде объединенного набора.

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


Примечание: В запросах на объединение числовой и текстовый типы данных являются совместимыми.

Используя оператор UNION, можно указать, должны ли в результаты запроса включаться повторяющиеся строки, если таковые имеются. Для этого следует использовать ключевое слово ALL.

Запрос на объединение двух инструкций SELECT имеет следующий базовый синтаксис:


SELECT field_1
FROM table_1
UNION [ALL]
SELECT field_a
FROM table_a
;


Предположим, например, что имеется две таблицы, которые называются «Товары» и «Услуги». Обе таблицы содержат поля с названием товара или услуги, ценой и сведениями о гарантии, а также поле, в котором указывается эксклюзивность предлагаемого товара или услуги. Несмотря на то, что в таблицах «Продукты» и «Услуги» предусмотрены разные типы гарантий, основная информация одна и та же (предоставляется ли на отдельные продукты или услуги гарантия качества). Для объединения четырех полей из двух таблиц можно использовать следующий запрос на объединение:


SELECT name, price, warranty_available, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee_available, exclusive_offer
FROM Services
;


Дополнительные сведения об объединении инструкций SELECT с помощью оператора UNION см. в статье Просмотр объединенных результатов нескольких запросов с помощью запроса на объединение.


К началу страницы

НОУ ИНТУИТ | Основы SQL

Форма обучения:

дистанционная

Стоимость самостоятельного обучения:

бесплатно

Доступ:

свободный

Документ об окончании:

Уровень:

Для всех

Длительность:

16:15:00

Студентов:

32652

Выпускников:

3499

Качество курса:

4.06 | 3.65


Развернутое введение в SQL на основе стандарта SQL:1999. Обсуждаются типы данных, допускаемые в SQL; средства определения объектов базы данных; манипулирование данными; управление соединениями, сессиями и транзакциями; обеспечение безопасности; динамический и встроенный SQL.


На сегодняшний день (и в обозримом будущем) язык SQL является единственным признанным стандартом языка баз данных, поддерживаемым всеми основными поставщиками СУБД. С годами (а история SQL насчитывает уже около 30 лет) язык развивается и усложняется. Хорошее владение языком SQL является обязательным для профессиональных разработчиков приложений баз данных и их администраторов. Данный курс основан на последнем международном стандарте SQL:1999, хотя не охватывает все аспекты языка. В курс включены темы, являющиеся, во-первых, наиболее важными для пользователей и разработчиков приложений и, во-вторых, наиболее проработанными в текущей версии стандарта. Во вводной части курса обсуждаются история языка, его основные концепции, типы данных, допустимые в SQL. Приводится обзор подходов SQL к определению данных и манипулированию ими. В основной части последовательно обсуждаются следующие темы: значения, базовые функции и выражения SQL; арифметические выражения с переключателями и преобразованием типа, выражения со строковыми значениями; виды предикатов, допустимых в логических выражениях; соединения и теоретико-множественные операции; виды выражений запросов; ограничения целостности и ссылочная целостность; триггеры; встроенный SQL и язык модулей; принципы работы с курсорами; привилегии, пользователи и безопасность; управление транзакциями; управление соединениями и удаленный доступ к базам данных; хранимые процедуры и функции; динамический SQL; интерфейс уровня вызовов; диагностика и управление ошибочными ситуациями; вопросы интернационализации и локализации; информационная схема.


ISBN: 978-5-9556-0101-4

Теги: BOF, isolation level, java, READ COMMITTED, sql, администрирование, базы данных, безопасность, динамический sql, драйверы, клиенты, кортеж отношения, ограничение внешнего ключа, ограничения целостности данных, потенциальный ключ, приложения, процедуры, реляционные базы данных, серверы, сортировка, статический sql, телефоны, теория, уровень изоляции, целостность, элементы


Предварительные курсы


Дополнительные курсы

 

2 часа 30 минут


Введение в структурированный язык запросов SQL

Дается определение структурированного языка запросов SQL. Вводится понятие базы данных, реляционной базы данных, СУБД. Определяется место языка SQL в разработке информационных систем, организованных на основе технологии клиент-сервер. Приводится классификация команд SQL: определение структуры базы данных, манипулирование данными, выборка данных, управление данными, команды администрирования данных и управления транзакциями. Дается описание учебной базы данных.


Определение структуры данных

Рассматриваются поддерживаемые в SQL типы данных и преобразование типов. Описывается создание пользовательских типов данных. Дается понятие выражения и оператора в SQL. Приводится определение основных объектов базы данных: таблиц, представлений, индексов, ограничений, правил, хранимых процедур, функций пользователя, триггеров.


Создание базы данных и проектирование таблиц

Определяется процесс создания базы данных. Описываются операторы
создания, изменения базы данных. Рассматривается возможность указания
имени файла или нескольких файлов для хранения данных, размеров и
местоположения файлов. Анализируются операторы создания, изменения,
удаления пользовательских таблиц. Приводится описание параметров для
объявления столбцов таблицы. Дается понятие и характеристика
индексов. Рассматриваются операторы создания и изменения индексов.
Определяется роль индексов в повышении эффективности выполнения
операторов SQL.


Эффективное выполнение запросов для извлечения данных

Дается синтаксис оператора SELECT. Описываются предложение FROM и
использование синонимов. Определяется построение условий выбора
данных с применением операторов сравнения, логических операторов IS
NULL, BETWEEN, IN, LIKE и логических связок OR и AND. Предлагаются
способы использования оператора ORDER BY для сортировки записей в
запросах выборки.


Соединения и теоретико-множественные операции над отношениями

Рассматриваются специальные операции над отношениями: выборка, проекция, декартово произведение, соединение. Приводятся различные типы соединений: соединение по эквивалентности, естественное, внешнее соединение, полусоединение. Операции над отношениями иллюстрируются на примерах оператора SELECT. Рассматриваются примеры выбора данных из нескольких таблиц. Приводится объединение результатов нескольких запросов.


Вычисления и подведение итогов в запросах

Описывается использование арифметических операторов и построение вычисляемых столбцов. Рассматриваются итоговые (агрегатные) функции COUNT, SUM, AVG, MAX, MIN. Дается пример использования оператора GROUP BY для группировки в запросах выборки данных. Описывается применение предложения HAVING.


Построение нетривиальных запросов

Дается определение подзапроса. Приводятся примеры формирования вложенных подзапросов. Показывается способ построения подзапросов, возвращающих множественные и единичные значения с использованием операторов EXISTS, ALL, ANY.


Запросы модификации данных

Рассматриваются запросы модификации данных в реляционной таблице: вставка отдельной записи INSERTѕ VALUESѕ или группы записей из имеющейся таблицы INSERTѕ SELECTѕ, удаление записей по условию DELETE, изменение записей по условию UPDATE. Вводится понятие целостности данных. Определяются целостность сущностей и ссылочная целостность.


Определение ограничений целостности

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


Представления

Дается понятие представлений. Определяется роль представлений в вопросах безопасности данных. Описывается процесс управления представлениями: создание, изменение, применение, удаление представлений.


Функции пользователя

Дается определение функций пользователя, приводятся примеры их создания и использования. Рассматриваются различные типы функций. Анализируются встроенные функции языка SQL.


Хранимые процедуры

Определяется понятие хранимых процедур. Приводятся
примеры создания, изменения и использования хранимых процедур с
параметрами. Дается определение входных и выходных параметров.
Приводятся примеры создания и вызова хранимых процедур.


Курсоры: принципы работы

Дается определение курсора. Приводится описание его типов и
поведения: статические, динамические, последовательные и ключевые
курсоры. Описываются принципы управления курсором: создание и
открытие курсора, считывание данных, закрытие курсора. Приводятся
примеры программирования курсора.


Триггеры: создание и применение

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


Триггеры в рекурсивных структурах

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


Транзакции и блокировки

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


Основные методы защиты данных. Управление пользователями

Рассматривается система безопасности, принятая в языке SQL. Излагаются общие правила разграничения доступа. Описываются режимы аутентификации и компоненты структуры безопасности (пользователи, роли баз данных), администрирование системы безопасности (создание учетных записей и управление ими, управление пользователями и ролями). Дается определение прав пользователя на доступ к объектам базы данных. Рассматриваются неявные права, вопросы запрета доступа и неявного отклонения доступа, а также конфликты доступа.


Внедрение SQL-операторов в прикладные программы

Описываются возможности использования языка SQL в прикладных программах. Определяется роль технологии ODBC как единого интерфейса для доступа к смешанным базам данных SQL. Рассматриваются архитектура ODBC и варианты доступа к базам данных с использованием технологии ADO и Java. Методы доступа иллюстрируются примерами.

PSQL-Base. Основы языка SQL PostgreSQL

Уровень сложности:

Длительность курса: 40 ак.ч.

График обучения: 5 дней по 8 .ак.ч.


Аннотация

Этот курс предназначен для специалистов, которым необходимо получение фундаментальных знаний по программированию на языке SQL и особенностями его использования в СУБД PostgreSQL. А также знакомство с возможностями процедурного языка PL/pgSQL для разработки структурных блоков.

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

Учебные материалы курса на русском языке.


Знания и умения, полученные в результате обучения

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

знать:

  • принципы организации СУБД PostgreSQL;
  • теоретические основы средств манипулирования данными в реляционной модели PostgreSQL;
  • факторы, влияющие на производительность выполнения запросов.

уметь:

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

владеть:

  • навыками использования языка SQL для работы с базами данных;
  • навыками работы в среде разработки pgAdmin III;
  • методиками выявления узких мест производительности.

Полезные Интернет-ссылки

Официальная страница PostrgeSQL доступна здесь


Курсы связанных направлений


20 000 ₽


Расчёт стоимости с учётом возможных скидок



24 400 ₽



Скидки предоставляются в зависимости от количества слушателей,
суммы договора и других условий, оговариваемых с Заказчиком.


17 750 ₽


Скидки не предусмотрены


Расчёт стоимости с учётом возможных скидок представлен как справочная информация.
Фактический размер скидки может несколько отличаться из-за округления значения суммы.


Внимательно ознакомьтесь с условиями действующих
акций и скидок…

  • Навыки работы с операционной системы семейства Windows/Linux;
  • Навыки работы с реляционными базами данных.

1. Введение PostgreSQL

  • Введение PostgreSQL и инструменты администрирования.
  • Основы SQL.

Лабораторная работа: Работа с утилитами PostgreSQL.

2. Извлечение данных с использованием SQL оператора SELECT.

  • Создание простых запросов без использования фильтрации.
  • Удаление дубликатов записей и работа с Null-значениями.

Лабораторная работа: Написание простых SELECT запросов.

3. Типы данных.

  • Знакомство с основными типами данных.
  • Особенности работы с данными разного типа. Псевдо-типы.

Лабораторная работа: Работа с типами данных PostgreSQL.

4. Фильтрация и сортировка результирующих наборов.

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

Лабораторная работа: Сортировка и фильтрация данных.

5. Использование встроенных функций.

  • Обзор встроенных функций.
  • Использование базовых встроенных функций.

Лабораторная работа: Использование встроенных функций.

6. Выборка данных из нескольких таблиц.

  • Обзор основных типов объединений.
  • Написание запросов с использованием различных типов объединений.

Лабораторная работа: Написание многотабличных запросов.

7. Группировка и агрегирование данных.

  • Группировка данных.
  • Агрегирование данных.
  • Фильтрация групп.

Лабораторная работа: Группировка и агрегирование данных.

8. Подзапросы.

  • Назначение и типы подзапросов.
  • Написание автономных вложенных подзапросов.
  • Коррелированные подзапросы. Использование предиката EXISTS в подзапросах.

Лабораторная работа: Использование подзапросов.

9. Использование операторов наборов записей.

  • Объединение результирующих наборов записей.
  • Написание запросов с использованием INTERSECT и EXCEPT.
  • Общие табличные выражения (CTE) и использование представлений.

Лабораторная работа: Использование операторов наборов строк.

10. Использование оконных функций.

  • Обзор оконных функций.
  • Написание запросов с использованием оконных функций.

Лабораторная работа: Использование оконных функций.

11. Массивы и конструкторы строк.

  • Использование массивов.
  • Использование конструкторов строк.

Лабораторная работа: Использование массивов.

12. Манипулирование данными.

  • Добавление данных в таблицу.
  • Изменение и удаление существующих записей.

Лабораторная работа: Написание запросов для модификации данных.

13. Управление транзакциями.

  • Правила ACID, понятие транзакции.
  • Управление транзакциями.

Лабораторная работа: Использование транзакций.

14. Элементы программирования.

  • Понятие процедурного языка. Использование PL/pgSQL.
  • Основные управляющие конструкции. Обработка исключений.

Лабораторная работа: Работа с функциями PL/pgSQL.

15. Работа с метаданными.

  • Использование представлений системного каталога, системных таблиц и функций.

Лабораторная работа: Запросы к метаданным.

16. Вопросы производительности запросов.

  • Общие рекомендации по написанию производительных запросов.
  • Использование оператора Explain.

Лабораторная работа: Написание производительных запросов.

Язык SQL. Курс «Введение в реляционные базы данных»

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

В случае SQL человек формулирует запрос на извлечение или модификацию данных, а алгоритм его выполнения почти полностью ложится на плечи конкретной СУБД. Хотя если один и тот же результат может быть получен с помощью разных запросов, программисту лучше выбрать тот, который создаст меньшую нагрузку на СУБД. То есть программисту желательно иметь представление о том, как работает СУБД.

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

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

Однако в процессе развития языка SQL в нем появились новые средства. Стало возможно описывать и хранить такие объекты как индексы, представления, триггеры и процедуры. То есть в современных диалектах SQL есть элементы процедурных языков.

Язык SQL и СУБД обычно не используются сами по себе, а выполняют функцию промежуточного встроенного компонента, обеспечивающего связь между прикладным ПО или программой, которую пишет программист, и базой данных. В языках программирования существуют свои библиотеки, обеспечивающие API для различных СУБД.

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

Операторы делятся на:

  1. операторы определения данных (Data Definition Language, DDL)

    • CREATE создаёт объект БД (базу данных, таблицу, представление, пользователя и т. д.)

    • ALTER изменяет объект

    • DROP удаляет объект

  2. операторы манипуляции данными (Data Manipulation Language, DML)

    • SELECT выбирает данные, удовлетворяющие заданным условиям

    • INSERT добавляет новые данные

    • UPDATE изменяет существующие данные

    • DELETE удаляет данные

  3. операторы определения доступа к данным (Data Control Language, DCL)

    • GRANT предоставляет пользователю или группе разрешения на определённые операции с объектом

    • REVOKE отзывает ранее выданные разрешения

    • DENY задаёт запрет, имеющий приоритет над разрешением

  4. операторы управления транзакциями (Transaction Control Language, TCL)

    • COMMIT применяет транзакцию

    • ROLLBACK откатывает все изменения, сделанные в контексте текущей транзакции

    • SAVEPOINT делит транзакцию на более мелкие участки

Стандарты SQL позволяют обеспечить переносимость баз данных между разными СУБД. На самом деле это весьма условно. Разные СУБД используют свои диалекты SQL. Например, SQLite не понимает ряд типов данных.

В разных СУБД есть свои расширения для придания SQL «процедурности». Это хранимые процедуры (stored procedures) и процедурные языки-надстройки. Так в Oracle Database используется PL/SQL, в PostgreSQL – PL/pgSQL.

Несмотря на наличие диалектов, запросы, содержащие только DDL и DML, обычно переносимы между разными СУБД.

Лабораторная работа. Основы языка sql.

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

Для
подготовки запросов в различных СУБД
чаще всего используется язык SQL (Structured
Query Language) – структурированный язык
запросов.

Язык
SQL предназначен для выполнения операций
над таблицами (создание, удаление,
изменение структуры) и над данными
таблиц (выборка, изменение, добавление,
удаление), и некоторых сопутствующих
операций с помощью операций реляционной
алгебры. В своей базовой версии, SQL
является непроцедурным языком и не
содержит операторов управления,
организации подпрограмм, ввода-вывода
и т.п. В связи с этим SQL обычно встраивается
в СУБД.

В
некоторых СУБД с интерактивным интерфейсом
можно создавать запросы с помощью языка
визуальных запросов, однако применение
SQL часто позволяет повысить эффективность
обработки данных. Так, при подготовке
запроса в ACCESS можно перейти из окна
Конструктора запросов (визуальное
формулирование запроса) в окно с
эквивалентным оператором SQL. Новый
запрос можно создать путем редактирования
уже имеющегося запроса или программированием
нового.

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

      1. Основные операторы языка.

Вид

Название

Название

 

DDL

Create table

Создание таблиц

Drop Table

Удаление таблицы

Alter Table

Изменение структуры таблицы

Create Index

Создание индекса

Drop Index

Создание представления

Create View

Создание представления

 

DML

Select

Выборка записей

Update

Изменение записей

Insert

Вставка новых записей

Delete

Удаление записей

Оператор
выборки SELECT содержит несколько инструкций:
FROM, WHERE, GROUP BY, HAVING, ORDER BY. Последние четыре
необязательны.

Синтаксис оператора SELECT имеет следующий
вид:

SELECT
[ALL|DISTINCT](<Список полей>|*)
FROM       
<Список таблиц>
[WHERE     
<Предикат-условие выборки или
соединения>]
[GROUP BY   <Список
полей результата>]
[HAVING    
<Предикат-условие для группы>]
[ORDER
BY   <Список полей, по которым
упорядочить вывод>]

Здесь
ключевое слово ALL означает, что в
результирующий набор строк включаются
все строки, удовлетворяющие условиям
запроса. Т.е. в результирующий набор
могут попасть одинаковые строки. И это
— нарушение принципов теории отношений
(в отличие от реляционной алгебры, где
по умолчанию предполагается отсутствие
дубликатов в каждом результирующем
отношении). DISTINCT означает, что в
результирующий набор включаются только
различные строки, т. е. дубликаты строк
результата исключаются.
Символ *
(звездочка) означает, что в результирующий
набор включаются все столбцы из исходных
таблиц запроса.
В разделе FROM задается
перечень исходных отношений (таблиц)
запроса.
В разделе WHERE задаются условия
отбора строк результата или условия
соединения кортежей исходных таблиц,
подобно операции условного соединения
в реляционной алгебре.
В разделе GROUP
BY задается список полей группировки.

В разделе HAVING задаются предикаты-условия,
накладываемые на каждую группу.
В
части ORDER BY задается список полей
упорядочения результата, то есть список
полей, который определяет порядок
сортировки в результирующем отношении.
Например, если первым полем списка будет
указана Фамилия, а вторым Номер
группы
, то в результирующем отношении
сначала будут собраны в алфавитном
порядке фамилии, и если найдутся
однофамильцы, то они будут расположены
в порядке возрастания номеров групп.

Основы языка SQL. (Лекция 3)

1. Основы языка SQL

Лекция 3.
SQLмашина
Реляционная база данных может быть представлена как SQL-машина.
Язык SQL (Structured Query Language, язык
SQL-запрос
СУБД
структурированных запросов) –
специализированный язык, предназначенный
ответ
для написания запросов к реляционной БД.
Основная единица — SQL-оператор.
Запрос к БД — один или несколько операторов языка,
интерпретируемых СУБД и позволяющих создать,
модифицировать, удалить саму БД и ее объекты.
API File System
OS
считанные
данные
SQL: 1970гг впервые разработан IBM для System R, назывался SEQUEL;
Стандарты: ANSI/SQL 1986г (первый), SQL-92, SQL-2003, SQL-2006, SQL-2008.
Первая коммерческая СУБД, поддерживающая SQL — Oracle V2 на машинах VAX.
SQL — декларативный язык; процедурные расширения; T-SQL, PL/SQL.
Операторы SQL делятся на несколько непересекающихся групп:
1. DDL (Data Definition Language, язык определения данных),
2. DCL (Data Control Language, язык управления данными),
3. DML (Data Manipulation Language, язык манипулирования данными),
4. TCL (Transaction Control Language, язык управления транзакциями).
БД
Операторы DDL SQL
Операторы DDL предназначены для создания, удаления и изменения объектов БД или сервера СУБД.
DDL SQL
CREATE
Создание объектов БД:
create тип имя дополнение
Пример создания БД:
ALTER
DROP
Пример создания таблицы:
Пример создания статической функции:
Операторы DDL SQL
Модификация объектов БД:
alter тип имя дополнение
Операторы DDL SQL
Удаление объектов БД:
drop тип имя
Операторы DML SQL
DML SQL
SELECT
Иногда к этой группе относят оператор TRUNCATE – очистка таблицы.
Выборка строк из таблиц:
select список дополнение
INSERT
DELELE
UPDATE
Добавление строк в таблицу:
insert into таблица дополнение
Операторы DML SQL
Удаление строк из таблиц:
Изменение строк в таблицах:
delete from таблица дополнение
update таблица дополнение
TCL SQL
BEGIN TRAN
Операторы TCL SQL
Операторы TCL предназначены для создания транзакций (несколько DMLоператоров, которые либо все успешно выполнятся, либо все не выполняются).
Начало транзакции:
SAVE TRAN
COMMIT TRAN
ROLLBACK TRAN
begin tran дополнение
Фиксация транзакции:
commit tran дополнение
Откат транзакции:
rollback tran дополнение
Создание контрольной
точки транзакции:
save tran дополнение
DCL SQL
GRANT
REVOKE
DENY
Операторы DCL SQL
Предназначены для управления процессом авторизации (процедурой проверки
разрешений (permission) на выполнения определенных операций). Авторизация
может выполняться на двух уровнях (у каждого свой перечень DCL-операций): на
уровне сервера или на уровне БД.
Разрешениями могут обладать специальные объекты сервера (типа Login) или БД
(типа User), которые объединены под общим названием – принципалы.
Выдача разрешений:
grant список on объект to принципал
Отобрать разрешения:
revoke список on объект from принципал
Запретить разрешения, выданные ранее:
deny список on объект to принципал

Введение в SQL


SQL — это стандартный язык для доступа к базам данных и управления ими.


Что такое SQL?

  • SQL — это аббревиатура от языка структурированных запросов
  • .

  • SQL позволяет получать доступ к базам данных и управлять ими
  • SQL стал стандартом Американского национального института стандартов (ANSI)
    в 1986 г. и Международной организации по стандартизации (ISO) в
    1987

Что умеет SQL?

  • SQL может выполнять запросы к базе данных
  • SQL может извлекать данные из базы данных
  • SQL может вставлять записи в базу данных
  • SQL может обновлять записи в базе данных
  • SQL может удалять записи из базы данных
  • SQL может создавать новые базы данных
  • SQL может создавать новые таблицы в базе данных
  • SQL может создавать хранимые процедуры в базе данных
  • SQL может создавать представления в базе данных
  • SQL может устанавливать разрешения для таблиц, процедур и представлений

SQL — это Стандарт — НО….

Хотя SQL является стандартом ANSI / ISO, существуют разные версии языка SQL.

Однако, чтобы соответствовать стандарту ANSI, все они поддерживают, по крайней мере, основные команды (например,
ВЫБЕРИТЕ
, ОБНОВЛЕНИЕ ,
УДАЛИТЬ
, ВСТАВИТЬ ,
WHERE
) аналогичным образом.

Примечание: Большинство программ баз данных SQL также имеют собственные проприетарные расширения в дополнение к стандарту SQL!


Использование SQL на вашем веб-сайте

Для создания веб-сайта, отображающего данные из базы данных, вам потребуется:

  • Программа базы данных СУБД (т.е. MS Access, SQL Server, MySQL)
  • Для использования языка сценариев на стороне сервера, такого как PHP или ASP
  • Использование SQL для получения нужных данных
  • Использование HTML / CSS для стилизации страницы

РСУБД

RDBMS — это система управления реляционными базами данных.

СУБД

является основой для SQL и для всех современных систем баз данных, таких как MS SQL Server, IBM DB2, Oracle, MySQL и Microsoft Access.

Данные в СУБД хранятся в объектах базы данных, называемых таблицами.Таблица — это набор связанных записей данных, состоящий из столбцов и строк.

Посмотрите в таблице «Клиенты»:

Каждая таблица разбита на более мелкие объекты, называемые полями. Поля в
таблица клиентов состоит из идентификатора клиента, имени клиента, имени контакта, адреса,
Город, почтовый индекс и страна. Поле — это столбец в таблице, предназначенный для поддержки
конкретная информация о каждой записи в таблице.

Запись, также называемая строкой, — это каждая отдельная запись, существующая в таблице.Например, в приведенной выше таблице «Клиенты» 91 запись. Рекорд — это
горизонтальный объект в таблице.

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

Основы SQL — Практическое руководство по SQL для новичков Анализ совместного использования велосипедов

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

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

Если вы хотите продолжить, вы можете загрузить файл hubway.db здесь (130 МБ).

Основы SQL: реляционные базы данных

Реляционная база данных — это база данных, которая хранит связанную информацию в нескольких таблицах и позволяет запрашивать информацию в нескольких таблицах одновременно.

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

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

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

С реляционной базой данных, подобной той, что показана на диаграмме выше, вы избегаете всех этих проблем.Вы можете настроить две таблицы, одну для заказов и одну для клиентов. Таблица «клиенты» будет включать уникальный идентификационный номер для каждого клиента, а также имя, адрес и номер телефона, которые мы уже отслеживаем. Таблица «заказы» будет включать номер вашего заказа, дату, сумму к оплате, номер отслеживания и, вместо отдельного поля для каждого элемента данных о клиенте, в ней будет столбец для идентификатора клиента.

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

Наш набор данных

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

  • id — Уникальное целое число, которое служит ссылкой для каждой поездки
  • duration — Продолжительность поездки, измеряется в секундах
  • start_date — Дата и время начала поездки
  • start_station — Целое число, которое соответствует столбцу id в таблице станций для станции, с которой началась поездка
  • .

  • end_date — Дата и время окончания поездки
  • end_station — ‘id’ станции, на которой завершилась поездка на
  • bike_number — Уникальный идентификатор Hubway для велосипеда, использованного в поездке.
  • sub_type — Тип подписки пользователя. «Зарегистрированный» для пользователей с членством, «Обычный» для пользователей без членства
  • zip_code — Почтовый индекс пользователя (доступен только для зарегистрированных пользователей)
  • Birth_date — Год рождения пользователя (доступно только для зарегистрированных участников)
  • пол — Пол пользователя (доступно только для зарегистрированных пользователей)

Наш анализ

С этой информацией и командами SQL, которые мы вскоре узнаем, вот несколько вопросов, на которые мы попытаемся ответить в ходе этого поста:

  • Какова была самая длинная поездка?
  • Сколько поездок совершили «зарегистрированные» пользователи?
  • Какая была средняя продолжительность поездки?
  • Бывают ли более длительные поездки зарегистрированные или случайные пользователи?
  • Какой велосипед использовался для большинства поездок?
  • Какова средняя продолжительность поездок пользователей старше 30 лет?

Для ответа на эти вопросы мы будем использовать команды SQL:

  • ВЫБРАТЬ
  • ГДЕ
  • ПРЕДЕЛ
  • ЗАКАЗАТЬ ПО
  • ГРУППА ПО
  • И
  • ИЛИ
  • МИН.
  • МАКС
  • СРЕДНЕЕ
  • СУММ
  • СЧЕТ

Установка и настройка

В этом руководстве мы будем использовать систему баз данных под названием SQLite3.SQLite входит в состав Python начиная с версии 2.5, поэтому, если у вас установлен Python, у вас почти наверняка будет SQLite. Python и библиотеку SQLite3 можно легко установить и настроить с помощью Anaconda, если у вас их еще нет.

Использование Python для запуска нашего кода SQL позволяет нам импортировать результаты в фреймворк Pandas, чтобы упростить отображение наших результатов в удобном для чтения формате. Это также означает, что мы можем выполнять дальнейший анализ и визуализацию данных, которые мы извлекаем из базы данных, хотя это выходит за рамки данного руководства.

В качестве альтернативы, если мы не хотим использовать или устанавливать Python, мы можем запустить SQLite3 из командной строки. Просто загрузите «предварительно скомпилированные двоичные файлы» с веб-страницы SQLite3 и используйте следующий код для открытия базы данных:

  ~ $ sqlite hubway.db Версия SQLite 3.14.0 2016-07-26 15: 17: 14 Введите ".help" для использования hints.sqlite>  

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

Альтернативой использованию терминала является подключение к базе данных SQLite через Python.Это позволит нам использовать записную книжку Jupyter, чтобы мы могли видеть результаты наших запросов в аккуратно отформатированной таблице.

Для этого мы определим функцию, которая принимает наш запрос (сохраненный в виде строки) в качестве входных данных и отображает результат в виде отформатированного фрейма данных:

  импорт sqlite3
импортировать панд как pd
db = sqlite3.connect ('hubway.db')
def run_query (запрос):
    вернуть pd.read_sql_query (запрос, db)  

Конечно, нам не обязательно использовать Python с SQL. Если вы уже являетесь программистом R, наш курс «Основы SQL для пользователей R» станет отличным местом для начала.

ВЫБРАТЬ

Первая команда, с которой мы будем работать, — это SELECT . SELECT будет основой почти каждого написанного нами запроса — он сообщает базе данных, какие столбцы мы хотим видеть. Мы можем указать столбцы по имени (через запятую) или использовать подстановочный знак * для возврата каждого столбца в таблице.

Помимо столбцов, которые мы хотим получить, мы также должны указать базе данных, из какой таблицы их получить. Для этого мы используем ключевое слово FROM , за которым следует имя таблицы.Например, если мы хотим видеть start_date и bike_number для каждой поездки в таблице trips , мы могли бы использовать следующий запрос:

  ВЫБРАТЬ start_date, bike_number ИЗ поездок;  

В этом примере мы начали с команды SELECT , чтобы база данных знала, что мы хотим, чтобы она нашла нам некоторые данные. Затем мы сообщили базе данных, что нас интересуют столбцы start_date и bike_number .Наконец, мы использовали FROM , чтобы сообщить базе данных, что столбцы, которые мы хотим видеть, являются частью таблицы trips .

Одна важная вещь, о которой следует помнить при написании SQL-запросов, заключается в том, что мы хотим заканчивать каждый запрос точкой с запятой (; ). Не каждая база данных SQL на самом деле требует этого, но некоторые требуют, поэтому лучше сформировать эту привычку.

ПРЕДЕЛ

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

Запрос SELECT , который мы рассмотрели в предыдущем разделе, будет возвращать запрошенную информацию для каждой строки в таблице поездок , но иногда это может означать большой объем данных. Мы можем не захотеть всего этого. Если бы вместо этого мы хотели видеть start_date и bike_number для первых пяти поездок в базе данных, мы могли бы добавить LIMIT к нашему запросу следующим образом:

  ВЫБРАТЬ start_date, bike_number ИЗ поездок LIMIT 5;  

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

Мы будем часто использовать LIMIT в наших запросах к базе данных Hubway в этом руководстве — таблица поездок содержит более 1,5 миллионов строк данных, и нам, конечно, не нужно отображать их все!

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

  query = 'ВЫБРАТЬ * ИЗ ОТКЛЮЧЕНИЯ ОГРАНИЧЕНИЯ 5;'
run_query (запрос)  
id продолжительность start_date start_station end_date конечная_станция номер велосипеда подтип почтовый индекс дата рождения пол
0 1 9 28.07.2011 10:12:00 23 28.07.2011 10:12:00 23 B00468 Зарегистрировано ‘97217 1976.0 Мужской
1 2 220 28.07.2011 10:21:00 23 28.07.2011 10:25:00 23 B00554 Зарегистрировано ‘02215 1966,0 Мужской
2 3 56 28.07.2011 10:33:00 23 28.07.2011 10:34:00 23 B00456 Зарегистрировано ‘02108 1943 г.0 Мужской
3 4 64 28.07.2011 10:35:00 23 28.07.2011 10:36:00 23 B00554 Зарегистрировано ‘02116 1981,0 Женский
4 5 12 28.07.2011 10:37:00 23 28.07.2011 10:37:00 23 B00554 Зарегистрировано ‘97214 1983.0 Женский

Этот запрос использует * в качестве подстановочного знака вместо указания возвращаемых столбцов. Это означает, что команда SELECT дала нам каждый столбец в таблице trip . Мы также использовали функцию LIMIT , чтобы ограничить вывод первыми пятью строками таблицы.

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

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

  query = 'ВЫБЕРИТЕ продолжительность, начальная_дата ИЗ ПРЕДЕЛ 5 отключений'
run_query (запрос)  
продолжительность start_date
0 9 28.07.2011 10:12:00
1 220 28.07.2011 10:21:00
2 56 28.07.2011 10:33:00
3 64 28.07.2011 10:35:00
4 12 28.07.2011 10:37:00

ЗАКАЗАТЬ В

Последняя команда, которую нам нужно знать, прежде чем мы сможем ответить на первый из наших вопросов, — это ORDER BY .Эта команда позволяет нам отсортировать базу данных по заданному столбцу.

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

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

  ЗАКАЗАТЬ ПО продолжительности ASC  

С помощью команд SELECT , LIMIT, и ORDER BY в нашем репертуаре мы можем теперь попытаться ответить на наш первый вопрос: Какова была продолжительность самой продолжительной поездки?

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

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

  • Используйте SELECT для получения продолжительности столбец ИЗ отключений таблица
  • Используйте ORDER BY для сортировки столбца длительности и используйте ключевое слово DESC , чтобы указать, что вы хотите отсортировать в порядке убывания
  • Используйте LIMIT , чтобы ограничить вывод одной строкой

Использование этих команд таким образом вернет единственную строку с самой длинной продолжительностью, которая даст нам ответ на наш вопрос.

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

Давайте продолжим и запустим этот запрос и выясним, как долго длилась самая длинная поездка.

  запрос = '' '
ВЫБЕРИТЕ ДЛИТЕЛЬНОСТЬ ИЗ поездок
ЗАКАЗАТЬ ПО длительности DESC
LIMIT 1;
'' '
run_query (запрос)  

Теперь мы знаем, что самая длинная поездка длилась 9999 секунд, или чуть более 166 минут. Однако при максимальном значении 9999 мы не знаем, действительно ли это длина самой длинной поездки или база данных была настроена только для четырехзначного числа.

Если правда, что база данных сокращает особенно длинные поездки, то мы можем ожидать увидеть много поездок на 9999 секундах, где они достигают предела.Давайте попробуем выполнить тот же запрос, что и раньше, но скорректируем LIMIT так, чтобы он возвращал 10 самых высоких значений длительности, чтобы проверить, так ли это:

  запрос = '' '
ВЫБЕРИТЕ ДЛИТЕЛЬНОСТЬ ОТ поездок
ЗАКАЗАТЬ ПО длительности DESC
ПРЕДЕЛ 10
'' '
run_query (запрос)  
продолжительность
0 9999
1 9998
2 9998
3 9997
4 9996
5 9996
6 9995
7 9995
8 9994
9 9994

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

Hubway взимает дополнительную плату за поездки продолжительностью более 30 минут (кто-то, кто держит велосипед в течение 9999 секунд, должен будет заплатить дополнительные 25 долларов США), поэтому вполне вероятно, что они решили, что 4-х значных цифр будет достаточно для отслеживания большинства поездок.

ГДЕ

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

  ГДЕ bike_number = "B00400"  

Вы также заметите, что в этом запросе мы используем кавычки. Это потому, что bike_number хранится в виде строки. Если столбец содержит числовые типы данных, в кавычках нет необходимости.

Давайте напишем запрос, который использует WHERE для возврата каждого столбца в таблице поездок для каждой строки с продолжительностью дольше 9990 секунд:

  запрос = '' '
ВЫБРАТЬ * ИЗ поездок
ГДЕ длительность> 9990;
'' '
run_query (запрос)  
id продолжительность start_date start_station end_date конечная_станция номер велосипеда подтип почтовый индекс дата рождения пол
0 4768 9994 2011-08-03 17:16:00 22 2011-08-03 20:03:00 24 B00002 Повседневный
1 8448 9991 2011-08-06 13:02:00 52 2011-08-06 15:48:00 24 B00174 Повседневный
2 11341 9998 2011-08-09 10:42:00 40 2011-08-09 13:29:00 42 B00513 Повседневный
3 24455 9995 2011-08-20 12:20:00 52 20.08.2011 15:07:00 17 B00552 Повседневный
4 55771 9994 14.09.2011 15:44:00 40 14.09.2011 18:30:00 40 B00139 Повседневный
5 81191 9993 2011-10-03 11:30:00 22 2011-10-03 14:16:00 36 B00474 Повседневный
6 89335 9997 09.10.2011 02:30:00 60 2011-10-09 05:17:00 45 B00047 Повседневный
7 124500 9992 2011-11-09 09:08:00 22 2011-11-09 11:55:00 40 B00387 Повседневный
8 133967 9996 2011-11-19 13:48:00 4 2011-11-19 16:35:00 58 B00238 Повседневный
9 147451 9996 23.03.2012 14:48:00 35 23.03.2012 17:35:00 33 B00550 Повседневный
10 315737 9995 2012-07-03 18:28:00 12 03.07.2012 21:15:00 12 B00250 Зарегистрировано ‘02120 1964 Мужской
11 319597 9994 05.07.2012 11:49:00 52 05.07.2012 14:35:00 55 B00237 Повседневный
12 416523 9998 15.08.2012 12:11:00 54 15.08.2012 14:58:00 80 B00188 Повседневный
13 541247 9999 26.09.2012 18:34:00 54 26.09.2012 21:21:00 54 T01078 Повседневный

Как мы видим, этот запрос вернул 14 различных поездок, каждая длительностью 9990 секунд или более.Что выделяется в этом запросе, так это то, что все результаты, кроме одного, имеют sub_type из "Casual" . Возможно, это показатель того, что «зарегистрированных» пользователей больше осведомлены о дополнительных сборах за дальние поездки. Возможно, Hubway сможет лучше донести свою структуру ценообразования до обычных пользователей, чтобы помочь им избежать дополнительных расходов.

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

Возвращаясь к WHERE , мы также можем объединить несколько логических тестов в нашем предложении WHERE , используя AND или OR . Если, например, в нашем предыдущем запросе мы хотели вернуть только поездки с продолжительностью более 9990 секунд, которые также имели подтип зарегистрированного, мы могли бы использовать И , чтобы указать оба условия.

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

Теперь давайте запустим этот запрос. Мы уже знаем, что он должен возвращать только один результат, поэтому будет легко убедиться, что мы все правильно поняли:

  запрос = '' '
ВЫБРАТЬ * ИЗ поездок
ГДЕ (продолжительность> = 9990) И (sub_type = "Зарегистрировано")
ЗАКАЗАТЬ ПО длительности DESC;
'' '
run_query (запрос)  
id продолжительность start_date start_station end_date конечная_станция номер велосипеда подтип почтовый индекс дата рождения пол
0 315737 9995 2012-07-03 18:28:00 12 03.07.2012 21:15:00 12 B00250 Зарегистрировано ‘02120 1964 г.0 Мужской

Следующий вопрос, который мы задали в начале поста, — «Сколько поездок совершили« зарегистрированные »пользователи?» Чтобы ответить на него, мы могли бы выполнить тот же запрос, что и выше, и изменить выражение WHERE , чтобы вернуть все строки, где sub_type равен 'Registered' , а затем подсчитать их.

Однако на самом деле в SQL есть встроенная команда для этого подсчета: COUNT .

COUNT позволяет перенести вычисления в базу данных и избавить нас от необходимости писать дополнительные скрипты для подсчета результатов. Чтобы использовать его, мы просто включаем COUNT (column_name) вместо (или в дополнение к) столбцов, которые вы хотите SELECT , например:

  ВЫБРАТЬ СЧЕТЧИК (id)
ИЗ поездок  

В этом случае не имеет значения, какой столбец мы выберем для подсчета, потому что каждый столбец должен содержать данные для каждой строки в нашем запросе.Но иногда в запросе могут отсутствовать (или быть «нулевые») значения для некоторых строк. Если мы не уверены, содержит ли столбец нулевые значения, мы можем запустить наш COUNT для столбца id — столбец id никогда не будет нулевым, поэтому мы можем быть уверены, что наш счетчик ничего не пропустил.

Мы также можем использовать COUNT (1) или COUNT (*) для подсчета каждой строки в нашем запросе. Стоит отметить, что иногда нам может потребоваться запустить COUNT для столбца с нулевыми значениями.Например, нам может потребоваться узнать, сколько строк в нашей базе данных имеют отсутствующие значения для столбца.

Давайте взглянем на запрос, чтобы ответить на наш вопрос. Мы можем использовать SELECT COUNT (*) для подсчета общего количества возвращенных строк и WHERE sub_type = "Registered" , чтобы убедиться, что мы подсчитываем только поездки, совершенные зарегистрированными пользователями.

  запрос = '' '
ВЫБРАТЬ КОЛИЧЕСТВО (*) ИЗ поездок
ГДЕ sub_type = "Зарегистрировано";
'' '
run_query (запрос)  

Этот запрос сработал и вернул ответ на наш вопрос.Но заголовок столбца не особо описательный. Если бы кто-нибудь еще взглянул на эту таблицу, он не смог бы понять, что это значит.

Если мы хотим сделать наши результаты более читабельными, мы можем использовать AS , чтобы дать нашему выводу псевдоним (или псевдоним). Давайте повторно запустим предыдущий запрос, но дадим нашему заголовку столбца псевдоним Всего поездок по зарегистрированным пользователям :

  запрос = '' '
ВЫБЕРИТЕ СЧЕТЧИК (*) КАК "Общее количество поездок зарегистрированных пользователей"
ИЗ поездок
ГДЕ sub_type = "Зарегистрировано";
'' '
run_query (запрос)  
Всего поездок по зарегистрированным пользователям
0 1105192

Агрегатные функции

COUNT — не единственная математическая уловка, которую SQL использует в своих рукавах.Мы также можем использовать SUM , AVG , MIN и MAX для возврата суммы, среднего, минимального и максимального значения столбца соответственно. Они, наряду с COUNT , известны как агрегатные функции.

Итак, чтобы ответить на наш третий вопрос, «Какова была средняя продолжительность поездки?» , мы можем использовать функцию AVG для столбца duration (и, опять же, использовать AS , чтобы дать нашему выходному столбцу более информативное имя):

  запрос = '' '
ВЫБЕРИТЕ СРЕДНЮЮ (продолжительность) КАК "Средняя продолжительность"
ОТ поездок;
'' '
run_query (запрос)  
Средняя продолжительность
0 912.409682

Получается, что средняя продолжительность поездки составляет 912 секунд, то есть примерно 15 минут. В этом есть смысл, поскольку мы знаем, что Hubway взимает дополнительную плату за поездки продолжительностью более 30 минут. Услуга предназначена для пассажиров, совершающих короткие поездки в одну сторону.

Что насчет нашего следующего вопроса, , совершают ли более длительные поездки зарегистрированные или случайные пользователи? Мы уже знаем один способ ответить на этот вопрос — мы могли бы запустить два запроса SELECT AVG (duration) FROM trips с предложениями WHERE , которые ограничивают один до "зарегистрированных" и один до "случайных" пользователей.

Но давайте сделаем по-другому. SQL также включает способ ответить на этот вопрос в одном запросе с помощью команды GROUP BY .

ГРУППА ПО

GROUP BY разделяет строки на группы в зависимости от содержимого определенного столбца и позволяет нам выполнять агрегированные функции для каждой группы.

Чтобы лучше понять, как это работает, давайте взглянем на столбец пол . Каждая строка может иметь одно из трех возможных значений в столбце пол : «Мужской», , «Женский», или Нулевой, (отсутствует; у нас нет данных пол для случайных пользователей).

Когда мы используем GROUP BY , база данных будет разделять каждую из строк в другую группу на основе значения в столбце , пол , почти так же, как мы могли бы разделить колоду карт на разные масти. . Мы можем представить себе две стопки, одну из самцов, одну из самок.

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

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

  • Как и в случае с каждым из наших запросов, мы начнем с SELECT , чтобы сообщить базе данных, какую информацию мы хотим видеть. В этом случае нам нужны sub_type и AVG (продолжительность) .
  • Мы также включим GROUP BY sub_type , чтобы разделить наши данные по типу подписки и отдельно вычислить средние значения зарегистрированных и случайных пользователей.

Вот как выглядит код, если собрать все вместе:

  запрос = '' '
ВЫБЕРИТЕ sub_type, AVG (продолжительность) AS "Средняя продолжительность"
ИЗ поездок
GROUP BY sub_type;
'' '
run_query (запрос)  
подтип Средняя продолжительность
0 Повседневный 1519.643897
1 Зарегистрировано 657.026067

Вот это большая разница! В среднем зарегистрированные пользователи совершают поездки продолжительностью около 11 минут, тогда как обычные пользователи тратят почти 25 минут на поездку.Зарегистрированные пользователи, вероятно, будут совершать более короткие и частые поездки, возможно, по дороге на работу. С другой стороны, обычные пользователи тратят примерно вдвое больше времени на поездку.

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

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

  запрос = '' '
ВЫБЕРИТЕ bike_number как "Номер велосипеда", COUNT (*) как "Количество поездок"
ИЗ поездок
ГРУППА ПО номеру велосипеда
ЗАКАЗАТЬ ПО КОЛИЧЕСТВУ (*) УДАЛЕНИЕ
LIMIT 1;
'' '
run_query (запрос)  
Номер велосипеда Количество поездок
0 B00490 2120

Как видно из выходных данных, наибольшее количество поездок ездил на велосипеде B00490 .Давайте разберемся, как мы туда попали:

  • Первая строка — это предложение SELECT , чтобы сообщить базе данных, что мы хотим видеть столбец bike_number и количество каждой строки. Он также использует AS , чтобы указать базе данных отображать каждый столбец с более удобным именем.
  • Во второй строке используется ИЗ , чтобы указать, что данные, которые мы ищем, находятся в таблице поездок .
  • В третьей строке начинаются сложности.Мы используем GROUP BY , чтобы указать функции COUNT в строке 1 подсчитывать каждое значение для bike_number отдельно.
  • В четвертой строке у нас есть предложение ORDER BY , чтобы отсортировать таблицу в порядке убывания и убедиться, что наш наиболее часто используемый велосипед находится наверху.
  • Наконец, мы используем LIMIT , чтобы ограничить вывод первой строкой, которая, как мы знаем, будет велосипедом, который использовался в наибольшем количестве поездок, из-за того, как мы отсортировали данные в четвертой строке.

Арифметические операторы

Наш последний вопрос немного сложнее остальных. Мы хотим знать среднюю продолжительность поездок зарегистрированных пользователей старше 30 лет .

Мы могли бы просто вычислить год, в котором 30-летние родились в наших головах, а затем подключить его, но более элегантное решение — использовать арифметические операции непосредственно в нашем запросе. SQL позволяет нам использовать + , - , * и / для выполнения арифметической операции сразу над всем столбцом.

  запрос = '' '
ВЫБРАТЬ СРЕДНЕЕ (длительность) ИЗ поездок
ГДЕ (2017 - дата рождения)> 30;
'' '
run_query (запрос)  
AVG (продолжительность)
0 923.014685

ПРИСОЕДИНЯЙТЕСЬ

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

Наша база данных по прокату велосипедов содержит вторую таблицу, станций . Таблица станций, содержит информацию о каждой станции в сети Hubway и включает столбец id , на который ссылается таблица поездок .

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

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

  ВЫБРАТЬ номер_заказа, имя
ОТ заказов;  

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

  • В какой таблице находится столбец order_number ?
  • В какой таблице находится столбец name ?
  • Как информация в таблице orders связана с информацией в таблице customers ?

Чтобы ответить на первые два из этих вопросов, мы можем включить имена таблиц для каждого столбца в нашу команду SELECT .Это делается просто путем записи имени таблицы и имени столбца, разделенных знаком . . Например, вместо SELECT order_number, name мы должны написать SELECT orders.order_number, customers.name . Добавление сюда имен таблиц помогает базе данных находить нужные столбцы, сообщая ей, в какой таблице искать каждый.

Чтобы сообщить базе данных, как связаны таблицы заказов, и клиентов, , мы используем JOIN и ON . JOIN указывает, какие таблицы должны быть связаны, а ON указывает, какие столбцы в каждой таблице связаны.

Мы собираемся использовать внутреннее соединение, что означает, что строки будут возвращаться только тогда, когда есть совпадения в столбцах, указанных в ON . В этом примере мы захотим использовать JOIN для той таблицы, которую мы не включили в команду FROM . Таким образом, мы можем использовать FROM заказов INNER JOIN клиентов или FROM клиентов INNER JOIN orders .

Как мы обсуждали ранее, эти таблицы связаны по столбцу customer_id в каждой таблице. Следовательно, мы захотим использовать ON , чтобы сообщить базе данных, что эти два столбца относятся к одному и тому же объекту, например:

  ON orders.customer_ID = customers.customer_id  

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

  ВЫБРАТЬ заказы.order_number, customers.name
ИЗ заказов
INNER JOIN клиенты
ON orders.customer_id = customers.customer_id  

Этот запрос вернет порядковый номер каждого заказа в базе данных вместе с именем клиента, который связан с каждым заказом.

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

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

  запрос = '' '
ВЫБРАТЬ * ИЗ станций
LIMIT 5;
'' '
run_query (запрос)  
id станция муниципалитет шир. lng
0 3 Колледжи Фенуэя Бостон 42.340021 -71.100812
1 4 Тремонт-стрит, Беркли-стрит, Бостон 42.345392 -71.069616
2 5 Северо-Восточный U / Северная парковка Бостон 42,34 1814 -71.0
3 6 Кембридж-стрит, Джой-стрит, Бостон 42,361284999999995 -71.06514
4 7 Причал вентилятора Бостон 42,35 3412 -71.044624
  • id — Уникальный идентификатор для каждой станции (соответствует столбцам start_station и end_station в таблице поездок )
  • станция — Название станции
  • муниципалитет — муниципалитет, в котором находится станция (Бостон, Бруклин, Кембридж или Сомервилль)
  • lat — Широта станции
  • lng — Долгота станции
  • Какие станции чаще всего используются для поездок туда и обратно?
  • Сколько поездок начинается и заканчивается в разных муниципалитетах?

Как и раньше, мы попытаемся ответить на некоторые вопросы в данных, начиная с , какая станция является наиболее частой отправной точкой? Давайте поработаем пошагово:

  • Сначала мы хотим использовать SELECT для возврата столбца station из таблицы station и COUNT количества строк.
  • Затем мы указываем таблицы, которые хотим JOIN , и говорим базе данных подключить их ON , столбец start_station в таблице поездок и столбец id в таблице станций .
  • Затем мы переходим к сути нашего запроса — мы GROUP BY столбец station в таблице station , чтобы наш COUNT подсчитывал количество поездок для каждой станции отдельно
  • Наконец, мы можем ЗАКАЗАТЬ ПО нашим COUNT и LIMIT вывод на управляемое количество результатов
  запрос = '' '
ВЫБЕРИТЕ станции.станция AS "Станция", COUNT (*) AS "Count"
ИЗ поездок INNER JOIN станции
ВКЛ. Trips.start_station = station.idGROUP BY station.station ORDER BY COUNT (*) DESC
LIMIT 5;
'' '
run_query (запрос)  
Станция Количество
0 Южный вокзал — 700 Атлантик авеню, 56123
1 Публичная библиотека Бостона — 700 Boylston St. 41994
2 Charles Circle — Charles St.на Кембридж-стрит 35984
3 Beacon St / Mass Ave 35275
4 MIT на Mass Ave / Amherst St 33644

Если вы знакомы с Бостоном, вы поймете, почему это самые популярные станции. Южный вокзал — одна из главных станций пригородной железной дороги в городе, Чарльз-стрит проходит вдоль реки рядом с красивыми живописными маршрутами, а улицы Бойлстон и Бикон находятся в самом центре города, рядом с несколькими офисными зданиями.

Следующий вопрос, который мы рассмотрим, — это , какие станции наиболее часто используются для поездок туда и обратно? Мы можем использовать тот же запрос, что и раньше. Мы будем ВЫБРАТЬ те же выходные столбцы и СОЕДИНЯТЬ с таблицами таким же образом, но на этот раз мы добавим предложение WHERE , чтобы ограничить наш COUNT поездками, где start_station совпадает с конечная станция .

  query = '' 'ВЫБРАТЬ станции. Станция КАК "Станция", СЧЁТ (*) КАК "Счетчик"
ИЗ поездок INNER JOIN станции
ПО поездкам.start_station = station.id
ГДЕ trips.start_station = trips.end_station
ГРУППА ПО станциям. Станции
ЗАКАЗАТЬ ПО КОЛИЧЕСТВУ (*) УДАЛЕНИЕ
LIMIT 5;
'' '
run_query (запрос)  
Станция Количество
0 Эспланада — Бикон-стрит на Арлингтон-стрит 3064
1 Чарльз Серкл — Чарльз-стрит, Кембридж-стрит, 2739
2 Публичная библиотека Бостона — 700 Boylston St. 2548
3 Бойлстон-стрит на Арлингтон-стрит 2163
4 Beacon St / Mass Ave 2144

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

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

Переходим к следующему вопросу: сколько поездок начинается и заканчивается в разных муниципалитетах? Этот вопрос продвигает дальше. Мы хотим знать, сколько поездок начинается и заканчивается в другом районе .Чтобы достичь этого, нам нужно JOIN , чтобы дважды переходил от таблицы к таблице станций . После ON столбец start_station , а затем ON столбец end_station .

Для этого мы должны создать псевдоним для таблицы station , чтобы мы могли различать данные, относящиеся к start_station , и данные, относящиеся к end_station . Мы можем сделать это точно так же, как мы создавали псевдонимы для отдельных столбцов, чтобы они отображались с более интуитивно понятным именем, используя AS .

Например, мы можем использовать следующий код для ПРИСОЕДИНЯЙТЕСЬ к таблице станций к таблице поездок , используя псевдоним «start». Затем мы можем объединить «начало» с именами наших столбцов, используя . для ссылки на данные, которые поступают из этого конкретного JOIN (вместо второго JOIN мы будем делать ON в столбце end_station ):

  ВНУТРЕННЕЕ СОЕДИНЕНИЕ станций КАК запускается в режиме trip.start_station = start.id  

Вот как будет выглядеть окончательный запрос, когда мы его запустим. Обратите внимание, что мы использовали <> для обозначения «не равно», но ! = также будет работать.

  запрос =
'' '
ВЫБЕРИТЕ СЧЕТЧИК (trips.id) КАК "Счетчик"
ИЗ поездок ВНУТРЕННИЕ СОЕДИНЯЙТЕ станции КАК старт
ВКЛ. Trips.start_station = start.id
INNER JOIN станции как конец
ВКЛ. Trips.end_station = end.id
ГДЕ start.municipality <> end.municipality;
'' '
run_query (запрос)  

Это показывает, что около 300 000 из 1.5 миллионов поездок (или 20%) закончились в другом муниципалитете, чем они начали, — еще одно свидетельство того, что люди в основном используют велосипеды Hubway для относительно коротких поездок, а не для длительных поездок между городами.

Если вы зашли так далеко, поздравляем! Вы начали осваивать основы SQL. Мы рассмотрели ряд важных команд, SELECT , LIMIT , WHERE , ORDER BY , GROUP BY и JOIN , а также агрегатные и арифметические функции.Это даст вам прочную основу для дальнейшего развития SQL.

Вы освоили основы SQL. Что теперь?

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

  • За сколько поездок взимается дополнительная плата (продолжительностью более 30 минут)?
  • Какой велосипед использовался дольше всего?
  • Были ли у зарегистрированных или случайных пользователей больше поездок туда и обратно?
  • У какого муниципалитета была самая длинная средняя продолжительность жизни?

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

Вы также можете прочитать нашу публикацию об экспорте данных из ваших SQL-запросов в Pandas или ознакомьтесь с нашей шпаргалкой по SQL и нашей статьей о сертификации SQL.

Изучите SQL за 7 дней

Краткое изложение учебного курса по SQL


Базы данных можно найти практически во всех программных приложениях. SQL — это стандартный язык для запросов к базе данных. Это руководство по SQL для начинающих научит вас проектированию баз данных. Кроме того, он учит от базового до продвинутого SQL.

Что я должен знать?


Курс предназначен для начинающих SQL.Предварительный опыт работы с БД не требуется.

Программа SQL

Основы базы данных

Проектирование базы данных

Основы SQL

Сортировка данных

Функции

Что нужно знать!

Самые страшные темы!

Что дальше!

Что такое СУБД?

Система управления базами данных (СУБД) — это программное обеспечение, используемое для хранения и управления данными. Это гарантирует качество, надежность и конфиденциальность информации. Самым популярным типом СУБД являются системы управления реляционными базами данных или СУБД.Здесь база данных состоит из структурированного набора таблиц, и каждая строка таблицы представляет собой запись.

Что такое SQL?

Язык структурированных запросов (SQL) — это стандартный язык для работы с данными в СУБД. Проще говоря, он используется для общения с данными в СУБД. Ниже приведены типы операторов SQL.

  1. Язык определения данных (DDL) позволяет создавать такие объекты, как схемы, таблицы в базе данных.
  2. Язык управления данными (DCL) позволяет управлять и управлять правами доступа к объектам базы данных.
  3. Управление данными. Язык (DML) используется для поиска, вставки, обновления и удаления данных, которые частично будут рассмотрены в этом руководстве по SQL.

Что такое запрос?

Запрос — это набор инструкций, передаваемых системе управления базой данных. Он сообщает любой базе данных, какую информацию вы хотели бы получить из базы данных. Например, чтобы получить имя студента из таблицы базы данных STUDENT, вы можете написать запрос SQL следующим образом:

 SELECT Student_name from STUDENT; 

Процесс SQL

Если вы хотите выполнить команду SQL для любой системы СУБД, вам необходимо найти лучший метод выполнения вашего запроса, и механизм SQL определяет, как интерпретировать эту конкретную задачу.

Важными компонентами, включенными в этот процесс SQL, являются:

  • Механизм запросов SQL
  • Механизмы оптимизации
  • Диспетчер запросов
  • Классический механизм запросов

Классический механизм запросов позволяет управлять всеми не-SQL запросами.

Процесс SQL

Оптимизация SQL

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

  1. Правильный выбор при определении структуры базы данных
  2. Применение наиболее подходящих методов для чтения данных.

Что вы узнаете в этом курсе SQL?

Это руководство по основам SQL предназначено для всех, кто планирует работать с базами данных, особенно в роли системных администраторов и разработчиков приложений. Учебники помогают новичкам изучить основные команды SQL, включая SELECT, INSERT INTO, UPDATE, DELETE FROM и другие.Каждая команда SQL поставляется с ясными и краткими примерами.

В дополнение к списку команд SQL в руководстве представлены карточки с функциями SQL, такими как AVG (), COUNT () и MAX (). Наряду с этим, тесты помогают подтвердить ваши базовые знания языка.

Этот курс SQL поможет вам справиться с различными аспектами языка программирования SQL.

Почему вы должны изучать SQL?

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

Научитесь писать простые запросы SQL

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

Что такое T-SQL?

SQL — это сокращение от слов языка структурированных запросов, которое используется для запросов к базам данных. Transact-SQL
(T-SQL) язык — это расширенная реализация SQL для Microsoft SQL Server. В этой статье мы будем использовать стандарты T-SQL в примерах.

Что такое реляционная база данных?

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

Что такое таблица данных?

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

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

Имя: Имя учащегося

SurName: Фамилия ученика

Урок: Выбранный урок

Возраст: Студенческий возраст

PassMark: Проходной балл

Мы будем использовать эту таблицу в наших демонстрациях в этой статье.Имя этой таблицы данных — Студент.

Наш первый запрос: инструкция SELECT

Оператор SELECT можно описать как начальную или нулевую точку SQL-запросов. В
SELECT Оператор используется для извлечения данных из таблиц данных. В модели SELECT
синтаксис оператора, сначала мы указываем имена столбцов и разделяем их запятой, если мы используем один столбец, который мы
не используйте запятую в операторах SELECT.На втором этапе мы записываем предложение FROM и как
наконец, мы указываем имя таблицы. Когда мы рассматриваем приведенный ниже пример, он извлекает данные из Имя
и Фамилия, столбцы, синтаксис оператора SELECT будет следующим:

ВЫБЕРИТЕ Имя

, SurName

ОТ Студента

Если мы хотим получить данные только из столбца Name , синтаксис оператора SELECT
будет как ниже:

Совет: Мы можем легко попробовать все эти примеры из этой статьи сами в скрипте SQL поверх этого
ссылка.После перехода к
ссылку, нам нужно очистить панель запросов и выполнить образцы запросов.

Знак звездочки ( * ) обозначает все столбцы таблицы. Если мы рассмотрим приведенный ниже пример,
Оператор SELECT возвращает все столбцы таблицы Student .

  • Наконечник:
  • Нашей основной целью должно быть получение результатов SQL-запросов как можно скорее с наименьшими ресурсами.
    расход и минимальное время исполнения.По возможности, мы должны избегать использования знака звездочки (*) в
    SELECT операторов. Этот тип использования приводит к увеличению затрат на ввод-вывод, ЦП и сеть. Как результат,
    если нам не нужны все столбцы таблицы в наших запросах, мы можем отказаться от использования знака звездочки и использовать только
    необходимые столбцы

Фильтрация данных: пункт WHERE

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

ВЫБРАТЬ *

ОТ Студент

ГДЕ Возраст> = 20

Оператор LIKE — это логический оператор, который позволяет применять специальный шаблон фильтрации к
WHERE условие в SQL-запросах.Знак процента (% ) является основным подстановочным знаком для использования в качестве
соединение с оператором LIKE . С помощью следующего запроса мы получим студентов
имена которых начинаются с символа J .

ВЫБРАТЬ *

ОТ Студента

ГДЕ Имя LIKE ‘J%’

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

ВЫБРАТЬ *

ОТ Студента

ГДЕ Урок («Римская история», «Европейская история»)

Оператор BETWEEN фильтрует данные, которые попадают в определенное начальное и конечное значение. В
Следующий запрос возвращает данные для студентов, чьи оценки равны и больше 40 и меньше и равны
60.

ВЫБРАТЬ *

ОТ Студента

ГДЕ PassMark МЕЖДУ 40 И 60

Сортировка данных: ORDER BY Statement

Оператор ORDER BY помогает нам отсортировать данные в соответствии с указанным столбцом. Набор результатов
данные могут быть отсортированы по возрастанию или убыванию. Ключевое слово ASC сортирует данные по возрастанию
order, а ключевое слово DESC сортирует данные в порядке убывания.Следующий запрос сортирует
данные учащихся в порядке убывания в соответствии с выражениями столбца PassMark.

ВЫБРАТЬ *

ОТ Студента

ЗАКАЗАТЬ ПО PassMark DESC

По умолчанию оператор ORDER BY сортирует данные в порядке возрастания. Следующий пример демонстрирует
использование по умолчанию оператора ORDER BY .

ВЫБРАТЬ *

ОТ Студента

ЗАКАЗАТЬ ПО PassMark

Устранение повторяющихся данных: пункт DISTINCT

Предложение DISTINCT используется для удаления повторяющихся данных из указанных столбцов, чтобы результат
set заполняется только отдельными (разными) значениями. В следующем примере мы получим
Урок данные столбца, однако при этом мы будем извлекать только отдельные значения с помощью
пункт DISTINCT

ВЫБРАТЬ *

ОТ Студент

ГДЕ Возраст> = 20

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

Викторина

В этом разделе мы можем проверить наши знания.

Вопрос — 1:

Напишите запрос, в котором указаны имя и фамилия учащегося в возрасте от 22 до 24 лет.

Ответ:

ВЫБЕРИТЕ Имя,

SurName

ОТ Студента

ГДЕ Возраст МЕЖДУ 22 И 24

Вопрос — 2:

Напишите запрос, который показывает имена и возраст учащихся в порядке убывания, которые изучают римский язык и древнюю историю.

Ответ:

ВЫБРАТЬ Имя,

SurName,

Возраст

ОТ Студента

ГДЕ урок IN («Римская история», «Древняя история»)

ПОРЯДОК ПО ВОЗРАСТУ DESC

Заключение

В этой статье мы узнали, как писать базовые запросы SQL, а также продемонстрировали использование запросов на простых примерах.

Эсат Эркеч — специалист по SQL Server, который начал свою карьеру более 8 лет назад в качестве разработчика программного обеспечения. Он является сертифицированным экспертом по решениям Microsoft SQL Server.

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

Посмотреть все сообщения от Esat Erkec

Последние сообщения от Esat Erkec (посмотреть все)

Учебное пособие по SQL — javatpoint

Учебник

SQL предоставляет базовые и расширенные концепции SQL.Наше руководство по SQL предназначено как для новичков, так и для профессионалов.

SQL (язык структурированных запросов) используется для выполнения операций с записями, хранящимися в базе данных, таких как обновление записей, вставка записей, удаление записей, создание и изменение таблиц базы данных, представлений и т. Д.

SQL — это не система баз данных, а язык запросов.

Предположим, вы хотите выполнить запросы языка SQL к хранящимся в базе данных данным. Вам необходимо установить в своих системах любую систему управления базами данных, например, Oracle, MySQL, MongoDB, PostgreSQL, SQL Server, DB2 и т. Д.

Что такое SQL?

SQL — это сокращенная форма языка структурированных запросов, которая произносится как S-Q-L или иногда как See-Quell.

Этот язык баз данных в основном предназначен для обслуживания данных в системах управления реляционными базами данных. Это специальный инструмент, используемый профессионалами в области данных для обработки структурированных данных (данных, которые хранятся в виде таблиц). Он также предназначен для потоковой обработки в RDSMS.

Вы можете легко создавать и управлять базой данных, получать доступ и изменять строки и столбцы таблицы и т. Д.Этот язык запросов стал стандартом ANSI в 1986 году и ISO в 1987 году.

Если вы хотите устроиться на работу в области науки о данных, то это самый важный язык запросов, который нужно изучить. Крупные предприятия, такие как Facebook, Instagram и LinkedIn, используют SQL для хранения данных в серверной части.

Почему именно SQL?

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

  • Основное использование SQL для профессионалов в области данных и пользователей SQL — это вставка, обновление и удаление данных из реляционной базы данных.
  • SQL позволяет специалистам по данным и пользователям извлекать данные из систем управления реляционными базами данных.
  • Это также помогает им описывать структурированные данные.
  • Он позволяет пользователям SQL создавать, удалять и управлять базой данных и ее таблицами.
  • Он также помогает в создании представления, хранимой процедуры и функций в реляционной базе данных.
  • Он позволяет вам определять данные и изменять сохраненные данные в реляционной базе данных.
  • Он также позволяет пользователям SQL устанавливать разрешения или ограничения для столбцов таблицы, представлений и хранимых процедур.

История SQL

«Реляционная модель данных для больших общих банков данных» — это статья, опубликованная великим компьютерным ученым «Э. Ф. Коддом» в 1970 году.

Исследователи IBM Рэймонд Бойс и Дональд Чемберлин первоначально разработали SEQUEL (структурированный английский язык запросов) после изучения статьи, представленной Э. Ф. Коддом.Оба они разработали SQL в исследовательской лаборатории IBM Corporation в Сан-Хосе в 1970 году.

В конце 1970-х компания Relational Software Inc. разработала свой первый SQL, используя концепции Э. Ф. Кодда, Раймонда Бойса и Дональда Чемберлина. Этот SQL был полностью основан на СУБД. Компания Relational Software Inc., ныне известная как Oracle Corporation, представила Oracle V2 в июне 1979 года, которая является первой реализацией языка SQL. Эта версия Oracle V2 работает на компьютерах VAX.

Процесс SQL

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

Язык структурированных запросов содержит в своем процессе следующие четыре компонента:

  • Диспетчер запросов
  • Движки оптимизации
  • Классический механизм запросов
  • SQL Query Engine и т. Д.

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

Некоторые команды SQL

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

  1. Команда CREATE
  2. Команда UPDATE
  3. Команда УДАЛИТЬ
  4. Команда SELECT
  5. Команда DROP
  6. Команда INSERT

Команда CREATE

Эта команда помогает в создании новой базы данных, новой таблицы, табличного представления и других объектов базы данных.

Команда ОБНОВЛЕНИЯ

Эта команда помогает обновлять или изменять данные, хранящиеся в базе данных.

Команда УДАЛИТЬ

Эта команда помогает удалить или стереть сохраненные записи из таблиц базы данных. Он стирает один или несколько кортежей из таблиц базы данных.

Команда ВЫБРАТЬ

Эта команда помогает получить доступ к одной или нескольким строкам из одной или нескольких таблиц базы данных. Мы также можем использовать эту команду с предложением WHERE.

Команда DROP

Эта команда помогает удалить всю таблицу, табличное представление и другие объекты из базы данных.

INSERT Команда

Эта команда помогает вставлять данные или записи в таблицы базы данных. Мы можем легко вставить записи как в одну, так и в несколько строк таблицы.

SQL против No-SQL

В следующей таблице описаны различия между SQL и NoSQL, которые необходимо понимать:

SQL Нет-SQL
1.SQL — это система управления реляционными базами данных. 1. Хотя No-SQL — это нереляционная или распределенная система управления базами данных.
2. Язык запросов, используемый в этой системе баз данных, является языком структурированных запросов. 2. Язык запросов, используемый в системах баз данных без SQL, является недекларативным языком запросов.
3. Схема баз данных SQL предопределена, фиксирована и статична. 3. Схема баз данных без SQL — это динамическая схема для неструктурированных данных.
4. Эти базы данных масштабируются по вертикали. 4. Эти базы данных масштабируются по горизонтали.
5. Тип базы данных SQL имеет форму таблиц, то есть в форме строк и столбцов. 5. Тип базы данных No-SQL — это документы, пары «ключ-значение» и графики.
6. Он следует модели ACID. 6. Следует модели BASE.
7. Сложные запросы легко обрабатываются в базе данных SQL. 7. Базы данных NoSQL не могут обрабатывать сложные запросы.
8. Эта база данных не лучший выбор для хранения иерархических данных. 8. Хотя база данных без SQL — идеальный вариант для хранения иерархических данных.
9. Все базы данных SQL требуют объектно-реляционного сопоставления. 9. Многие базы данных без SQL не требуют объектно-реляционного сопоставления.
10. Измерители, CircleCI, Hootsuite и т. Д. — лучшие предприятия, использующие этот язык запросов. 10. Airbnb, Uber и Kickstarter — крупнейшие предприятия, использующие этот язык запросов.
11. SQLite, Ms-SQL, Oracle, PostgreSQL и MySQL являются примерами систем баз данных SQL. 11. Redis, MongoDB, Hbase, BigTable, CouchDB и Cassandra являются примерами систем баз данных NoSQL.

Преимущества SQL

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

.

1. Программирование не требуется

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

2. Высокоскоростная обработка запросов

Быстрый и эффективный доступ к большому объему данных из базы данных с помощью запросов SQL.Операции вставки, удаления и обновления данных также выполняются быстрее.

3. Стандартизированный язык

SQL следует давно установленным стандартам ISO и ANSI, которые предлагают единую платформу по всему миру для всех пользователей.

4. Переносимость

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

5. Интерактивный язык

Мы можем легко выучить и понять язык SQL. Мы также можем использовать этот язык для связи с базой данных, потому что это простой язык запросов. Этот язык также используется для получения ответов на сложные запросы за несколько секунд.

6. Более одного просмотра данных

Язык SQL также помогает в создании нескольких представлений структуры базы данных для разных пользователей базы данных.

Недостатки SQL

Помимо преимуществ SQL, он также имеет некоторые недостатки, а именно:

1.Стоимость

Стоимость работы некоторых версий SQL высока. Вот почему некоторые программисты не могут использовать язык структурированных запросов.

2. Сложный интерфейс

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

3. Частичное управление базой данных

Бизнес-правила скрыты. Таким образом, специалисты по данным и пользователи, использующие этот язык запросов, не могут иметь полный контроль над базой данных.


Лучший способ изучить SQL (от ИТ-специалистов)

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

Тем не менее, вы можете спросить: а сложно ли выучить SQL?

Ответ? Может быть.

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

Хотите быстро получить сертификат SQL Server? Узнайте о курсах по SQL Server, которые проходят рядом с вами.

Что такое SQL?

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

Функции SQL включают:

  • Изменение структуры таблиц и индексов базы данных
  • Добавление, обновление и удаление строк данных
  • Получение информации из базы данных для обработки транзакций и аналитики
  • Создание таблиц и другие проекты баз данных

Используемый с 1970-х годов, SQL в обозримом будущем станет основным продуктом технологии.Это универсальный язык программирования, который поможет вам перейти к изучению других компьютерных языков, включая JavaScript и Python.

SQL не требует предварительного опыта программирования, поэтому это отличный язык программирования для изучения, если вы только начинаете программировать. Но с чего начать, имея так много ресурсов для изучения SQL?

Лучший способ изучить SQL

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

1. Начните с простого

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

2. Посмотрите учебные пособия

Бесплатное руководство Microsoft по основам баз данных SQL дает углубленное введение в терминологию, навыки и концепции баз данных. SQLZOO и Codecademy также предлагают интерактивные учебные пособия, которые позволяют управлять данными и создавать запросы для проверки своих знаний SQL.

3. Возьмите класс SQL

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

Вот несколько классов SQL для начала:

4. Установите бесплатную базу данных SQL

Лучший способ изучить SQL — это практиковаться. Установите бесплатную базу данных с открытым исходным кодом, чтобы вы могли начать писать и выполнять простые запросы, используя свои собственные данные.MySQL — популярная бесплатная база данных, совместимая с большинством операционных систем.

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

Сколько времени нужно, чтобы изучить SQL?

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

Чему еще я должен научиться, чтобы дополнить свои навыки SQL?

Несмотря на то, что разработчики могут изучить множество языков программирования, SQL не требует предварительных навыков программирования. Однако разработчики SQL могут извлечь выгоду из опыта работы с JavaScript, PHP и C #.

Преимущества сертификации SQL

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

Сертификация

SQL Server является ключевым фактором для кандидатов, ищущих должности в разработке, администрировании или анализе баз данных.

Сертификаты

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

Кроме того, получение сертификатов поможет вам получить более высокооплачиваемую работу быстрее, чем ваши коллеги.Рассмотрим среднюю зарплату в США для сотрудников, имеющих опыт работы в SQL:

.

Как получить сертификат SQL

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

Получение сертификата MCSA: сертификат SQL Server подтверждает, что у вас есть основные навыки, необходимые для разработки и обслуживания критически важных сред Microsoft SQL Server.Эта сертификация дает вам право на должность разработчика базы данных или аналитика базы данных.

New Horizons предлагает комплексные учебные курсы для подготовки к сертификационному экзамену MCSA SQL Server. Сертификационный трек включает три курса и экзамены:

После завершения этих трех курсов и сдачи соответствующих тестов вы готовы к сдаче сертификационного экзамена MCSA SQL Server.

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

Готовы продвинуться по карьерной лестнице с помощью обучения и сертификации по SQL? Обучение New Horizons разработано, чтобы научить вас навыкам, необходимым для легкого перехода к новой должности с уверенностью и реальным опытом.

Начните сегодня с гибких учебных курсов New Horizons по Microsoft SQL Server.

Учебное пособие по SQL для анализа данных | Базовый SQL

Это руководство предназначено для людей, которые хотят отвечать на вопросы, используя данные.Для многих SQL — это «мясо и картошка» анализа данных — он используется для доступа, очистки и анализа данных, хранящихся в базах данных. Этому очень легко научиться, но при этом крупнейшие мировые компании используют его для решения невероятно сложных задач.

В частности, это руководство предназначено для начинающих аналитиков, которые немного использовали Excel, но не имеют опыта программирования.

В этом уроке мы рассмотрим:

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

Как работает SQL Tutorial for Data Analysis

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

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

Что такое SQL?

SQL (язык структурированных запросов) — это язык программирования, предназначенный для управления данными в реляционной базе данных. Он существует с 1970-х годов и сегодня является наиболее распространенным методом доступа к данным в базах данных. SQL имеет множество функций, которые позволяют пользователям читать, манипулировать и изменять данные. Хотя SQL обычно используется инженерами при разработке программного обеспечения, он также популярен среди аналитиков данных по нескольким причинам:

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

SQL отлично подходит для выполнения типов агрегирования, которые вы обычно выполняете в сводной таблице Excel — сумм, подсчетов, минимумов и максимумов и т. Д.- но с гораздо большими наборами данных и с несколькими таблицами одновременно.

Как произносится «SQL»?

Понятия не имею.

Что такое база данных?

Из Википедии: База данных — это организованный набор данных.

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

Если вы использовали Excel, вы уже должны быть знакомы с таблицами — они похожи на электронные таблицы.В таблицах есть строки и столбцы, как в Excel, но они немного более жесткие. Например, таблицы базы данных всегда организованы по столбцам, и каждый столбец должен иметь уникальное имя. Чтобы получить представление об этой организации, на изображении ниже показан образец таблицы, содержащей данные о церемонии вручения наград Академии 2010 года:

В целом, в базах данных таблицы организованы в схемы. В Mode мы организуем таблицы вокруг пользователей, которые их загружают, поэтому у каждого человека есть своя собственная схема. Схемы определяются именами пользователей, поэтому, если ваше имя пользователя — databass3000, все загружаемые вами таблицы будут храниться в схеме databass3000.Например, если databass3000 загружает таблицу продаж рыбных кормов под названием fish_food_sales , эта таблица будет иметь ссылку как databass3000.fish_food_sales . Вы заметите, что все таблицы, используемые в этой серии руководств, имеют префикс «учебник». Это потому, что они были загружены учетной записью с этим именем пользователя.

Вы в пути!

Теперь, когда вы знакомы с основами, пора погрузиться в изучение SQL.

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *