SQL и БД Learning – Telegram
SQL и БД Learning
10.2K subscribers
797 photos
9 videos
22 files
445 links
№ 5060218708

Изучаем SQL с нуля

По всем вопросам @mascarov_valentin

Реклама на бирже - https://telega.in/c/SQl_and_DB_Learning
Download Telegram
#Вопросы_с_собеседования

Назовите SQL-операторы для составления условий

GROUP BY: используется при агрегировании для объединения идентичных данных в группы, предложение GROUP BY следует за предложением WHERE в операторе SELECT. В примере ниже результатом запроса с использованием GROUP BY будет таблица, показывающая количество пользователей (Customers) в каждой стране (Country):

SELECT COUNT(CustomerID), Country
FROM Customers


GROUP BY Country;

HAVING: используется для указания условия поиска в предложении GROUP BY, HAVING может использоваться в отсутствие предложения GROUP BY с помощью предложения WHERE. В примере ниже результатом запроса с использованием HAVING будет таблица, показывающая количество пользователей (Customers) в каждой стране (Country) с числом пользователей больше 5.

SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
HAVING COUNT(CustomerID) > 5;


ORDER BY: сортирует набор результатов в порядке возрастания (по умолчанию) или убывания (при использовании ключевого слова DESC). В примере ниже результатом запроса будет таблица пользователей (Customers), отсортированная по полю «Страна» (Country):

SELECT * FROM Customers
ORDER BY Country;

WHERE: используется для определения условия извлечения записей». В примере ниже результатом запроса будет таблица пользователей (Customers) из Мексики:

SELECT * FROM Customers
WHERE Country='Mexico';
👍9
PostgreSQL ltree: обеспечение целостности данных

Смотреть статью
👍3🔥1
Какой из следующих SQL запросов вернет топ-5 самых просматриваемых постов из таблицы posts, отсортированных по количеству просмотров в порядке убывания?
Anonymous Quiz
56%
SELECT * FROM posts ORDER BY views DESC LIMIT 5;
24%
SELECT TOP 5 * FROM posts ORDER BY views DESC;
7%
SELECT * FROM posts WHERE ROWNUM <= 5 ORDER BY views DESC;
13%
SELECT * FROM posts WHERE views >= 5 ORDER BY views DESC LIMIT 5;
👍8
Узнаем размер файла с помощью SQL

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

Где MyFileColumn - это столбец таблицы, в котором хранится файл, MyTable - это имя таблицы, а ID = 1 - это условие выборки конкретной записи из таблицы.
👍10🔥4
Какой из следующих SQL запросов вернет все записи, отсортированные по колонке name в порядке возрастания из которых будут исключены записи, содержащие NULL в колонке denoscription?
Anonymous Quiz
68%
SELECT * FROM table_name WHERE denoscription IS NOT NULL ORDER BY name ASC;
17%
SELECT * FROM table_name WHERE denoscription NOT NULL ORDER BY name ASC;
9%
SELECT * FROM table_name WHERE denoscription <> NULL ORDER BY name ASC;
6%
SELECT * FROM table_name WHERE NOT (denoscription IS NULL) ORDER BY name ASC;
👍9
Сколько записей вернет следующий PostgreSQL запрос:
VALUES (11), (22), (33) INTERSECT VALUES (55), (33), (33);
Anonymous Quiz
24%
1
19%
2
21%
3
15%
Ничего из перечисленного
20%
Посмотреть ответы
👍6
SQL_big_cheatsheet.pdf
1.5 MB
Огромный туториал-шпаргалку по SQL с примерами запросов и объяснением
👍12🔥4
Получаем текущее время с помощью SQL

В нашем примере мы получаем текущее время без даты, для этого мы преобразуем результаты GETDATE() в тип данных TIME.
👍5
Узнать объем памяти базы данных с помощью SQL

Нужно заменить 'имя_базы_данных' на название вашей базы данных. Результатом будет суммарный размер всех таблиц в базе данных, выраженный в байтах.
👍15
Какой из следующих SQL запросов позволит получить среднее значение из колонки "sales", сгрупированной по годам из колонки "date", при этом выведет только те года, в которые среднее значение продаж больше $100.000?
Anonymous Quiz
23%
SELECT YEAR(date), AVG(sales) FROM table_name WHERE AVG(sales) > 100000 GROUP BY YEAR(date);
54%
SELECT YEAR(date), AVG(sales) FROM table_name GROUP BY YEAR(date) HAVING AVG(sales) > 100000;
11%
SELECT YEAR(date), AVG(sales) FROM table_name HAVING AVG(sales) > 100000 GROUP BY YEAR(date);
11%
SELECT YEAR(date), AVG(sales) FROM table_name GROUP BY YEAR(date) WHERE AVG(sales) > 100000;
👍11
Узнаем дату последнего редактирования БД с поомщью SQL

Здесь мы используем системную таблицу sys.databases, которая содержит информацию о всех базах данных в SQL Server. Колонка modify_date указывает на дату и время последнего изменения базы данных.
👍8
Что нового в SQLAlchemy 2.0?

SQLAlchemy — это программная библиотека на языке Python для работы с реляционными СУБД с применением технологии ORM.

Смотреть статью
👍6🔥2
#Вопросы_с_собеседования

Как вставить нескольких строк одним запросом?

В данном примере мы одним SQL-запросом добавим 3 записи.
👍12🔥2
SQL миграции в Postgres

Эта статья посвящена двум более сложным миграциям:
обновление большой таблицы
разделение таблицы на две

Смотреть статью
👍6
Узнаем сколько всего таблиц в базе данных
👍13
Проектирование базы данных для самых маленьких — на примере кинотеатра

Смотреть статью
🔥6👍2
Подзапросы в команде INSERT

В команде INSERT подзапросы могут применяться для определения значения, которое вставляется в один из столбцов.
👍10🔥1
Какой результат возвратит следующая функция в PostgreSQL:

TO_DATE ('2017:JUNE:11','YYYY:Month:DD')?
Anonymous Quiz
30%
2017-JUNE-11
15%
2017-Jun-11
22%
2017-06-11
2%
NULL
16%
Ничего из перечисленного
15%
Посмотреть ответы
👍10🔥2
ESCAPE-символ

ESCAPE-символ используется для экранирования трафаретных символов. В случае если вам нужно найти строки, содержащие проценты (а процент — это зарезервированный символ), вы можете использовать ESCAPE-символ.

Например, вы хотите получить идентификаторы задач, прогресс которых равен 3%.

Если бы мы не экранировали трафаретный символ, то в выборку попало бы всё, что начинается на 3.
👍7🔥4
Как правильно вводить дату в SQL

В SQL даты обычно вводятся в формате "ГГГГ-ММ-ДД", где "ГГГГ" - год, "ММ" - месяц (от 01 до 12) и "ДД" - день (от 01 до 31).

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

INSERT INTO orders (order_date, customer_name)
VALUES ('2023-03-22', 'Иванов Иван');


Если же дата вводится с помощью функции, то можно использовать стандартную функцию преобразования даты, например, функцию TO_DATE() в Oracle:

INSERT INTO orders (order_date, customer_name)
VALUES (TO_DATE('22-03-2023', 'DD-MM-YYYY'), 'Иванов Иван');

В этом примере мы используем функцию TO_DATE() для преобразования строки "22-03-2023" в дату формата "ГГГГ-ММ-ДД". Второй аргумент функции ("DD-MM-YYYY") указывает формат входной строки.
👍71🔥1