15 урок курса по SQL - языку программирования для оперирования реляционными базами данных. В этом уроке вы научитесь создавать выводы из нескольких связанных таблиц.
Еще одна фишка есть: все должны знать, что если выполнить такой запрос: select 'abc' from users; то на выходе получится столько строк abc, сколько записей. Теперь ловите фишку: select 'insert into house(id, user_id) values (nextval(''home_seq''), ' || userid || ') on conflict(id, user_id) do nothing;' На выходе получается динамический скрипт заполнения таблицы house на основе данных таблицы users. На основе этого можно писать запросы любой сложности, делать различные соединения с другими таблицами и доставать от туда данные. || в sql значит конкатенация строки
Автор показал много фишек, это основное, но хотелось бы дополнить. Когда работаешь back end разработчиком, возникает необходимость писать скрипты обновления, которые будут переносить новые даннные из разраб линейки на другие. При этом важно, чтобы скрипт выполнился ОДИН раз. В этом помогут следующие конструкции: insert into users ... nextval('users_seq') on conflict(email) do nothing; поле email должно быть уникальным
думаю как раз суть в том что это нужно показать, чтобы люди видели, что такая возможность есть, потому что я увидел это в одном из предыдущих уроков и крайне удивился что так можно
На самом деле эдакий интерактивчик с ошибками автора позволяет не паниковать когда сам руинешься на ошибках формата auto increment или primary_key, и в целом помогают понять чо кого. единственное я так понял это идёт большой косяк еще с 13 урока. (либо я чего то не понял) зачем в таблице heroes вообще иметь какие то ссылки на энимес пусть эта таблица будет батей на которую уже будет ссылаться enemies со своим столбцом oponent_name , где будет ссылаться на id_hero. Например: mysql> INSERT INTO enemies VALUES (NULL,'Jocker', 'Gothem',(SELECT hero_id FROM heroes WHERE hero_name='Batman')); Тогда мы будем иметь возможность накинуть одному герою несколько врагов. А на выходе получить что то вроде: mysql> SELECT heroes.hero_id, heroes.hero_name , heroes.power, inc.initials,enemies.zlodey FROM heroes INNER JOIN enemies ON heroes.hero_id=enemies.oponent_id INNER JOIN inc ON heroes.hero_id=inc.hero_id ORDER BY heroes.hero_id; +---------+------------+---------+----------+------------+ | hero_id | hero_name | power | initials | zlodey | +---------+------------+---------+----------+------------+ | 1 | spider-man | web | Spidy | Goblin | | 2 | Batman | gadgets | Bat | Jocker | | 2 | Batman | gadgets | Bat | Bane | | 3 | Iron Man | Traje | Stark | Ivan Vanco | +---------+------------+---------+----------+------------+
У меня вопрос, вот если я например добавляю поле, и хочу только в неё внести какие-то значения, как мне это сделать, потому что не могу догадаться, или забыл(( Скажите кто знает, пожалуйста))
Петр так графически и представил таблицы где указаны связи один к одному и т д . для наглядности своих примеров ... Судя по тому что он ранее в уроке 13 напутал он и сам не понимает всей сути команд ....
когда слишком гладко на видосах, думаешь, что с тобой что-то не так. У людей получается и объяснять и ошибок не делать, а ты просто пишешь и голову ломаешь над простейшими вещами) Гей-гей, я не одинок:)
Странно, что автор не понимает простой вещи. Нам не надо видеть твои ошибки, удели минут 20 монтажу ролика и дай конечный продукт без всяких "ой, ошибся". Не возможно учиться
Сочные баталии))))
с этим SQL' ом можно дерганым стать (с) 😂👍🏻
Код к уроку :
drive.google.com/file/d/0BwWjzd6TxM_wZllNZ3ZhdVdNVFk/view
интересно узнать чем ты сейчас занимаешься))
Еще одна фишка есть: все должны знать, что если выполнить такой запрос: select 'abc' from users; то на выходе получится столько строк abc, сколько записей. Теперь ловите фишку: select 'insert into house(id, user_id) values (nextval(''home_seq''), ' || userid || ') on conflict(id, user_id) do nothing;' На выходе получается динамический скрипт заполнения таблицы house на основе данных таблицы users. На основе этого можно писать запросы любой сложности, делать различные соединения с другими таблицами и доставать от туда данные. || в sql значит конкатенация строки
Сочный курс.
Автор показал много фишек, это основное, но хотелось бы дополнить. Когда работаешь back end разработчиком, возникает необходимость писать скрипты обновления, которые будут переносить новые даннные из разраб линейки на другие. При этом важно, чтобы скрипт выполнился ОДИН раз. В этом помогут следующие конструкции: insert into users ... nextval('users_seq') on conflict(email) do nothing; поле email должно быть уникальным
Забавно иногда слушать автора но точно не заснешь на его уроках
Это только мне кажется странным, когда (4:54) Пётр создаёт первичный ключ review_id, а потом его же делает внешним?
думаю как раз суть в том что это нужно показать, чтобы люди видели, что такая возможность есть, потому что я увидел это в одном из предыдущих уроков и крайне удивился что так можно
Это связь один к одному, он решил, что у 1 фильма может быть 1 один комментарий и наоборот, но это больше для практики сделано, как я понял
чем дальше, тем тяжелее воспринимается информация. этот урок еле прослушала. При том что увеличиваю скорость проигрывания
Дай Бог тебе здоров я
а будут ли занятия по созданию интерфейса для Базы данных?
хорошие уроки у тебя полу, молодец.
Спасибо)
На самом деле эдакий интерактивчик с ошибками автора позволяет не паниковать когда сам руинешься на ошибках формата auto increment или primary_key, и в целом помогают понять чо кого. единственное я так понял это идёт большой косяк еще с 13 урока. (либо я чего то не понял) зачем в таблице heroes вообще иметь какие то ссылки на энимес пусть эта таблица будет батей на которую уже будет ссылаться enemies со своим столбцом oponent_name , где будет ссылаться на id_hero. Например:
mysql> INSERT INTO enemies VALUES (NULL,'Jocker', 'Gothem',(SELECT hero_id FROM heroes WHERE hero_name='Batman'));
Тогда мы будем иметь возможность накинуть одному герою несколько врагов. А на выходе получить что то вроде:
mysql> SELECT heroes.hero_id, heroes.hero_name , heroes.power, inc.initials,enemies.zlodey FROM heroes INNER JOIN enemies ON heroes.hero_id=enemies.oponent_id INNER JOIN inc ON heroes.hero_id=inc.hero_id ORDER BY heroes.hero_id;
+---------+------------+---------+----------+------------+
| hero_id | hero_name | power | initials | zlodey |
+---------+------------+---------+----------+------------+
| 1 | spider-man | web | Spidy | Goblin |
| 2 | Batman | gadgets | Bat | Jocker |
| 2 | Batman | gadgets | Bat | Bane |
| 3 | Iron Man | Traje | Stark | Ivan Vanco |
+---------+------------+---------+----------+------------+
не понял, если честно, последовательности естественного и внутреннего запросов:(
+Игорь Жуган эти три таблицы соединяет и получается как одно
У меня вопрос, вот если я например добавляю поле, и хочу только в неё внести какие-то значения, как мне это сделать, потому что не могу догадаться, или забыл((
Скажите кто знает, пожалуйста))
Пример:
mysql> UPDATE contacts
-> set name = 'Петр'
-> where user_id = 1;
Там где странно, ты добавил 3 строки вместо 2х. SELECT SELECT FROM
Спасибо за уроки!
почему не удается скачать 15-урок через savefrom.net?
Норм!
Почему мне так смешно
Петр так графически и представил таблицы где указаны связи один к одному и т д . для наглядности своих примеров ... Судя по тому что он ранее в уроке 13 напутал он и сам не понимает всей сути команд ....
Все хорошо, но видосы можно монтировать, чтобы ошибки не попадали в кадр
когда слишком гладко на видосах, думаешь, что с тобой что-то не так. У людей получается и объяснять и ошибок не делать, а ты просто пишешь и голову ломаешь над простейшими вещами) Гей-гей, я не одинок:)
Со сценарием бы хорошо поработать, монтировать косяки и ошибки, а не просто заливать запись и пилить рекламу как AAA видеоурок
2017?
15:01
Можно F11 нажать 😏
Полное дн.. мда, не будет давайте писать. =)
ИМХО псевдонимы не использую, так как они ухудшают читаемость в больших запросах
Урок сырой, автор вообще не готовится, зато рекламы навставлял, большие деньги заработать хочет.
Есть много платных курсов SQL, там все подготовленно..
Установите расширение для Гугл Хрома АдблокПлюс. Разбираю уже 15-ый урок - ни разу рекламы не видел )))
костелов прекращай гнать пургу Петр
Странно, что автор не понимает простой вещи. Нам не надо видеть твои ошибки, удели минут 20 монтажу ролика и дай конечный продукт без всяких "ой, ошибся". Не возможно учиться