Программирование в Microsoft SQL Server 2000

Модификация строк

Разбить на страницы
Показывать лекцию целиком

Вы научитесь:

  • модифицировать все строки в таблице с использованием панели сетки Grid Pane;
  • модифицировать избранные строки в таблице с использованием панели сетки Grid Pane;
  • модифицировать все строки в таблице с использованием панели SQL Pane;
  • модифицировать избранные строки в таблице с использованием панели SQL Pane;
  • модифицировать строки с помощью оператора FROM.
  • Понятие об операторе UPDATE

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

    UPDATE таблица_или_представление
    SET объекты_изменения
    [WHERE (условие)]

    Подобно оператору INSERT, один оператор UPDATE может модифицировать только одну таблицу или представление. Для обновления представления с помощью оператора UPDATE существуют те же ограничения, что и для обновления представления с помощью оператора INSERT:

  • представление не должно содержать функций агрегирования, таких как COUNT или AVG;
  • представление не должно содержать TOP, GROUP BY, UNION или DISTINCT;
  • представление не должно содержать вычисляемых столбцов;
  • представление должно ссылаться на таблицу, указанную в фразе FROM;
  • оператор UPDATE должен модифицировать столбцы только из одной таблицы.
  • За ключевым словом SET следует перечень подлежащих обновлению столбцов, отделяемых запятыми, а также их новые значения. Форма записи при этом следующая: имя_столбца = новое_значение. Новое значение может быть константой или выражением, которое также может ссылаться на сам столбец. Например, выражение SalesPrice = SalesPrice * .90 будет уменьшать значения в столбце SalesPrice на 10 процентов.

    Фраза WHERE является необязательной. Если она имеется, то должна задавать строки, подлежащие обновлению. Если фраза WHERE в операторе UPDATE отсутствует, будут модифицироваться все строки в таблице.

    Использование оператора UPDATE

    Как и большинство других форм запросов, вы можете создавать запрос UPDATE в конструкторе запросов Query Designer с использованием панели сетки Grid Pane, либо непосредственно вводя оператор в панели SQL Pane.

    Модификация строк с использованием панели сетки Grid Pane

    Панель сетки Grid Pane конструктора запросов предоставляет возможности для создания запроса UPDATE.

    Модифицируйте все строки с использованием панели сетки Grid Pane

  • Перейдите к папке Tables базы данных Aromatherapy, щелкните правой кнопкой мыши на таблице MyOils в рабочей панели Details Pane, укажите на Open Table (Открытие таблицы) и выберите Query (Запрос). Будет открыт конструктор запросов Query Designer.
  • Скройте панель SQL Pane и панель диаграмм Diagram Pane, щелкнув на кнопке SQLи на кнопке Diagram (Диаграмма).
  • Не закрывая конструктор запросов Query Designer, откройте новое представление таблицы MyOils, щелкнув правой кнопкой мыши на таблице MyOils в рабочей панели Details Pane, указав на Open Table (Открытие таблицы) и выбрав Return All Rows (Показать все строки). Будет открыт новый экземпляр конструктора запросов Query Designer, отображающий все строки из таблицы MyOils.
  • Перейдите в окно конструктора запросов Query Designer, отображающее панель сетки Grid Pane и панель результатов Results Pane. Щелкните на кнопке Change Query Type (Изменить тип запроса)в панели инструментов конструктора запросов и выберите Update (Модифицировать). Конструктор запросов добавит в сетку столбец нового значения New Value.
  • Добавьте столбец описания Description в панель сетки Grid Pane и установите на ячейке New Value значение 'Description'.
  • Нажмите кнопку Run (Выполнить)в панели инструментов конструктора запросов, чтобы исполнить запрос. Конструктор запросов Query Designer отобразит сообщение, подтверждающее, что строки были модифицированы.
  • Перейдите к окну конструктора запросов Query Designer, отображающему все строки из таблицы MyOils.
  • Нажмите кнопку Run (Выполнить) в панели инструментов конструктора запросов, чтобы повторно исполнить запрос
  • Модифицируйте одну строку с использованием панели сетки Grid Pane

  • Перейдите к окну конструктора запросов Query Designer, содержащему оператор UPDATE.
  • Измените значение ячейки New Value на "Description of Basil".
  • Добавьте столбец OilName в сетку и установите для него в ячейке условия Criteria значение = "Basil".
  • Нажмите кнопку Run (Выполнить)в панели инструментов конструктора запросов, чтобы исполнить запрос. Конструктор запросов Query Designer отобразит сообщение, подтверждающее, что строка была модифицирована.
  • Перейдите к окну конструктора запросов Query Designer, отображающему все строки из таблицы MyOils.
  • Нажмите кнопку Run (Выполнить)в панели инструментов конструктора запросов, чтобы исполнить запрос
  • Модификация строк с использованием панели SQL Pane

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

    Модифицируйте все строки с использованием панели SQL Pane

  • Перейдите к окну, содержащему оператор UPDATE.
  • Отобразите панель SQL Paneи скройте панель сетки Grid Pane.
  • Измените оператор SQL следующим образом:
    UPDATE MyOils
    SET Sample = "Sample Field"
  • Нажмите кнопку Run (Выполнить)в панели инструментов конструктора запросов, чтобы исполнить запрос. Конструктор запросов Query Designer отобразит сообщение о количестве строк, подвергшихся изменениям в результате выполнения запроса.
  • Перейдите к окну конструктора запросов Query Designer, отображающему все строки из таблицы MyOils.
  • Нажмите кнопку Run (Выполнить)в панели инструментов конструктора запросов, чтобы повторно исполнить запрос
  • Модифицируйте строки с использованием условия WHERE

  • Перейдите к окну конструктора запросов Query Designer, содержащему оператор UPDATE.
  • Измените оператор SQL следующим образом:
    UPDATE	MyOils
    SET	Description = "Description of Frankincense"
    WHERE	OilName = "Frankincense"
  • Нажмите кнопку Run (Выполнить)в панели инструментов конструктора запросов, чтобы исполнить запрос. Конструктор запросов Query Designer отобразит сообщение о количестве строк, подвергшихся изменениям в результате выполнения запроса.
  • Вернитесь к окну конструктора запросов Query Designer, отображающему все строки из таблицы MyOils.
  • Нажмите кнопку Run (Выполнить)в панели инструментов конструктора запросов, чтобы повторно исполнить базовый запрос
  • Модификация строк с использованием фразы FROM

    Можно использовать фразу SELECT в операторе INSERT, чтобы вставить значения из другой таблицы (см. урок 17). Оператор UPDATE использует фразу FROM для извлечения значений из другой таблицы:

    UPDATE таблица_или_представление
    SET объекты_изменения
    FROM таблица_или_представление оператор_связывания условие_связывания
    [WHERE (условие_ограничения)]

    Фраза FROM здесь имеет тот же формат, что и фраза FROM в операторе SELECT. Так же, как и для оператора SELECT, вы можете задать более одной таблицы или представления путем добавления операторов связывания. Необязательное условие WHERE может использоваться для ограничения множества модифицируемых строк.

    Модифицируйте строки с использованием оператора FROM

  • Вернитесь к окну конструктора запросов Query Designer, содержащему оператор UPDATE.
  • Измените оператор SQL следующим образом:
    UPDATE	MyOils
    SET	MyOils.PlantPartID = Oils.PlantPartID
    FROM	MyOils INNER JOIN Oils ON MyOils.OilName = Oils.OilName
  • Внимание! Вы не можете использовать столбцы OilID для связывания двух таблиц, поскольку команды INSERT, которые вы использовали для добавления строк в уроке 17, создали новые значения OilID для каждой строки в таблице MyOils.

  • Нажмите кнопку Run (Выполнить)в панели инструментов конструктора запросов, чтобы исполнить запрос. Конструктор запросов Query Designer отобразит сообщение о количестве строк, подвергшихся изменениям.
  • Вернитесь к окну конструктора запросов Query Designer, отображающему все строки из таблицы MyOils.
  • Нажмите кнопку Run (Выполнить)в панели инструментов конструктора запросов, чтобы исполнить запрос
  • Краткое содержание

    Чтобы... Синтаксис оператора SQL
    Модифицировать все строки в таблице
    UPDATE таблица_или_представление
    SET объекты_изменения
    Объекты_изменения представляют собой список отделяемых запятыми элементов вида
    столбец = значение, столбец = значение, ...
    Модифицировать избранные строки в таблице
    UPDATE таблица_или_представление
    SET объекты_изменения
    WHERE условие
    Модифицировать строки с использованием фразы FROM
    UPDATE таблица_или_представление
    SET объекты_изменения
    FROM таблица_или_представление оператор_связывания условие_связывания
    [WHERE (условие_ограничения)]
    Страницы:

    Вы научитесь:

  • модифицировать все строки в таблице с использованием панели сетки Grid Pane;
  • модифицировать избранные строки в таблице с использованием панели сетки Grid Pane;
  • модифицировать все строки в таблице с использованием панели SQL Pane;
  • модифицировать избранные строки в таблице с использованием панели SQL Pane;
  • модифицировать строки с помощью оператора FROM.
  • Понятие об операторе UPDATE

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

    UPDATE таблица_или_представление
    SET объекты_изменения
    [WHERE (условие)]

    Подобно оператору INSERT, один оператор UPDATE может модифицировать только одну таблицу или представление. Для обновления представления с помощью оператора UPDATE существуют те же ограничения, что и для обновления представления с помощью оператора INSERT:

  • представление не должно содержать функций агрегирования, таких как COUNT или AVG;
  • представление не должно содержать TOP, GROUP BY, UNION или DISTINCT;
  • представление не должно содержать вычисляемых столбцов;
  • представление должно ссылаться на таблицу, указанную в фразе FROM;
  • оператор UPDATE должен модифицировать столбцы только из одной таблицы.
  • За ключевым словом SET следует перечень подлежащих обновлению столбцов, отделяемых запятыми, а также их новые значения. Форма записи при этом следующая: имя_столбца = новое_значение. Новое значение может быть константой или выражением, которое также может ссылаться на сам столбец. Например, выражение SalesPrice = SalesPrice * .90 будет уменьшать значения в столбце SalesPrice на 10 процентов.

    Фраза WHERE является необязательной. Если она имеется, то должна задавать строки, подлежащие обновлению. Если фраза WHERE в операторе UPDATE отсутствует, будут модифицироваться все строки в таблице.

    Использование оператора UPDATE

    Как и большинство других форм запросов, вы можете создавать запрос UPDATE в конструкторе запросов Query Designer с использованием панели сетки Grid Pane, либо непосредственно вводя оператор в панели SQL Pane.

    Модификация строк с использованием панели сетки Grid Pane

    Панель сетки Grid Pane конструктора запросов предоставляет возможности для создания запроса UPDATE.

    Модифицируйте все строки с использованием панели сетки Grid Pane

  • Перейдите к папке Tables базы данных Aromatherapy, щелкните правой кнопкой мыши на таблице MyOils в рабочей панели Details Pane, укажите на Open Table (Открытие таблицы) и выберите Query (Запрос). Будет открыт конструктор запросов Query Designer.
  • Скройте панель SQL Pane и панель диаграмм Diagram Pane, щелкнув на кнопке SQLи на кнопке Diagram (Диаграмма).
  • Не закрывая конструктор запросов Query Designer, откройте новое представление таблицы MyOils, щелкнув правой кнопкой мыши на таблице MyOils в рабочей панели Details Pane, указав на Open Table (Открытие таблицы) и выбрав Return All Rows (Показать все строки). Будет открыт новый экземпляр конструктора запросов Query Designer, отображающий все строки из таблицы MyOils.
  • Перейдите в окно конструктора запросов Query Designer, отображающее панель сетки Grid Pane и панель результатов Results Pane. Щелкните на кнопке Change Query Type (Изменить тип запроса)в панели инструментов конструктора запросов и выберите Update (Модифицировать). Конструктор запросов добавит в сетку столбец нового значения New Value.
  • Добавьте столбец описания Description в панель сетки Grid Pane и установите на ячейке New Value значение 'Description'.
  • Нажмите кнопку Run (Выполнить)в панели инструментов конструктора запросов, чтобы исполнить запрос. Конструктор запросов Query Designer отобразит сообщение, подтверждающее, что строки были модифицированы.
  • Перейдите к окну конструктора запросов Query Designer, отображающему все строки из таблицы MyOils.
  • Нажмите кнопку Run (Выполнить) в панели инструментов конструктора запросов, чтобы повторно исполнить запрос
  • Модифицируйте одну строку с использованием панели сетки Grid Pane

  • Перейдите к окну конструктора запросов Query Designer, содержащему оператор UPDATE.
  • Измените значение ячейки New Value на "Description of Basil".
  • Добавьте столбец OilName в сетку и установите для него в ячейке условия Criteria значение = "Basil".
  • Нажмите кнопку Run (Выполнить)в панели инструментов конструктора запросов, чтобы исполнить запрос. Конструктор запросов Query Designer отобразит сообщение, подтверждающее, что строка была модифицирована.
  • Перейдите к окну конструктора запросов Query Designer, отображающему все строки из таблицы MyOils.
  • Нажмите кнопку Run (Выполнить)в панели инструментов конструктора запросов, чтобы исполнить запрос
  • Модификация строк с использованием панели SQL Pane

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

    Модифицируйте все строки с использованием панели SQL Pane

  • Перейдите к окну, содержащему оператор UPDATE.
  • Отобразите панель SQL Paneи скройте панель сетки Grid Pane.
  • Измените оператор SQL следующим образом:
    UPDATE MyOils
    SET Sample = "Sample Field"
  • Нажмите кнопку Run (Выполнить)в панели инструментов конструктора запросов, чтобы исполнить запрос. Конструктор запросов Query Designer отобразит сообщение о количестве строк, подвергшихся изменениям в результате выполнения запроса.
  • Перейдите к окну конструктора запросов Query Designer, отображающему все строки из таблицы MyOils.
  • Нажмите кнопку Run (Выполнить)в панели инструментов конструктора запросов, чтобы повторно исполнить запрос
  • Модифицируйте строки с использованием условия WHERE

  • Перейдите к окну конструктора запросов Query Designer, содержащему оператор UPDATE.
  • Измените оператор SQL следующим образом:
    UPDATE	MyOils
    SET	Description = "Description of Frankincense"
    WHERE	OilName = "Frankincense"
  • Нажмите кнопку Run (Выполнить)в панели инструментов конструктора запросов, чтобы исполнить запрос. Конструктор запросов Query Designer отобразит сообщение о количестве строк, подвергшихся изменениям в результате выполнения запроса.
  • Вернитесь к окну конструктора запросов Query Designer, отображающему все строки из таблицы MyOils.
  • Нажмите кнопку Run (Выполнить)в панели инструментов конструктора запросов, чтобы повторно исполнить базовый запрос
  • Модификация строк с использованием фразы FROM

    Можно использовать фразу SELECT в операторе INSERT, чтобы вставить значения из другой таблицы (см. урок 17). Оператор UPDATE использует фразу FROM для извлечения значений из другой таблицы:

    UPDATE таблица_или_представление
    SET объекты_изменения
    FROM таблица_или_представление оператор_связывания условие_связывания
    [WHERE (условие_ограничения)]

    Фраза FROM здесь имеет тот же формат, что и фраза FROM в операторе SELECT. Так же, как и для оператора SELECT, вы можете задать более одной таблицы или представления путем добавления операторов связывания. Необязательное условие WHERE может использоваться для ограничения множества модифицируемых строк.

    Модифицируйте строки с использованием оператора FROM

  • Вернитесь к окну конструктора запросов Query Designer, содержащему оператор UPDATE.
  • Измените оператор SQL следующим образом:
    UPDATE	MyOils
    SET	MyOils.PlantPartID = Oils.PlantPartID
    FROM	MyOils INNER JOIN Oils ON MyOils.OilName = Oils.OilName
  • Внимание! Вы не можете использовать столбцы OilID для связывания двух таблиц, поскольку команды INSERT, которые вы использовали для добавления строк в уроке 17, создали новые значения OilID для каждой строки в таблице MyOils.

  • Нажмите кнопку Run (Выполнить)в панели инструментов конструктора запросов, чтобы исполнить запрос. Конструктор запросов Query Designer отобразит сообщение о количестве строк, подвергшихся изменениям.
  • Вернитесь к окну конструктора запросов Query Designer, отображающему все строки из таблицы MyOils.
  • Нажмите кнопку Run (Выполнить)в панели инструментов конструктора запросов, чтобы исполнить запрос
  • Краткое содержание

    Чтобы... Синтаксис оператора SQL
    Модифицировать все строки в таблице
    UPDATE таблица_или_представление
    SET объекты_изменения
    Объекты_изменения представляют собой список отделяемых запятыми элементов вида
    столбец = значение, столбец = значение, ...
    Модифицировать избранные строки в таблице
    UPDATE таблица_или_представление
    SET объекты_изменения
    WHERE условие
    Модифицировать строки с использованием фразы FROM
    UPDATE таблица_или_представление
    SET объекты_изменения
    FROM таблица_или_представление оператор_связывания условие_связывания
    [WHERE (условие_ограничения)]
    Вернуться к учебному плану