PostgreSql Flashcards
Почему существуют разные СУБД (PostgreSQL/MySQL/HANA) с разными диалектами?
Потому что каждый диалект SQL, заточен под наиболее эффективное выполнение задач с данной конкретной СУБД, т.к. каждая СУБД имеет свою специфику возможностей. То есть любой универсальный запрос на SQL будет одинаково выполняться на всех таких базах, но на всех - не настолько эффективно, насколько можно было бы сделать с учетом специфики.
Что такое primery key?
Оператор БД, создающий уникальный идентификатор записи в таблице. Отличается тем, что не может принимать значение NULL и используется для соединения таблиц связью PK-FK и для того, чтобы уникально идентифицировать любую из строк.
Например: уникальный ID контрагента в таблице КА
При этом в таблице вообще может не быть первичного ключа, если ее не надо джойнить с другими. Например, логи могут храниться по времени поступления
Что такое unique key?
Оператор БД, который отвечает за ведение уникальных полей БД, но не обязательно ключевых. Например, PK - ид. КА, UK - ИНН, КПП КА
https://habr.com/ru/articles/787374/
https://habr.com/ru/companies/tensor/articles/483424/
Что такое foreign key?
Внешний ключ. Используется для ссылки подчиненной таблицы на родительскую. Может ссылаться как на первичный ключ, так и на уникальный ключ и сиквенс полей
Работа СУБД с JSON
Row Level Security
pattern matching
Задачки по Postgre
https://habr.com/ru/articles/423097/
Облачные или локальные БД, откуда выгрузить данные быстрее?
Выгрузить данные быстрее можно из базы, которая находится в облачном хранилище. Этот способ хранения называют DBaaS (от англ. database as a service, «база данных как сервис»). Но с такими базами возникает другая проблема: выгрузка данных из «облачных» баз часто платная, и цена зависит от объёма выгрузки. Значит, выгружать всю информацию просто невыгодно. Пора учиться получать срез данных.
Оператор LIMIT
Используется для ограничения количества выгружаемых строк из БД. В запросе по примеру ниже выгрузит от 0 до 10ти строк, хотя в БД строк, удовлетворяющих запросу, может быть больше 10ти:
SELECT поле_1,
поле_2,
поле_3
…
FROM таблица
LIMIT 10;
Важно! Оператор LIMIT возьмет ПЕРВЫЕ 10 записей таблицы
Оператор OFFSET
Позволяет начать читать БД, не с первой записи, а с записи n-ой, например 5ой (не включительно):
SELECT поле_1,
поле_2,
поле_3
…
FROM таблица
LIMIT 10 OFFSET 5;
Данный запрос выведет записи, начиная с 6ой по 15ую
Также OFSET можно использовать и САМОСТОЯТЕЛЬНО, например, если необходимо выгрузить ВСЕ записи таблицы, начиная после 5ой:
SELECT поле_1,
поле_2,
поле_3
…
FROM таблица
OFFSET 5;
Какие типы данных есть в PostgreSQL?
В разных СУБД типы данных могут отличаться, но часто их можно объединить в похожие группы. В PostgreSQL выделяют несколько групп типов данных:
числовые типы,
символьные типы,
логические типы,
типы для работы с датой и временем,
специализированные типы для конкретных задач.
Какой тип данных используется для целых чисел?
integer
псевдоним int4
4 - количество байтов, которое занимает тип
Какой тип данных используется для дробных чисел?
real
псевдоним float4
4 - количество байтов, которое занимает тип
Какой тип данных используют для текста фиксированной длины?
character
псевдоним char (n), где n - количество символов в строке
Если сохраняемая строка короче, чем n, символов, то оставшиеся символы будут заполнены пробелами
Какой тип данных используют для текста НЕфиксированной длины?
character varying
псевдоним varchar(n), где n - количество символов в строке. При этом значение n можно не указывать
Если сохраняемая строка короче, чем n, символов, то строка сохранится в своем естественном виде
Какой тип данных используют для строки любой длины?
text
Какие в Постгре есть таймштампы?
timestamp - по умолчанию подразумевает тип timestamp without time zone: ‘2004-10-19 10:23:54’
timestamptz - timestamp with time zone: ‘2004-10-19 10:23:54+02’
Какие в Постгре есть типы для работы с датами/временем?
timestamp
timestamptz
date
time
interval
Какие в Постгре есть логические типы?
boolean
Как при выборке данных привести выбранное поле к нужному типу данных?
CAST
Поменять тип данных можно сразу при выгрузке. При этом тип данных поля в самой таблице не изменится. В таких случаях используют оператор CAST. Например:
SELECT CAST(track_id AS varchar),
CAST(album_id AS varchar)
FROM track;
Здесь айдишники автоматически приводятся к текстовому типу
Что такое ER-диаграмма?
ER-диаграмма (от англ. entity-relationship diagram, диаграмма «сущность — связь») - графически отображает отношения таблиц в базе данных.
Пример в папке:
E:\2024\Яндекс практикум\Системный анализ[SW.BAND] [Яндекс.Практикум] Системный аналитик. Часть 2 из 8 (2022)[SW.BAND] 2 SQL для аналитиков[SW.BAND] 02 Срезы данных в SQL
Структура блока в ER-диаграмме
Шапка - название таблицы
Второй слой отдельных полей - PK - первичный ключ
Третий слой полей - FK - внешний ключ и не помеченные - поля таблицы
Пример в папке:
E:\2024\Яндекс практикум\Системный анализ[SW.BAND] [Яндекс.Практикум] Системный аналитик. Часть 2 из 8 (2022)[SW.BAND] 2 SQL для аналитиков[SW.BAND] 02 Срезы данных в SQL
Какие инструменты можно использовать, чтобы нарисовать диаграмму ER?