Вопросы по SQL и Базам Данных на интервью - Часть 2

  Рет қаралды 13,762

Програмысли Влог

Програмысли Влог

2 жыл бұрын

Выбираем самые популярные - всего и по определенной группе.
Видео про связи: Многие ко многим
• Базы данных - Связь мн...
Обо мне: www.flenov.ru
Мой ИТ блог www.flenov.ru и www.flenov.info
Мой просто блог blo.moe
Tweeter: / flenov
Инстаграмм: / mflenov
Телеграмм: t.me/mflenov

Пікірлер: 51
@Dev-lessons
@Dev-lessons 3 ай бұрын
Поддержать меня на Бусти и получить доступ к доп контенту: boosty.to/mflenov Обо мне: www.flenov.ru Мой ИТ блог www.flenov.info Телеграм: t.me/mflenov Twitter: twitter.com/flenov Инстаграм: instagram.com/mflenov/ Мой просто блог blo.moe
@deshdesh9866
@deshdesh9866 2 жыл бұрын
Прикольно, что (судя по комментам к этому видео и не только) такие видео смотрят в основном те, кто уже знает это, а не те, кто хочет научиться. Знающие люди даже на собеседованиях могут предложить какой-то уникальный способ решения задачи, который никому ранее не приходил в голову. Спасибо за видео!
@Hunteralex7
@Hunteralex7 7 ай бұрын
К счастью, только в основном, а не в только знающие)
@user-ph3ff4ej7n
@user-ph3ff4ej7n 2 жыл бұрын
Отличные видеоуроки, спасибо за контент, молодец
@iibixapb
@iibixapb 2 жыл бұрын
Отличные материалы, отличный автор ;) Как всегда - приятно слушать ;)
@Dev-lessons
@Dev-lessons 2 жыл бұрын
Спасибо
@Mr43046721
@Mr43046721 2 жыл бұрын
Большое спасибо за видео, было познавательно
@user-rw4nl8qf2g
@user-rw4nl8qf2g 4 ай бұрын
вообще топ задачка, как раз что-то новое узнал, спасибо большое
@murmor0707
@murmor0707 2 жыл бұрын
Спасибо большое!
@viktorgladkih8048
@viktorgladkih8048 2 жыл бұрын
ORDER BY в целом в любом SQL надо отправлять на самый верхний уровень :) . За оконные функции отдельное уважение. Не все их уважают в век ORM(Привет Django).
@user-jb7xp6ms3j
@user-jb7xp6ms3j 2 жыл бұрын
Microsoft Bing до сих пор проигрывает Google по всем статьям и его пытаются пользователям впихивать с браузером Edge
@tamararetyunskaya4404
@tamararetyunskaya4404 Жыл бұрын
Первое что приходит на ум, Discount - это процент скидки и поэтому тип данных real ), тогда Формула выглядеть должна так: UnitPrice * Quantity * (1 - Discount)
@Dev-lessons
@Dev-lessons Жыл бұрын
Возможно
@getredtm
@getredtm 2 жыл бұрын
Использовать GROUP BY в подзапросе... А я всё время в табличкую переменную засовывал и её джойнил. Хотя подзапросы тоже использую, но конкретно для такой ситуации - никогда (в основном, in). Жесть. Спасибо... Это гораздо быстрее.
@magicdragon7819
@magicdragon7819 Жыл бұрын
Спасибо за задачки. Решил быстро. Но, кажется мне, на собесе на позицию sql dev будут задавать что-то посложнее. Надо бы повторить рекусивные запросы, анализ деревьев, автозаполнение диапазонов данных, пивоты, анализ и сборку xml/json, ну и внутрянку субд: кучи, индексы такие-сякие, пейджинг, алгоритмы выгрузки страниц итп
@user-rw4nl8qf2g
@user-rw4nl8qf2g 4 ай бұрын
по поводу именования таблиц, не знаю на сколько это является стандртом в сообщество но я придерживаюсь соглашений из style guide по sql "Используйте собирательные имена или, что менее предпочтительно, форму множественного числа. Например, staff и employees (в порядке убывания предпочтения)."
@user-rw4nl8qf2g
@user-rw4nl8qf2g 4 ай бұрын
блин ссылку удаляет вот короче: www sqlstyle guide
@vor6758
@vor6758 9 ай бұрын
А у меня спросили про Data Vault и Якорную модель проектирования БД) Это вообще трэш
@politehhnik
@politehhnik Жыл бұрын
Здравствуйте. А почему не воспользовались LIMIT n OVER?
@Dev-lessons
@Dev-lessons Жыл бұрын
LIMIT это же из MySQL.
@kidsgame5274
@kidsgame5274 Жыл бұрын
Если это самые сложные вопросы по sql, то я профессор в этой области )
@Dev-lessons
@Dev-lessons Жыл бұрын
Это самые сложные, что меня спрашивали, в Канаде самые простые интервью, которые мне приходилось проходить
@ululult7989
@ululult7989 2 жыл бұрын
А было видео про рекурсивные запросы?
@Dev-lessons
@Dev-lessons 2 жыл бұрын
Во время интервью ни разу не давали подобных вопросов, но видео подобного плана действительно можно записать на канал, сделал пометку
@getredtm
@getredtm 2 жыл бұрын
​@@Dev-lessons ПОЖАЛУЙСТА! и CTE - общий принцип, зачем оно (пока только применение в построении иерархии дерева папок (если не используем hierarchy_id) Курсор и его опции, а то простые (пример ниже) вроде устраивают, но вдруг что-то ещё полезное есть (типа local, forward_only (вообще непонятен смысл зачем, если он всегда "вперед" идёт) и т.п. DECLARE @calc_id INT DECLARE CUR CURSOR FOR SELECT calc_id FROM SandCalcs OPEN CUR FETCH NEXT FROM CUR INTO @calc_id WHILE @@FETCH_STATUS = 0 BEGIN DELETE FROM SandCalcs WHERE calc_id = @calc_id FETCH NEXT FROM CUR INTO @calc_id END CLOSE CUR DEALLOCATE CUR
@aziznortozhiev5342
@aziznortozhiev5342 2 жыл бұрын
Упс, мой комментарий удален. Вопрос такой, почему бизнес логика не должна хранится в БД(хранимые процедуры, функции)?
@Dev-lessons
@Dev-lessons 2 жыл бұрын
Я не удаляю вопросы, но уже не первый раз слышу про пропадающие комментарии, возможно какие-то фильтры KZbin. По поводу логики в базе данных - ее потом сложно сопровождать, возникают проблемы с версиями и обновлениями без простоя приложения. Я об этом немного говорил в www.flenov.info/plus/content/Большие_сайты_-_Книга но думаю нужно записать полноценный видос на эту тему
@aziznortozhiev5342
@aziznortozhiev5342 2 жыл бұрын
@@Dev-lessons ждем развернутый ответ-видео. Да, во многих местах читаю, мнения разделяются, спорный вопрос. Особенно хотелось бы узнать Entity Framework или Stored Procedures в банковской среде, где требуется моментальных операций.
@hentan4912
@hentan4912 2 жыл бұрын
Могу отметить, что в компании где я работаю (в сфере логистики), бизнес логика практически полностью на sql, но не могу сказать что это хорошо и красиво смотрится везде..
@Dev-lessons
@Dev-lessons 2 жыл бұрын
@@hentan4912 Вопрос не в том, что хорошо или плохо смотрится, просто здесь есть плюсы и минусы и минусы очень даже серьезные
@hentan4912
@hentan4912 2 жыл бұрын
@@Dev-lessons ну будем ждать развёрнутой позиции по этому вопросу. Минусы с моей точки зрения это функциональность и декларативность самого языка, который в принципе не особенно предназначен для создания глобального продукта, а плюсы это маленькие накладные расходы. Это один из самых быстрых способов, чтобы ворочались большие данные
@Mr43046721
@Mr43046721 2 жыл бұрын
Был на проекте по переводу подсистемы отчетности (простая выгрузка из БД в Эксель) с MS SQL на постгрес, вся бизнес-логика отчетов была в SQL скриптах)) с курсорами, временными таблицами и пр. А бывало что бизнес-логика некоторых отчетов была и в SQL запросе, и в бэке))) треш
@Dev-lessons
@Dev-lessons 2 жыл бұрын
Я так понимаю, что треш указывает на то, что ты не очень счастлив был такой архитектуре...
@Mr43046721
@Mr43046721 2 жыл бұрын
@@Dev-lessons дебажить было очень трудно) все-таки бд должна отдавать сет данных, а построение отчётов лучше делать на бэке
@Dev-lessons
@Dev-lessons 2 жыл бұрын
@@Mr43046721 Да, это точно будет проблемой
@chron9725
@chron9725 2 жыл бұрын
11:56 - Думал проверка синтаксиса ругнется на несуществующий алиас cnt, но почему-то нет.
@Dev-lessons
@Dev-lessons 2 жыл бұрын
Если бы я выполнил, то скорей всего была бы проблема, а так студия не всегда хорошо видит имена полей, которые возвращают подзапросы, поэтому могут быть проблемы
@user-rw4nl8qf2g
@user-rw4nl8qf2g 4 ай бұрын
12:00 а разве discount Это не процент скидки типа total = (price * (1-discount) * quantity)
@Dev-lessons
@Dev-lessons 4 ай бұрын
Может быть. Но я решил показать именно эту сторону чисел
@user-without-nickname
@user-without-nickname Жыл бұрын
Дискаунт - это процент скидки. Не вычитать надо, а умножать.
@Dev-lessons
@Dev-lessons Жыл бұрын
Возможно процент. А что произойдет, если умножить?
@thesilencer8017
@thesilencer8017 Жыл бұрын
@@Dev-lessons По идее нужно Sum((UnitPrice * (1 - cast(Discount as Money)))* Quantity)
@user-nh1lp8xt4j
@user-nh1lp8xt4j 23 күн бұрын
У меня вчера на собесе спросили что такое транзакции, для чего нужны ключи помимо связей таблиц и что такое целостность данных. Я по этим вопросам жутко тупил. Если по транзакциям я что-то ответил невнятно, то остальное вообще не смог обьяснить))) Я не готовился особо по sql если честно.
@Dev-lessons
@Dev-lessons 22 күн бұрын
Надо готовится. Это прям совсем опыт должен быть большой, чтобы заходить на собеседование с ноги
@IgorGallemar
@IgorGallemar 2 жыл бұрын
Первый!!!
@user-cg4ly2ey6p
@user-cg4ly2ey6p Жыл бұрын
sql-academy - зе бест
@maksimblack87
@maksimblack87 2 жыл бұрын
Здравствуйте, есть комментарий по поводу поля Discount. Думаю что оно спецом сделано real потому как это скидка и ее надо вычитать не напрямую, а вот так: SUM((o.UnitPrice - o.UnitPrice*(cast(o.Discount as money)))*o.Quantity)
@Dev-lessons
@Dev-lessons 2 жыл бұрын
Ну в этом примере ты кастишь, а если бы скидка хранилась в money, то кастить не пришлось бы.
@maksimblack87
@maksimblack87 2 жыл бұрын
@@Dev-lessons может разработчики так хотели намекнуть что это проценты скидки?
@Dev-lessons
@Dev-lessons 2 жыл бұрын
Вот это скорей всего
Когда создавать индексы - базы данных
28:44
Програмысли Влог
Рет қаралды 2,9 М.
Вопросы собеседования на C# программиста
21:04
Програмысли Влог
Рет қаралды 61 М.
Тяжелые будни жены
00:46
К-Media
Рет қаралды 5 МЛН
Chips evolution !! 😔😔
00:23
Tibo InShape
Рет қаралды 38 МЛН
Be kind🤝
00:22
ISSEI / いっせい
Рет қаралды 11 МЛН
Базы данных - Связь многие ко многим - SQL проще некуда
34:16
SQL-инъекции | Клуб компьютерной безопасности
45:51
Студенческие клубы разработки СГУ
Рет қаралды 2,8 М.
SQL Injection - теория и примеры
13:17
Програмысли Влог
Рет қаралды 21 М.
Вопросы по SQL и Базам Данных на интервью
14:36
Програмысли Влог
Рет қаралды 73 М.
Индексы баз данных - Почему так быстро - проще некуда
44:54
.NET Framework vs .NET Core vs .NET Standard vs .NET
1:01
Програмысли Влог
Рет қаралды 8 М.
Тяжелые будни жены
00:46
К-Media
Рет қаралды 5 МЛН