Задача по SQL про удаление записей из таблицы
Здравствуйте, друзья! Недавно в своём Telegram-канале выложил очередную задачу по SQL (см. изображение). Получился очень интересный разброс голосов за правильный ответ.
Более половины подписчиков ответили правильно! 💪 Из перечисленных в опросе команд SQL только последней удастся очистить таблицу Persons от всех строк в ней (см. задачу на изображении). Команда TRUNCATE TABLE Persons разом опустошит таблицу, она останется совсем без записей.
Команда DELETE написана так, что согласно условию WHERE не найдётся ни одной подходящей записи для удаления. Ни для одной строки не выполнится условие, указанное во WHERE. Результат сравнения с NULL всегда будет отрицательным. Для проверки на NULL можно использовать только IS и IS NOT.
Команда UPDATE не удаляет строки из таблицы. В нашем примере она заменяет существующее значение в столбце NAME на NULL для всех строк (WHERE-то нет).
А команда DROP вообще удаляет саму таблицу из базы данных😌 вместе с данными конечно. И селектить больше будет неоткуда. Таблицы больше не будет в базе данных🙈
Если у тебя есть Телеграмм, буду рад твоей подписке: https://t.me/sql_oracle_databases
Подборка SQL тренажёров
1. Интерактивный тренажер по SQL – Stepik
В курсе большинство шагов — это практические задания на создание SQL-запросов. Каждый шаг включает минимальные теоретические аспекты по базам данных или языку SQL, примеры похожих запросов и пояснение к реализации.
2. SQL Тренажер. Бесконечное приключение 00. Интро. – Stepik
Короткий тренажер, с интересным сценарием уроков.
В игровой форме закрепляются знания SQL. Необычные задачи от простого к сложному. Планируется целый цикл интересных историй, где каждое задание это необычный квест. Сейчас пока самые простые азы.
3. SQL Academy: онлайн курс SQL и тренажёр c упражнениями (sql-academy.org)
Всесторонний курс по SQL, спроектированный так, чтобы навсегда изменить твоё отношение к SQL. Мы вместе пройдём путь, чтобы понять как этот язык работает, и получим все необходимые навыки для эффективного применения его на работе.
4. Упражнения по SQL (sql-ex.ru)
Сайт поможет каждому, кто хочет приобрести или повысить свои навыки в написании операторов манипуляции данными языка SQL. Суть обучения состоит в том, что вы сами пишете операторы, которые должны вернуть или изменить данные, требуемые заданием.
5. Задачи по Python, SQL, программированию и Data Science | IT Resume
Сайт с платным доступом, но часть задач беспалтные.
Например Задача:
[Тестовое Альфа-банк] Покупки телефонов в Туле по месяцам | IT Resume
6. Master Coding for Data Science - StrataScratch
Зарубежный сайт, напоминающий leetCode, есть бесплатная версия использования
Материал подготовлен участниками чата
Сможете найти на картинке цифру среди букв?
Справились? Тогда попробуйте пройти нашу новую игру на внимательность. Приз — награда в профиль на Пикабу: https://pikabu.ru/link/-oD8sjtmAi
Является ли внешний ключ индексом? Конечно нет. Вот почему!
В этом видео расскажем создает ли определение внешнего ключа на таблице (foreign key) автоматически еще и индекс. Конечно не создает. Внешний ключ - это просто одна из разновидностей ограничений для таблиц (constraint). Если нужен еще и индекс по этому полю, то его нужно создавать дополнительно!
Как найти в себе силы и овладеть SQL
"У каждого взрослого человека всегда много дел". Дмитрий Петров, лингвист, полиглот.
"Aller Anfang ist schwer" (любое начинание сложно). Немецкая поговорка.
Всегда трудно начинать что-то новое. Переживания из-за невладения навыком работы с базами данных и незнания языка SQL могут усугубляться страхом его изучения. Как это всё выучить? И не просто выучить, а ещё и начать хорошо разбираться в этом? А вдруг я не смогу найти работу, ведь везде требуются сотрудники уже с опытом работы? Эти и другие страхи возникают постоянно. Но бояться не надо! Язык SQL не сложный!
- "Конечно, тебе легко говорить". - Скажешь ты. - "Ведь ты его знаешь".
- "Да, знаю. И так же как и ты, когда то впервые его увидел". А ещё я практически сразу понял насколько он прост и лёгок в понимании! Итак, языку SQL и существенным навыкам работы с базами данных можно обучиться за довольно короткое время! А качественное обучение (или самообучение) с обязательной практикой может дать хороший результат! А чтобы начать совсем хорошо в нём разбираться, нужно прорешать множество типичных и каверзных задач. Здесь, конечно, нужен или опыт или нужны хорошие курсы. В своём курсе по SQL и базам данных на простых примерах я проведу тебя через многие практические сложности! Мы научимся решать любые задачи на языке SQL. Научимся видеть потенциальные ошибки в существующем коде и оптимизировать его. Можно реально примерно за месяц (если учиться не торопясь, уделяя час в день) "прокачать" знания языка SQL и навыки работы с базами данных с нуля до уровня специалиста с трёхлетним стажем! Вот так!
Я совсем не уговариваю тебя придти ко мне на курс, но был бы тебе очень рад! Мне уже повезло, что ты читаешь этот пост и я могу ещё кое что тебе рассказать!
Итак, язык SQL очень прост. Ты можешь ему научиться. Это аксиома (не требует доказательств).
"Я знаю. Ты можешь"! Ицхак Пинтосевич. Автор множества книг по развитию личности.
Итак, SQL тебе под силу! Теперь осталось разобраться как найти на него время и силы. У тебя, возможно, есть семья, дети. Есть работа, которая отнимает основное продуктивное время, есть друзья, которым хоть пол часа в день времени, но уделить нужно (вотсап, вконтакте, одноклассники,..). Вобщем - день занят. И так каждый день! А в выходные надо отдохнуть, ведь всю неделю ты работал как мог!
- "У меня есть максимум час в неделю!" - скажешь ты.
- "Отлично! С этого и давай начинать!" Час в неделю это лучше, чем ничего.
"Большого слона можно съесть по кусочкам". Народная мудрость.
Итак, если у нас есть час в день, то считай, что SQL мы выучим! Да, да! Тратя по-немногу времени на нужный навык, ты, в конце концов, его освоишь! И даже это не растянется на очень долго! Изучай и практикуй! Начни хоть с часу в неделю, ты заметишь, что ты начнёшь в этом разбираться, а через некоторое время тебе это понравится и ты сможешь находить на это больше времени! Незаметно для себя ты овладеешь SQL и обучишься навыкам работы с базами данных!
Буду рад, если поделишься своей историей как ты смог найти время и силы на язык SQL!
База данных характеристик авто с фотографиями
Дорогие пикабушники, доброго вам дня. Привет моим подписчикам. Сегодня я решил порадовать вас свежей базой данных характеристик авто с фото. База актуальна примерно на 06.2023 г.
Базу решил выложить бесплатно. Думаю многим разработчикам пригодится.
Планирую также выложить базы данных с рецептами блюд, характеристиками вело/мото техники и характеристиками планшетов и смартфонов. Буду рад вашим предложениям, какие ещё базы данных вы хотели бы видеть? Буду признателен за источники с открытой информацией о чем либо, различные справочники.
Также есть базы данных с характеристиками различной техники (телевизоры, комплектующие для ПК, различная бытовая техника и т.п.), все с фото, правда ещё не обработаны. Если вам будет интересно, возможно выложу.
Со мной можно связать по почтовому ящику amsterdamnavi@yandex.ru или AmsterBD@yandex.com
Итак, немного о самой базе:
+ Брендов около 240.
+ Моделей более 3200.
+ Генераций в районе 10 000.
+ Модификаций более 83 000.
+ Более 70 000 фотографий.
- Не под все генерации есть фото, около двух десятков без фото.
- Не все характеристики у пары десятков модификаций.
- К сожалению не нашел источника с описанием комплектаций авто (если кто подскажет, буду благодарен).
Где её можно использовать:
Сайт с характеристиками автомобилей.
Интернет-магазин автозапчастей и аксессуаров для авто.
Доска объявлений по продаже авто и запчастей к ним.
Сайт с дневниками автолюбителей.
Сайт трейд-ин автосалонов и автохаусов.
Прочие сферы связанные с авто и характеристиками авто.
UPD Фотографии не рекомендуется использовать в коммерческих проектах.
Какая структура у базы?
1) Таблица с марками авто.
2) Таблица с моделями авто.
Столбец с годом начала производства и столбец с годом окончания производства модели. Если в столбце окончания указан 0, значит модель производится по сей день.
Привязка к brand_id таблицы брендов авто.
3) Таблица с генерациями моделей авто.
Столбец с указанием типа кузова.
Столбец с годом начала производства и столбец с годом окончания производства генерации. Если в столбце окончания указан 0, значит генерация производится по сей день.
Привязка к model_id таблицы моделей авто.
4) Таблица со всеми модификациями генераций авто.
Столбец с мощностью модификации в л.с.
Столбец с указанием типа привода модификации.
Столбец с годом начала производства и столбец с годом окончания производства модификации. Если в столбце окончания указан 0, значит модификация производится по сей день.
Привязка к generation_id таблицы генераций авто.
5) Непосредственно сама таблица с характеристиками авто.
Характеристики разделены по группам.
Привязка к таблице модификаций к столбцу modification_id.
6) Архив с фотографиями автомобилей и таблица с фото по генерациям.
Связь фото по id фото в таблице.
Файл с базой:
Формат: .sql
Размер: 410 Mb
Ссылка: https://drive.google.com/file/d/1d3gFfa5ZJb6j2OFl7w2a1IvUbfsBvcLs/view?usp=sharing
Сами фотографии в формате .jpg
Формат: .zip
Размер: 11,21 Gb
Ссылка: https://drive.google.com/file/d/1Mhmts_IRAa53oImDLQPJmM6-7stRnm7a/view?usp=sharing
Всем удачи, всем успехов.
P.S. Вопрос к администрации Пикабу. Почему запрещены к размещению ссылки с mega?
Погружение в SQL дебри
Имею опыт в веб разработке около 5 лет, но так и не сталкивался с по настоящему сложными задачами с sql запросами и оптимизацией запросов. Может кто знает хороший курс для повышения квалификации не новичков, помогающий разобраться в тонкостях работы баз данных.
P.S. Вполне подойдут в том числе платные курсы. Компания оплачивает до 120 тыс на обучение вроде в год))
Как разобраться в базовых SQL-запросах
SQL (Structured Query Language) - это специализированный язык программирования, используемый для управления и манипулирования базами данных. Выделим базовые команды.
SELECT
Оператор SELECT используется для выбора данных из базы данных. Данные возвращаются в виде "результата множества".
Здесь column1 и column2 - это имена столбцов, которые вы хотите извлечь из table_name.
INSERT INTO
Оператор INSERT INTO используется для вставки новых строк в таблицу.
Здесь column1 и column2 - это имена столбцов, в которые вы хотите вставить данные. Value1 и Value2 - это соответствующие значения этих столбцов.
UPDATE
Оператор UPDATE используется для обновления существующих записей в таблице.
Этот запрос обновит значения column1 и column2 в тех строках table_name, которые удовлетворяют условию condition.
DELETE
Оператор DELETE используется для удаления существующих записей из таблицы.
Этот запрос удалит те строки из table_name, которые удовлетворяют условию condition.
WHERE
Оператор WHERE используется для фильтрации записей и используется с операторами, такими как SELECT, UPDATE и DELETE.
Этот запрос выберет column1 и column2 из тех строк table_name, которые удовлетворяют условию condition.
Умение работать с базами данных SQL - важный навык, который требуется во многих областях IT. Это лишь поверхностное знакомство с SQL, но эти базовые запросы помогут вам начать путь в изучении этого мощного инструмента для работы с данными. Будьте уверены, что с практикой и терпением вы сможете освоить более сложные аспекты SQL.