П`ятниця, 29.11.2024, 02:22
Головна Реєстрація RSS
Вітаю Вас, Гість
Меню сайту
Реклама
Категорії розділу
Архітектура ПК [1]
Архітектура та експлуатація персонального комп'ютера
СПЗ [12]
Системне програмне забезпечення та операційні системи
Комп'ютерна графіка [25]
КСМ [28]
Комп'ютерні системи та мережі
ІСІТО [1]
Інформаційні системи і технології обліку
Бухгалтерський облік [0]
АМтП [10]
Алгоритмічні мови та програмування
Копирайт рерайт [1]
СУБД [18]
Системи управління базами даних
ОКТ практикум [2]
Основи комп'ютерних технологій практикум
Інформатика (практ) [1]
інформатика практикум, практичні заняття
ТіОБВ [61]
Технологія і організація будівельного виробництва
ОСАПр [6]
Основи систем автоматизованого проектування, AutoCAD, ArchiCAD
ТіОБВ (заочники) [1]
Пошук
Статистика


Яндекс.Метрика
Онлайн всього: 2
Гостей: 2
Користувачів: 0
Форма входу
Календар
«  Вересень 2013  »
ПнВтСрЧтПтСбНд
      1
2345678
9101112131415
16171819202122
23242526272829
30
Головна » 2013 » Вересень » 5 » SQL урок 13 Додавання даних (INSERT INTO)
15:58
SQL урок 13 Додавання даних (INSERT INTO)

У попередніх розділах ми розглядали роботу з отримання даних з заздалегідь створених таблиць. Тепер пора розібрати, яким же чином ми можемо створювати / видаляти таблиці, додавати нові записи і видаляти старі. Для цих цілей в SQL існують такі оператори, як: CREATE - створює таблицю, ALTER - змінює структуру таблиці, DROP - видаляє таблицю або поле, INSERT - додає дані в таблицю. Почнемо знайомство з даною групою операторів з оператора INSERT.

1. Додавання цілих рядків

Як видно з назви, оператор INSERT використовується для вставки (додавання) рядків у таблицю бази даних. Додавання можна здійснити кількома способами:

  • - добавити один повний рядок
  • - добавити частину рядка
  • - добавити результати запиту.

Отже, щоб додати новий рядок в таблицю, нам потрібно вказати назву таблиці, перерахувати назви колонок і вказати значення для кожної колонки за допомогою конструкції INSERT INTO названіе_табліци (поле1, поле2 ...) VALUES (значення1, значення2 ...). Розглянемо на прикладі.

INSERT INTO Sellers (ID, Address, City, Seller_name, Country) VALUES ('6', '1st Street', 'Los Angeles', 'Harry Monroe', 'USA')

Також можна змінювати порядок зазначення назв колонок, проте одночасно потрібно змінювати і порядок значень в параметрі VALUES.

2. Додавання частини рядків

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

INSERT INTO Sellers (ID, City, Seller_name) VALUES ('6', 'Los Angeles', 'Harry Monroe')

У даному прикладі ми не вказали значення для двох стовпців Address і Country. Ви можете виключати деякі стовпці з оператора INSERT INTO, якщо це дозволяє робити визначення таблиці. У цьому випадку повинна дотримуватися одна з умов: цей стовпець визначений як такий, що допускає значення NULL (відсутність будь-якого значення) або у визначення таблиці вказане значення за замовчуванням. Це означає, що, якщо не вказано ніяке значення, буде використано значення за замовчуванням. Якщо ви пропускаєте стовпець таблиці, який не допускає появи в своїх рядках значень NULL і не має значення, визначеного для використання за замовчуванням, СУБД видасть повідомлення про помилку, і цей рядок не буде доданий.

3. Додавання відібраних даних

У попередній прикладах ми вставляли дані в таблиці, прописуючи їх вручну в запиті. Однак оператор INSERT INTO дозволяє автоматизувати цей процес, якщо ми хочемо вставляти дані з іншої таблиці. Для цього в SQL існує така кострукція як INSERT INTO ... SELECT ... . Дана конструкція дозволяє одночасно вибирати дані з однієї таблиці, і вставити їх в іншу. Припустимо ми маємо ще одну таблицю Sellers_EU з переліком продавців нашого товару в Європі і нам потрібно їх додати в загальну таблицю Sellers. Структура цих таблиць однакова (та ж кількість колонок і ті ж їх назви), однак інші дані. Для цього ми можемо прописати наступний запит:

INSERT INTO Sellers (ID, Address, City, Seller_name, Country) SELECT ID, Address, City, Seller_name, Country FROM Sellers_EU

Потрібно звернути увагу, щоб значення внутрішніх ключів не повторювалися (поле ID), в іншому випадку відбудеться помилка. Оператор SELECT також може включати пропозиції WHERE для фільтрації даних. Також слід зазначити, що СУБД не звертає уваги на назви колонок, які містяться в операторі SELECT, для неї важливо лише порядок їхнього розташування. Тому дані в першому вказаному стовпці, що були обрані з-за SELECT, будуть в будь-якому випадку заповнені в перший стовпець таблиці Sellers, зазначеної після оператора INSERT INTO, незалежно від назви поля.

4. Копювання даних з однієї таблиці в другу

Часто при роботі з базами даних виникає необхідність у створенні копій будь-яких таблиць, з метою резервування або модифікації. Щоб зробити повну копію таблиці в SQL передбачений окремий оператор SELECT INTO. Наприклад, нам потрібно створити копію таблиці Sellers, потрібно буде прописати запит таким чином:

SELECT * INTO Sellers_new FROM Sellers

На відміну від попередньої конструкції INSERT INTO ... SELECT ... , Коли дані додаються в існуючу таблицю, конструкція SELECT ... INTO ... FROM ... копіює дані в нову таблицю. Також можна сказати, що перша конструкція імпортує дані, а друга - експортує. При використанні конструкції SELECT ... INTO ... FROM ... слід враховувати наступне:

  • - можна використовувати будь-які пропозиції в операторі SELECT, такі як GROUP BY і HAVING
  • - для додавання даних з декількох таблиць можна використовувати об'єднання
  • - дані можливо додати тільки одну таблицю, незалежно від того, зі скількох таблиць вони були взяті.

Категорія: СУБД | Переглядів: 1283 | Додав: Gryzley | Рейтинг: 0.0/0
Всього коментарів: 0
Ім`я *:
Email *:
Код *: