DB Logo

Database Design

by Rikky

Все категории нашего блога:

Основы баз данных (изображение статьи)

Основы баз данных

Проектирование БД простыми словами

Примеры баз данных (изображение статьи)

Примеры баз данных

Разбираем архитектуру БД на популярных примерах

Восстановление БД (изображение статьи)

Восстановление БД

Исправление частых ошибок без потери данных

Новости проекта (изображение статьи)

Новости проекта

Обновления, новые функции, и прочие события

Примеры SQL запросов (изображение статьи)

Примеры SQL запросов

Основы SQL простыми словами, операторы SQL

Как в SQL изменить данные в записи таблицы: запрос SQL UPDATE

Обновление SQL записей, как написать SQL команды, чтобы изменить строку в таблице?

Объясняю как редактировать данные в кортеже базы данных SQL, простыми словами без воды. Команда UPDATE SET это легко! Подойдёт для MySQL, PostgresQL, MS SQL, SQLite, Oracle, MariaDB и других SQL СУБД.

Команда UPDATE в SQL используется для изменения существующих данных в таблице

Она позволяет обновлять одну или несколько строк, а также одно или несколько полей в выбранной записи. Синтаксис SQL запроса UPDATE SET:

UPDATE 
  названиеТаблицы 
SET 
  поле1 = значение1, 
  поле2 = значение2 
WHERE 
  условие;

Это буквально означает «ОБНОВИТЬ таблицу УСТАНОВИТЬ новые значения для полей, В ЗАПИСЯХ СООТВЕТСТВУЮЩИХ условию».

Если условие не указано, обновятся все строки в таблице!

Поэтому в большинстве случаев важно использовать условие (WHERE) для ограничения обновляемых данных.

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

Например, в нашей базе данных есть таблица товаров с названием products, и мы хотим изменить цену товара с определённым id.

Почему id? Это уникальный номер каждой строки в таблице.

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

Пример как командой SQL обновить запись по id:

Чтобы обновить цену (price) для товара с id 5, SQL-запрос будет выглядеть так:

UPDATE products SET price = 200 WHERE id = 5;

В этом случае цена товара с id 5 обновится на 200.

Обратите внимание, что если мы пропустим условие WHERE, цена всех товаров в таблице будет обновлена.

Как в SQL изменить несколько полей в записи?

С помощью команды UPDATE мы можем обновлять не только одно поле, но и несколько одновременно. Например, если мы хотим обновить как название, так и цену товара с id 5, SQL-запрос будет следующим:

UPDATE products SET name = 'Новый продукт', price = 200 WHERE id = 5;

Как в SQL изменить несколько записей по условию:

Иногда бывает необходимо обновить несколько строк одновременно по определённому критерию. Например, если мы хотим повысить цену для всех продуктов в категории «Электроника» (допустим у неё будет id = 5) на 10%, мы можем использовать следующий запрос:

UPDATE products SET price = price * 1.10 WHERE category_id = 5;

В этом случае увеличивается цена всех товаров в категории с id 5. Используя такие условия, мы можем эффективно массово редактировать данные в базе.

Обновление данных с использованием подзапросов в SQL:

Пример команды SQL UPDATE с подзапросом. Использование подзапросов может быть полезно, когда нам нужно обновить записи на основе данных, извлечённых из другой таблицы.

Например, если у нас есть таблица discounts (скидки) и мы хотим обновить цены товаров на основе их текущих скидок, тогда запрос может выглядеть так:

UPDATE 
  products 
SET 
  price = price - (
  
    SELECT 
      discount 
    FROM 
      discounts 
    WHERE 
      products.id = discounts.product_id
      
  );

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

Использование транзакций при обновлении данных в SQL

Иногда обновления требуют большой выборки данных, и для того чтобы гарантировать целостность базы данных, целесообразно обернуть команду UPDATE в транзакцию. Это позволит откатить изменения в случае ошибки.

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

Предположим, у нас есть таблица: accounts (счета), и мы хотим перевести деньги с одного счета на другой. Этот процесс включает в себя два шага: вычитание суммы со счёта отправителя и добавление этой же суммы на счёт получателя.

Пример SQL транзакции при обновлении данных:

BEGIN;

  UPDATE 
    accounts 
  SET 
    balance = balance - 100 
  WHERE 
    account_id = 1;

  UPDATE 
    accounts 
  SET 
    balance = balance + 100 
  WHERE 
    account_id = 2;

  -- Проверка, успешно ли прошли обновления
  IF (SELECT balance FROM accounts WHERE account_id = 1) < 0 THEN
      ROLLBACK; -- Откатить транзакцию, если на счёте недостаточно средств
  ELSE
      COMMIT; -- Зафиксировать изменения, если все прошло успешно
      
END IF;

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

Мы начинаем транзакцию с помощью команды BEGIN. Затем мы выполняем два обновления: уменьшаем баланс у счёта отправителя и увеличиваем баланс у счёта получателя. После этого мы проверяем, достаточно ли средств на счету отправителя. Если после вычитания баланс становится отрицательным, мы откатываем транзакцию с помощью ROLLBACK. Если же всё прошло успешно, мы используем команду COMMIT, чтобы подтвердить изменения.

А где можно спроектировать базу данных?

Попробуйте воспользоваться новым визуальным конструктором под названием Database Design.

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

Рассмотрим как это выглядит:

Смотреть видео
Где можно спроектировать базу данных? В Database Design!

Схему из приложения Database Design в дальнейшем можно выгрузить в качестве SQL-дампа скачав его по ссылке.

Файл дампа может использоваться для воссоздания точной структуры реляционной БД в любой нормальной SQL-подобной системы управления базами данных (СУБД), например MySQL.

И даже код SQL-запросов не придётся для этого писать!

Работать в Database Design —
одно удовольствие!

Подойдёт как профессионалам
так и студентам для организации хранения и анализа а также наглядного представления моделей бд своих проектов.

В Database Design можно работать из браузера с любого устройства, даже со смартфона, скачивать и устанавливать ничего не нужно!

Перейти к конструктору
Database Design

Другие статьи
и новости проекта:

Как в SQL удалить данные из таблицы: запрос SQL DELETE FROM WHERE

Как в SQL удалить данные из таблицы: запрос SQL DELETE FROM WHERE

Примеры SQL запросов

Обучение SQL с примерами: как написать SQL команды, чтобы удалить строку из таблицы базы данных? Объясняю удаление строк SQL, как удалить запись SQL, простыми словами без воды. Запрос DELETE FROM WHERE это легко! Подойдёт для MySQL, PostgresQL, MS SQL, SQLite, Oracle, MariaDB и др. SQL СУБД. читать статью

Как в SQL изменить данные в записи таблицы: запрос SQL UPDATE

Как в SQL изменить данные в записи таблицы: запрос SQL UPDATE

Примеры SQL запросов

Обновление SQL записей, как написать SQL команды, чтобы изменить строку в таблице? Объясняю как редактировать данные в кортеже базы данных SQL, простыми словами без воды. Команда UPDATE SET это легко! Подойдёт для MySQL, PostgresQL, MS SQL, SQLite, Oracle, MariaDB и других SQL СУБД. читать статью

Как в SQL добавить строку в таблицу: запрос SQL INSERT INTO

Как в SQL добавить строку в таблицу: запрос SQL INSERT INTO

Примеры SQL запросов

Обучение SQL с примерами: как написать SQL команды, чтобы добавить данные в таблицу? Объясняю как вставить данные в таблицу базы данных, простыми словами без воды. Команда INSERT INTO — это легко! Подойдёт для MySQL, PostgresQL, MS SQL, SQLite, Oracle, MariaDB и других SQL СУБД. читать статью

Как в SQL получить данные из таблицы: запрос SQL SELECT FROM WHERE

Как в SQL получить данные из таблицы: запрос SQL SELECT FROM WHERE

Примеры SQL запросов

Обучение SQL с примерами: как написать SQL команды, чтобы получить данные из базы данных? Объясняю как достать информацию из базы данных, простыми словами без воды. Команда SELECT FROM WHERE это легко! Подойдёт для MySQL, PostgresQL, MS SQL, SQLite, Oracle, MariaDB и других SQL СУБД. читать статью

Добавлено: удобный выбор цвета шапки таблицы, группы таблиц, возможность добавить пояснение к таблице, и дублировать таблицу. Улучшено масштабирование рабочей области.

Добавлено: удобный выбор цвета шапки таблицы, группы таблиц, возможность добавить пояснение к таблице, и дублировать таблицу. Улучшено масштабирование рабочей области.

Новости проекта

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

Добавлено: удобный выбор таблицы и столбца для связи, возможность переключаться между тёмной и светлой темами, и 2FA-авторизация

Добавлено: удобный выбор таблицы и столбца для связи, возможность переключаться между тёмной и светлой темами, и 2FA-авторизация

Новости проекта

Попробуйте новый удобный выбор таблицы для связи! Появился поиск по таблицам, и теперь можно указывать столбец для связи. Для любителей светлых интерфейсов добавлена светлая тема. Улучшена безопасность. читать статью

Реляционные базы данных это одна из составляющих практически любого IT-проекта. В чём суть баз данных? Для чего они нужны?

Реляционные базы данных это одна из составляющих практически любого IT-проекта. В чём суть баз данных? Для чего они нужны?

Основы баз данных

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

Основы проектирования БД: как создать связь «один к одному» (1:1) и когда нужен этот тип связи, простыми словами на примере

Основы проектирования БД: как создать связь «один к одному» (1:1) и когда нужен этот тип связи, простыми словами на примере

Основы баз данных

Уроки по реляционным базам данных, обучение базам данных онлайн. Как создать связь «многие ко многим» (М:М) и когда нужен этот тип связи. Изучение структуры реляционных баз данных с примерами SQL-запросов читать статью

Добавлены типы данных, расширенные настройки и экспорт FOREIGN, и переключение чувствительности мышки и тачпада

Добавлены типы данных, расширенные настройки и экспорт FOREIGN, и переключение чувствительности мышки и тачпада

Новости проекта

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

Основы проектирования БД: как создать связь «многие ко многим» (М:М) и когда нужен этот тип связи, простыми словами на примере

Основы проектирования БД: как создать связь «многие ко многим» (М:М) и когда нужен этот тип связи, простыми словами на примере

Основы баз данных

Уроки по реляционным базам данных, обучение базам данных онлайн. Как создать связь «многие ко многим» (М:М) и когда нужен этот тип связи. Изучение структуры реляционных баз данных с примерами SQL-запросов читать статью

Добавлены настройки общего доступа!

Добавлены настройки общего доступа!

Новости проекта

Поделиться схемой базы данных с командой или заказчиками теперь стало возможно! Все будут в восторге от того, в каком виде вы предоставили схему базы данных, и это уже проверено! читать статью

Основы проектирования БД: нормализация данных простыми словами, для чего нужны связи в реляционной БД, связь «один ко многим»

Основы проектирования БД: нормализация данных простыми словами, для чего нужны связи в реляционной БД, связь «один ко многим»

Основы баз данных

Уроки по реляционным базам данных, обучение базам данных онлайн. Связь one-to-many она же «‎один ко многим» (1:М), объясняю на примерах, простыми словами. читать статью

Не запускается MySQL: Ошибка MySQL Shutdown Unexpectedly

Не запускается MySQL: Ошибка MySQL Shutdown Unexpectedly

Восстановление БД

Всё работало как часы, и вдруг MySQL вылетает с ошибкой? Рассказываю как устранить проблему без потери данных читать статью