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
Задача

Дана пустая таблица publisher

Дана пустая таблица publisher с колонками id и name. На id стоит автоинкремент, а Синтаксис name имеет тип varchar(40). Какие из следующих запросов корректно отработают:

1) INSERT INTO publisher (name) VALUES ('OREILLY');
2) INSERT INTO publisher (name) VALUES ('О Reilly');
3) INSERT INTO publisher (name) VALUES ('O'Reilly');
4) INSERT INTO publisher (name) VALUES ('O-Reilly');


Ответ:

1, 2, 4
👍15
#Вопросы_с_собеседования

В чем разница между кластерными и некластеризованными индексами?

Ответ на картинке.
🔥5👍21
Задача

Выберете данные из таблицы users по полям name и age, где age принимает самое маленькое значение.

Ответ на картинке.
👍13😱21
Какое ключевое слово нельзя использовать вместе с оператором ROLLUP?
Anonymous Quiz
21%
LIMIT
13%
GROUP BY
11%
ORDER BY
22%
HAVING
33%
Посмотреть ответ
👍102😱1
#Вопросы_с_собеседования

Добавьте в таблицу table1 поле status

Ответ на картинке.
👍72🔥2
Для сортировки по возрастанию используется следующая конструкция:
Anonymous Quiz
8%
GROUP BY имя_поля DESC
70%
ORDER BY имя_поля ASC
17%
ORDER BY имя_поля DESC
5%
GROUP BY имя_поля ASC
👍12🔥1
#Вопросы_с_собеседования

При выборке из таблицы workers создайте новое поле res, в котором будет строка 'eee'.

Ответ на картинке.
👍7
Запрос, возвращающий все значения из таблицы «Countries», за исключением страны с ID=8, имеет вид
Anonymous Quiz
5%
SELECT * FROM Countries EXP ID=8
7%
SELECT * FROM Countries EXPEPT ID=8
83%
SELECT * FROM Countries WHERE ID !=8
5%
Нет верного ответа
👍10
🐣 Курс по SQL для начинающих

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

1. Введение в PostgreSQL — [2:06:30]
2. Базовые SELECT запросы — [1:58:17]
3. Соединения (JOIN) — [1:07:31]
4. Подзапросы в SQL — [47:12]
5. DDL: создание БД, таблиц и их модификация — [1:50:44]
👍9🔥4
#Вопросы_с_собеседования

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

Ответ на картинке.
👍12
Извлекаем имя из адреса электронной почты

Где "YourTable" - это название вашей таблицы, содержащей столбец с адресами электронной почты.

Этот запрос использует функцию "LEFT", чтобы извлечь часть строки до символа "@", а функция "CHARINDEX" используется для нахождения позиции символа "@". Результат запроса будет содержать столбец с именами, извлеченными из адресов электронной почты.
👍9
Как полностью очистить таблицу sql

Полностью очистить таблицу, не удаляя её можно с помощью запроса DELETE. Мы указываем имя таблицы, но опускаем блок WHERE. Тогда удаляются абсолютно все записи, вне зависимости от условий.

DELETE FROM wiped_table_name;
-- Мы очистили таблицу wiped_table_name


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

TRUNCATE cars, cups, parrots;
-- Тут можно перечислять сколько угодно таблиц
🔥4
Организация хранения исторических данных в Oracle

Сегодня поговорим о разных способах организации хранения исторических данных в Oracle.

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

Удержание пользователей в месяц

Контекст: допустим, у нас есть статистика по авторизации пользователей на сайте в таблице logins:

| user_id | date |
|---------|------------|
| 1 | 2018-07-01 |
| 234 | 2018-07-02 |
| 3 | 2018-07-02 |
| 1 | 2018-07-02 |
| ... | ... |
| 234 | 2018-10-04 |

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

Решение:

SELECT
DATE_TRUNC('month', a.date) month_timestamp,
COUNT(DISTINCT a.user_id) retained_users
FROM
logins a
JOIN
logins b ON a.user_id = b.user_id
AND DATE_TRUNC('month', a.date) = DATE_TRUNC('month', b.date) +
interval '1 month'
GROUP BY
date_trunc('month', a.date)
👍19
#Вопросы_с_собеседования

Выберите из таблицы workers все записи так, чтобы вместо id было userId, вместо login – userLogin, вместо salary - userSalary

Ответ на картинке.
👍11
👍14🔥1