Изменить значение поля Oracle

Обновлено: 03.07.2024

В этом учебном пособии Oracle объясняется, как использовать инструкцию Oracle UPDATE с синтаксисом, примерами и практическими упражнениями.

Описание

Операция Oracle UPDATE используется для обновления существующих записей в таблице базы данных Oracle. Существует 2 синтаксиса для запроса на обновление в Oracle в зависимости от того, выполняете ли вы традиционное обновление или обновляете одну таблицу данными из другой таблицы.

Синтаксис

Синтаксис оператора UPDATE при обновлении одной таблицы в Oracle/PLSQL:

Синтаксис оператора Oracle UPDATE при обновлении одной таблицы данными из другой таблицы:

Параметры или аргументы

столбец1, столбец2, . column_n Столбцы, которые вы хотите обновить. выражение1, выражение2, . expression_n Новые значения для присвоения column1, column2, . столбец_n. Таким образом, столбцу1 будет присвоено значение выражения1, столбцу2 будет присвоено значение выражения2 и т. д. . ГДЕ условия Необязательный. Условия, которые должны быть выполнены для выполнения обновления. Если условия не указаны, то все записи в таблице будут обновлены.

Пример. Обновление одного столбца

Давайте рассмотрим очень простой пример запроса Oracle UPDATE.

В этом примере Oracle UPDATE значение last_name будет изменено на «Андерсон» в таблице customers, где customer_id равно 5000.

Пример. Обновление нескольких столбцов

Давайте рассмотрим пример Oracle UPDATE, в котором вам может потребоваться обновить более одного столбца с помощью одного оператора UPDATE.

Если вы хотите обновить несколько столбцов, вы можете сделать это, разделив пары столбец/значение запятыми.

В этом примере инструкции Oracle UPDATE поле state обновляется до «Калифорния», а customer_rep — до 32, где customer_id больше 100.

Пример. Обновление таблицы данными из другой таблицы

Давайте рассмотрим пример Oracle UPDATE, который показывает, как обновить таблицу данными из другой таблицы.

В этом примере UPDATE будет обновлена ​​только таблица customers для всех записей, где customer_id меньше 1000. Когда supplier_name из em>suppliers совпадает с customer_name из таблицы customers, contract_date из таблицы Suppliers будет скопирована в c_details в таблице customers.

Пример — использование предложения EXISTS

Вы также можете выполнять более сложные обновления в Oracle.

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

В этом примере Oracle UPDATE всякий раз, когда supplier_id совпадает со значением customer_id, supplier_name перезаписывается customer_name< /em> из таблицы customers.

Исходя из таблицы suppliers, заполненной следующими данными, обновите город на "Сан-Франциско" для всех записей, чье supplier_name равно " IBM".

Следующая инструкция UPDATE выполнит это обновление в Oracle.

Таблица suppliers теперь будет выглядеть так:

SUPPLIER_ID SUPPLIER_NAME CITY
5001 Microsoft Чикаго
5002 IBM Сан-Франциско
5003 Красная шляпа Детройт
5004 NVIDIA Нью-Йорк

На основе таблиц suppliers и customers, заполненных следующими данными, обновите город в таблице suppliers. таблице с городом в таблице customers, когда supplier_name в таблице suppliers совпадает с customer_name< /em> в таблице customers.

Вывод: в этом руководстве вы узнаете, как использовать оператор столбца Oracle ALTER TABLE MODIFY для изменения определения существующих столбцов.

Чтобы изменить определение столбца в таблице, используйте синтаксис столбца ALTER TABLE MODIFY следующим образом:

Утверждение простое. Чтобы изменить столбец таблицы, вам нужно указать имя столбца, имя таблицы и действие, которое вы хотите выполнить.

Oracle позволяет выполнять множество действий, но основными являются следующие:

  • Изменить видимость столбца
  • Разрешить или запретить пустые значения
  • Сократите или увеличьте размер столбца.
  • Изменить значение столбца по умолчанию
  • Изменить выражение виртуальных столбцов

Чтобы изменить несколько столбцов, используйте следующий синтаксис:

Примеры столбца Oracle ALTER TABLE MODIFY

Сначала создайте новую таблицу с именем account для демонстрации:

Во-вторых, вставьте несколько строк в таблицу учетных записей:

В-третьих, проверьте операцию вставки, используя следующую инструкцию SELECT:

Oracle ALTER TABLE MODIFY Column - пример

A) Изменить видимость столбца

В Oracle Database 12c столбцы таблицы можно определить как невидимые или видимые. Невидимые столбцы недоступны для запроса, например:

Или утверждение типа:

Однако вы можете запросить невидимые столбцы, явно указав их в запросе:

По умолчанию столбцы таблицы видны. Вы можете определить невидимый столбец при создании таблицы или с помощью оператора столбца ALTER TABLE MODIFY.

Например, следующий оператор делает невидимым столбец full_name:

Oracle ALTER TABLE MODIFY Пример видимости столбца

Следующий оператор возвращает данные из всех столбцов таблицы account, кроме столбца full_name:

Это связано с тем, что столбец full_name невидим.

Чтобы изменить столбец с невидимого на видимый, используйте следующий оператор:

B) Разрешить или запретить нулевой пример

Следующий оператор изменяет столбец электронной почты, чтобы он принимал ненулевые значения:

Однако Oracle выдал следующую ошибку:

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

Чтобы исправить это, мы сначала обновляем значения для столбца электронной почты:

Обратите внимание, что функция LOWER() преобразует строку в нижний регистр.

А затем измените ограничение столбца:

Теперь все работает как положено.

C) Увеличить или сократить пример столбца

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

Теперь мы можем обновить номера телефонов:

Следующий оператор проверяет обновление:

Oracle ALTER TABLE MODIFY column - пример расширения размера столбца

Чтобы сократить размер столбца, убедитесь, что все данные в столбце соответствуют новому размеру.

Например, мы пытаемся сократить размер столбца телефона до 12 символов:

База данных Oracle выдала следующую ошибку:

Чтобы это исправить, во-первых, мы должны удалить международный код из телефонных номеров:

Функция REPLACE() заменяет подстроку новой подстрокой. В этом случае он заменяет «+1-» пустой строкой.

А затем уменьшите размер столбца телефона:

D) Изменить виртуальный столбец

Допустим, мы полное имя в следующем формате:

Для этого мы можем изменить выражение виртуального столбца full_name следующим образом:

Следующий оператор проверяет модификацию:

Oracle ALTER TABLE MODIFY Column - пример изменения виртуального столбца

E) Изменить значение столбца по умолчанию

Давайте добавим новый столбец с именем status в таблицу учетных записей со значением по умолчанию 1.

Oracle ALTER TABLE MODIFY Column — Добавить столбец статуса

После выполнения оператора значения в столбце состояния устанавливаются равными 1 для всех существующих строк в таблице учетных записей.

Чтобы изменить значение столбца состояния по умолчанию на 0, используйте следующую инструкцию:

Мы можем добавить новую строку в таблицу учетных записей, чтобы проверить, является ли значение столбца состояния по умолчанию равным 0 или 1:

Запрос данных из таблицы учетных записей:

Oracle ALTER TABLE MODIFY Column - изменить значение столбца по умолчанию

Как видите, значение в столбце статуса для учетной записи с идентификатором 4 равно 0, как и ожидалось.

В этом руководстве вы узнали, как использовать оператор столбца Oracle ALTER TABLE MODIFY для изменения определения существующих столбцов в таблице.

Вывод: в этом руководстве вы узнаете, как использовать инструкцию Oracle UPDATE для изменения существующих значений в таблице.

Введение в инструкцию Oracle UPDATE

Чтобы изменить существующие значения в таблице, используйте следующую инструкцию Oracle UPDATE:

Давайте подробно рассмотрим оператор UPDATE.

  • Сначала вы указываете имя таблицы, которую хотите обновить.
  • Во-вторых, вы указываете имя столбца, значения которого должны быть обновлены, и новое значение. Если вы обновляете более двух столбцов, вы разделяете каждый столбец выражения = значение запятой. Значение1, значение2 или значение3 могут быть литералами или подзапросом, который возвращает одно значение. Обратите внимание, что оператор UPDATE позволяет обновлять столько столбцов, сколько вы хотите.
  • В-третьих, предложение WHERE определяет, какие строки таблицы следует обновить. Предложение WHERE является необязательным. Если его не указать, оператор UPDATE обновит все строки таблицы.

Примеры ОБНОВЛЕНИЯ Oracle

Давайте создадим новую таблицу с примерами данных для демонстрации.

Во-первых, следующая инструкция CREATE TABLE создает новую таблицу с именем parts :

Во-вторых, следующие операторы INSERT добавляют примеры данных в таблицу частей:

В-третьих, у нас есть таблица деталей с некоторыми примерами данных для практики:

Oracle UPDATE - образец таблицы

A) Oracle UPDATE — обновить один столбец одной строки

Следующий оператор UPDATE изменяет стоимость детали с идентификатором 1:

Чтобы проверить обновление, используйте следующий запрос:

Oracle UPDATE - обновить один столбец строки

B) Oracle UPDATE — обновить несколько столбцов одной строки

Следующий оператор обновляет время выполнения, стоимость и статус детали с идентификатором 5.

Oracle UPDATE - обновить несколько столбцов строки

C) Oracle UPDATE — пример обновления нескольких строк

Следующее утверждение увеличивает стоимость всех деталей в таблице деталей на 5%:

Вот результат:

 ОБНОВЛЕНИЕ Oracle - обновить все строки

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


Обучение Oracle
Советы Oracle
Форум Oracle
Каталог классов


Удаленный администратор баз данных
Настройка Oracle
Экстренный вызов 911
Поддержка RAC
Поддержка приложений
Анализ
Дизайн
Внедрение
Поддержка Oracle



Настройка SQL
Безопасность
Oracle UNIX
Oracle Linux
Мониторинг
Удаленная поддержка
Удаленные планы
Удаленные услуги
Сервер приложений
Приложения
Формы Oracle
Портал Oracle
Обновления приложений
SQL Server
Концепции Oracle
Поддержка программного обеспечения
Удаленная поддержка
Разработка
Внедрение



Сотрудники консультантов
Цены на консалтинг
Требуется помощь!



Постеры Oracle
Книги Oracle
Скрипты Oracle
Ion
Excel-DB

Oracle alter table change column datatype

Советы по базе данных Oracle, автор Дональд Берлесон

Oracle изменить тип данных столбца изменения таблицы

Вы можете использовать синтаксис Oracle "alter table", чтобы изменить тип данных для существующего столбца, как показано в этом примере:

Чтобы преобразовать столбец типа данных LONG в тип данных CLOB, просто введите этот DDL:

создать таблицу mytable (номер pk, blob_column long)
-- добавить много строк
изменить таблицу mytable изменить (blob_column clob);

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

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

1 — создать новый столбец в конце таблицы.

2 – Запустите обновление, чтобы заполнить новый столбец таблицы

3 — Удалить старый столбец таблицы

4 — Переименуйте новый столбец в исходное имя столбца

Кроме того, начиная с Oracle 11g, новая функция виртуального столбца полезна для изменения типов данных столбца таблицы.

Внедрение растровых индексов

Меня вызвали для устранения неполадок и исправления системы запросов полиции штата, в которой наблюдалась низкая производительность запросов. Система была доступна только для чтения, за исключением 30-минутного ночного окна для загрузки данных. Изучив SQL, я заметил сложные комбинационные предложения WHERE:

ГДЕ color='BLU' and make='CHEVY' and year=1997 and door=2;

Различных значений для каждого из этих столбцов было меньше 200, и использовались составные индексы. Замена индексов b-дерева растровыми индексами привела к ошеломляющему повышению производительности всей системы: время выполнения запросов сократилось с 3 секунд до менее одной десятой секунды.


Бурлесон — американская команда


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

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

Ошибки? Технология Oracle меняется, и мы стараемся обновлять нашу информацию о поддержке BC Oracle. Если вы обнаружите ошибку или у вас есть предложение по улучшению нашего контента, мы будем признательны за ваш отзыв. Просто электронная почта:


и укажите URL-адрес страницы.


Burleson Consulting

Оракул поддержки баз данных

Читайте также: