Тёмный
Database Programmer
Database Programmer
Database Programmer
Подписаться
Приветствую вас на моем канале. Здесь я буду рассказывать о Базах Данных, в частности о реляционных БД. Канал будет постоянно пополняться, основная задача канала это полные курсы обучения написанию SQL запросов, программированию в среде Oracle.
Дополнительно выпущу ряд видео с задачами, которые попадаются на собеседованиях, по собственному опыту.
В случае, если вам потребуется индивидуальная помощь и уроков не достаточно, тогда пишите мне, проведем 1..3 или более занятий (за дополнительную плату)
Команды SQL: DML, DDL, DCL, TCL
21:33
4 года назад
NVL NVL2 COALESCE SQL ORACLE
12:05
4 года назад
UNION SQL | MINUS SQL | Примеры
12:08
4 года назад
Комментарии
@duckwasfirst
@duckwasfirst Месяц назад
первая решается окошком же без всяких подзапросов
@TatianaSulman
@TatianaSulman Месяц назад
Добрый день. А где в решении первой задачи учитывается должность Salesman?
@АртёмМеркулов-ю3к
@АртёмМеркулов-ю3к 2 месяца назад
Какая ужасная озвучка
@genaonyx
@genaonyx 2 месяца назад
Непонятно чем не устроил такой запрос: select o.* from orders o join salespeople s on s.salespeople_id = o.salespeople_id and lower(s.salespeople_name) = 'петров' join customers c on o.customers_id = c.customers_id and lower(c.customers_city) = 'москва';
@maxichannel9080
@maxichannel9080 4 месяца назад
Здравствуйте, подскажите где можна скачать вашу бд, что бы самому не создавать?
@сашаворобьёв-п3к
@сашаворобьёв-п3к 4 месяца назад
как сделать пароль на oracle
@samiraxmedov3394
@samiraxmedov3394 7 месяцев назад
Добрый день select * from scott.emp e where e.deptno in ( select deptno from scott.dept where dname = 'SALES') этот запрос называется джоином? то есть это join который был сделан при помощи подзапроса ?
@databaseprogrammer6874
@databaseprogrammer6874 7 месяцев назад
Добрый день! Этот запрос называется подзапросом! Join - это присоединение другой таблицы с возможностью получить оттуда результат. Здесь такого нет, только условие
@arenmkhoyan
@arenmkhoyan 7 месяцев назад
Супер
@natalkarp
@natalkarp 8 месяцев назад
Зануда. Перепиши звук. Слушать невозможно. Картинка с монитора мыльная.
@databaseprogrammer6874
@databaseprogrammer6874 7 месяцев назад
Ваше право не смотреть)
@alexker9324
@alexker9324 9 месяцев назад
хороший урок
@ИИванов-ь6с
@ИИванов-ь6с 10 месяцев назад
👍👍👍
@АлександрСтепанов-и8и5ж
Добрый день! Подскажите, пожалуйста, зачем в самом последнем запросе (where not exist) коррелирующий подзапрос в блоке where (where e.empno = el.empno)?
@almazneft
@almazneft 11 месяцев назад
Почему нельзя было решить более простым способом в первой задачи? SELECT deptno, ename, MAX(hiredate) FROM skott.emp GROUP BY deptno ORDER BY 3 DESC
@ИлларионИванов-л1е
@ИлларионИванов-л1е 11 месяцев назад
👍👍👍
@ИлларионИванов-л1е
@ИлларионИванов-л1е 11 месяцев назад
Хорошо умеете преподносить материал! 👍👍👍Не каждый так может!
@ИлларионИванов-л1е
@ИлларионИванов-л1е 11 месяцев назад
👍👍👍
@ИлларионИванов-л1е
@ИлларионИванов-л1е 11 месяцев назад
А можно ли использовать антипод звёздочка, то есть указывать какие поля не надо выводить через select?
@databaseprogrammer6874
@databaseprogrammer6874 7 месяцев назад
Нет, такого нету)) вы можете перечислить поля, которые хотите выводить, но перечислить те что не хотите, увы)
@ИлларионИванов-л1е
@ИлларионИванов-л1е 11 месяцев назад
Добрый день! Можно ли считать, что вы закончили курс по SQL?
@ИИванов-ь6с
@ИИванов-ь6с 10 месяцев назад
Тоже интересует этот вопрос
@databaseprogrammer6874
@databaseprogrammer6874 7 месяцев назад
Добрый день! Да, курс по SQL полностью закончен. Теорию вся которая нужна я дал, практические уроки тоже были. Дальше только часы практики написания разных запросов
@Jokero12488
@Jokero12488 11 месяцев назад
Спасибо большое за видео. Подскажите, пожалуйста, как использовать функцию case, если нужно вывести данные разного типа?
@komradklimov5327
@komradklimov5327 Год назад
Почему во 2 задаче нельзя было использовать union для обьединения таблицы самой с собой. Дубли бы исключились. Решение в 3 строки.
@deniskorobkin8574
@deniskorobkin8574 Год назад
Хороший материал, спасибо за труд!
@alexeypiletskiy9958
@alexeypiletskiy9958 Год назад
крутой урок, спасибо
@alexeypiletskiy9958
@alexeypiletskiy9958 Год назад
к описанию видео нужно добавить еще AS
@MrDudeNudem
@MrDudeNudem Год назад
Почему-то с восьмой минуты просело качество. И выбрать не даёт! :(
@viktoryakovenko299
@viktoryakovenko299 Год назад
спасибо. очень доходчиво)
@pol97268
@pol97268 Год назад
Спасибо за понятное объяснение!
@Kaspartu
@Kaspartu Год назад
Спасибо очень помогло но увы в России нельзя ничего оттуда скачать пришлось включать впн но все равно СПАСИБО огромное
@samiraxmedov3394
@samiraxmedov3394 Год назад
🇦🇿🙏🏼
@katerina759
@katerina759 Год назад
Спасибо за наглядную разницу по Count() 😊
@andreychameleon2135
@andreychameleon2135 Год назад
В задание сказано напечатать список служащих включая их имя и оклад, а потом уточнение как именно напечатать оклад если он отвечает некоторым условиям. Как по мне автор не совсем верно интерпретировал задание, условие на null нужно било вывести в отдельный when, а в ELSE нужно было значение зарплаты (число) преобразовать в стоку.
@andreychameleon2135
@andreychameleon2135 Год назад
Задача 1. На тестовых данных цена запроса два раза ниже с 16 до 8 Select q.* from (Select t1.a, t1.b, count(*) as c from t1 group by t1.a, t1.b) q full join (Select t2.a, t2.b, count(*) as c from t2 group by t2.a, t2.b) w on q.a = w.a and q.b = w.b and q.c = w.c where q.a is null or q.b is null or w.a is null or w.b is null
@afsfasfafaf
@afsfasfafaf Год назад
все понятно и доступно
@Strateg2300
@Strateg2300 Год назад
В решении первого задания ошибка. Сказано выбрать служащих, а автор выбрал менеджеров
@alimcinella
@alimcinella 2 года назад
SELECT case when (MONTH(GETDATE()) < MONTH(bday)) then YEAR(GETDATE()) - YEAR(bday) - 1 when (MONTH(GETDATE()) = MONTH(bday) AND DAY(GETDATE())<DAY(bday)) then YEAR(GETDATE()) - YEAR(bday) - 1 when (MONTH(GETDATE()) > MONTH(bday) OR (MONTH(GETDATE()) = MONTH(bday) AND DAY(GETDATE())>=DAY(bday))) then YEAR(GETDATE()) - YEAR(bday) end as ydate FROM stud
@bhms-binary
@bhms-binary 2 года назад
Скажите пожалуйста, почему и с каких пор сейчас нету страны РФ? Есть только Украина.
@databaseprogrammer6874
@databaseprogrammer6874 2 года назад
Думаю в связи с последними событиями, увы...
@bhms-binary
@bhms-binary 2 года назад
@@databaseprogrammer6874 Жаль, что Оракл такие бездушн... Ладно пофиг, просто жаль...
@bhms-binary
@bhms-binary 2 года назад
@@databaseprogrammer6874 Спасибо за ответ)
@mrbombastic3478
@mrbombastic3478 2 года назад
Купи микрофон. Какое бы ни было замечательное видео, услыша 5 секунд этот звук я отключил видео.
@databaseprogrammer6874
@databaseprogrammer6874 2 года назад
Микрофон был уже в видео, вышедших позже.
@meolessi9434
@meolessi9434 2 года назад
Два года этому видео. Сейчас 2022, значит видео было записано в 2020. Где в 2020 году ты умудрился найти такой херовый микрофон.
@databaseprogrammer6874
@databaseprogrammer6874 2 года назад
В первых записанных видео использовался внутренний микрофон в ноутбуке, затем был куплен внешний микрофон.
@nov2002ki
@nov2002ki 2 года назад
В 3 задаче в случае нескольких документов в пределах дня, потребуется дополнительная сортировка по id
@mariaraykova2686
@mariaraykova2686 2 года назад
"else NULL" - мне казалось, что правильнее было написать "else sal"... Раз в условии ничего не сказано про значения выше 1500, то надо выводить значения поля, какие они есть (даже если это значение null)
@ДамирБайденов-н8в
@ДамирБайденов-н8в 2 года назад
select man_name,emp_name,min_sal from (select m.first_name man_name,e.first_name emp_name,e.salary emp_sal,min(e.salary) over(partition by m.first_name) min_sal from employees e left join employees m on e.manager_id=m.employee_id) where min_sal=emp_sal and min_sal>1000 order by min_sal
@ДамирБайденов-н8в
@ДамирБайденов-н8в 2 года назад
как думаете такой вариант решения правильный для первого задания?
@sunchosamarancho41
@sunchosamarancho41 2 года назад
почему в первом задании выбираете мин(сал) он же покажет минимальную зп ,а вам надо для каждого из групп менеджеров, по-моему тут без предикшина никак
@kurama9513
@kurama9513 2 года назад
А что мне писать в "наименование должности" и "название компании" "адрес" я не работаю(
@databaseprogrammer6874
@databaseprogrammer6874 2 года назад
Вас никто проверять не будет, это не банк) пишите "от балды"
@АндрейСкворцов-з6ш
День добрый, а с разными типами данных это сработает ?
@databaseprogrammer6874
@databaseprogrammer6874 2 года назад
Добрый день. Вообще данные должны быть одного типа, иначе может быть ошибка
@Darkstrom2201
@Darkstrom2201 2 года назад
И по поводу задания 2, Варианта 1го, можно добавить в условие что mgr при null обработать с помощью nvl или coalesce Select empno,ename,job,deptno from public.employers where empno not in (select coalesce(mgr,0) from public.employers group by mgr)
@Darkstrom2201
@Darkstrom2201 2 года назад
Задание 1. В целом можно убрать в подзапросе count(*) и тогда можно будет подзапрос, вывести как финальный запрос select deptno,avg(sal) as cnt from public.employers group by deptno having count(empno)>3 and avg(sal)> (select avg(sal) from public.employers where deptno=30)
@alexalex2783
@alexalex2783 2 года назад
Во второй задаче строка "else NULL" - пропишет NULL для всех зарплат выше 1500 бакинских?
@HappyBanditPanda
@HappyBanditPanda 2 года назад
Да, но не совсем так. Сначало проверяются условия, если условие1 верно, то возвращай эту строку, потом проверка условие2 итд. ELSE же применяется, когда никакие условия выше не выполнены. То есть всё что больше 1500 и еще NULL. NULL могут быть в таблице изначально и они тоже не поменяются. Такой маленький нюанс.
@andreychameleon2135
@andreychameleon2135 Год назад
@@HappyBanditPanda Как по мне автор не совсем верно интерпретировал задание, условие на null нужно било вывести в отдельный when, а в ELSE нужно было значение зарплаты (число) преобразовать в стоку.
@andrewmarchcat8920
@andrewmarchcat8920 2 года назад
Урок хороший, но стук по клавишам громче, чем голос - очень мешает...
@databaseprogrammer6874
@databaseprogrammer6874 2 года назад
Понимаю) Это было до появлиения отдельного микрофона. Посмотрите в каталоге, я разбил это видео на части и сделал ремастеринг. Улучшил звук, как смог..
@farksandrit5088
@farksandrit5088 2 года назад
БРЕД ПОЛНЫЙ 3 ЧАСА НЕ МОГУ ЗАРЕГАТЬСЯ ГРЕБАННОЕ МЫЛО
@databaseprogrammer6874
@databaseprogrammer6874 2 года назад
Не очень понятен ваш комментарий? Если у вас претензии к ораклу, то наверно им их и надо высказывать
@Just_Viktor
@Just_Viktor 2 года назад
@@databaseprogrammer6874 почему то сейчас ни пароль не подходит к аккаунту оракл, ни письмо с восстановлением пароля не приходит. ни зарегистрировать новый(
@KiberDoktoR
@KiberDoktoR 7 месяцев назад
​@@Just_Viktorони запретили регистрацию из России. И учётки отключили российские. Не приходят даже письма при регистрации и при использовании впн в том числе.
@ФедорДвинятин-ю6б
@ФедорДвинятин-ю6б 2 года назад
Как с вами связаться?
@databaseprogrammer6874
@databaseprogrammer6874 2 года назад
Здравствуйте. Вы можете написать мне на почту serji1986@gmail.com
@Otnielush
@Otnielush 2 года назад
Классно, но нифига не видно на телефоне
@databaseprogrammer6874
@databaseprogrammer6874 2 года назад
Такие вещи все-таки лучше смотреть с экрана компьютера)