Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Посібник Мова SQL кредитно-модульний.doc
Скачиваний:
33
Добавлен:
01.05.2015
Размер:
1.25 Mб
Скачать

Додавання даних за допомогою підзапиту 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немає порожнього значення).