Модифікація даних у базах даних sql server icon

Модифікація даних у базах даних sql server




Скачати 107.62 Kb.
НазваМодифікація даних у базах даних sql server
Дата конвертації31.03.2013
Розмір107.62 Kb.
ТипДокументи
1. /Конспект лекций/Использование SQL Server Management Studio.doc
2. /Конспект лекций/Лекция 0. Знайомство з SQL Server 2005.doc
3. /Конспект лекций/Лекция 1. Створення й керування базою даних SQL Server (short).doc
4. /Конспект лекций/Лекция 2. Синтаксичн_ елементи мови.doc
5. /Конспект лекций/Лекция 3. Виб_рка даних з бази даних.doc
6. /Конспект лекций/Лекция 4. Модиф_кац_я даних у базах даних SQL Server.doc
7. /Конспект лекций/Лекция 5. Збережен_ процедури.doc
8. /Конспект лекций/Лекция 5. Створення тригер_в _ керування ними ними.doc
9. /Конспект лекций/Мова SQL.Doc
10. /Конспект лекций/Создание триггеров и управление ими.doc
11. /Конспект лекций/Ц_л_сн_сть даних (short).doc
12. /Лабораторна робота малий формат.doc
Что такое sql server
Лекція Основи роботи з Microsoft sql| Server| 2005 Питання лекції Основні
Лекція Створення І керування базою даних sql server
Синтаксичні елементи мови Transact-sql
Вибірка даних з бази даних sql server
Модифікація даних у базах даних sql server
Збережені процедури
Створення|створіння| тригерів|трігерів| і керування ними (Тут додати що таке тригер і як він використовується)
Курс лекцій ( частина 1 ) для студентів спеціальності
Создание триггеров и управление ими
Цілісність даних
Методичні рекомендації для виконання лабораторних робіт для студентів спеціальності

Модифікація даних у базах даних SQL Server

СУБД дозволяє модифікувати дані, що зберігаються в системі. SQL Server підтримує кілька методів додавання нових рядків у таблиці баз даних, зміни даних в існуючих рядках і видалення рядків. Розглянемо, як додавати, модифікувати і видаляти інформацію з баз даних SQL Server.


Додавання даних у БД SQL Server

SQL Server підтримує кілька методів додавання інформації в базу даних:

  • за допомогою оператора INSERT;

  • за допомогою оператора SELECT...INTO;

  • засобами оператора WRITETEXT і деяких функцій інтерфейсу прикладного програмування баз даних (API БД), що дозволяють додати в рядок дані типу ntext, text або image;

  • компонент масового копіювання, який використовується для додавання великої кількості рядків.

Оператор INSERT може працювати як з відображеннями, так і з таблицями (з деякими обмеженнями).


Додавання даних за допомогою оператора INSERT

Оператор INSERT додає в таблицю один або кілька рядків. У найпростішому випадку оператор INSERT має такий вигляд:

INSERT [INTO] таблиця_або_відображення

[(список_стовпців)] значення


Цей оператор вміщує в задану таблицю або відображення дані (значення) у вигляді одного або декількох рядків. Список імен стовпців (список_стовпців), розділених комами, задає стовпці для розміщення даних. Якщо стовпці не задані, дані одержать всі стовпці таблиці або відображення. Якщо задано лише частину списку, то в усі стовпці, не названі в списку, будуть вставлені порожні значення або значення за замовчуванням (якщо існує визначення DEFAULT). Всі не названі стовпці повинні допускати порожні значення або в них повинне бути визначене значення за замовчуванням. Крім того, оператор INSERT не дозволяє задати значення для стовпців наступних типів, оскільки SQL Server генерує ці значення автоматично:

  • стовпці із властивістю IDENTITY;

  • стовпці з визначенням DEFAULT, у якому використана функція NEWID();

  • стовпці, які обчислюються.

Ключове слово INTO в операторі INSERT не обов'язково і використовується лише для того, щоб зробити текст програми зрозуміліше. Дані, що додають, повинні відповідати списку стовпців. Число значень повинне бути дорівнює числу стовпців, а тип даних і точність цілої і дробової частини кожного значення повинні збігатися з такими для відповідного стовпця. Визначаючи оператор INSERT, можна задати значення за допомогою конструкції VALUES (для одного рядка) або підзапиту SELECT (для одного або декількох рядків).


Додавання даних за допомогою оператора INSERT...VALUES

Конструкція VALUES дозволяє задавати значення в одному рядку таблиці. Значення вказують у вигляді списку скалярних виразів, розділених комами. Тип даних, точність цілої і дробової частини цих виразів повинні збігатися з аналогічними параметрами відповідного стовпця зі списку стовпців або допускати неявне перетворення. Якщо список стовпців не заданий, значення повинні бути зазначені в тій же послідовності, що й стовпці таблиці або відображення.

Наприклад, у базі даних Pubs створюється наступна таблиця:

USE Pubs

CREATE TABLE NewBooks

(

BookID INT IDENTITY(1,1) NOT NULL,

BookTitle VARCHAR(5O) NOT NULL,

BookType CHAR(12) NOT NULL

CONSTRAINT [booktype_df] DEFAULT ('Undecided'),

PubCity VARCHAR(50) NULL

)


У створену таблицю додамо рядок з даними. У наступному операторі INSERT для додавання нового рядка в таблицю NewBooks використовується конструкція VALUES:

USE Pubs

INSERT INTO NewBooks (BookTitle, PubCity)

VALUES ('Life Without Fear', 'Chicago')


У цьому операторі визначаються значення стовпців BookTitle і PubCity, Включати в оператор INSERT значення стовпця BookID не потрібно, оскільки стовпець BookID визначений із властивістю IDENTITY, то значення цього стовпця генеруються автоматично. Крім того, тому що значення стовпця BookType не визначено, при виконанні оператора INSERT SQL Server автоматично додає в нього значення за замовчуванням (Undecided).


Додавання даних за допомогою підзапиту SELECT

Підзапит SELECT в операторі INSERT дозволяє додати до таблиці дані з однієї або декількох інших таблиць або відображень, причому кілька рядків одночасно.


Підзапит SELECT в операторі INSERT застосовується для додавання до таблиці існуючих даних, тоді як конструкція VALUES в операторі INSERT використовується для додавання до таблиці нових даних. У наступному операторі INSERT для додавання рядків у таблицю NewBooks використовується підзапит SELECT:

USE Pubs

INSERT INTO NewBooks (BookTitle, BookType)

SELECT Title, Type

FROM Titles

WHERE Type = 'mod_cook'


Оператор INSERT поміщає інформацію, що повертає підзапит SELECT, у таблицю NewBooks.


Додавання даних за допомогою оператора SELECT...INTO

Оператор SELECT INTO дозволяє створити нову таблицю і заповнити її результатами оператора SELECT.


Додавання у вставлені рядки даних типу ntext, text і image

В SQL Server передбачено кілька методів додавання в рядок значень типу ntext, text або image:

  • відносно невеликі за обсягом дані можна задавати в операторі INSERT так само, як дані типу char, nchar або binary;

  • оператор WRITETEXT дозволяє виконати інтерактивне відновлення поля типу text, ntext або image. Цей оператор повністю перезаписує будь-які дані, які зазначені в оброблюваному їм стовпці. Оператор WRITETEXT не можна використати для відновлення стовпців типу text, ntext і image у відображеннях;

  • додатки ADO здатні задавати більші обсяги даних типу text, ntext і image за допомогою методу AppendChunk;

  • додатки OLE DB здатні записувати нові значення типу text, ntext і image за допомогою інтерфейсу ISequentialStream:

  • додатка ODBC використовують для запису нових значень типу text, ntext і image функцію SQLPutData;

  • додатки DB-Library застосовують функцію Dbwritetext.


Додавання даних за допомогою операцій масового копіювання

Компоненти SQL Server для масового копіювання дозволяють вставляти в таблицю або відображення, а також витягати з таблиці, відображення або запиту велику кількість рядків. Масове копіювання - найшвидший спосіб додавання великої кількості рядків до SQL Server.


Модифікація даних у БД SQL Server

Після створення таблиці і її заповнення дані можна змінювати або обновляти. SQL Server надає кілька методів зміни даних в існуючій таблиці:

  • оператор UPDATE;

  • API бази даних і курсори;

  • оператор UPDATETEXT.

Відновлення працює як з таблицями, так і з відображеннями (з деякими обмеженнями).


Модифікація даних за допомогою оператора UPDATE

Оператор UPDATE здатний змінювати дані в одному рядку, групі рядків або у всіх рядках таблиці або відображення. Його також застосовують для відновлення рядків на вилученому сервері за допомогою імені зв'язаного сервера або функції OPENROWSET, OPENDATASOURCE або OPENQUERY (якщо компонент доступу OLE DB, який використовується для доступу до вилученого сервера, підтримує відновлення). Оператор UPDATE, що посилається на таблицю або відображення, може змінювати дані тільки в одній таблиці в кожний окремий момент.

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

  • SET;

  • WHERE;

  • FROM.


Модифікація даних за допомогою конструкції SET

SET задає стовпці, які варто змінити, і їхні нові значення. У всіх рядках, які відповідають умові пошуку, заданій конструкцією WHERE, значення заданих полів обновляються значеннями, заданими в конструкції SET. Якщо конструкцію WHERE не задано, обновляються всі рядки. Наприклад, показаний далі оператор UPDATE включає конструкцію SET, що збільшує ціну книг у таблиці NewBooks на 10%:

USE Pubs

UPDATE NewBooks

SET Price = Price * 1.1


У цьому операторі не використовується конструкція WHERE, тому обновляються всі рядки таблиці (якщо в поле Price немає порожнього значення).


Модифікація даних за допомогою конструкції WHERE

Конструкція WHERE виконує дві функції:

  • задає які рядки необхідно відновити (умова);

  • указує рядки вихідної таблиці, з яких витягаються дані для відновлення, якщо також задана конструкція FROM.

Якщо конструкція WHERE не задано, обновляються всі рядки таблиці. У наступному прикладі в операторі UPDATE використана конструкція WHERE, яка обновляє тільки рядки, що відповідають наведеній в цій конструкції умові:

USE Pubs

UPDATE NewBooks

SET BookType = 'popular'

WHERE BookType = 'popular_comp'


Цей оператор змінює popular_comp на popular. Якщо конструкцію WHERE не задано, то всі значення в стовпці BookType були б замінені значенням popular.


Модифікація даних за допомогою конструкції FROM

За допомогою конструкції FROM вдається замінити дані в обновлюваній таблиці даними з однієї або декількох таблиць або відображень. Наприклад, у наступному прикладі в операторі UPDATE у конструкцію FROM входить внутрішнє з'єднання, що з'єднує заголовки книг у таблицях NewBooks і Titles:

USE Pubs

UPDATE NewBooks

SET Price - Titles.Price

FROM NewBooks JOIN Titles

ON NewBooks.BookTitle = Titles.Tiile


Цей оператор обновляє значення стовпця Price у таблиці NewBooks значеннями однойменного стовпця з таблиці Titles.


Модифікація даних за допомогою API і курсорів

ADO, OLE DB і API ODBC підтримують відновлення поточного рядка в результуючому наборі, отриманим додатком. Крім того, при використанні серверного курсору Transact-SQL можна обновлювати поточний рядок за допомогою оператора UPDATE, у який входить конструкція WHERE CURRENT OF. Зміни стосуються тільки того рядка, на якій установлений курсор.


Модифікація даних типу ntext, text і image

SQL Server надає кілька методів для відновлення значень типу ntext, text і image:

  • відносно невеликі дані задаються в операторі UPDATE так само, як дані типу char, nchar або binary;

  • оператори Transact-SQL WRITETEXT і UPDATETEXT дозволяють обновити значення типу text, ntext або image;

  • додатки ADO здатні задавати більші за обсягом дані типу text, ntext і image за допомогою методу AppendChunk;

  • додатки OLE DB здатні записувати нові значення типу text, ntext і image за допомогою інтерфейсу ISequentialStream;

  • додатки ODBC використовують для запису нових значень типу text, ntext і image функцію SQLPutData;

  • додатки DB-Library застосовують функцію Dbwritetext.

SQL Server також підтримує відновлення значень типу ntext, text або image вроздріб. В DB-Library таку ж процедуру можна виконати засобами функції Dbudatetext. Всі інші додатки й сценарії мовою Transact-SQL, пакети, збережені процедури й тригери дозволяється використовувати для відновлення лише частини поля типу ntext, text або image оператором UPDATETEXT.


Видалення даних із БД SQL Server

SQL Server підтримує кілька методів видалення даних з існуючих таблиць:

  • оператор DELETE;

  • API і курсори;

  • оператор TRUNCATE TABLE.

Оператори, що видаляють дані, працюють як з відображеннями, так і з таблицями (з деякими обмеженнями).


Видалення даних оператором DELETE

Оператор DELETE видаляє з таблиці або відображення один або кілька рядків. У спрощеному вигляді синтаксис оператора DELETE виглядає так:

DELETE таблиця _або_ відображення

FROM вихідна_таблиця

WHERE умова_пошуку


Таблиця_або_відображення визначає ім'я таблиці або відображення, звідки потрібно видалити рядки. Видаляються всі рядки таблиці або відображення, які відповідають умові пошуку, заданій конструкцією WHERE. Якщо конструкцію WHERE не задано, то віддаляються всі рядки таблиці або відображення. Конструкція FROM задає додаткові таблиці, відображення або умови з'єднання, які можна використати в предикатах умови пошуку конструкції WHERE, що визначає рядки, що підлягають видаленню з таблиці або відображення. Рядки не видаляються з названої в конструкції FROM таблиці, а тільки з таблиці, названої в конструкції DELETE. Будь-яка таблиця, з якої вилучені всі рядки, залишається в базі даних. Дія оператора DELETE поширюється тільки на рядки таблиці. Самі таблиці видаляються з бази даних оператором DROP TABLE. Розглянемо наступний оператор DELETE:

USE Pubs

DELETE NewBooks

FROM Titles

WHERE NewBooks.BookTitle = Titles.Title

AND Titles.Royalty = 10


Цей оператор видаляє рядки з таблиці NewBooks, якщо гонорар за ці книги становить 10%. Сума гонорару залежить від значень стовпця Royalty таблиці Titles.


Видалення даних за допомогою API і курсорів

ADO, OLE DB і API ODBC підтримують видалення поточного рядка в результуючому наборі, отриманим додатком. Крім того, сценарії Transact-SQL, збережені процедури і тригери можуть використовувати для видалення рядка, на якій у цей час встановлений курсор, конструкцію WHERE CURRENT OF в операторі DELETE.


Видалення даних за допомогою оператора TRUNCATE TABLE

Оператор TRUNCATE TABLE - швидкий метод видалення з таблиці всіх рядків. Цей метод практично завжди працює швидше оператора DELETE, у якого не задані умови, оскільки DELETE протоколює видалення кожного рядка, a TRUNCATE TABLE - лише звільнення цілих сторінок даних. Оператор TRUNCATE TABLE негайно звільняє все місце, зайняте даними і індексами таблиці. Наступний оператор TRUNCATE TABLE видаляє всі рядки з таблиці NewBooks у базі даних Pubs:

USE Pubs

TRUNCATE TABLE NewBooks


Як і у випадку оператора DELETE, після застосування оператора TRUNCATE TABLE визначення таблиці (з її індексами й асоційованими об'єктами) залишається в базі даних. Для видалення визначення таблиці варто використати оператор DROP TABLE.


Практичні приклади модифікації даних у БД SQL Server

Нижче ми створимо таблицю в базі даних BookShopDB і заповнимо її даними. Далі модифікуємо додані в таблицю дані, а потім видалимо їх. Закінчивши цю операцію, ви видалите таблицю з бази даних.


Створення таблиці в базі даних BookShopDB

USE BookShopDB

CREATE TABLE Test1

(

RowID INT IDENTITY(1,1) NOT NULL,

Title VARCHAR(50) NOT NULL,

Type CHAR(12) NOT NULL DEFAULT ('Unknown'),

City VARCHAR(50) NULL,

Cost MONEY NULL

)

Цей оператор створює таблицю за назвою Test1, що складається з п'яти стовпців. Виконаємо оператор Transact-SQL.


Додавання до таблиці Test1 даних за допомогою оператора INSERT... VALUES

INSERT INTO Testl (Title, Type, Cost)

VALUES ('Test Title', 'business', 27,00)


Цей оператор вставляє рядок у таблицю Test1. У рядку вміщуються значення полів Title, Type і Cost. Виконаємо оператор Transact-SQL.


Напишемо оператор SELECT, що дозволить переглянути всі дані з таблиці Test1. Який оператор варто використати для цього? Виконаємо оператор SELECT. Звернемо увагу, що в таблиці є тільки один рядок - той, який ми додали за допомогою оператора INSERT. SQL Server автоматично згенерував значення поля RowID. Значення поля City - порожнє, оскільки воно не було визначено.


Додавання даних у таблицю Testl за допомогою оператора INSERT... SELECT

INSERT INTO Test1 (Title, Type, Cost)

SELECT Title, Type, Price

FROM Pubs.dbo.Titles


Цей оператор бере дані з таблиці Titles у базі даних Pubs і вставляє їх у таблицю Test1. Виконаємо оператор Transact-SQL. Скористаймося оператором SELECT для перегляду дані таблиці Test1. Зверніть увагу, що значення поля RowID згенеровані автоматично, а в поле City кожного рядка вміщується порожнє значення.


Модифікація даних за допомогою оператора UPDATE

UPDATE Test1

SET Cost = Cost * 2

WHERE Type = 'business'


Цей оператор у два рази збільшує значення поля Cost у порівнянні з вихідним значенням для книг типу business. Виконаємо оператор Transact-SQL. Скористаймося оператором SELECT для перегляду дані таблиці Test1. Зверніть увагу на подвоєне значення поля Cost для кожної книги типу business.


Видалення даних з таблиці Test1 за допомогою оператора DELETE

DELETE Test1

WHERE Title = 'Test Title'


Цей оператор видаляє всі рядки з таблиці, у стовпці Title якої зазначене значення Test Title. Виконаємо оператор Transact-SQL. Скористаймося оператором SELECT для перегляду дані таблиці Test1. Зверніть увагу, що рядок Test Title вилучений з таблиці.


Уведемо у вікні запитів наступний код на Transact-SQL:

DELETE Test1


Цей оператор видаляє всі рядки таблиці Test1. Виконаємо оператор Transact-SQL. Скористайтеся оператором SELECT для перегляду даних таблиці Test1. Зверніть увагу на відсутність даних у таблиці Test1.


Видалення з бази дані таблиці Test1 за допомогою оператора DROP TABLE

DROP TABLE Test1


Цей оператор видаляє таблицю Test1 з бази даних BookShopDB. Виконаємо оператор Transact-SQL. Якими засобами можна перевірити, що таблицю Test1 вилучено з бази даних?


Закріплення матеріалу

  1. Для яких типів стовпців дозволяється не задавати значення в операторі INSERT

  2. Які методи дозволяють модифікувати дані в БД SQL Server?

  3. Перелічить основні конструкції оператора UPDATE.

  4. Який оператор варто використати для видалення всіх рядків з таблиці?



Схожі:

Модифікація даних у базах даних sql server iconРозпорядження голови районної ради від 22 лютого 2012 року №13 Про Порядок захисту та обробки персональних даних у базах персональних даних, володільцем яких є Радивилівська районна рада
Згідно з Законом України «Про захист персональних даних», наказу Міністерства юстиції України від 30. 12. 2011 №3659/5 «Про затвердження...
Модифікація даних у базах даних sql server iconЗакон україни про захист персональних даних
Дія цього Закону не поширюється на діяльність зі створення баз персональних даних та обробки персональних даних у цих базах
Модифікація даних у базах даних sql server iconДані як основа, з якою працює програмне забезпечення. Модифікація даних. Вимоги до даних в частині швидкості пошуку та модифікації. Навести приклади із баз даних різного призначення
Ого інформацію кодують за допомогою знаків (алфавіт) відповідно до правил певного синтаксису. У сучасних машинах використовується...
Модифікація даних у базах даних sql server iconЛабораторна робота №10 Використання мови sql для роботи з базою даних у форматі Mysql порядок виконання роботи 1
Відкрити у Delphi проект для роботи з базою даних у форматі Mysql з лр №8. Перевірити правильність виконання запиту до таблиці бази...
Модифікація даних у базах даних sql server iconЛабораторна робота №9 Використання мови sql для роботи з базою даних у форматі InterBase Порядок виконання роботи 1
Відкрити у Delphi проект для роботи з базою даних у форматі InterBase з лр №7. Перевірити правильність виконання запиту до таблиці...
Модифікація даних у базах даних sql server iconІнформація щодо заповнення форми
Лист даних" служить формою внесення моніторингових даних; лист "Примітки" служить для внесення приміток по даних. Також, файл має...
Модифікація даних у базах даних sql server iconКонцепція типу даних
Структура даних, прості і складені типи даних, схема, приклади деяких простих типів, призначення
Модифікація даних у базах даних sql server iconПідготовка до контрольної роботи «Бази даних Access»
База даних – це структурована сукупність взаємопов’язаних даних певної предметної області (реальних об’єктів, процесів)
Модифікація даних у базах даних sql server iconТема. Робота з об'єктами бази даних у середовищі субд
Завдання. Здійснити пошук та впорядкування даних бази даних Бібліотека за визначеними умовами
Модифікація даних у базах даних sql server iconТема. Поняття моделі даних, бази даних
Обладнання та наочність: дошка, комп'ютер, презентація «Бази даних. Субд», інструкції з тб в комп'ютерному кабінеті
Додайте кнопку на своєму сайті:
Документи


База даних захищена авторським правом ©te.zavantag.com 2000-2017
При копіюванні матеріалу обов'язкове зазначення активного посилання відкритою для індексації.
звернутися до адміністрації
Документи