Как считаете, стоит ли такой контент делать? Материалов по SQL в целом в сети - мегатонны. Time codes: 00:26 - зачем знать SQL и базы данных 02:47 - виды баз данных 03:28 - понятие сущностей, проектирование больших систем 06:01 - сущности в реляционных базах данных 06:50 - проектирование схемы БД магазина на бумаге 10:27 - перенос схемы БД в PostgreSQL, создание БД и таблиц 15:50 - заполняем БД данными 17:40 - SELECT, получение данных из БД 19:03 - JOIN, объединение таблиц 23:25 - LEFT JOIN, RIGHT JOIN, INNER JOIN 26:57 - удаление данных их таблиц, обновление данных таблиц 28:23 - пример комплексного запроса с несколькими JOIN 32:31 - группировка данных GROUP BY 34:11 - COALESCE 34:47 - сортировка данных, ORDER BY 35:13 - HAVING 36:26 - LIMIT, OFFSET 38:09 - итоги
Вопросы. 1 Под видео с разворотом сервера были инструкции, можно так же по sql? 2 Начал изучать анализ данных, могут ли нумпай с пандасом + стандартные в питоне модули для работы с данными стать альтернативой sql запросов и штук типо постгри и мускула? 2.1 Например, отправляю к вам резюме, там будут эти библиотеки, но не будет знаний по sql, что бы на это ответили?)) 3 (*если 2.1 вариант не проканает xD) Книги по sql? Статьи, мануалы...
@@senatortre7326 1. Нет, SQL код из этого видео не сохранял специально - вам надо его набрать, если хотите проработать SQL 2. Анализ данных - нужен и SQL, и пандас, и много всего еще 2.1. Нам анализ данных сейчас не нужен - и специалистов в команде по этой теме тоже нет. 3. Выберите нужную вам СУБД и прокачивайте её SQL, базовый он везде одинаковый, но чуть глубже - особенностей много.
Диджитализируй! АйТи студия Спасибо за ответ. Тогда ответ на вопрос «нужен ли такой контент» - однозначно да! Подача очень крутая, а тема не из простых, поэтому лучше буду ждать и учить по вашим урокам, чем по материалам которые уже есть.. те же лекции российских разрабов постгри в ютубе много тяжелее воспринимаются. Ждём продолжения! Успехов. :)
@@ИванПетров-л5и6е а вы это к чему написали, стесняюсь спросить? Книга - сухой материал, видео - наглядный пример с применением "своими словами", далее - "самопрактика". Чему вы сочувствуете?
Берешь книгу Дейта «Введение в теорию реляционных БД» - здесь все, что нужно, чтобы построить любую БД. Что касается специализированных БД - Ральф Кимболл, Билл Инмон. Дэн Линстедт. Анатолий Тенцер. Этого достаточно для 99.9% случаев информационных систем.
Как раз готовлюсь к dba. Прям в яблочко. И вообще пора в школе давать такие вещи, мужики по 30 лет ковыряют запросы к базе. Стыдно, но другого пути нет - надо наверстывать. Спасибо за годноту!
Я очень благодарен Алексею за его образовательную деятельность и это видео, но подозреваю, что базы данных не являются его основной специализацией. Хочу поправить некоторые вещи. Эдгар Кодд назвал реляционные базы данных реляционными из-за присутствия в них так называемых реляций, простым языком - таблиц. Т.е. реляционная база данных - это табличная база данных. Даже если связей между таблицами нет, или таблица всего одна - это реляционная база данных. Хотя вынужден признать, что вне акедемических кругов такое заблуждение довольно распространено. Диаграмма базы данных (db-diagram) и диаграмма сущностей и отношений (ER-diagram) - это похожие, но очень разные вещи. К примеру, промежуточной таблицы cart_product, которую нарисовал Алексей на ERD не будет, она реализует соединение многие ко многим. То, что мы види на картинке ближе по смыслу как раз к диаграмме базы данных, хотя на ней и не хватает многих ключевых вещей. Но для простой иллюстрации, конечно же, сгодится. Уникальный идентификатор - это несколько двусмысленная вещь. Обычно под уникальным идентификаторм подразумевается ограничение (constraint) в структуре базы данных. Их, в отличии от первичного ключа (primary key), может быть несколько в таблице. Они просто говорят о том, что значение в колонке или комбинация значений по колонкам должна быть не повторяющейся. ID же в нашем случае - это искуственная колонка, созданая сугубо для добавления первичного ключа, который позволит идентифицировать конкретную строчку в таблице. Однако эту колонку вполне можно использовать и для бизнес-целей. К примеру, это будет номер нашего заказа. А вот покупателю абсолютно всё равно какой у него номер в системе, он его нигде не видит. Т.е. у сущности пользователя такого свойства как ID не будет, это артефакт сугубо уровня базы данных. То что в видео названо полем, на самом деле называют атрибутом. В простонародье - колонка. Иногда встречается и "поле", но чаще всего под полем подразумевают пересечение колонки и строчки, т.е. конкретную ячейку таблицы. На стороне пользовательского интерфейса мы тоже видим "поля" - ячейки ввода, которые зачастую соответствуют ячейкам в строчке таблицы базы данных. Благодарю за внимание и желаю всем успешного обучения!
А можно ссылку на источник, в котором написано, что бд называется реляционной именно из-за того, что она табличная, а не потому, что между таблицами в этих бд можно создавать связи?
@@SerhiiKovalov-z4g да, конечно: en.wikipedia.org/wiki/Relational_database en.wikipedia.org/wiki/Relation_(database) Так как термин придумал один человек, а именно Эдгар Кодд, то тут всё довольно просто. Некая неразбериха в русскоязычной среде возникла именно из-за "трудностей перевода".
Это идиальный формат для людей, которые имеют дело с айти, раньше что-то где-то слышали о БД, но настало время работать с ними на практике. Мне это видео очень помогло с пониманием соединений таблиц и их группировками. Остальные пункты наконец-то уложились в голове. Скинул это видео еще паре одногруппников, у кого были проблемы. Если бы еще на 33:35 показали примеры других функций для группировок, было бы вообще отпад. Но не беда, всегда можно загуглить.
Могу сказать три вещи: 1. Очень крутой канал! 2. Топовый преподаватель! Мегаполезный контент!!! Жаль, что нашел этот канал не по трендам utube или рекомендациям, а случайно обратил внимание на комментарий самого автора, написанный под одним из видео на канале ITборода. Спасибо за то, что делитесь с нами своими знаниями!!! Пожалуйста, продолжайте в том же духе ;) #Топлю_ За_ Python ))
Спасибо Вам большое, вчера не знала как сделать одну выборку с Джойнами, сегодня выпало Ваше видио в рекомендациях, решила посмотреть для досуга и нашла ответы на все свои вопросы по поводу выборки. Спасибо за доступное объяснение
Возможно ошибка - на 33:56 вместо "group by c.name" должно быть "group by c.id" . А в твоем запросе ты получишь сумму всех Василиев, а имена могут повторяться у юзеров.
@@standarttechnology4477 всё верно, не было указано З.Ы. как же это круто, наверное - сидеть на маке и долбиться в глаза в консоли, самому и зрителям массу впечатлений гарантируя
Добрый день, спасибо за видео. Вы очень доходчиво, доступно, понятно объясняете. Подача материала на высоте. Буду ждать Ваших следующих видео. Продолжайте, пожалуйста.. Удачи Вам.
Когда искал видео по SQL, постоянно натыкался на это видео, но все никак не хотел его смотреть из-за его обложки, так как думал, что это очередное видео из серии "программирование для всех" и тд. Но как же я удивился, когда обнаружил, что это не так. Более того, это вообще, одно из самых интересных и ПОЛЕЗНЫХ видео на русютубе по данной тематике. Выражаю огромную благодарность автору. Спасибо!
Ты реально круто объясняешь. Я не часто пишу комментарии, но тут надо написать. Однозначно подписка. Очень качественно. Я целый день с модулем промучался и тут попал сюда...
Спасибо за отличное видео, но есть один минус. на 19 минуте вы объясняете джоины с использованием алиаса не задумываясь о том, что эту конструкцию люди могут не понимать select pp.* from product_photo pp; Я, например, не сразу понял, что значит тут "pp." ? оказывается, что "pp." , "product_photo.*" и "*" эквивалентны
@@АртемийКроп Не кайф читать потом всякие рр в сложных запросах. А что бы не писать полные названия таблиц - для этого есть интелисенс, но для этого нужно инструмент нормальный использовать. Вы в C# тоже используете в качестве названия индентификаторов всяки рр, пп.... и тому подобное?
@@anatoliigrynchuk3325 Как вы обойдётесь без алиасов, если обращаетесь к одной и той же таблице в запросе больше одного раза? Я имею ввиду ситуацию, когда вам нужно написать from table_name в одном подзапросе, и from table_name в другом подзапросе.
Крутой канал , подача лучшая что я видел , опыт + знания + грамотно поставленная речь, то что не могут обеспечить наши учителя я получаю в интернете бесплатно. Такие вещи сейчас действительно редкость. Благодарю.
как всегда хорошее видео, приятно смотреть, но не очень понравился момент с джоинами. часто объясняют их на кругах эйлера, но под капотом оно все же не так работает, и некоторые особо щепитильные лиды ловят на такого рода ошибках (в вузах на экзаменах по дискре и бд кстати тоже на этом ловят). Правильнее, на мой взгляд, все таки объяснять на декартовом произведении, как оно и работает, просто с оговоркой, что если джоин обрабатывается по первичным ключам, тогда можно представлять через круги эйлера. Но видео все равно годное, жду следующего видео) В целом таких материалов действительно много, но они все про основы. Хотелось бы увидеть больше видео по различным хакам, фишкам и т.п. вещам (собстно за это и нравится канал) Ну и ссылка на статью с примерами, кому интересно: habr.com/ru/post/448072/
Круто, но видео позиционируется для новичков, много внимания на креэйт и подобное, но дается довольно тяжелый материал по джойнам быстро и почти без комментариев...
Такие уроки однозначно делать стоит! Особо классно работает техника: понятно? - да, а какую то собственную мысль таким образом выразить можешь? - ... мочь то могу, но будет как в анекдоте про камаз со щебнем
для новичков, для знакомства до join запросов очень понятно. но после прям очень сложно понять(особенно алиасы запутывают ещё больше, когда ты в джоинах с трудом разбираешься), мне пришлось посмотреть сторонние видео и понять как написать джоины. но в общем, супер понятно, очень круто на примерах, крутой контент спс
Недавно увлёкся программированием, в интернете куча информации, но настолько качественное "обучение/разъяснение" встретил впервые, реально понял основы и как с этим работать вообще!!! Спасибо!
2:47 "...есть два больших семейства... реляционные... и, так называемые NoSQL базы данных" Скажу по секрету, есть еще и прочие базы данных, кроме реляционных и NoSQL Иерархическая Объектная и объектно-ориентированная Объектно-реляционная Сетевая Функциональная и т.д. Если идет работа с Python, то можно вместо понятий "сущность"(таблица) и проч., говорить, что это класс и есть его свойства(поля), а также методы(функции) работы с ними, и т.д., и т.п. Это я, так сказать, начал разбирать, по ходу изучения ЯП Python. Помогает немного въехать в язык.
@@t0digital Я имел ввиду использование/изучение языка Python вообще, а не технологию баз данных. Так вот, по моему, при изучении языка Python(или какого-либо другого языка программирования), очень полезно проводить параллели между "сущность" и "таблица" в базе и т.д.
Урок полезный и интересный! НО, учитывая, что это видео рекомендовалось для самоизучения абсолютно нулячим тестировщикам, то оно фактически бесполезно, ведь ничего не понятно. Где создавать базу, как прописывать запросы - этого тут нет
жаль что узнавая про форенкей мы не узнали про бэкрефы)) а вообще есть такая беда у ру сегмента обучающих видео, основы рассказывают многие, а потом запал пропадает и бросают ролики пилить. Как итог куча видосов про основы и ни одного русскоязычного полного курса. Надеюсь вы когда-нибудь запилите мегаобучалку по sqlalchemy "От основ до магии". Спасибо за видосы.
backref это же ORM'ная концепция, на уровне БД / SQL там обычный Foreign key, соединяющий 2 таблицы. Я вообще, стоит сказать, не очень люблю ORM для сложных запросов, голый SQL даёт понимание того, как запрос будет работать с точки зрения эффективности, ORM далеко не всегда
@@t0digital зато ормом один раз в приложении пишем все запросы, а потом подрубаем любую субд которую поддерживает данный орм. А чистые запросы превратятся в серьёзною боль если тот же проект решат запустить не на мускуле а на посгре. В любом случае орм это только инструмент придуманный для решения конкретных задач. его не везде пихать нужно, но и он где то будет лучше row sql
@@ДанькаЛобанов-у6ю безболезненный переезд на новую БД это утопия что с ORM, что без него, ну, разве что проект совсем крошечный. Для крошечного и обычный сырой SQL будет вполне переносим, все современные СУБД реализуют базовые операции select, delete, update и delete одинаково. А если используем что-то чуть глубже из возможностей субд, то тут начинается свистопляска, ORM не спасёт. ORM не плох, просто, вы правильно говорите, не надо его использовать везде, там, где нужна max эффективность сырой SQL рулит, там уже не до переносимости SQL/ORM, там вопрос быстрее под нагрузкой данные из БД достать, заюзав все её кастомные фичи и особенности на максимум:)
обычно алиас в запросе это просто сокращенное название таблицы, чтобы ссылаться на её колонки через точку не с полным названием таблицы, а с сокращённым алиасом. Напр: select users.id, emails.email from users left join emails on users.id=emails.user_id; можно заменить на: select u.id, e.email from users u left join emails e on users.id=emails.user_id; или: select u.id, e.email from users as u left join emails as e on users.id=emails.user_id;
Спасибо за видео. Польза, наверное, есть, но все как-то «галопом по Европе». Взять тот же join. Всё разъяснили. Но когда таких джоинов в запросе стало два, затем три, как новичку понять какая таблица теперь левая для каждого нового джоина? Самая левая или та, что левее оператора? Или это уже относится к предвыборке? Я не понял. Пробовать различные выборки самому можно и нужно, чтобы понять логику. Но это как изучение «чёрного ящика». И именно здесь обязательны (желательны) разъяснения специалиста как работают операторы, чтобы навести порядок в голове учеников. Это хорошо было проделано с операторами where и having. И ещё, печатайте текст чуть помедленнее, но без ошибок. Раздражает это постоянное перепечатывание.
Спасибо за работу, однако подача материала явно не для новичка в sql, многие понятия объяснены на уровне "ну вы наверное слышали про страшный join, ну ничего, сейчас мы напишем код без каких-то понятных комментариев о том, как это работает, и вы сразу должны все понять"
@@t0digital Пытаюсь сформулировать - если бы еще немного рассказали про Alias и его использование, было бы вообще космос. А то про него упомянули при создании запроса, и поехали дальше делать запросы и я если честно, на этом моменте немного выпал из струи, хотя в целом видео смотрел в ускоренном формате.
@@onaker alias это просто сокращенная версия названия таблицы или колонки, это никак не относится к join. Название таблиц бывает длинным, чтобы его везде в запросе не писать, используют алиас. Напр, select t.name from some_strange_mother_fuckers t; Это выберет колонку name из этой таблицы с длинным названием. Аналогично алиас можно задать подзапросу
Очень хорошие видео, которые раскрываются как вино с течением времени. Когда я посмотрел видео первый раз год назад, я практически ничего не понял, еле запомнил даже базовый синтаксис select, insert, delete, update. Спустя энное количество времени, набравшись опыта хотя бы создания БД с таблицами с нуля (без джанго) и почитав несколько статей, это видео уже смотрелось легко, но всё равно находилось что-то, на что я говорил: "Ага! Так вот как нужно делать!!!". Очень хорошая структура видео, где и полный чайник найдет вектор развития, и уже более-менее уверенный разработчик сможет подчеркнуть какие-то тонкости построения архитектуры и запросов.
Отличное изложение материала! Без соплежуйства и постоянного повторения одного и того же, чем грешат процентов 90 влоггеров, Всё чётко, по делу, доходчиво! Спасибо за отличный обучающий контент!
просто по докеру вообще бессмысленно уже таких полно и факту порог входа в доке очень низкий. А вот какой нибудь интересный способ применения (не просто docker-compose с двумя контейнерами) например автоматическая генерация шаблонного окружения для нового проекта... к примеру разраб делает запрос к домену project1.dev и получает в каком нибудь каталоге ~/work/sites/ каталог project1 в котором лежит docker-compose и уже запущен и доступен по домену осталось просто бросить в каталог проекта что нибудь исполняемое в зависимости от основного ЯП разработчика. Можно ещё больше усложнить к примеру project1.v74.dev будет поднято окружение с php 7.4 а project1.v56.dev будет окружение с php 5.6 ну или подобное по домену второго уровня вообще можно специфицировать шаблоны вот это быдло бы интересно zen dev environment мне делать лень =) меня хватило только на vhost_alias в апаче + dnsmasq в итоге при обращении к доменам вида .work выполняется код из конкретного каталога ну недавно сделал корневой сертификат и ним подписал wildcard сертификат *.app.work. перевести это барахло на докер просто лень.
Хороший урок. Всё лаконично, по существу. Можно было бы ещё показать как вернуть foreign_key для таблицы product_photo, который удалили с помощью delete constraint, и рассказать про ON DELETE.
Очень круто, мне как новичку особенно, я в этом деле человек новый и с вашим видео все предельно понятно и ясно, спасибо!!! Побольше таких видео обучалок 👍
Мой курс «Хардкорная веб-разработка» - course.to.digital
Установка PostgreSQL на Linux показана здесь - th-cam.com/video/Pk125DazUyI/w-d-xo.html
Вжух!
Как считаете, стоит ли такой контент делать? Материалов по SQL в целом в сети - мегатонны.
Time codes:
00:26 - зачем знать SQL и базы данных
02:47 - виды баз данных
03:28 - понятие сущностей, проектирование больших систем
06:01 - сущности в реляционных базах данных
06:50 - проектирование схемы БД магазина на бумаге
10:27 - перенос схемы БД в PostgreSQL, создание БД и таблиц
15:50 - заполняем БД данными
17:40 - SELECT, получение данных из БД
19:03 - JOIN, объединение таблиц
23:25 - LEFT JOIN, RIGHT JOIN, INNER JOIN
26:57 - удаление данных их таблиц, обновление данных таблиц
28:23 - пример комплексного запроса с несколькими JOIN
32:31 - группировка данных GROUP BY
34:11 - COALESCE
34:47 - сортировка данных, ORDER BY
35:13 - HAVING
36:26 - LIMIT, OFFSET
38:09 - итоги
нужно видео как связать БД и сайт ) как все настроить. Как создать, что такое реляционные БД уже куча видео. Теорией уже наелись все )
Вопросы.
1 Под видео с разворотом сервера были инструкции, можно так же по sql?
2 Начал изучать анализ данных, могут ли нумпай с пандасом + стандартные в питоне модули для работы с данными стать альтернативой sql запросов и штук типо постгри и мускула?
2.1 Например, отправляю к вам резюме, там будут эти библиотеки, но не будет знаний по sql, что бы на это ответили?))
3 (*если 2.1 вариант не проканает xD) Книги по sql? Статьи, мануалы...
@@senatortre7326 1. Нет, SQL код из этого видео не сохранял специально - вам надо его набрать, если хотите проработать SQL
2. Анализ данных - нужен и SQL, и пандас, и много всего еще
2.1. Нам анализ данных сейчас не нужен - и специалистов в команде по этой теме тоже нет.
3. Выберите нужную вам СУБД и прокачивайте её SQL, базовый он везде одинаковый, но чуть глубже - особенностей много.
Диджитализируй! АйТи студия Спасибо за ответ. Тогда ответ на вопрос «нужен ли такой контент» - однозначно да! Подача очень крутая, а тема не из простых, поэтому лучше буду ждать и учить по вашим урокам, чем по материалам которые уже есть.. те же лекции российских разрабов постгри в ютубе много тяжелее воспринимаются. Ждём продолжения! Успехов. :)
@@senatortre7326 Спасибо!
40 нескучных и полезных минут. Отличный формат подачи!!! Не пожалел.
Спасибо!
Я лучше урока по SQL не видел нигде, это очень круто!
Спасибо большое!
@@ИванПетров-л5и6е а вы это к чему написали, стесняюсь спросить?
Книга - сухой материал, видео - наглядный пример с применением "своими словами", далее - "самопрактика".
Чему вы сочувствуете?
@@manOfPlanetEarth Ни кому не пожелаю такого, прежде чем писать подобного рода комментарии - переосмыслите свою жизнь
жаль, что это только самое начало...
Отличный разбор. По БД хочу еще больше контента.
Возможно будут :) посмотрим, как этот материал зайдёт
@Watson Holms 2000-2500тыс? нет. при условии, что на канале уже 10к. Обидно-обидно за наше сообщество которому нравится пользоваться денератроном.
Берешь книгу Дейта «Введение в теорию реляционных БД» - здесь все, что нужно, чтобы построить любую БД. Что касается специализированных БД - Ральф Кимболл, Билл Инмон. Дэн Линстедт. Анатолий Тенцер. Этого достаточно для 99.9% случаев информационных систем.
@@АндрейРоманов-д1р благодарю за наводку. Обязательно изучу.
Очень понравилось! Жду продолжения. В своё время разбирал достаточно подробно T-SQL, но нашел для себя тоже много интересного в этом видео
40 минут годноты, спасибо за контент!
спасибо!
За 40 минут закрепил свои базовые знания по SQL
Спасибо!
Как раз готовлюсь к dba. Прям в яблочко. И вообще пора в школе давать такие вещи, мужики по 30 лет ковыряют запросы к базе. Стыдно, но другого пути нет - надо наверстывать.
Спасибо за годноту!
Спасибо! Я тоже думаю, что это должно быть в школе. SQL даже в экселе есть встроенный :)
ничего стыдного, если не sql в школе, то мы в этом не виноваты))
Первое ПОЛНОЕ объяснение по SQL, которое понятно с первого прослушивания и просматривания, отблагодарил на бусти, спасибо за видео)))
Я очень благодарен Алексею за его образовательную деятельность и это видео, но подозреваю, что базы данных не являются его основной специализацией. Хочу поправить некоторые вещи.
Эдгар Кодд назвал реляционные базы данных реляционными из-за присутствия в них так называемых реляций, простым языком - таблиц. Т.е. реляционная база данных - это табличная база данных. Даже если связей между таблицами нет, или таблица всего одна - это реляционная база данных. Хотя вынужден признать, что вне акедемических кругов такое заблуждение довольно распространено.
Диаграмма базы данных (db-diagram) и диаграмма сущностей и отношений (ER-diagram) - это похожие, но очень разные вещи. К примеру, промежуточной таблицы cart_product, которую нарисовал Алексей на ERD не будет, она реализует соединение многие ко многим. То, что мы види на картинке ближе по смыслу как раз к диаграмме базы данных, хотя на ней и не хватает многих ключевых вещей. Но для простой иллюстрации, конечно же, сгодится.
Уникальный идентификатор - это несколько двусмысленная вещь. Обычно под уникальным идентификаторм подразумевается ограничение (constraint) в структуре базы данных. Их, в отличии от первичного ключа (primary key), может быть несколько в таблице. Они просто говорят о том, что значение в колонке или комбинация значений по колонкам должна быть не повторяющейся. ID же в нашем случае - это искуственная колонка, созданая сугубо для добавления первичного ключа, который позволит идентифицировать конкретную строчку в таблице. Однако эту колонку вполне можно использовать и для бизнес-целей. К примеру, это будет номер нашего заказа. А вот покупателю абсолютно всё равно какой у него номер в системе, он его нигде не видит. Т.е. у сущности пользователя такого свойства как ID не будет, это артефакт сугубо уровня базы данных.
То что в видео названо полем, на самом деле называют атрибутом. В простонародье - колонка. Иногда встречается и "поле", но чаще всего под полем подразумевают пересечение колонки и строчки, т.е. конкретную ячейку таблицы. На стороне пользовательского интерфейса мы тоже видим "поля" - ячейки ввода, которые зачастую соответствуют ячейкам в строчке таблицы базы данных.
Благодарю за внимание и желаю всем успешного обучения!
Толковый комментарий + каналу! Спасибо, за обращение внимание на нюансы!!!
А можно ссылку на источник, в котором написано, что бд называется реляционной именно из-за того, что она табличная, а не потому, что между таблицами в этих бд можно создавать связи?
@@SerhiiKovalov-z4g может, это поможет найти более точную информацию © Работа Кодда дает точное, математическое определение реляционной базы данных, а также теоретический фундамент для операций, которые могут быть выполнены над ней. Однако более полезно следующее неформальное определение реляционной базы данных.
Определение. Реляционной называется база данных, в которой все данные, доступные пользователю, организованы в виде таблиц, а все операции базы данных выполняются над этими таблицами
@@SerhiiKovalov-z4g да, конечно:
en.wikipedia.org/wiki/Relational_database
en.wikipedia.org/wiki/Relation_(database)
Так как термин придумал один человек, а именно Эдгар Кодд, то тут всё довольно просто. Некая неразбериха в русскоязычной среде возникла именно из-за "трудностей перевода".
@@EugenNiedaszkowski спасибо большое
Это именно то что мне было нужно для старта. Дает понимания больше чем некоторые курсы по sql на известных площадках. Спасибо!
Четко и ясно, было бы интересно глянуть видосик по фишками постгреса
возможно сделаем. Спасибо!
Вообще огонь! Наконец-то я понял что такое, left right и inner join. Спасибо!
Спасибо тебе, добрый человек!! У тебя очень крутые и ценные видосы. По постгресу можно еще :))) мне понравилось!
Спасибо!
Это идиальный формат для людей, которые имеют дело с айти, раньше что-то где-то слышали о БД, но настало время работать с ними на практике. Мне это видео очень помогло с пониманием соединений таблиц и их группировками. Остальные пункты наконец-то уложились в голове.
Скинул это видео еще паре одногруппников, у кого были проблемы.
Если бы еще на 33:35 показали примеры других функций для группировок, было бы вообще отпад. Но не беда, всегда можно загуглить.
Могу сказать три вещи: 1. Очень крутой канал! 2. Топовый преподаватель! Мегаполезный контент!!!
Жаль, что нашел этот канал не по трендам utube или рекомендациям, а случайно обратил внимание на комментарий самого автора, написанный под одним из видео на канале ITборода.
Спасибо за то, что делитесь с нами своими знаниями!!! Пожалуйста, продолжайте в том же духе ;)
#Топлю_ За_ Python ))
Спасибо Вам большое, вчера не знала как сделать одну выборку с Джойнами, сегодня выпало Ваше видио в рекомендациях, решила посмотреть для досуга и нашла ответы на все свои вопросы по поводу выборки. Спасибо за доступное объяснение
Спасибо! Рад, что полезно!
Нормальный рабочий почерк. Главное, что всё понятно.
Всегда хотел больше разобраться в SQL. Самый понятный для меня урок по JOIN в SQL. Спасибо
Возможно ошибка - на 33:56 вместо "group by c.name" должно быть "group by c.id" . А в твоем запросе ты получишь сумму всех Василиев, а имена могут повторяться у юзеров.
больше скажу - у них у всех вообще может не быть имён и всего остального кроме id, но автора такие мелочи не смущают.
@@meosaganami5472 интересно, поле не было указано not null? Или почему их может не быть?
@@standarttechnology4477 всё верно, не было указано
З.Ы.
как же это круто, наверное - сидеть на маке и долбиться в глаза в консоли, самому и зрителям массу впечатлений гарантируя
Добрый день, спасибо за видео. Вы очень доходчиво, доступно, понятно объясняете. Подача материала на высоте. Буду ждать Ваших следующих видео. Продолжайте, пожалуйста.. Удачи Вам.
Будем продолжать обязательно. Спасибооо!
Потрясающий подгон к собеседованию!!!
Да:)!
Когда искал видео по SQL, постоянно натыкался на это видео, но все никак не хотел его смотреть из-за его обложки, так как думал, что это очередное видео из серии "программирование для всех" и тд. Но как же я удивился, когда обнаружил, что это не так. Более того, это вообще, одно из самых интересных и ПОЛЕЗНЫХ видео на русютубе по данной тематике. Выражаю огромную благодарность автору. Спасибо!
Спасибо большое за такой отзыв!
Спасибо добрый человек 😊
Виртуальные обнимашки тебе 🤗
Кратко, ясно, информативно! Дикция - это что-то из неописуемого! Спасибо большое!!!
Спасибо! Рад, что понравилось:)
Все:
я в 2019: ем салат
я в 2020: в салате какие-то сущности
Хахаах:)
Главное - не гномики.
@@Kascheybiker если-что мы их почистиим))
Ырырырыррыры
В 2021 сущности в виде гномика
Алексей! Спасибо тебе за полезный контент! Все по делу и без воды!!
Спасибо за отличное видео и понятное изложение
Ты реально круто объясняешь. Я не часто пишу комментарии, но тут надо написать.
Однозначно подписка. Очень качественно. Я целый день с модулем промучался и тут попал сюда...
Спасибо, приятно!
Спасибо за отличное видео, но есть один минус. на 19 минуте вы объясняете джоины с использованием алиаса не задумываясь о том, что эту конструкцию люди могут не понимать select pp.* from product_photo pp; Я, например, не сразу понял, что значит тут "pp." ? оказывается, что "pp." , "product_photo.*" и "*" эквивалентны
использование алиасов типа pp считаю не очень хорошим подходом....
product_photo и "*", не эквиваленты. * - это all
@@anatoliigrynchuk3325 абсолютно адекватный подход. Кайф всегда полные названия таблиц писать?
@@АртемийКроп Не кайф читать потом всякие рр в сложных запросах. А что бы не писать полные названия таблиц - для этого есть интелисенс, но для этого нужно инструмент нормальный использовать. Вы в C# тоже используете в качестве названия индентификаторов всяки рр, пп.... и тому подобное?
@@anatoliigrynchuk3325 Как вы обойдётесь без алиасов, если обращаетесь к одной и той же таблице в запросе больше одного раза?
Я имею ввиду ситуацию, когда вам нужно написать from table_name в одном подзапросе, и from table_name в другом подзапросе.
Досмотрел и изученное ранее чётко уложилось в голове))
Очень хорошо объяснил. Спасибо огромное. Прям приятно)
Рад, что полезно!
Большое спасибо, про Mongo DB что нибудь подобное было бы круто сделать))
Крутой канал , подача лучшая что я видел , опыт + знания + грамотно поставленная речь, то что не могут обеспечить наши учителя я получаю в интернете бесплатно. Такие вещи сейчас действительно редкость. Благодарю.
Благодарю, очень приятно! Будем продолжать 🙏
Спасибо! Отличное видео! Можно еще подробнее рассказать про типы и индексы в таблицах? Таблицы для select’a и для insert’a.
Еще не до конца досмотрел, но уже невероятно благодарен)) Лучший учитель
Спасибооо!
как всегда хорошее видео, приятно смотреть, но не очень понравился момент с джоинами. часто объясняют их на кругах эйлера, но под капотом оно все же не так работает, и некоторые особо щепитильные лиды ловят на такого рода ошибках (в вузах на экзаменах по дискре и бд кстати тоже на этом ловят).
Правильнее, на мой взгляд, все таки объяснять на декартовом произведении, как оно и работает, просто с оговоркой, что если джоин обрабатывается по первичным ключам, тогда можно представлять через круги эйлера.
Но видео все равно годное, жду следующего видео)
В целом таких материалов действительно много, но они все про основы. Хотелось бы увидеть больше видео по различным хакам, фишкам и т.п. вещам (собстно за это и нравится канал)
Ну и ссылка на статью с примерами, кому интересно:
habr.com/ru/post/448072/
Спасибо за видео, освежил знание по sql, а где-то узнал новое.
Потрясающее видео, очень грамотно поставленная речь, крайне приятно было слушать. Спасибо)
Мужик лучшая подача - просто лучший материал что я встречал!!! Вообще канал - Годнота! Респект Алексею!
Спасибооо 💪💪💪
Круто, но видео позиционируется для новичков, много внимания на креэйт и подобное, но дается довольно тяжелый материал по джойнам быстро и почти без комментариев...
Согласна, новичок вообще не поймет и сбежит нафиг..
Алексей, спасибо за отличный скринкаст с разбором основ PostgreSQL.
Рад, что полезно!
Было бы прикольно серию уроков по построению и понятию сущностей, связей (более детальней)
Нет в РСУБД ни сущностей, ни связей
Такие уроки однозначно делать стоит!
Особо классно работает техника:
понятно? - да,
а какую то собственную мысль таким образом выразить можешь? - ...
мочь то могу, но будет как в анекдоте про камаз со щебнем
relation это про отношение из теории множеств
для новичков, для знакомства до join запросов очень понятно. но после прям очень сложно понять(особенно алиасы запутывают ещё больше, когда ты в джоинах с трудом разбираешься), мне пришлось посмотреть сторонние видео и понять как написать джоины. но в общем, супер понятно, очень круто на примерах, крутой контент спс
Недавно увлёкся программированием, в интернете куча информации, но настолько качественное "обучение/разъяснение" встретил впервые, реально понял основы и как с этим работать вообще!!! Спасибо!
Спасибооо!
хотелось бы узнать про книжечки. что посоветуешь по базам данных?
Это было супер полезно. Видео хоть и на 40 мин, но смотрится на одном дыхании, т.к. информация и подача великолепна.
Спасибо, приятно слышать!
2:47 "...есть два больших семейства... реляционные... и, так называемые NoSQL базы данных"
Скажу по секрету, есть еще и прочие базы данных, кроме реляционных и NoSQL
Иерархическая
Объектная и объектно-ориентированная
Объектно-реляционная
Сетевая
Функциональная
и т.д.
Если идет работа с Python, то можно вместо понятий "сущность"(таблица) и проч., говорить, что это класс и есть его свойства(поля), а также методы(функции) работы с ними, и т.д., и т.п.
Это я, так сказать, начал разбирать, по ходу изучения ЯП Python. Помогает немного въехать в язык.
Не надо говорить "вместо". Sql не имеет отношения к питону, это разные технологии, которые могут быть использованы вместе, но могут и не быть.
@@t0digital Я имел ввиду использование/изучение языка Python вообще, а не технологию баз данных. Так вот, по моему, при изучении языка Python(или какого-либо другого языка программирования), очень полезно проводить параллели между "сущность" и "таблица" в базе и т.д.
Замечательное объяснение! Несмотря на то, что всего много, информация понимается интуитивно! Спасибки
Плиз Туториалы по Джанго и Фласку! ТОЛЬКО ОТ ВАС (другие ссылки не катят) :)
Спасибо:) Возможно сделаем!
Действительно, это одно из лучших видео, которые я видел по базовым вещам в SQL!
Лайк неглядя!
Спасибо!
Классное объянение! Коротко и понятно. Спасибо!
Урок полезный и интересный! НО, учитывая, что это видео рекомендовалось для самоизучения абсолютно нулячим тестировщикам, то оно фактически бесполезно, ведь ничего не понятно. Где создавать базу, как прописывать запросы - этого тут нет
Пересматриваю не один раз, очень интересно !!! Снимите пожалуйста тему ещё про Postgresgl
так просто еще раз пересмотри))))
Алексей, расскажите какая ручка у вас в кадре? Перьевая или это гибрид =)
Тоже хочу узнать про ручку:)
Присоединяюсь к опросу. А то что-то с двумя последними мне не везло и они дико мазали и текли
Если интересно, он ответил ниже: Lamy Safari перьевая )
Тоже присоединяюсь к опросу. Какая ручка, Алексей?
Однозначно бомба.
Материал подан очень грамотно.
Слушать и практиковать легко.
Спасибо автору.
жаль что узнавая про форенкей мы не узнали про бэкрефы)) а вообще есть такая беда у ру сегмента обучающих видео, основы рассказывают многие, а потом запал пропадает и бросают ролики пилить. Как итог куча видосов про основы и ни одного русскоязычного полного курса. Надеюсь вы когда-нибудь запилите мегаобучалку по sqlalchemy "От основ до магии". Спасибо за видосы.
backref это же ORM'ная концепция, на уровне БД / SQL там обычный Foreign key, соединяющий 2 таблицы. Я вообще, стоит сказать, не очень люблю ORM для сложных запросов, голый SQL даёт понимание того, как запрос будет работать с точки зрения эффективности, ORM далеко не всегда
@@t0digital зато ормом один раз в приложении пишем все запросы, а потом подрубаем любую субд которую поддерживает данный орм. А чистые запросы превратятся в серьёзною боль если тот же проект решат запустить не на мускуле а на посгре. В любом случае орм это только инструмент придуманный для решения конкретных задач. его не везде пихать нужно, но и он где то будет лучше row sql
@@ДанькаЛобанов-у6ю безболезненный переезд на новую БД это утопия что с ORM, что без него, ну, разве что проект совсем крошечный. Для крошечного и обычный сырой SQL будет вполне переносим, все современные СУБД реализуют базовые операции select, delete, update и delete одинаково. А если используем что-то чуть глубже из возможностей субд, то тут начинается свистопляска, ORM не спасёт. ORM не плох, просто, вы правильно говорите, не надо его использовать везде, там, где нужна max эффективность сырой SQL рулит, там уже не до переносимости SQL/ORM, там вопрос быстрее под нагрузкой данные из БД достать, заюзав все её кастомные фичи и особенности на максимум:)
Полезно и знакомо! Спасибо Вам! Столько времени разбирала и только сейчас начинаю диджитализироваться.. Огромное всем спасибо.
Расскажи, если не трудно про алиасы в твоем примере, не совсем понятно.
обычно алиас в запросе это просто сокращенное название таблицы, чтобы ссылаться на её колонки через точку не с полным названием таблицы, а с сокращённым алиасом.
Напр:
select users.id, emails.email from users left join emails on users.id=emails.user_id;
можно заменить на:
select u.id, e.email from users u left join emails e on users.id=emails.user_id;
или:
select u.id, e.email from users as u left join emails as e on users.id=emails.user_id;
@@t0digital спасибо, теперь все понятно )
Кратко. Ясно. Лаконично. Спасибо за хороший материал.
Спасибо за видео. Польза, наверное, есть, но все как-то «галопом по Европе». Взять тот же join. Всё разъяснили. Но когда таких джоинов в запросе стало два, затем три, как новичку понять какая таблица теперь левая для каждого нового джоина? Самая левая или та, что левее оператора? Или это уже относится к предвыборке? Я не понял. Пробовать различные выборки самому можно и нужно, чтобы понять логику. Но это как изучение «чёрного ящика». И именно здесь обязательны (желательны) разъяснения специалиста как работают операторы, чтобы навести порядок в голове учеников. Это хорошо было проделано с операторами where и having. И ещё, печатайте текст чуть помедленнее, но без ошибок. Раздражает это постоянное перепечатывание.
Офигенный туториал! Автор отличный учитель 👍❤️
Спасибо 💪
Спасибо за "эскюэль", а не всякие режущие ухо "сиквелы".
настолько ёмко еще нигде не видел!! очень классно, нравится канал
Спасибо, приятно! Будем продолжать
Слишком сложно. Давай 10 часовую версию с детальным разбором каждого метода)
Сначала нужно чуть чуть почитать книгу, одну главу и влезть в тему
какую книгу?@@banzaika
@@kloynism советую Моргунова
Все супер, продолжайте в том же духе, многие вам благодарны!
Спасибо! Будем продолжать!
Спасибо за работу, однако подача материала явно не для новичка в sql, многие понятия объяснены на уровне "ну вы наверное слышали про страшный join, ну ничего, сейчас мы напишем код без каких-то понятных комментариев о том, как это работает, и вы сразу должны все понять"
Честно - не знаю, как иначе для новичка рассказать про джоин. Он тупо соединяет данные разных таблиц, о чем и говорится в видео.
@@t0digital Так про суть JOIN'а понятно, а про структуру запроса вообще нет.
@@onaker сформулируйте вопрос - я отвечу
@@t0digital Пытаюсь сформулировать - если бы еще немного рассказали про Alias и его использование, было бы вообще космос. А то про него упомянули при создании запроса, и поехали дальше делать запросы и я если честно, на этом моменте немного выпал из струи, хотя в целом видео смотрел в ускоренном формате.
@@onaker alias это просто сокращенная версия названия таблицы или колонки, это никак не относится к join. Название таблиц бывает длинным, чтобы его везде в запросе не писать, используют алиас. Напр, select t.name from some_strange_mother_fuckers t;
Это выберет колонку name из этой таблицы с длинным названием. Аналогично алиас можно задать подзапросу
Очень хорошие видео, которые раскрываются как вино с течением времени. Когда я посмотрел видео первый раз год назад, я практически ничего не понял, еле запомнил даже базовый синтаксис select, insert, delete, update. Спустя энное количество времени, набравшись опыта хотя бы создания БД с таблицами с нуля (без джанго) и почитав несколько статей, это видео уже смотрелось легко, но всё равно находилось что-то, на что я говорил: "Ага! Так вот как нужно делать!!!". Очень хорошая структура видео, где и полный чайник найдет вектор развития, и уже более-менее уверенный разработчик сможет подчеркнуть какие-то тонкости построения архитектуры и запросов.
Спасибо большое, приятно читать!
@@t0digital В первую очередь спасибо тебе за такие видео)
Дружище, это просто охуенно!
Спасибо. Очень легко слушать и переваривать информацию.
Спасибо за отзыв, рад, что полезно!
Отличный материал чтобы освежить память и вспомнить основы SQL, спасибо!
Алексей, про JOINы классно объяснил, спасибо!
Спасибо!
Отличное изложение материала! Без соплежуйства и постоянного повторения одного и того же, чем грешат процентов 90 влоггеров, Всё чётко, по делу, доходчиво! Спасибо за отличный обучающий контент!
Спасибо🙏
Урок-огонь! Огромное спасибо автору! Подписываюсь и смотрю дальше.
Спасибо, рад, что нравится:)!
Жаль, что не могу поставить лайк, когда еще раз пересматриваю видео)
Очень толково рассказано! Не каждый может так вот просто объяснить
Спасибо!
Большое спасибо, сжато, без воды, и все понятно
Просто взял и объяснил то что я не мог понять. Спасибо.
Наконец то появился человек, способный нормально объяснять SQL! Однозначно лайк
Спасибо!
Очень хорошая подача. Стоит потратить сорок минут времени, чтобы вспомнить всё самое нужное для работы. Однозначно лукас! Жду видосы!
Йее, спасибо:)!
Спасибо за очень подробный разбор. Буду очень признателен если выпустите аналогичный ролик по работе с Docker.
просто по докеру вообще бессмысленно уже таких полно и факту порог входа в доке очень низкий. А вот какой нибудь интересный способ применения (не просто docker-compose с двумя контейнерами) например автоматическая генерация шаблонного окружения для нового проекта... к примеру разраб делает запрос к домену project1.dev и получает в каком нибудь каталоге ~/work/sites/ каталог project1 в котором лежит docker-compose и уже запущен и доступен по домену осталось просто бросить в каталог проекта что нибудь исполняемое в зависимости от основного ЯП разработчика. Можно ещё больше усложнить к примеру project1.v74.dev будет поднято окружение с php 7.4 а project1.v56.dev будет окружение с php 5.6 ну или подобное по домену второго уровня вообще можно специфицировать шаблоны вот это быдло бы интересно zen dev environment мне делать лень =) меня хватило только на vhost_alias в апаче + dnsmasq в итоге при обращении к доменам вида .work выполняется код из конкретного каталога ну недавно сделал корневой сертификат и ним подписал wildcard сертификат *.app.work. перевести это барахло на докер просто лень.
Классно! Благодаря твоему видосу устроился на работу в IT компанию))
Отличный материал! Конечно же стоит! (ответ на вопрос про контент). Очень круто объясняете! И хочется побольше от вас видео про SQL.
Спасибо!
Просто лучший! Отличный разбор БД. Хочу еще больше контента!
Ты лучший!!! Продолжай в том же духе. Такие знания по связям в БД никто не дает.
Спасибо, приятно! Будем продолжать
Ну мне в университете именно на таких и такими примерами и объясняли.
@@TheButovo я учился не на ИТ, поэтому не знаю - как есть:)
@@TheButovo Препод хороший попался тебе. И кстати это редкость =)))
@@incognito123q , и это была женщина 😀
Гениальное объяснение. Спасибо вам большое)
Прояснил наконец-то джоины 👍
Всё грамотно и подробно объяснено! Большое спасибо автору!
Огромное спасибо за отличное видео! Все замечательно разложено по полочкам!
На моменте "заходим в бд" впал в ступор и пошел гуглить ))) думал будет хоть немного про установку , но тут материал не для ленивых)))
Смотрю с удовольствием! Отлично всё по полочкам получилось разложено, а с тайм кодом можно продуктивно пересматривать ;-)
Спасибо!
@@t0digital Правду всегда говорить легко и приятно ;-)
Классный контент у Вас! Очень мне помогает вникать в ИТ! Успехов и желания для продолжения блога!
Спасибооо🙏
Спасибо, обновил университетские знания
Очень вам благодарен за такой полезный канал.
Очень сжатое и внятное объяснение операций, удобное видео 🙂
Хороший урок. Всё лаконично, по существу. Можно было бы ещё показать как вернуть foreign_key для таблицы product_photo, который удалили с помощью delete constraint, и рассказать про ON DELETE.
ALTER TABLE product_photo ADD CONSTRAINT product_photo_product_id_fkey FOREIGN KEY (product_id) REFERENCES product(id);
Большое спасибо! Много важной информации на примерах.
Рад, что полезно!
Спасибо, очень хорошо зашло.На одном дыхании и hands-on! Ну очеень доходчиво:)
Спасибооо!
Очень круто, мне как новичку особенно, я в этом деле человек новый и с вашим видео все предельно понятно и ясно, спасибо!!! Побольше таких видео обучалок 👍
Спасибо!