Базы данных. MySQL. Подзапросы
HTML-код
- Опубликовано: 28 сен 2024
- Презентация:
docs.google.co...
Задачи:
docs.google.co...
Вводный курс по базам данных.
В этом занятии будет:
- Подзапрос как скалярный операнд
- Подзапросы возвращающие несколько строк
- ANY
- ALL
- Кореллированные запросы
- EXISTS
- Подзапросы в секции FROM
- INSERT + SELECT
- Ограничения + производительность
По любым вопросам, связанным с курсом можно писать на почту: okulov@rclass.pro
Великолепный урок! Спасибо за материал!
Спасибо! Мы старались :)
SUBQUERY только путает новичков, сложно будет переключить мозги с логики JOIN на SUBQUERY. SUBQUERY в первую очередь признан облегчить задачу там, где она сложна с JOIN. Понять это можно, только получив опыт в долгосрочной практике. Для новичка лучше использовать только тип SCALAR
Всё верно, но не ознакомить новичка с такой возможностью тоже нельзя, поэтому мы о них и рассказали. И иногда кроме как подзапросом задачу не решить совсем.
В примере ниже ошибка, VALUES должно стоять после (`name`, `old_salary`), если не прав поправьте меня
INSERT INTO `old_workers`
VALUES (`name`, `old_salary`)
SELECT
`workers`.`name`,
`workers`.`salary`
FROM `workers`
WHERE `workers`.`id` IN (1,2,3)
Спасибо! Если вот такого не хватает в разных курсах. Было бы круто - чуть больше примеров
Спасибо, мы старались! Вместо примеров упор делали на практику)
Очень добротный курс, спасибо
Спасибо, мы старались :)
Майка огонь!
Всем рок!
Это ехидное выражение лица, когда лектор задает вопрос, греет душу как нично иное ))
А то)
чтобы выбрать всех сотрудников с макc зарплатой, не проще было бы сделать так ?
может так даже быстрее будет работать...
SELECT * FROM workers WHERE department_id = (
SELECT department_id FROM workers order by salary desc limit 1
)
Так пример был явно надуманный. В видео было сказано что решить можно было гораздо проще. Ваш пример точно будет производительнее.
Подскажите, пожалуйста, почему не работает
Нужно проставить к какому поколению принадлежат люди.
UPDATE `basic_inf` SET `generation`= 'Y'
WHERE `generation`IN
(SELECT `generation`
FROM basic_inf
WHERE `generation`= NULL AND birth > 1982-01-01 AND birth < 1999-12-31);
Вместо IN так же пробовала =
Заранее спасибо
Может быть потому что вместо "...WHERE `generation`= NULL..." нужно поставить "...WHERE `generation` IS NULL..." ?
топ
Спасибо :)
представляю, как после вопроса лектора: "понятно, да?" в аудитории сидит толпа мемных обезьянок, хлопающих в тарелки
если задача была "пробежаться" по подзапросам, то вы скорее пролетели мимо
Чибр!!
эвона как
А то!
хотела спросить почему слева вверху экрана кружка пива?@@Rclass
@@_v1pl_ вы думаете что разработчики никак не связаны с пивом? :)
Понятно да, и идем дальше, для кого урок, если для новичков, то знай так объяснять не стоит, хоть чуть чуть надо объяснять, а не бежать просто по подзапросам
Задача: ознакомить с такой возможностью, нет задачи досконально объяснить.
откуда взялись workers? вы или по-русски или английски, а то для новичков запутаться можно
Да там надо наверное, всю структуру таблиц смотреть, как они взаимосвязаны. А так - да, ни черта не понятно. Главное для меня - увидеть какие подзапросы можно делать :)
@@ИлларионИванов-л1е это вы точно заметили, в презентации юзеры быстро стали работниками..
мне больше нравится когда пишут и сразу объясняют, а так он сам в теме, а остальные должны додумывать
пожалуй стоит пересмотреть несколько раз
Таблица users а выбирают из workers. Нормальное начало))
понятно да? Вообще то НИ КУ Я не понятно!
А мы так старались :(
Чтобы понять надо обязательно экспериментировать. Пробовать. Понять зависимости и т.д. Я сам ни куя не понимаю часто :)
Рекомендую почитать книгу Бена Форта " SQL за 10 минут". После этой книги этот урок воспринимается как для малышей
Не поняла почему в коррелированном подзапросе после Where идёт workers ,department id = departments , id. Зачем эта строчка, подскажите, пожалуйста
Чтобы строчки не повторялись (чтобы уникальными были)
Здесь использование двух таблиц, а это требует указать, как связать одну таблицу с другой, иначе декартово произведение получите. Это строка и есть условие связывания двух таблиц - workers и departmens
@@mr.banner4231 спасибо
@@ЯщикПочтовый-ш4х спасибо
скиньте или прикрепите к видео тестовую базу плиз
Я так понимаю это все для профи
Ну почему же, регулярно бывают нужны подзапросы)
вонна,мен, вонна
Под какую СУБД здесь пишут запросы?
Хм, но в заголовке ведь указано...