![]() Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Додавання, зміна, видалення записів ⇐ ПредыдущаяСтр 9 из 9
Мова SQL орієнтована на виконання операцій над групами записів, хоча в деяких випадках операція може проводитися і над окремим записом. Тому недивно, що оператори додавання, зміни і видалення записів в загальному випадку викликають відповідні операції над групами записів.
Оператор INSERT Оператор INSERT застосовується для додавання записів в об'єкт. Як об'єкт може виступати ТБД або перегляд (VIEW), створений оператором CREATE VIEW. У останньому випадку записи можуть додаватися в несколькотаблиц.
Формат оператора INSERT:
INSERT INTO <об'єкт> [(поле1 [, поле2 ...])| {VALUES (<значення1> [, <значення2> ...]) | <оператор SELECT> }
Список полів указує поля, яким будуть присвоєні значення в записах, що додаються. Список полів може бути опущений. В цьому випадку маються на увазі всі поля об'єкту, причому в тому порядку, в якому вони визначені в даному об'єкті. Поставити у відповідність стовпцям списки значень можна двома способами. Перший полягає в явному вказанні значень після слова VALUES, другий, - у формуванні значень за допомогою оператора SELECT.
Явне вказання списку значень В цьому випадку оператор INSERT застосовується для додавання одному запису і має формат INSERT INTO <об'єкт> [(поле1 [, поле2 ...])] VALUES (<значення1> [, <значення2> ...])
Значення призначаються полям у порядку вказання в операторі: першому полю призначається перше значення, другому полю - друге значення і т. д. Приклад. Додати в таблицю Тоvary новий запис:
INSERT INTO PRODOD (N_PROD, DAT_PROD, KILK, TOVAR, POKUP) VALUES (45, "20.02.2007", 100, "Цукор", "Карпати, ПП")
Оскільки поля таблиці PRODAZH вказані у повному складі і саме в тому порядку, в якому вони перераховані при створенні таблиці PRODAZH оператором CREATE TABLE, оператор можна спростити:
INSERT INTO PRODAZH VALUES (45, "20.01.2007", 100, "Цукор", "Карпати, ПП")
Для задання унікального значення поля первинного ключа N_PROD можна скористатися генератором:
INSERT INTO PRODAZH VALUES (GEN_ID(PRODAZH_N_PROD,2), "20.02.2007", 100,"Цукор", "Карпати, ПП")
Вказання значень за допомогою оператора SELECT
Другою формою оператора INSERT є
INSERT INTO <об'єкт> [(поле1 [, поле2 ...])] <оператор SELECT> При цьому значеннями, які присвоюються полям, є значення, що повертаються оператором SELECT. Порядок їх призначення полям аналогічний попередній формі оператора INSERT: значення першого поля результуючого набору даних оператора SELECT присвоюється першому полю оператора INSERT, друге, - другому і так далі Слід звернути увагу на важливу особливість: оскільки оператор SELECT в загальному випадку повертає множину записів, то і оператор INSERT в даній формі приведе до додавання в об'єкт аналогічної кількості нових записів.
Приклад. Нехай в БД визначена таблиця PRODAZH_DATA, по складу і порядку проходження полів аналогічна таблиці PRODAZH:
CREATE TABLE PRODAZH_DATA( N_PROD INTEGER NOT NULL, DAT_PROD DATE NOT NULL, KILK INTEGER NOT NULL, TOVAR VARCHAR(20) NOT NULL COLLATE PXW_CYRL, POKUP VARCHAR(20) COLLATE PXW_CYRL, PRIMARY KEY(N_PROD), );
Нехай в цю таблицю потрібно щодня копіювати всі записи про витрати товару з складу за поточну дату. Уявимо, що ці відомості надалі щодня переправляються в територіально віддалену бухгалтерію, до офісу якої не встигли підвести мережеві кабелі (або взагалі не збираються цього робити). Тоді щоденне вивантаження записів з таблиці PRODAZH в таблицю PRODAZH_DATA реалізовуватиметься таким оператором:
INSERT INTO PRODAZH_DATA SELECT * FROM PRODAZH WHERE DAT_PROD = "20.01.2007"
Оператор UPDATE
Оператор UPDATE застосовується для зміни значення в групі записів або - в окремому випадку - в одному записі об'єкту. Як об'єкт можуть виступати ТБД або перегляд, створений оператором CREATE VIEW. У останньому випадку можуть змінюватися значення записів з декількох таблиць.
Формат оператора UPDATE:
UPDATE <об'єкт> SET поле1 = <значення1> [,поле2 = <значення2>...] [WHERE <умова пошуку >]
При коректуванні кожному з перерахованих полів присвоюється відповідне значення. Коректування виконується для всіх записів, що задовольняють умові пошуку. Умова пошуку задається так само, як в операторові SELECT.
УВАГА ! Якщо опустити WHERE <умова пошуку>, в об'єкті будуть змінені всі записи. Приклад. У таблиці PRODAZH замінити дату на "24.01.2007" і кількість збільшити на 2 одиниці для всіх записів з датою "20.01.2007":
UPDATE PRODAZH SET DAT_PROD = "24.01.2007", KILK = KILK + 2 WHERE DAT_PROD = "20.01.2007"
Оператор DELETE
Оператор DELETE призначений для видалення групи записів з об'єкту. Як об'єкт можуть виступати ТБД або перегляд, створений оператором CREATE VIEW. У останньому випадку можуть віддалятися записи з декількох таблиць. У окремому випадку може бути видалений тільки один запис.
Формат оператора DELETE:
DELETE FROM <об'єкт> [WHERE <умова пошуку>];
Видаляються всі записи з об'єкту, що задовольняють умові пошуку. Умова пошуку задається так само, як в операторові SELECT.
УВАГА! Якщо опустити WHERE <умова пошуку>, з об'єкту будуть видалені всі записи. Приклад. Видалити з таблиці PRODAZH всі записи про витрату товару "Кока-кола" за дату "10.01.2007".
DELETE FROM PRODAZH WHERE (TOVAR = "Кока-кола") AND (DAT_PROD = "10.01.2007")
Вимоги до ужитків для роботи з БД – швидкість, простота, ефективність, надійність. |
||
Последнее изменение этой страницы: 2018-04-12; просмотров: 315. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |