Базы данных. MySQL. Подзапросы

Поделиться
HTML-код
  • Опубликовано: 28 сен 2024
  • Презентация:
    docs.google.co...
    Задачи:
    docs.google.co...
    Вводный курс по базам данных.
    В этом занятии будет:
    - Подзапрос как скалярный операнд
    - Подзапросы возвращающие несколько строк
    - ANY
    - ALL
    - Кореллированные запросы
    - EXISTS
    - Подзапросы в секции FROM
    - INSERT + SELECT
    - Ограничения + производительность
    По любым вопросам, связанным с курсом можно писать на почту: okulov@rclass.pro

Комментарии • 49

  • @JGolt
    @JGolt 3 года назад +5

    Великолепный урок! Спасибо за материал!

    • @Rclass
      @Rclass  3 года назад

      Спасибо! Мы старались :)

  • @vladimirbarakovskiy4015
    @vladimirbarakovskiy4015 2 года назад +4

    SUBQUERY только путает новичков, сложно будет переключить мозги с логики JOIN на SUBQUERY. SUBQUERY в первую очередь признан облегчить задачу там, где она сложна с JOIN. Понять это можно, только получив опыт в долгосрочной практике. Для новичка лучше использовать только тип SCALAR

    • @Rclass
      @Rclass  2 года назад

      Всё верно, но не ознакомить новичка с такой возможностью тоже нельзя, поэтому мы о них и рассказали. И иногда кроме как подзапросом задачу не решить совсем.

  • @ВладимирЛобочкин
    @ВладимирЛобочкин 2 года назад +2

    В примере ниже ошибка, 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)

  • @АлександрКостюченко-у4х

    Спасибо! Если вот такого не хватает в разных курсах. Было бы круто - чуть больше примеров

    • @Rclass
      @Rclass  3 года назад +1

      Спасибо, мы старались! Вместо примеров упор делали на практику)

  • @detrov2422
    @detrov2422 Год назад

    Очень добротный курс, спасибо

    • @Rclass
      @Rclass  Год назад

      Спасибо, мы старались :)

  • @donfedor007
    @donfedor007 Год назад +1

    Майка огонь!

    • @Rclass
      @Rclass  Год назад +1

      Всем рок!

  • @Данияр-м9с
    @Данияр-м9с Год назад +3

    Это ехидное выражение лица, когда лектор задает вопрос, греет душу как нично иное ))

  • @vladzaiko5012
    @vladzaiko5012 3 года назад +2

    чтобы выбрать всех сотрудников с макc зарплатой, не проще было бы сделать так ?
    может так даже быстрее будет работать...
    SELECT * FROM workers WHERE department_id = (
    SELECT department_id FROM workers order by salary desc limit 1
    )

    • @panchenkko_vlad
      @panchenkko_vlad 3 года назад

      Так пример был явно надуманный. В видео было сказано что решить можно было гораздо проще. Ваш пример точно будет производительнее.

  • @milalapshova7195
    @milalapshova7195 3 года назад

    Подскажите, пожалуйста, почему не работает
    Нужно проставить к какому поколению принадлежат люди.
    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 так же пробовала =
    Заранее спасибо

    • @alexeycherkasov1144
      @alexeycherkasov1144 3 года назад +1

      Может быть потому что вместо "...WHERE `generation`= NULL..." нужно поставить "...WHERE `generation` IS NULL..." ?

  • @_Z.a.h.a.R_
    @_Z.a.h.a.R_ 8 месяцев назад

    топ

    • @Rclass
      @Rclass  8 месяцев назад

      Спасибо :)

  • @kukumamba
    @kukumamba Месяц назад

    представляю, как после вопроса лектора: "понятно, да?" в аудитории сидит толпа мемных обезьянок, хлопающих в тарелки
    если задача была "пробежаться" по подзапросам, то вы скорее пролетели мимо

  • @ligat-rome
    @ligat-rome 2 года назад

    Чибр!!

  • @_v1pl_
    @_v1pl_ 8 месяцев назад

    эвона как

    • @Rclass
      @Rclass  8 месяцев назад

      А то!

    • @_v1pl_
      @_v1pl_ 8 месяцев назад

      хотела спросить почему слева вверху экрана кружка пива?@@Rclass

    • @Rclass
      @Rclass  8 месяцев назад

      @@_v1pl_ вы думаете что разработчики никак не связаны с пивом? :)

  • @ИльяСеливанов-г6ы

    Понятно да, и идем дальше, для кого урок, если для новичков, то знай так объяснять не стоит, хоть чуть чуть надо объяснять, а не бежать просто по подзапросам

    • @Rclass
      @Rclass  Год назад

      Задача: ознакомить с такой возможностью, нет задачи досконально объяснить.

  • @lisafox9026
    @lisafox9026 3 года назад

    откуда взялись workers? вы или по-русски или английски, а то для новичков запутаться можно

    • @ИлларионИванов-л1е
      @ИлларионИванов-л1е Год назад

      Да там надо наверное, всю структуру таблиц смотреть, как они взаимосвязаны. А так - да, ни черта не понятно. Главное для меня - увидеть какие подзапросы можно делать :)

    • @lisafox9026
      @lisafox9026 Год назад

      @@ИлларионИванов-л1е это вы точно заметили, в презентации юзеры быстро стали работниками..
      мне больше нравится когда пишут и сразу объясняют, а так он сам в теме, а остальные должны додумывать

  • @webwebeasy
    @webwebeasy 4 года назад +15

    пожалуй стоит пересмотреть несколько раз

  • @dj_omen
    @dj_omen 3 месяца назад

    Таблица users а выбирают из workers. Нормальное начало))

  • @powerbis.1794
    @powerbis.1794 Год назад

    понятно да? Вообще то НИ КУ Я не понятно!

    • @Rclass
      @Rclass  Год назад +1

      А мы так старались :(

    • @ИлларионИванов-л1е
      @ИлларионИванов-л1е Год назад

      Чтобы понять надо обязательно экспериментировать. Пробовать. Понять зависимости и т.д. Я сам ни куя не понимаю часто :)

    • @ЯщикПочтовый-ш4х
      @ЯщикПочтовый-ш4х Год назад

      Рекомендую почитать книгу Бена Форта " SQL за 10 минут". После этой книги этот урок воспринимается как для малышей

  • @Джулс-с3ж
    @Джулс-с3ж 3 года назад +1

    Не поняла почему в коррелированном подзапросе после Where идёт workers ,department id = departments , id. Зачем эта строчка, подскажите, пожалуйста

    • @mr.banner4231
      @mr.banner4231 Год назад +1

      Чтобы строчки не повторялись (чтобы уникальными были)

    • @ЯщикПочтовый-ш4х
      @ЯщикПочтовый-ш4х Год назад +1

      Здесь использование двух таблиц, а это требует указать, как связать одну таблицу с другой, иначе декартово произведение получите. Это строка и есть условие связывания двух таблиц - workers и departmens

    • @Джулс-с3ж
      @Джулс-с3ж Год назад

      @@mr.banner4231 спасибо

    • @Джулс-с3ж
      @Джулс-с3ж Год назад

      @@ЯщикПочтовый-ш4х спасибо

  • @vladzaiko5012
    @vladzaiko5012 3 года назад

    скиньте или прикрепите к видео тестовую базу плиз

  • @mecvarra
    @mecvarra 2 года назад

    Я так понимаю это все для профи

    • @Rclass
      @Rclass  2 года назад

      Ну почему же, регулярно бывают нужны подзапросы)

  • @ny_sho_ti_dyadya
    @ny_sho_ti_dyadya 4 года назад

    вонна,мен, вонна

  • @ЯщикПочтовый-ш4х

    Под какую СУБД здесь пишут запросы?

    • @Rclass
      @Rclass  Год назад

      Хм, но в заголовке ведь указано...