Пишем на SQL
1.93K subscribers
43 photos
7 videos
12 files
116 links
Уроки по SQL. Изучаем базы данных на примере СУБД ORACLE, MySQL, MS SQL Server, PostgreSql

Мой курс по SQL и базам данных:
https://prime-soft.biz/courses/sql

Связь со мной @iliahohlov
Download Telegram
Всем привет!

Сегодня нашёл в интернете небольшую интересную задачу с собеседования по SQL. В ней нужно правильно составить небольшой запрос к таблицам.
Ниже будет текст задачи, а решение разберём чуть позже.
1
В базе данных есть таблица анализов Analysis, имеющая следующие столбцы:

an_id — ID анализа;
an_name — название анализа;
an_price — цена анализа;
an_group — группа анализов.

Есть таблица заказов Orders:

ord_id — ID заказа;
ord_datetime — дата и время заказа;
ord_an — ID анализа.

Необходимо вывести название и цену для всех анализов, которые продавались 5 февраля 2020 и всю следующую неделю.
🔥3👍2
Спасибо всем за продуктивную работу вчера! Много поработали над задачей с собеседования, которую я нашёл на просторах интернета!
Решение этой задачи, а также ссылку на источник выложил здесь: https://dzen.ru/a/ZsWYIY7xOwqvLnUH
1
Добрый вечер, друзья!

К сожалению, вчера пришлось отменить старт десятидневного интенсива по SQL и PostgreSql, и вернуть оплату единственной записавшийся на обучение девушке! 🙂

Давайте соберём группу минимум из 3ёх человек! В идеале 7 - 10! 🙂💪

Напишите, пожалуйста, под постом когда Вам было бы удобно начать в сентябре, я подстроюсь! 😌
🙏4👍2
Всем привет!

Уже несколько пятниц не публиковал шутки по теме айти и вот одна мне на этой неделе попалась. Приберёг до сегодня 🙂
Смотреть со звуком!

Всем хорошей пятницы🎉
Всем привет!

Небольшой тест по SQL на этот понедельник! В базе данных есть таблица CLIENTS, имеющая, среди прочих, столбцы IS_JUR NUMBER(1) NOT NULL и CITY_NAME VARCHAR2(100) NOT NULL. Могут ли запросы ниже выводить разный набор данных?

SELECT CITY_NAME FROM CLIENTS WHERE IS_JUR IN (0, 1)

и

SELECT CITY_NAME FROM CLIENTS WHERE IS_JUR = 0
UNION
SELECT CITY_NAME FROM CLIENTS WHERE IS_JUR = 1
👍5
Могут ли указанные запросы выводить разный набор данных?
Anonymous Quiz
57%
Да
43%
Нет
Продолжаем тему базового курса SQL!
Еще одна простая задача!
Могут ли запросы, написанные ниже, возвращать разный набор данных:

Запрос 1:
SELECT c.ID, c.NAME, inv.*
FROM CLIENTS c
LEFT JOIN INVOICES inv
ON inv.ID_CLIENT = c.ID

Запрос 2:
SELECT c.ID, c.NAME, inv.*
FROM CLIENTS c
LEFT OUTER JOIN INVOICES inv
ON inv.ID_CLIENT = c.ID
Могут ли указанные запросы, возвращать разный набор данных?
Anonymous Quiz
38%
Да
62%
Нет
Друзья, LEFT JOIN (левое соединение) и LEFT OUTER JOIN (левое ВНЕШНЕЕ соединение) - это одно и тоже. Левое соединение оно всегда внешнее. На заре SQL, для создания левого соединения, писали LEFT OUTER JOIN. Но, из-за того, что LEFT JOIN итак всегда OUTER (внешнее), смысл этого слова постепенно отпал. Необходимость использования этого слова упразднили и оно стало не обязательным. Его наличие или отсутствие при составлении левого соединения ничего не меняет.
👍23🔥7
Всем кому актуально обучение по SQL и PostgreSql, приглашаю на интенсив!

Начинаем 24 сентября во вторник!

10 онлайн встреч со мной минимум по 1.5 часа. Обучаться будем так же: вт и чт в 19:30 и сб в 9:30.

Закрытая Телеграм группа с записью всех эфиров (на случай, если пропустите).

Цена сейчас: 8.900 р за все!

Посмотреть мощную программу курса, а также записаться на него можно здесь:
https://prime-soft.biz/courses/postgresql

Вопросы пишите, пожалуйста, под постом.
Буду Вас ждать!
👍2
Всех с днём знаний и доброго понедельника!

Начинаем рабочую неделю как всегда с разминки по SQL! Задача с собеседования. Базовый уровень.
🔥4
Необходимо добавить новый столбец ADDRESS с типом данных VARCHAR(250) в существующую таблицу PERSONS.
Anonymous Quiz
7%
INTO TABLE PERSONS ADD ADDRESS VARCHAR(250)
5%
UPDATE TABLE PERSONS ALTER COLUMN ADDRESS VARCHAR(250)
14%
UPDATE TABLE PERSONS ADD COLUMN ADDRESS VARCHAR(250)
60%
ALTER TABLE PERSONS ADD ADDRESS VARCHAR(250)
14%
ALTER TABLE PERSONS ALTER COLUMN ADDRESS(250)
В SQL запросах допустимо соединение таблиц с помощью ключевого слова JOIN без указания типа соединения (LEFT, RIGHT и т.д.). Например:
SELECT *
FROM CLIENTS c
JOIN INVOICES i
ON i.ID_CLIENT = c.ID
В таблице GOODS ("Товары") для уникальной идентификации записей использовался столбец ARTICLE ("Артикул товара"). Этот столбец был установлен в качестве первичного ключа. С некоторыми последними доработками и расширением функционала, возникла необходимость наличия товаров с одинаковым артикулом. Для идентификации товаров пришлось создать новый отдельный столбец "ID" со сквозной нумерацией.
Первичный ключ является суррогатным, если он состоит из столбца, который не содержит бизнес-данных и был создан исключительно для возможности идентификации записей.
🔥3