|
Программирование >> Реализация баз данных
Занятие 3 Шцлфакацт данных в база ных SQL Server -j 93 Удаление данн1х оператором DELETE Оператор DELETE удаляет из таблицы или представления одну или несколько строк. В упрошенном виде синтаксис оператора DELETE выглядит так: DELETE таблица или представление FROM исходиая таблица WHERE условие поиска определяет имя таблицы или представления, откуда нужно удалить строки. Удаляются все строки таблицы ил тавления, которые соотешт-ствуют условию поиска, заданному конструкцией WHERE. Если конструкция WHERF не задана, то удаляются все строки таблицы или представления. Конструкция FROM задает дополнительные представления или условия соединения, которые можно ис- пользовать в предикатах условия поиска конструкции WHERE, удалению из таблицы или представления. Строки не удаляются из названной в конструкции FROM таблицы, а только из таблицы, названной в конструкции DELETE. Любая таблица, из которой удалены все строки, остается в базе данных. Действие оператора DELETE распространяется только на строки таблицы. Сами таблицы удаляются из базы данных оператором DROP TABLE. Рассмотрим следующий оператор DELETE: USE Pubs DELETE NewBooks FROM Titles WHERE fJt?wBooks. BookTitle = Titles. Title AND Titles. Rovaltv= 10 Этот оператор удаляет строки из таблицы NewBooks, если гонорар за эти книги составляет 10%. Сумма гонорара зависит от значений столбца Royalty таблицы Titles. Удаление данных с помощью API и курсоров ADO, И; и API ODBC поддерживают удаление текущей строки в результирующем наборе, полученным приложением. Кроме того, сценарии хранимые про- и триггеры могут использовать для удаления строки, на которой в настоящее время установлен курсор, конструкцию WHERE CURRENT OF в операторе DELETE. Более подробно курсоры обсуждаются в главе 7. Удаление данных с помощью оператора TRUNCATE TABLE Оператор TRUNCATE TABLE - быстрый непротоколируемый метод удаления из таблицы всех строк. Этот метод практически всегда работает быстрее оператора DELETE, у которого не заданы условия, поскольку DELETE протоколирует удаление каждой строки, a TRUNCATE TABLE - лишь освобождение целых страниц данных. Оператор TRUNCATE TABLE немедленно освобождает все место, занятое данными и индексами таблицы. Слелуюший оператор TRUNCATE TABLE удаляет все строки из таблицы NewBooks в базе данных Pubs: USE Pubs TRUNCATE TABLE NewBooks Как и в случае оператора DELETE, после применения оператора TRUNCATE TABLE определение 1цы (с ее индексами и ассоциированными объектами) остается в базе данных. Для удаления определения таблицы следует использовать оператор DROP TABLE. j 94 Выборка и модификация данных Глава 6 Упражнение 3. Модификация данных в БД SQL Server В этом упражнении вы создадите таблицу в базе данных BookShopDB и заполните ее данными. Далее вы модифицируете добавленные в таблицу данные, а затем удалите их. Закончив эту операцию, вы удалите таблицу из базы данных. Чтобы выполнить это необходимо в качестве админис- тратора на компьютере под управлением Windows 2000 Server. ► 1. 2. ► Создание таблице! в базе данных BookShopDB Откройте SQL Query Analyzer и подключитесь к локальному серверу. Введите на панели Editor в окне Query следуюши; код на iransact-SQL: USE BookShopDB CREAl L TABLE Testl . . RowID INT IOENTITY( NOT NULL, Title VARCHAnrRni NOT NULL, . . Type CHAR (12) NOT NULL DEFAULT (Unknown ), City .Vvt.bhAhL.U; NULL, . Cost MONEY NULL Этот оператор создает таблицу под названием stl, состоящую из пяти столбцов. Исполните оператор Transact-SQL. На вкладке Messages панели ults выводится сообщение об успешном завершении команды. Добавление к таблице Testl данн1х с помощью оператора INSERT... VALUES Введите на панели Editor в окне Query следующий код на Transact-SQL: INSERT INTO Testl (Title, Турз, Cost) VALUES { Test Title, business, 27,00) Этот оператор вставляет строку таблицу Testl. В строке содержатся значения полей Title, Type и Cost. Исполните оператор Transact-SQL. На вкладке Messages панели выводится сообщение о том, что исполнение опе- ратора повлияло на одну строку. Напишите оператор SELECT, позволит просмотреть все данные из таблицы TestL Какой оператор следует использовать для этого? Исполните оператор SELECT. Содержимое таблицы Testl отобразится на вкладке Grids панели Results. Изучите содержимое таблицы Testl. Обратите внимание, что в таблице имеется только одна строка - та, которую вы добавили с помощью оператора SQL Server автоматически сгенерировал значение поля RowID. Значение поля City - пустое, поскольку оно не было определено. Добавление данн1х в таблицу Testl с помощью оператора INSERT... SELECT Введите на панели Editor в окне Query следующий код на Transact-SQL: Занятие 3 Модификация данных т данных SQL Server f 95 INSERT INT (Title, Type, Cost) SELECT Title, Type, Price FROM Pubs.dbo. Titles Этот оператор берет данные из таблицы Titles в базе данных Pubs и вставляет их в таблицу Testl. 2. Исполните оператор Transact-SQL. На вкладке Messages панели Results выводится сообщение, где указано числ ок. на которые повлияло исполнение оператора. 3. Воспользуйтесь оператором SELECT для просмотра данных таблицы Testl. Обратите внимание, что значения поля сгенерированы автоматически, а в поле City каждой строки содержится пустое значение. данных с оператора 1. Просмотрите данные таблицы Testl. Если на панели остались результаты запроса, то можно воспользоваться ими. В противном случае используйте для просмотра содержимого таблицы оператор SELECT. 2. Запишите названия нескольких книг, значение поля Туре которых равно business, a также их цену. Эти данные пригодятся во время модификации таблицы. 3. Введите на панели Editor в окне Query следующий код на Transact-SQL: UPDATE Testl SET Cost Cost * 2 WHERE Type = business Этот оператор в два раза увеличивает значение поля Cost по сравнению с исходным значением книг типа business. 4. Исполните оператор Transact-SQL. На вкладке Messages панели Results выводится сообщение, где указано число строк, на которые повлияло исполнение оператора. 5. Воспользуйтесь оператором SELECT для просмотра данных таблицы Test I. Обратите внимание на удвоенное значение поля Cost для каждой книги типа > Удаление данных из таблицы Testl с помощью оператора DELETE 1. Введите на панели Editor в окне Query следующий код на Transact-SQL: DELETE Testl WHERE Title = Test Title Этот оператор удаляет все строки из таблицы, в столбце Title которой указано значение Test Title. 2. Исполните оператор Transact-SQL. На вкладке Messages панели Results выводится сообщение, где указано число строк, на которые повлияло исполнение оператора. 3. Воспользуйтесь оператором SELECT для просмотра данных таблицы Testl. Обратите внимание, что строка Test Title удалена из 4. Введите на панели Editor в окне Query следующий код на Transact-SQL: DELETE Testl Этот оператор удаляет все строки таблицы Testl. 8-2!>61
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |