Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Додавання даних за допомогою оператора 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.

2. Модифікація даних у БД 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.

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

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

· оператор DELETE;

· API і курсори;

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

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




Поделиться с друзьями:


Дата добавления: 2015-06-29; Просмотров: 719; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.