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_main_commands.pdf
975.2 KB
Шпаргалка по всем базовым командам SQL с пояснением и примерами
👍26🔥2
Как создать временную таблицу в sql запросе

Для создания временной таблицы используется ключевое слово TEMPORARY в команде CREATE TABLE:

CREATE TEMPORARY TABLE название_таблицы

Удобно создавать временную таблицу на выборке из другой таблицы:

CREATE TEMPORARY TABLE customer_temp SELECT * FROM customer;
👍61
#вопросы_с_собеседований

Что не так с запросом на фото? Исправьте его, если нужно.

В тексте обнаружено неверное выражение BillingYear в условии WHERE. Несмотря на то, что оно было определено как алиас в выборке SELECT перед WHERE, логический порядок обработки условий отличается. Как известно, в T-SQL операторы выполняются в другом порядке, что может привести к неожиданным результатам. Чтобы избежать подобных ошибок, программисты должны учитывать эту особенность при написании кода.

Правильный запрос будет выглядеть так:

SELECT Id, YEAR(BillingDate) AS BillingYear
FROM Invoices
WHERE YEAR(BillingDate) >= 2010;
👍14
В некоторой таблице есть колонка EX_COL. Записи таблицы для этой колонки содержат значения { 100, 200, 300, NULL }. Каким будет результат функции AVG(EX_COL)?
Anonymous Quiz
17%
150
32%
Возникнет ошибка: агрегатные функции не могут быть использованы для записей со значениями NULL
4%
0
37%
200
10%
Узнать ответ
👍10
Сработает ли данный запрос?

Ответ:
Здесь всё очень просто. При вставке строчек в таблицу количество полей при объявлении не соответствует количеству вставляемых значений в конструкции values. Это должен знать даже начинающий SQL-разработчик.
👍21
Задача

Даны 3 таблицы: таблица category с полями id и name, таблица sub_category с полями id и name и таблица page с полями id, name и sub_category_id. Достаньте одним запросом все страницы вместе с их подкатегориями и категориями.

SELECT * FROM page LEFT JOIN category ON page.catogory_id = category.id
LEFT JOIN sub_category ON category.id = sub_category.category_id
👍8🔥3
Функция SYSDATE()

Функция SYSDATE() возвращает текущую дату и время.

Дата и время возвращаются как (строка) "YYYY-MM-DD HH:MM:SS" или как (числовые) YYYYMMDDHHMMSS.
👍8
#Вопросы_с_собеседования

Выбрать студентов, имеющих балл от 82 до 90. Студенты должны быть отсортированы в порядке убывания балла

Ответ на картинке.
👍15😱3
#Вопросы_с_собеседования

Проверьте, существует ли значение в массиве Postgres

Ответ на картинке.
👍8
#Вопросы_с_собеседования

Назовите 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