SQL Урок 7 | Создание отношений (связей) между таблицами | Для Начинающих

Поделиться
HTML-код
  • Опубликовано: 9 мар 2017
  • В этом видео уроке мы будем создавать отношения между таблицами. Вы узнаете, что существуют такие связи, как многие к одному, многие ко многим и один к одному. Я постепенно на протяжении двух уроков буду объяснять для чего нужны такие связи и наглядно покажу на примере наших таблиц, как просто строить связанный sql запрос.
    Также, если Вы никогда не умели программировать ни на каком языке и хотите научиться, тогда Вам тоже к нам.
    Мои видеокурсы:
    Программирование для Начинающих - robotobor.pro/programming-for-...
    Видеокурс "Погружение в язык VBA" - course.robotobor.pro/vba/dippi... - Профессиональное программирование на VBA
    Наш официальный Сайт: robotobor.pro
    Наша Группа ВКонтакте: robotobor_pro
    Наш Инстаграм: / robotobor_pro
    Мой C#.NET Инстаграм: / csharp_dotnet

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

  • @aizendark1054
    @aizendark1054 4 года назад +37

    привет с 2020 года спасибо большое за ценный урок

  • @vasilich_bear
    @vasilich_bear 3 года назад +12

    Спасибо за информацию, все понятно и доступно рассказано простым языком. Пысы 2020 год.

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

      Основной стандарт и основы SQL на протяжении многих лет не меняются, фундамент. Только фичи добавляются к конкретным СУБД.

  • @daimex1794
    @daimex1794 3 года назад +11

    И из апреля 2021 тоже привет!) Спасибо, благодаря вашим урокам стал разбираться в sql

  • @empty9228
    @empty9228 4 года назад +7

    Очень круто объясняешь, простым понятным языком и не куда не спешишь! Большое спасибо!

    • @RobotoborPro
      @RobotoborPro  4 года назад +3

      Спасибо. Да, цель курса - это донести до любого по-настоящему заинтересованного человека: что такое SQL и реляционные БД, и с чем их едят )

  • @bekat2265
    @bekat2265 2 года назад +24

    20:00 таймкод. С этого момента начинается тема "связи"

  • @babunv2
    @babunv2 2 года назад +1

    "Об этом лучше почитать, но принцип вам понятен!" Супер

  • @kslmPtr
    @kslmPtr 7 лет назад +20

    По вашим видео делаю курсовой проект, спасибо =)

    • @RobotoborPro
      @RobotoborPro  7 лет назад +3

      +KotaNchiKProduction Ого, здорово!

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

    Спасибо большое за урок.

  • @nikvand
    @nikvand 7 лет назад +8

    Круто! Пили еще =)

    • @RobotoborPro
      @RobotoborPro  7 лет назад +6

      Скоро на ваших экранах :)

  • @Пестик
    @Пестик 4 года назад +45

    Спасибо ютубу за ускорение в 1.5 :)

    • @another_china
      @another_china 4 года назад +3

      Павел Павел 1,75 минимум)

    • @_dyats
      @_dyats 4 года назад +8

      @@another_china Да тут 2 мало ;)

    • @user-vj7cz8ey5v
      @user-vj7cz8ey5v 4 года назад +3

      Блин, я чуть не уснул когда смотрел, концентрация теряется, но врубаешь 1.5 и внимание повышается.

    • @user-kc7kg9uk4k
      @user-kc7kg9uk4k 4 года назад

      я на 2 :)()()000)

    • @user-kc7kg9uk4k
      @user-kc7kg9uk4k 4 года назад

      @@_dyats кста да

  • @sergeys4503
    @sergeys4503 7 лет назад +1

    Лайк, очень помог

  • @user-yo7mw6oj4p
    @user-yo7mw6oj4p Год назад +1

    Конец 2022 все актуально. Спасибо.

  • @galaint3124
    @galaint3124 5 лет назад +10

    Спасибо за урок. Правда, пока искала имена режиссеров, чуть не ушла смотреть "Игры разума" с Расселом Кроу)

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

    Классный ролик, жалко про каскадное обновление не упомянул в нём, очень полезная штука

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

    версия SSMS 18,6 - диаграммы просто не создаются, но можно на открытой таблице: щелк правой кнопкой мыши - отношения - и то же окошко "добавить связь" появляется

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

    Спасибо, могли бы также показать и отношения 1:1, N:M и сам к себе

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

    Спасибо.
    Такой вопрос - почему мы не можем в таблицу Lessons добавить колонку, где будем ставить айдишник учителя напротив каждого урока

  • @user-jj8tg5vd7u
    @user-jj8tg5vd7u 4 года назад +6

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

    • @yakut54
      @yakut54 7 месяцев назад

      я уснул

  • @AleksandrMaltsev-jm8ph
    @AleksandrMaltsev-jm8ph 3 года назад

    2021 Спасибо!!!

  • @brokert3163
    @brokert3163 11 месяцев назад

    Столбы в таблице Lessons не совпадают с существующим первичным ключом или ограничением UNIQUE. Как это исправить. Делал вроде в точь в точь

  • @alfiyas.4651
    @alfiyas.4651 4 года назад +2

    В lessons забыли про любимую информатику:))

  • @user-xg4pd7en9d
    @user-xg4pd7en9d 3 года назад

    Отличное видел, всё понятно и быстро запоминаю. Но по 25-й минуте вопрос: получается, внешний ключ это тот, который к себе присоединяет (к которому присоединяем), первичный ключ - тот, который присоединятся. Так?

  • @akireev123
    @akireev123 7 лет назад

    использую DataGrip
    к сожалению не нашел как там графически связать таблицы, буду гуглить сейчас как это сделать в коде

  • @0suffix0
    @0suffix0 3 года назад +1

    Если смотреть на x1.75, то очень даже хорошо

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

    👍

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

    Здравствуйте! Как убрать это всплывающее окно?
    ЗАГОЛОВОК: Microsoft SQL Server Management Studio
    Невозможно применить настройки соединения. Подробное сообщение об ошибке: Неправильный синтаксис около ключевого слова "SET".

  • @Kirill-medvedev168
    @Kirill-medvedev168 4 года назад +2

    у меня ошибка Конфликт инструкции ALTER TABLE с ограничением FOREIGN KEY, что делать?

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

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

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

    только на 23й минуте начал по делу говорить

  • @ivanweber5125
    @ivanweber5125 4 года назад +1

    Столбцы в таблице Teachers не совпадают с существующим первичным ключом или ограничением UNIQUE. В чем может быть проблема? Делал все строго по уроку

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

      Проверьте, все ли id есть в таблице Teachers. Должны быть все, которые есть в таблице TeachersAndLessons по полю TeachId.
      Id не должны повторяться в таблице Teachers.

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

    Вопрос а как вы делаете чтобы сразу 2 строчки отметились у меня не получается

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

      Зажать клавишу Ctrl

  • @user-th7rl3lx7z
    @user-th7rl3lx7z 4 года назад

    Привет,подскажи пожалуйста почему у меня два жёлтых ключа идут в обе стороны?

  • @yuraburanov4517
    @yuraburanov4517 6 лет назад

    Спасибо больше за видеоуроки! По ним делаю курсовой проект :)
    У меня проблема возникла. Когда я пытаюсь связать две таблицы, возникает ошибка:
    The column it table do not match an existing primary key or UNIQUE constraint.
    Вопрос: Как исправить эту ошибку? Я и гуглить пытался и видеоуроки искал - не помогло. Объясните кто-нибудь недалёкому - что делать?))

    • @mishadizel7820
      @mishadizel7820 4 года назад +1

      Была такая же проблема. Проверь обе таблицы чтобы у полей были назначены первичные ключи. У меня не был назначен первичный ключ для таблицы Teachers (Поле ID), после добавления связь успешно создалась

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

    почему всё таки произошла ошибка вставки и сбив идентификаторов примерно на 12 минуте? как избежать такой ошибки?

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

      была ошибка INSERT, т.е. не все поля были заполнены для вставки строки. Оператор INSERT сработал с ошибкой, произошел откат транзакции, но инкремент на ключевом поле произошел. Если хотите чтобы был порядок по ключевому числовому полю, тогда его НЕ нужно делать автоматически инкрементальным, а проставлять ручками, либо в коде (т.е. программно).

  • @user-cw9ev9dq4v
    @user-cw9ev9dq4v 4 года назад +1

    7:30 У меня нельзя изменить индентификатор с нет на да. Просто серым подсвечивается надпись.

    • @user-cw9ev9dq4v
      @user-cw9ev9dq4v 4 года назад

      А всё, я ограниченный id поставил ( nchar). Надо поменять на другой тип данных

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

      @@user-cw9ev9dq4v разве не increment должен быть?)

  • @user-os8ks9ms1y
    @user-os8ks9ms1y 5 лет назад

    Как ты создал два первичных ключа в таблице?

    • @RobotoborPro
      @RobotoborPro  5 лет назад

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

    • @starchess6137
      @starchess6137 5 лет назад

      Выдели 2 строки

    • @RobotoborPro
      @RobotoborPro  5 лет назад

      Если Вы про первичный ключ с несколькими полями, то он называется составной первичный ключ. Просто, выделяете два поля (две строки) и создаете.

  • @user-ou8ir7zg3l
    @user-ou8ir7zg3l 3 года назад

    Почему в Lessons в качестве первичного ключа задали Name? В послудающих уроках вам очень трудно ведь указывать Name в запросах JOIN. Постоянные ошибки в написании и тд..

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

    Эх, преподает SQL, а в уроках Информатику не вспомнил...

  • @user-br8yt5kl5b
    @user-br8yt5kl5b 3 года назад

    Скажите пожалуйста, почему у меня ID выводятся -1,-2,-3, и т.д.?

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

      Скорее всего Вы поставили шаг приращения равным -1, а не 1

    • @user-br8yt5kl5b
      @user-br8yt5kl5b 3 года назад

      @@RobotoborPro ставил 1, гуглил ни где ответа не могу найти( и занова все с нуля пробовал

  • @user-xx6pj8xv8b
    @user-xx6pj8xv8b 5 лет назад +1

    диаграммы база данных не вижу, не выходит где ее найти?

    • @RobotoborPro
      @RobotoborPro  5 лет назад

      Попробуйте обновить папку с диаграммами в менеджмент студии.

    • @user-xx6pj8xv8b
      @user-xx6pj8xv8b 5 лет назад

      а как обновить не смон найти((
      @@RobotoborPro

    • @RobotoborPro
      @RobotoborPro  5 лет назад

      Для начала ее нужно создать. Вы ее создавали?

    • @Fordf730
      @Fordf730 5 лет назад

      @@RobotoborPro как ее создать, тоже не могу найти застопорился на этом уроки!

    • @RobotoborPro
      @RobotoborPro  5 лет назад

      На папке Диаграммы, щелкаете правой клавишей мыши, и выбираете Создать диаграмму.

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

    я тут сначала не поняла как это от многих к одному, а потом погуглила - такого нет, есть от одного ко многим, где сразу же логика и появляется...достаточно тривиальная ошибка, но меня, как новичка, сбила минут на 15 раздумий(я сначала сама пытаюсь уловить суть, а после уж в гугл)

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

      Это одно и тоже. Согласен, что более устоявшееся выражение: один ко многим. Но от этого смысл абсолютно не меняется. Так как это отношение можно рассматривать с двух сторон, либо от одного ко многим, либо от многих к одному, кому как нравится. Вообще, есть также отношение от многих ко многим, и уж тут-то нужно уметь думать в отношениях от многих к одному и от одного ко многим.

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

    Вроде все понятно, но я не очень понимаю зачем большую часть видео нужно смотреть на то как автор заполняет таблицы. Видео можно было бы укоротить в раза 3 и приходится перематывать до нужных моментов. Но все равно спасибо.

  • @user-nr3pm2hy3l
    @user-nr3pm2hy3l Год назад

    я царь кстати

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

    не очень понимаю почему автор курсов делает всё в ручную, а не запросами.

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

      действительно, так более погрузишься в код и будет больше пониманий, по моему наблюдению

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

    не советовал бы смотреть эти видосики пока не изучите хоть немного теории. Элементарно какие связи могут быть между таблицами, почитать про нормализацию и т.д.
    Чтобы иметь представление нафига вообще это делать...

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

    кто с 2024?

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

    ты слово базда произнес тысячу раз за полчаса ) я посчитал

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

    чувак весь эс кью эл можно изложить в одном уроке на полчаса сука как можно по нему было сделать десять уроков !? ) по полчаса пустословия в каждом

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

      За пол часа, тем, кто впервые, вообще, т.е. совсем не знаком с БДых, ты не расскажешь. Если так судишь об этом, значит опыта у тебя маловато совсем, а максимализма дофига.

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

    КАААААК????? А где Информатика??????

  • @Jesus_Christ_is_LORD
    @Jesus_Christ_is_LORD 5 лет назад +1

    Дизлайк, у меня от TeacherAndLessons к Teachers идет "один к одному", с этим ты вообще ничего не разъяснил.))
    Лучше проектирование не рассказывай, у тебя поверхностно все получается :)

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

      Christian Karapetyan он просто открыл чужую книгу прочитал и перенес в урок )

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

      Какую книгу? Ты о чем, вообще... Каждый урок мой абсолютно весь. А если ты не смог или кто-то не смог или не понял, хотя уж я то разжевал, что тошнить должно, это не говорит, что другие не могут. Люди пишут благодарности и переходят на другие мои курсы.

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

    23:40 А если принцы не понятен и нет желания дальше слушать воду? На хрен нужны эти связи нельзя было сказать в уроке? Что бл** за магию ты тут объясняешь людям? Потом... когда... А если ни х.. не будет понятно? А если ещё больше вопросов будет? Щёлкаешь сюда... в 90% случаях людям придётся вообще работать через другие программы, что за оленизм. Можно было бы в 5 минутах всё объяснить, но вы же растянули это на пол года...

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

      Смотри другие каналы или читай документацию и книги.

  • @axsuam
    @axsuam 5 лет назад +12

    20 минут, 20 МИНУТ КАРЛ ты создавал и заполнял таблицы. Урок называется СОЗДАНИЕ СВЯЗЕЙ. Начинаться он должен так - вот парни у меня есть 3 таблицы, сейчас я их свяжу, это просто: вот так и вот так.

    • @RobotoborPro
      @RobotoborPro  5 лет назад +21

      Конечно, можно так. Но это для 5-минутных видосиков релевантных к поисковым запросам на ютубе. Захотел узнать, вбил в поиск, получил 3ех или 5-минутное обьяснение. Я же жую и пережевываю весь курс с 1ого по последний урок, как ВИДЕОКУРС, КАРЛ, ВИДЕОКУРС от начала и до конца.

    • @user-pp1is6ns6k
      @user-pp1is6ns6k 5 лет назад +4

      @@RobotoborPro Карл, все отлично, не слушайте пожалуйста никогда таких умников!

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

    Досмотрел от начала к концу... Видео полная вода... автор ничего так толком и не рассказал. Смотреть не рекомендую, ставлю дизлайк! От себя скажу, чтобы вы долго не мучилась[ [Связи между таблицами необходимы для более быстрого доступа к данным.]

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

      Ты не прав. Связи нужны для консистентности и согласованности данных. Не сбивай с толку людей. А побочные индексы созданные при отношениях, это уже для более глубокого понимания производительности, не в этом курсе.

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

      @@RobotoborPro 1. консистентность и согласованность это слова синонимы. 2. Про побочные индексы я слова ни сказал, так как первичный ключ очень важен, так как только по нему можно обращаться к данным. Ваше более глубокое понимание обосновано чем? У компьютера есть ОЗУ, ПЗУ и ЦП и больше нет ничего, всё что нам нужно это найти баланс между тем и другим (Чтоб вы понимали у меня возможность тут писать ограничена символами). В данном подходе мы должны уменьшить нагрузку на ОЗУ и тем самым увеличить скорость обработки информации, так как устанавливаем явные связи, что сокращает количество обращений к ОЗУ, НО! Это работает когда это самое ОЗУ есть, если же его не станет поток умрёт и информация начнёт грузить буфер ЦП... (Сложно конечно вышло) Но однако [Связи между таблицами необходимы для более быстрого доступа к данным.]! В вашем случаи данные будут согласованы только по ключам, что вообще никак не мешает сделать это программным кодом. Так, что цель создания связей никак не может быть согласования данных!

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

      Что-то здесь все нагородили. Цель явных отношений в реляционной БД, как раз по ключам, первичным и внешним, - есть согласованность данных, ещё её называют схемой. Если мы в запросах будем соединять таблицы по другим отношениям, БД в этом случае не гарантирует программисту, что он не допустит логической ошибки. Если программист делает sql-запррсы по другим отношениям, не как в схеме, здесь ему поможет построение индексов, чтобы ядро сервера не делало полный скан таблиц, как раз это про производительность. То, что касается Ваших знаний на низком уровне работы железа, то поток не умирает от нехватки ОЗУ, ОС сбрасывает на диск не используемые страницы памяти, потом подгружает их обратно. Кэш ЦП используется в основном, для работы со стеком потока, наверное, это Вы имели ввиду, когда говорили про буфер. Чтобы меньше производить работы с i/o, а, именно, с диском и полным сканом таблиц нужны индексы. Но индексы они вторичны, как я уже писал, их может настроить программист позже, главное в схеме, т.е. в отношениях м/у таблицами - это согласованность данных.

  • @axsuam
    @axsuam 5 лет назад +2

    Очень много пустого текста. "Реляционные базы данных это мммм ммммм мммм, в процессе вы поймете, что такое реляционные базы данных. Таблица не появилась, но на самом деле на сервере она появилась, надо просто нажать правую кнопку и нажать обновить." Кому это мычание надо? Неужели нельзя сказать - "обновляем базу". Бесит.

    • @RobotoborPro
      @RobotoborPro  5 лет назад +3

      Таблица создается на сервере. Студия ее НЕ подтягивает автоматически, но запросы к таблице можно делать. Никакая база не обновляется. Обновляется состояние студии, когда нажимаешь обновить по таблицам. Гворить, что ты этим нажатием обновляешь базу - неккоректно.

    • @user-mw3jc6pk2i
      @user-mw3jc6pk2i 5 лет назад +3

      И отчего нервозность такая? Автор даёт доступные объяснения, без которых порой трудно понять что не так

  • @user-vq5yl7jz6f
    @user-vq5yl7jz6f 7 месяцев назад

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