Пишем на SQL
1.93K subscribers
38 photos
6 videos
11 files
101 links
Уроки по SQL. Изучаем базы данных на примере СУБД ORACLE, MySQL, MS SQL Server, PostgreSql
Download Telegram
Предлагаю решить следующую задачу. На какой строке SQL запроса ошибка (при условии, что используемые в запросе таблицы и поля таблиц в базе данных существуют):
Anonymous Quiz
4%
SELECT DATE_CREATE,
34%
5 DOC_TYPE
1%
FROM PRIVATE_DOCS
10%
WHERE IS_EXPIRED IS NULL
32%
ORDER BY DATE_CREATE
0%
UNION ALL
3%
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, для СУБД по трудозатратам это даст равнозначные показатели! Поэтому можно писать как больше нравится 🙂👍
👍7
В конце прошлой недели получил хорошую новость: моя книга "Курс 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
37%
В блоке SELECT одного из запросов
26%
В соединении во втором SELECT-е
17%
В блоке WHERE во втором SELECT-е
21%
В блоке ORDER BY
👍5
Две из нижеприведённых функций в ORACLE во многих случаях могут равноценно заменять друг друга (работают одинаково), а другая работает по-другому. Какая?
Anonymous Quiz
10%
NVL
54%
NVL2
36%
COALESCE
👍3
Здравствуйте, друзья!

Следующий вопрос для тех, кто уже прошёл 25ый урок нашего курса. Посложнее 🙂💪
Имеется новая пустая таблица, с привязанным к ней сиквенсом для генерации значений идентификаторов в столбец ID. При выполнили первых двух команд INSERT, вставились две строки в таблицу с идентификаторами в столбце ID 1 и 2, соответственно. Потом решили начать добавление строк заново, выполнив ROLLBACK. Произведённая вставка двух строк, естественно, откатилась. Таблица стала снова пустой. Снова выполняем команду INSERT.
Строчка с каким идентификатором в столбец ID будет вставлена?
Anonymous Quiz
21%
1
4%
2
58%
3
4%
4
6%
NULL
6%
Будет ошибка выполнения команды INSERT
Спасибо всем за участие в тесте! 🙂 Почти все ответили правильно! 👍
С началом новой рабочей и учебной недели!

И вот ещё одна задачка на тему транзакций 😌

Есть пустая таблица Table1, выполнили следующие команды к ней:
Insert into Table1...;  вставка 1 строки
Insert into Table1...;  вставка 1 строки
Alter table ...;  добавили один столбец
Insert into Table1...; вставка 1 строки
Rollback;
Какая цифра будет в результате выполнения запроса:
Select count(*) from Table1
Anonymous Quiz
23%
0
10%
1
41%
2
12%
3
14%
NULL
👍3
Доброе утро!
Подготовил небольшое видео с решениями нескольких задач, которые мы с Вами разобрали:
https://dzen.ru/video/watch/637830fcbe4db80030157f94
👍7🔥2👏1
Всем привет!
Предлагаю ещё один вопрос по базам данных:
В базе данных есть таблица PERSONS, хранящая сведения о сотрудниках компании. Телефоны сотрудников рабочие и мобильные хранятся в отдельной таблице PHONES.
👍2
Если мы решим хранить мобильный телефон ещё и в таблице PERSONS (создадим новый для этого столбец), то это будет:
Anonymous Quiz
19%
Полиморфизм
67%
Денормализация
14%
Объектно-ориентированное программирование
👍4
Друзья, всем привет!
Очень хочу объяснить что такое ПОЛИМОРФИЗМ в языках программирования.
Это возможность создавать методы (функции, процедуры) с одним и тем же именем!
То есть можно иметь несколько функций, которые будут называться одинаково!!! 😌
Как программа узнает какую из функций выполнять, когда мы вызовем функцию по имени?! Ответ прост: функции должны иметь разные наборы параметров. Будет выполнена именно та функция, которой подойдёт набор параметров, указанный при её вызове!
👍10🔥3