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

Тема 5. Модифікація даних у базах даних sql Server

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

1. Додавання даних у бд 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).