МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ INTERNATIONAL BANKING INSTITUTE Р. М или

advertisement
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
Р. М или
Р. М. Риордан «Понятие об операторе 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
1. Перейдите к папке Tables базы данных Aromatherapy, щелкните правой кнопкой мыши
на таблице MyOils в рабочей панели Details Pane, укажите на Open Table (Открытие
таблицы) и выберите Query (Запрос). Будет открыт конструктор запросов Query
Designer.
1
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
Скройте панель SQL Pane и панель диаграмм Diagram Pane, щелкнув на кнопке SQL
и на
кнопке Diagram (Диаграмма).
Не закрывая конструктор запросов Query Designer, откройте новое представление таблицы
MyOils, щелкнув правой кнопкой мыши на таблице MyOils в рабочей панели Details Pane, указав
на Open Table (Открытие таблицы) и выбрав Return All Rows (Показать все строки). Будет
открыт новый экземпляр конструктора запросов Query Designer, отображающий все строки из
таблицы MyOils.
2
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
Перейдите в окно конструктора запросов Query Designer, отображающее панель сетки Grid Pane
и панель результатов Results Pane. Щелкните на кнопке Change Query Type (Изменить тип
запроса)
в
панели
инструментов
конструктора
запросов
и
выберите
Update
(Модифицировать). Конструктор запросов добавит в сетку столбец нового значения New Value.
Добавьте столбец описания Description в панель сетки Grid Pane и установите на ячейке New
Value значение "Description".
Нажмите кнопку Run (Выполнить)
в панели инструментов конструктора запросов, чтобы
исполнить
запрос.
Конструктор
запросов
Query
Designer
отобразит
сообщение,
подтверждающее, что строки были модифицированы.
3
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
2. Перейдите к окну конструктора запросов Query Designer, отображающему все строки из
таблицы MyOils.
3. Нажмите кнопку Run (Выполнить) в панели инструментов конструктора запросов, чтобы
повторно исполнить запрос SELECT *.
Модифицируйте одну строку с использованием панели сетки Grid Pane
1. Перейдите к окну конструктора запросов Query Designer, содержащему оператор
UPDATE.
2. Измените значение ячейки New Value на "Description of Basil".
3. Добавьте столбец OilName в сетку и установите для него в ячейке условия Criteria
значение = "Basil".
4
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
4. Нажмите кнопку Run (Выполнить)
в панели инструментов конструктора запросов,
чтобы исполнить запрос. Конструктор запросов Query Designer отобразит сообщение,
подтверждающее, что строка была модифицирована.
5. Перейдите к окну конструктора запросов Query Designer, отображающему все строки из
таблицы MyOils.
Нажмите кнопку Run (Выполнить)
в панели инструментов
6. конструктора запросов, чтобы исполнить запрос SELECT *.
Модификация строк с использованием панели SQL Pane
Как и для других форм запросов, непосредственный ввод оператора UPDATE в панели SQL
обеспечивает большую гибкость.
Модифицируйте все строки с использованием панели SQL Pane
1. Перейдите к окну, содержащему оператор UPDATE.
2. Отобразите панель SQL Pane
и скройте панель сетки Grid Pane.
5
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
3. Измените оператор SQL следующим образом:
4. UPDATE MyOils
5. SET Sample = "Sample Field"
Нажмите кнопку Run (Выполнить)
в панели инструментов конструктора запросов, чтобы
исполнить запрос. Конструктор запросов Query Designer отобразит сообщение о количестве
строк, подвергшихся изменениям в результате выполнения запроса.
6. Перейдите к окну конструктора запросов Query Designer, отображающему все строки из
таблицы MyOils.
7. Нажмите кнопку Run (Выполнить)
в панели инструментов конструктора запросов,
чтобы повторно исполнить запрос SELECT *.
Модифицируйте строки с использованием условия WHERE
1. Перейдите к окну конструктора запросов Query Designer, содержащему оператор
UPDATE.
2. Измените оператор SQL следующим образом:
3. UPDATE MyOils
4. SET Description = "Description of Frankincense"
5. WHERE OilName = "Frankincense"
6
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
6. Нажмите кнопку Run (Выполнить)
в панели инструментов конструктора запросов,
чтобы исполнить запрос. Конструктор запросов Query Designer отобразит сообщение о
количестве строк, подвергшихся изменениям в результате выполнения запроса.
7. Вернитесь к окну конструктора запросов Query Designer, отображающему все строки из
таблицы MyOils.
8. Нажмите кнопку Run (Выполнить)
в панели инструментов конструктора запросов,
чтобы повторно исполнить базовый запрос SELECT *.
Модификация строк с использованием фразы FROM
Можно использовать фразу SELECT в операторе INSERT, чтобы вставить значения из другой
таблицы. Оператор UPDATE использует фразу FROM для извлечения значений из другой
таблицы:




UPDATE таблица_или_представление
SET объекты_изменения
FROM таблица_или_представление оператор_связывания условие_связывания
[WHERE (условие_ограничения)]
Фраза FROM здесь имеет тот же формат, что и фраза FROM в операторе SELECT. Так же, как и
для оператора SELECT, вы можете задать более одной таблицы или представления путем
добавления операторов связывания. Необязательное условие WHERE может использоваться для
ограничения множества модифицируемых строк.
7
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
Модифицируйте строки с использованием оператора FROM





Вернитесь к окну конструктора запросов Query Designer, содержащему оператор UPDATE.
Измените оператор SQL следующим образом:
UPDATE MyOils
SET MyOils.PlantPartID = Oils.PlantPartID
FROM MyOils INNER JOIN Oils ON MyOils.OilName = Oils.OilName
 Внимание! Вы не можете использовать столбцы OilID для связывания двух таблиц,
поскольку команды INSERT, которые вы использовали для добавления строк в создали
новые значения OilID для каждой строки в таблице MyOils.
 Нажмите кнопку Run (Выполнить)
в панели инструментов конструктора запросов,
чтобы исполнить запрос. Конструктор запросов Query Designer отобразит сообщение о
количестве строк, подвергшихся изменениям.
 Вернитесь к окну конструктора запросов Query Designer, отображающему все строки из
таблицы MyOils.
 Нажмите кнопку Run (Выполнить)
в панели инструментов конструктора запросов,
чтобы исполнить запрос SELECT *.
8
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
SQL Server предоставляет два оператора для удаления строк из таблицы или представления:
оператор DELETE и оператор TRUNCATE TABLE. Оператор TRUNCATE TABLE безо всяких условий
удаляет все строки в таблице. Оператор DELETE обеспечивает большую гибкость и дает
возможность удалять только избранные строки с помощью фразы WHERE, которая может
включать дополнительные таблицы и представления.
Базовая структура оператора DELETE несколько отличается от других операторов SQL, с
которыми мы сталкивались ранее. Его синтаксис следующий:





DELETE таблица_или_представление
[FROM источники_таблиц]
[WHERE условие_отбора]
Список столбцов в операторе DELETE не указывается, поскольку при удалении строки
удаляются также все столбцы. Необязательная фраза WHERE дает возможность
указывать, какие строки следует удалить. Если фраза WHERE опущена, удаляются все
строки в указанной таблице или представлении.
Фраза FROM, также необязательная, позволяет задавать дополнительные источники
(таблицы или представления), которые будут использоваться в условии отбора в фразе
WHERE. Подобный синтаксис оператора может ввести в заблуждение, поскольку строки
не будут удаляться из таблиц и представлений, указанных в фразе FROM. Если в фразе
FROM вы указываете более одной таблицы или представления, их имена следует
отделять запятыми.
9
Download