Пишем на 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
Можно ли использовать алиасы (псевдонимы) столбцов в секции HAVING?
Anonymous Quiz
40%
Можно
60%
Нельзя
Здравствуйте, друзья!

Спасибо Вам за активное участие!
Прямой эфир проведу в эту субботу (24.09.2022) в 12:00 (Мск).

Пока предварительно набросал темы:
Функция rtrim;
Соединения таблиц (джоины);
Подзапросы;
Группировка;
Создание и вызов процедур;
Транзакции и грязное чтение данных (в ORACLE, кстати, грязного чтения нет, но есть, например в MS SQL Server).

Скорее всего, всё не успеем рассмотреть. Некоторые темы большие и о них я бы хотел больше рассказать, но основы точно в прямом эфире дам.
Ссылку на подключение я пришлю завтра! Если кто-то не сможет в субботу в 12:00, то можно будет посмотреть эфир в записи. Ссылку выложу сюда же.
👍5
Всем привет!
Друзья, прямой эфир в эту субботу придётся отменить.
Прошу меня простить, но я запишу специальное видео в течение недели с ответом на Ваши вопросы или проведу эфир на следующей неделе.
Небольшой вопрос для всех кто уже хорошо разбирается в SQL🙂
Здравствуйте, друзья! Всем хорошего начала рабочей и учебной недели! Вчера вечером обнаружил отзыв на нашем Дзен-Канале одного из наших учеников. Всегда приятно такое получить! Спасибо!
Мини-вопрос:
Какая команда SQL используется для изменения объектов базы данных?
Anonymous Quiz
7%
TRUNCATE
36%
UPDATE
3%
CREATE
54%
ALTER
Уверен, что большинство ответили на прошлый вопрос не правильно потому, что поторопились🙂

Ключевое слово - Объекты.
Нужно было выбрать команду изменения ОБЪЕКТОВ базы данных, например, таблиц (а не данных в них), пользователей и т.д.
👍1
Предлагаю решить следующую задачу. На какой строке SQL запроса ошибка (при условии, что используемые в запросе таблицы и поля таблиц в базе данных существуют):
Anonymous Quiz
4%
SELECT DATE_CREATE,
33%
5 DOC_TYPE
1%
FROM PRIVATE_DOCS
10%
WHERE IS_EXPIRED IS NULL
32%
ORDER BY DATE_CREATE
0%
UNION ALL
4%
SELECT d.DATE_CREATE,
8%
d.VOUCHER_TYPE DOC_TYPE
1%
FROM VOUCHERS d
7%
ORDER BY DATE_CREATE
Друзья, если вы ответили не правильно и если не понятно пояснение правильного ответа, то можете написать в комментариях почему выбрали вашу строку (которую считаете ошибочной в запросе). Я поясню почему она правильная👍
Доброе утро, друзья!

Что оптимальнее для ORACLE писать в блоке SELECT подзапроса, проверяющего наличие записи в другой таблице, звёздочку:

SELECT *
FROM Persons p
WHERE EXISTS (SELECT * FROM PersonCars WHERE PersonID = p.PersonID)

или псевдостолбец:

SELECT *
  FROM Persons p
WHERE EXISTS (SELECT 1 FROM PersonCars WHERE PersonID = p.PersonID)

Как ответил, один из разработчиков ORACLE, для СУБД по трудозатратам это даст равнозначные показатели! Поэтому можно писать как больше нравится 🙂👍
👍8
В конце прошлой недели получил хорошую новость: моя книга "Курс SQL. Базы данных. ORACLE" стала доступна и в Google. Books!

https://play.google.com/store/books/details?id=MLSREAAAQBAJ
👍7
Предлагаю ещё одну похожую задачу. В следующем SQL-коде в одной из строчек ошибка.

SELECT v.VOUCHER_DATE,
               v.VOUCHER_STATE,
               NULL  CREATE_USER,
               NULL   ADD_INFO,
               v.USER_ID
  FROM VOUCHERS v
UNION ALL
SELECT ov.VOUCHER_DATE,
               2 VOUCHER_STATE,
               NULL  CREATE_USER,
               NULL
  FROM OLD_VOUCHERS ov
   LEFT JOIN CLIENTS c
      ON c.ID_CLIENT = ov.ID_CLIENT
WHERE c.ID_CLIENT IS NULL
ORDER BY 1
В каком блоке ошибка, если известно, что все используемые таблицы в базе данных существуют и имена столбцов написаны правильно?
Anonymous Quiz
38%
В блоке SELECT одного из запросов
26%
В соединении во втором SELECT-е
16%
В блоке WHERE во втором SELECT-е
20%
В блоке ORDER BY
👍5