SQL простыми словами — ProductStar на vc.ru

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

5903 просмотров

Навигация

  • Что такое SQL?
  • Кому и для чего необходимо уметь его использовать?
  • С чего начать обучение SQL?
  • Типы данных
  • Интересные факты об SQL

Что такое SQL?

SQL, или Structured Query Language, — это язык структурированных запросов, использующийся для работы с базой данных: извлечения, обновления, добавления и удаления информации из нее. То есть, SQL — язык запросов для “общения” с данными.

Представить можно так:

Только вместо всем нам понятной фразы “принеси чай” используется особый синтаксис, другой язык.

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

Кому и для чего нужно знать SQL?

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

  • Извлечение данных

С помощью SQL вы работаете с данными, которые уже собирает ваша компания. Например, у сервиса ЯндексТакси есть данные по поездкам, таксистам, пользователям, работе службы поддержки и так далее. Так, с помощью SQL можно извлечь информацию по всем поездкам в Москве в промежуток с 18 до 19 часов для анализа спроса в час-пик.

  • Изменение данных

К примеру, изменить имена всех пользователей “Татьяна” на “Марина”. Если представить более реалистичный кейс — можно исключить из базы данных пользователей, которые попали в нее по ошибке.

  • Добавление данных

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

  • Валидация данных

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

  • Скорость

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

Примеры использования SQL:

  • Онлайн-магазин: посчитать количество покупателей из Самары за предыдущий год
  • Видео-платформа: найти топ-10 фильмов, у которых было больше всего просмотров за 2020 год в категории “комедии”
  • Маркетинг: найти email пользователей, которые совершили покупку после нажатия на кнопку в рассылке
  • Игры: определить, на каких уровнях игры пользователи тратят больше всего времени и после каких перестают заходить в приложение

Зачастую функционала GoogleAnalitics, YandexMetrics, Excel и Tableau бывает недостаточно из-за слишком большого объема данных, долгой настройки или сложных экспериментов.

Поэтому большинство компаний и используют SQL.

С чего начать?

Систем управления базами данных (СУБД) несколько, например, MySQL, Oracle, SQLServer или PostgreSQL. На курсе “SQL с 0 для анализа данных” Анна Атласова, бизнес-аналитик из Amazon, для начала советует попрактиковаться на web-версии SQLite.

Как и любой язык, SQL имеет определенные слова, которые выстраиваются в предложения, или команды. Рассмотрим пару базовых SQL-запросов на примере данных.

Открываем SQLite, загружаем базу данных.

SQLite -> File -> Open DB

В примере будем использовать БД Airbnb, сервиса для аренды жилья, ее мы даем на курсе (делимся лайфхаком: если уже оставляли заявку, попросите своего менеджера дать демо-доступ к нашей платформе, сможете попрактиковаться на этой базе данных). Открываем, слева появляются таблицы “hosts” и “listings”, то есть владельцы и информация о самом жилье (квартиры/дома/комнаты и тд).

Пришло время сделать первый запрос.

Чтобы посмотреть на всю таблицу целиком, запрашиваем (SELECT) все данные (*) из (FROM) таблицы владельцев (hosts). Получаем нашу таблицу под блоком ввода кода.

На скриншоте выше, видно, например, что Анна с id 43984 является владельцем жилья в Ирландии на Airbnb с 7 октября 2009 года. “F” в последнем столбце означает, что девушка не явлется супер-хостом (особый статус на сервисе), то есть значение в столбце = false.

Чтобы выдало конкретные столбцы, вместо * прописываем их названия.

SELECT Name, Location

FROM hosts

Так мы получим таблицу из 2х столбцов: имени и местоположения.

SELECT что мы хотим (столбец/-цы) FROM откуда мы хотим (таблица)

Чтобы ограничить строки, используем LIMIT число. Например, LIMIT 3, тогда в нашей таблице появятся только 3 строки.

Слишком просто?

Копаем глубже

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

Например, это может быть число, текст и дата.

  • Для вывода числа будет достаточно использовать сами числа. Например:

SELECT *

FROM hosts

WHERE id = 43984

  • Для текста используем кавычки:

SELECT *

FROM hosts

WHERE name = ‘Anna’

  • Для даты — формат “год-месяц-число”

SELECT *

FROM hosts

WHERE host_since = ‘2009-10-07’

Оператор WHERE задает условие, то есть, например, “Я хочу вывести все данные из таблицы с владельцами жилья, у кого id соответствует 43984” (скорее всего результат получим один, обычно id не повторяются) или “Я хочу вывести все данные владельцев, кого зовут Анна” (здесь уже не факт, что результат будет единственным).

С оператором WHERE также можно использовать знаки больше или меньше: “<”, “>”, они, например, позволяют отфильтровать владельцев жилья, попавших в БД после определенной даты. Сделать это можно так: WHERE host_since > ‘2010-01-01’. В таблице получим всех хостов, присоединившихся к Airbnb после 1 января 2010.

Порядок ключевых слов в SQL

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

  • SELECT
  • FROM
  • WHERE
  • GROUP BY
  • HAVING
  • ORDER BY
  • LIMIT

При нарушении порядка, SQL запутается и перестанет вас понимать 🙁

Важно еще отметить, что SELECT и FROM — ключевые слова, остальные — опциональные, поэтому использовать WHERE или другие операторы без

SELECT FROM не получится.

Парочку интересных фактов

Немного расслабимся и перейдем к рандомным фактам об SQL.

  • SQL был придуман еще в 1970-х, после чего до 2003 стадартизировался и улучшался. Сейчас мы базово все еще работаем на версии двадцитилетней давности, несмотря на несколько доработок и появление множества “диалектов”.
  • Раньше SQL назывался SEQL (Structured English Query Language), поэтому многие специалисты продолжают использовать эту аббревиатуру, произнося “сикуэл”, а не “эс-кью-эл”. В документациях нередко встречаются оба варианта, поэтому оба можно считать верными.
  • SQL не является языком программирования, так как не может делать циклы или архитектуры.
  • Обучаться SQL как аналитикам, так и продактам лучше всего на курсе от ProductStar, ознакомиться с программой и навыками, которые получите после прохождения обучения можно здесь.

SQL: что это такое, как работает язык баз данных и СУБД

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

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

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

Для чего нужен SQL

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

SQL используют разные виды специалистов:

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

Как работают запросы

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

Пользователь → Клиент → Запрос → Система управления → База данных → Таблица с базами данных

Данные для работы с SQL хранятся в таблицах. Как именно они устроены — разберемся ниже; пока же просто представим их. На пути от пользователя к таблице находится несколько посредников:

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

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

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

Основные понятия реляционной модели:

1. Отношение это сама таблица, она двумерная и состоит из столбцов и строк.

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

3. Домен — это допустимые значения для каждого атрибута. Например, в столбце «Имя» или «Название» значения должны представлять собой набор буквенных символов, но они не могут начинаться с «ь» или «ъ» и не могут быть записаны числами.

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

5. Значение элемент таблицы, который находится на пересечении столбцов и строк.

6. Ключ это самый важный столбец в таблице, за счет этих значений и происходит взаимодействие в реляционной базе данных, он связывает таблицы между собой.

Ключи бывают нескольких видов:

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

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

Список пиццерий в городеАссортимент одной из пиццерий с ключом id — 1

SQL-операторы

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

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

DDL (Data Definition Language) — операторы определения данных. Они работают с объектами, то есть с целыми таблицами. Если базу нужно дополнить таблицей с новыми данными или, наоборот, убрать одну из таблиц с ошибочными данными — используется этот набор операторов.

  • CREATE — создание объекта в базе данных
  • ALTER — изменение объекта
  • DROP — удаление объекта

DML (Data Manipulation Language) — операторы манипуляции данными. Эти операторы уже работают с содержимым таблиц — строками, атрибутами и значениями. С их помощью можно вносить изменения в конкретное значение. Например, заменить поле в колонке «Фамилия» в строке с данными сотрудницы компании посте того, как она вышла замуж. Или удалить строку с данными уволенного сотрудника.

  • SELECT — выбор данных в соответствии с условием
  • INSERT — добавление новых данных
  • UPDATE — изменение существующих данных
  • DELETE — удаление данных

DCL (Data Control Language) — оператор определения доступа к данным. Он определяет, кто из пользователей может отправлять запросы к базе, менять объекты и значения. Например, можно отозвать доступ у сотрудника, перешедшего в другой отдел, а также открыть доступ к базе новому маркетологу или разработчику.

  • GRANT — предоставление доступа к объекту
  • REVOKE — отзыв ранее выданного разрешения
  • DENY — запрет, который является приоритетным над разрешением

TCL (Transaction Control Language) — язык управления транзакциями. Транзакции — это набор команд, которые выполняются поочередно. Если все команды выполнены, транзакция считается успешной, а если где-то произошла ошибка — транзакция откатывается назад, отменяя все выполненные команды. Наглядный пример такой транзакции — оплата онлайн, когда банк просит сначала ввести сумму и получателя, затем проверить и подтвердить операцию, а после ввести одноразовый код. На каждом из этих этапов оплату можно отменить и транзакция откатится назад.

  • BEGIN TRANSACTION — обозначение начала транзакции
  • COMMIT TRANSACTION — изменение команд внутри транзакции
  • ROLLBACK TRANSACTION — откат транзакции
  • SAVE TRANSACTION — указание промежуточной точки сохранения внутри транзакции

Виды СУБД

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

  • поддержка языков баз данных;
  • непосредственное управление данными;
  • управление буферами оперативной памяти;
  • управление транзакциями;
  • резервное копирование и восстановление после сбоев.

Существуют разные виды таких систем, которые разрабатывает и техногиганты, вроде Google, Microsoft и Amazon, и более нишевые студии. Разработчики стремятся сделать свой продукт лучше, чтобы их система быстрее и качественнее других обрабатывала данные. Из-за этого появились разные виды языка SQL — так называемые SQL-диалекты. У каждой СУБД диалект имеет что-то общее со всеми, а также свои особенности, которые не будут работать в другой системе.

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

  • PostgreSQL — это объектно-ориентированная система, то есть она обрабатывает данные как абстрактные объекты. Каждый объект, в отличие от простых табличных значений, может иметь собственные характеристики и уникальные методы взаимодействия с другими объектами. Это позволяет PostgreSQL обрабатывать более сложные структуры данных и выполнять более сложные процедуры. Например, Яндекс.Почта в свое время перешла на эту систему, чтобы поддерживать стабильное соединение десятков тысяч пользователей к одной базе.
  • MySQL — простая в изучении и функциональная система, которая работает с сайтами и веб-приложениями. Чаще всего используется в системах управления контентом сайтов (CMS), на сайтах с возможностью регистрации пользователей, в корпоративных системах CRM, в планировщиках, чатах и форумах. MySQL считается одним из самых безопасных и высокоскоростных решений, которое существует на рынке.
  • SQLite — это облегченная встраиваемая версия СУБД. В ней нет возможности поделиться правами доступа, как во многих других системах, но благодаря своему устройству эта система быстрая и мощная. SQLite подходит для обработки запросов на сайтах с низким и средним трафиком, а также в однопользовательских мобильных приложениях и играх. Преимущество такой системы — файловая структура, то есть база в SQLite состоит из одного файла, поэтому ее очень легко переносить.
  • Oracle — одна из первых СУБД, которая появилась еще в 1977 году и развивается до сих пор. Это кроссплатформенная система, которая может работать на Windows, Linux, MacOS, мобильных и других ОС. Система используется в крупных коммерческих проектах. Например, в России с Oracle сотрудничают операторы МТС и Теле2, банк «Открытие» и ВТБ.
  • Google Cloud Spanner — это облачная система управления данными, которую Google разработал для управления собственными сервисами, например AdWords и Google Play. В 2017 году систему сделали общедоступной. Cloud Spanner относят к категории NewSQL — это системы, которые совмещают в себе преимущества реляционных и нереляционных СУБД.

Как начать работу с SQL

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

  • SELECT — выбери данные
  • FROM — вот отсюда
  • JOIN — добавь еще эти таблицы
  • WHERE — при таком условии
  • GROUP BY — сгруппируй данные по этому признаку
  • ORDER BY — отсортируй данные по этому признаку
  • LIMIT — нужно такое количество результатов
  • ; — конец предложения

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

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

Как выучить SQL быстро, бесплатно, за 30 дней или меньше

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

В этом посте я познакомлю вас с ключевыми понятиями SQL и помогу вам в изучении этого мощного языка.

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

Что такое SQL и почему он важен для аналитиков?

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

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

SQL — наиболее распространенный язык запросов, но не единственный язык, используемый для взаимодействия с данными. SQL обычно используется для запросов к реляционным базам данных, таким как MySQL, Postgres и BigQuery. Примером нереляционной базы данных является MongoDB.

Основы SQL

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

В вашей базе данных может быть следующее:

Таблица №1 — Пользователи

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

Таблица №2 — Организации

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

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

Структура SQL-запроса

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

ВЫБЕРИТЕ
users.id как user_id,
users. gender как user_gender,
users.age как user_age,
Organizations.id как Organization_id,
Organizations.name как Organization_name
ИЗ
пользователей
ПРИСОЕДИНЯЙТЕСЬ users.id
WHERE
          users.is_deleted = 0

Первая часть запроса используется, чтобы сообщить базе данных, что мы извлекаем, обновляем или удаляем данные. Я выделил эту часть запроса фиолетовым цветом. В нашем примере у нас есть «ВЫБРАТЬ».

Наиболее частым запросом, который вы будете писать, будет запрос «SELECT». Эти запросы используются для получения данных из базы данных.

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

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

Третья часть запроса сообщает базе данных, из какой таблицы извлекать данные. В нашем примере это таблица пользователей. Но подождите, мы также запросили столбцы из таблицыorganizations, так как же это работает?

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

Соединение таблиц очень распространено и является одним из наиболее сложных аспектов SQL.

Последняя часть запроса — это предложение «ГДЕ». Предложение WHERE используется для фильтрации данных, которые нам не нужны. В нашем примере мы указываем базе данных возвращать пользователей, которые не были удалены (is_deleted = 0).

Обратите внимание, как я написал пример запроса. Вы видите, как я написал основные команды с заглавной буквы и упорядоченно распределил запросы? Как аналитик, вы должны начать писать SQL четко и организованно с первого дня. Это поможет вам привыкнуть. Попробуйте проверить 40-строчный запрос, который написан неорганизованно, и вы поймете, почему я сделал это предложение.

Как получить все данные из таблицы в SQL?

Чтобы получить все данные из таблицы в SQL, вам просто нужно использовать оператор звездочки (*). Пример такого запроса можно увидеть ниже.

ВЫБРАТЬ
*
ИЗ
пользователей

Что еще можно сделать с помощью SQL-запроса?

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

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

Below is a list of the most frequently used SQL functions:

  • Distinct
  • Count
  • Sum
  • Order BY
  • Group By
  • Min
  • Max
  • Avg
  • Case
  • Limit
  • Union

Где я могу выучить SQL онлайн?

Существует несколько способов изучения SQL в Интернете. Ниже приведен список моих любимых ресурсов.

  • W3schools [бесплатно]
  • Онлайн-курс — The Complete SQL Bootcamp [Платно]
  • Онлайн-курс — Master SQL для науки о данных [Платно]
  • Онлайн-курс — SQL для науки о данных [Платно]
  • Онлайн-курс — Learn SQL от Codecademy [бесплатно]
  • Онлайн-курс — Введение в SQL: запросы и управление данными от Khan Academy [бесплатно]
  • Памятка по SQL [бесплатно]

Ресурсы YouTube по SQL

Ниже приведены некоторые из лучших ресурсов YouTube, которые я нашел по SQL.

  • SQL — Полный курс для начинающих
  • Изучите базовый SQL за 10 минут
  • Изучите SQL за 1 час — Основы SQL для начинающих

Спасибо за внимание.

SQL для чайников Памятка

Автор: Allen G. Taylor и

Обновлено: 27.01.2022

Из книги: SQL для чайников

SQL для чайников

Изучить книгу Купить на Amazon

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

Критерии SQL для нормальных форм

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

Первая нормальная форма (1NF):

  • Таблица должна быть двухмерной, со строками и столбцами.

  • Каждая строка содержит данные, относящиеся к одному предмету или части предмета.

  • Каждый столбец содержит данные для одного признака описываемой вещи.

  • Каждая ячейка (пересечение строки и столбца) таблицы должна быть однозначной.

  • Все записи в столбце должны быть одного типа.

  • Каждый столбец должен иметь уникальное имя.

  • Не может быть двух одинаковых строк.

  • Порядок столбцов и строк не имеет значения.

Вторая нормальная форма (2NF):

Третья нормальная форма (3NF):

Нормальная форма ключа домена (DK/NF):

Типы данных SQL

Вот список всех формальных типов данных, которые распознает стандартный SQL ISO/IEC. В дополнение к ним вы можете определить дополнительные типы данных, производные от них.

Точные цифры:

  • ЦЕЛОЕ ЧИСЛО

  • МАЛЕНЬКИЙ

  • БОЛЬШОЙ

  • ЦИФРОВОЙ

  • ДЕСЯТИЧНОЕ

Приблизительные цифры:

  • НАСТОЯЩИЙ

  • ДВОЙНАЯ ТОЧНОСТЬ

  • ПЛАВАЮЩАЯ

  • СБРОС

Двоичные строки:

  • ДВОИЧНЫЙ

  • ДВОИЧНЫЕ ИЗМЕНЯЮЩИЕСЯ

  • ДВОЙНОЙ БОЛЬШОЙ ОБЪЕКТ

Булево значение:

  • логическое значение

Строки символов:

  • СИМВОЛ

  • ИЗМЕНЕНИЕ СИМВОЛА (VARCHAR)

  • ПЕРСОНАЖ БОЛЬШОЙ ОБЪЕКТ

  • НАЦИОНАЛЬНЫЙ ХАРАКТЕР

  • НАЦИОНАЛЬНЫЙ ХАРАКТЕР РАЗЛИЧАЕТСЯ

  • НАЦИОНАЛЬНЫЙ ХАРАКТЕР БОЛЬШОЙ ОБЪЕКТ

Дата и время:

  • ДАТА

  • ВРЕМЯ БЕЗ ЧАСОВОГО ПОЯСА

  • ВРЕМЕННАЯ МЕТКА БЕЗ ЧАСОВОГО ПОЯСА

  • ВРЕМЯ С ЧАСОВЫМ ПОЯСОМ

  • ВРЕМЕННАЯ МЕТКА С ЧАСОВЫМ ПОЯСОМ

Интервалы:

  • ИНТЕРВАЛ ДЕНЬ

  • ИНТЕРВАЛ ГОД

Типы коллекций:

  • МАССИВ

  • МУЛЬТИКОМПЛЕКТ

Другие типы:

  • РЯД

  • XML

Функции значений SQL

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

Функции строкового значения
Функция Эффект
ПОДСТРОКА Извлекает подстроку из исходной строки
ПОДСТРОКА ПОХОЖАЯ Извлекает подстроку из исходной строки, используя
регулярные выражения на основе POSIX
SUBSTRING_REGEX Извлекает из строки первое вхождение шаблона регулярного выражения XQuery
и возвращает одно вхождение соответствующей подстроки
TRANSLATE_REGEX Извлекает из строки первое или каждое вхождение числа 9.0041 Шаблон регулярного выражения XQuery и заменяет его или их строкой замены XQuery
ВЕРХНИЙ Преобразует строку символов в верхний регистр
НИЖНИЙ Преобразует строку символов во все строчные буквы
НАКЛАДКА Обрезка передних и задних заготовок
ПЕРЕВОД Преобразует исходную строку из одного набора символов в
другой
ПРЕОБРАЗОВАТЬ Преобразует исходную строку из одного набора символов в
другой
Функции числовых значений
Функция Эффект
ПОЛОЖЕНИЕ Возвращает начальную позицию целевой строки в исходной строке
CHARACTER_LENGTH Возвращает количество символов в строке
ДЛИНА ОКТЕТА Возвращает количество октетов (байтов) в строке символов
ЭКСТРАКТ Извлекает одно поле из даты и времени или интервала
Функции значения даты и времени
Функция Эффект
ТЕКУЩАЯ_ДАТА Возвращает текущую дату
ТЕКУЩЕЕ_ВРЕМЯ(п) Возвращает текущее время; (p) — точность секунд
CURRENT_TIMESTAMP(p) Возвращает текущую дату и текущее время; (p) — точность секунд

Функции набора SQL

Функции набора SQL дают вам быстрый ответ на вопросы, которые могут у вас возникнуть о характеристиках ваших данных в целом. Сколько строк в таблице? Какое самое высокое значение в таблице? Что самое низкое? Это вопросы, на которые могут ответить функции набора SQL.

Функция Эффект
СЧЕТ Возвращает количество строк в указанной таблице
МАКС Возвращает максимальное значение, которое встречается в указанной способности
МИН Возвращает минимальное значение, встречающееся в указанной таблице
СУММА Суммирует значения в указанном столбце
АВГ Возвращает среднее значение всех значений в указанном столбце
СПИСОК Преобразует значения из группы строк в строку с разделителями

Тригонометрические и логарифмические функции

sin , cos , tan , asin , acos , atan , sinh , cosh , tanh , log(<база>, <значение>) , log10(<значение>) . лн(<значение>)

Функции конструктора JSON

JSON_OBJECT

JSON_ARRAY

JSON_OBJECTAGG

JSON_ARRAYAGG

Функции запросов JSON

JSON_EXISTS

JSON_VALUE

JSON_QUERY

JSON_TABLE

Знание формата предложения MySQL WHERE

Предложение WHERE используется для изменения запроса DELETE, SELECT или UPDATE SQL. В этом списке показан формат, который вы можете использовать при написании предложения WHERE:

.
 ГДЕ  exp  И|ИЛИ  exp  И|ИЛИ  exp 

, где exp может быть одним из следующих:

  столбец  =  значение 
  столбец  >  значение 
  столбец  >=  значение 
  столбец  <  значение 
  столбец  <=  значение 
  столбец  МЕЖДУ  значение1    И  значение2 
  столбец  IN (  значение1  ,  значение2  ,…)
  столбец  НЕ ВХОДИТ ( значение1 ,  значение2 ,…)
  столбец  НРАВИТСЯ  значение 
  столбец  НЕ КАК  значение  

Об этой статье

Эта статья из книги:

  • SQL для чайников ,

Об авторе книги:

Аллен Г.