Дэн Щербаков ⚛️
99 subscribers
22 photos
50 links
Канал для фронтенд-разработчиков о том, как развиваться и увеличивать зарплату.

Senior Frontend Developer с 6 годами опыта. За этот период увеличил зарплату почти в 7 раз.

Начинайте тут: https://yangx.top/code_lab/280
加入频道
SQL, манипуляция данными. Часть 1.

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

SQL - язык гибкого взаимодействия с этой фигурой.

Пример простых взаимодействий с БД - выборка данных (SELECT) и вставка (INSERT). К слову, капслок в операторах - не более чем условность для простоты разделения операторов и оперндов. Сам я её соблюдаю, но и в lowercase все работает.

Сейчас рассмотрим выборку.

#SQL
SQL, манипуляция данными. Часть 2.

Возьмем пример выборки:

SELECT login, post_count FROM wp_logs WHERE post_count NOT BETWEEN 5 AND 9;

- SELECT: оператор, указывающий, что операция будет по выборке (а не вставке и др.).

- login, post_count: названия столбцов таблицы, которыми будет ограничена выборка.

- WHERE: условный ограничитель по значениям в таблице. В примере ограничены значения для столбца post_count.

- NOT BETWEEN: комбинация операторов NOT и BETWEEN. Без отрицательной частицы BETWEEN выбирает данные внутри множества, с ней - вне неё:

1) BETWEEN 5 AND 10 = {5...10}
2) NOT BETWEEN 5 AND 10: {∞...5} и {10...∞}

- AND: просто "И". Аналог && в си-подобных языках.

#SQL
SQL, манипуляция данными. Часть 3.

Числовые операторы SQL:

- стандартные нумерические операторы. != и т.п.
- (NOT) BETWEEN ... AND ... .
- (NOT) IN (...). В скобках листинг значений для выборки, в том числе отрицательной.


Строковые операторы:

=: точное совпадение, аналог ===.

!= или <>: отрицательное точное совпадение.

(NOT) LIKE: нечувствительное к регистру совпадение.

%: аналог *. в регулярных выражениях. Иначе говоря - выборка неорганиченного множества символов до или после операнда. Используется только с LIKE.

_ (нижнее подчеркивание): аналог *, или указатель одного любого символа. Только с LIKE.

[]: диапазон символов или последовательность.

[^]: исключающий диапазон.

(NOT) IN: то же, что с числами, но для строк.

Строковые аргументы обязательно обязательно заключаются в двойные кавычки: "mozilla".

#SQL
SQL, манипуляция данными. Часть 4.

Сортировка выборки.

Для сортировки используют операторы: DISTINCT, GROUP BY, ORDER BY, LIMIT, OFFSET и некоторые другие. Рассмотрим их отдельно.

- DISTINCT:
полностью удаляет любые дубликаты. Используется после ключевого оператора SELECT.

- ORDER BY:
упорядочивает выборку по столбцу, принимая опциональные условия ASC/DESC (по-восходящему / по нисходящему). Пример: ORDER BY column DESC отсортирует строки от 4 к 1.

- LIMIT и OFFSET:
LIMIT задает лимит строк с совпадениями в выборке.
OFFSET устанавливает точку отсчета: например, OFFSET 5 значает "вывести совпадения, начиная с шестого". Почему с шестого? Пятый входит в ограничение.
Эта пара употребляется после всех прочих операторов.


#SQL
SQL, манипуляция данными. Часть 5: нормализация

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

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

ПЛиО 1 | Мартин
ПЛиО 2 | Мартин
Подробное руководство по JS | Флэнеган

Вместо этого можно составить две таблицы - авторов и книг по жанрам.

При нормализации строки в разбитых таблицах объединяют ключом - например, числовым ID.

Чтобы работать с данными из нескольких таблиц, их нужно объединять. Для этого используют оператор JOIN. Джойнинг используется не только так, поэтому уместно перед JOIN использовать оператор INNER.

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

Пример объединяющего запроса:

SELECT *
FROM authors
INNER JOIN fantasy
ON authors.id = fantasy.book_id

#SQL