Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Oracle_Лекция2.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.04 Mб
Скачать

3. Работа с данными. Dml & pl/sql

DML (Data Management Language) – язык для манипулирования данными.

Рассмотрим некоторые операторы этого языка.

Оператор INSERT, служит для заполнения таблиц БД данными и является достаточно простым в использовании. Давайте посмотрим, на синтаксис оператора INSERT:

INSERT INTO таблица (имя столбца таблицы) ,

VALUES (выражение);

оператор выбора

"Таблица" - это имя таблицы, куда вводятся данные. "имя столбца" - это список столбцов, в которые вводятся данные. "Выражение" - это собственно сами данные. "Оператор выбора" - это предложение SELECT, для заполнения таблицы. Используется без части VALUES.

Например:

Создаем таблицу PEOPLE:

CREATE TABLE PEOPLE

(

ID NUMBER PRIMARY KEY,

NM VARCHAR2(50),

FM VARCHAR2(50),

OT VARCHAR2(50)

)

Обратите внимание на поле ID таблицы PEOPLE! Оно имеет атрибут PRIMARY KEY, то есть является первичным ключом таблицы. В него можно записывать только отличные друг от друга значения. И это поле не принимает значения типа NULL! Теперь, применив оператор INSERT, согласно его синтаксического разбора введем в таблицу шесть значений:

INSERT INTO PEOPLE(ID, NM, FM, OT)

VALUES(1, 'John', 'Godwin', 'Petrovich')

/

INSERT INTO PEOPLE(ID, NM, FM, OT)

VALUES(2, 'Bob', 'Doris', 'Martovich')

/

INSERT INTO PEOPLE(ID, NM, FM, OT)

VALUES(3, 'Frank', 'Black', 'Milleniumich')

/

INSERT INTO PEOPLE(ID, NM, FM, OT)

VALUES(4, 'Pupkin', 'Misha', 'Semenovich')

/

INSERT INTO PEOPLE(ID, NM, FM, OT)

VALUES(5, 'Pistoletov', 'Makar', 'Patronovich')

/

INSERT INTO PEOPLE(ID, NM, FM, OT)

VALUES(6, 'Avtomatov', 'Kolya', 'Pricelovich')

/

COMMIT

В части INTO PEOPLE(ID, NM, FM, OT) оператора INSERT указаны поля в порядке ввода данных, если есть необходимость порядок следования полей можно изменить или вообще исключить некоторые из них. В части VALUES(6, 'Avtomatov', 'Kolya', 'Pricelovich') оператора INSERT указаны собственно данные для ввода. Вот так работает оператор INSERT.

В результате таблица PEOPLE получила шесть записей. А что, если у вас есть данные, которые быстро нужно загрузить не путая с тем, что уже было в таблице. Для этого можно применить оператор INSERT с выражением SELECT. Создадим промежуточную таблицу и перебросим содержимое основной в нее:

CREATE TABLE OLD_PEOPLE

(

ID NUMBER PRIMARY KEY,

NM VARCHAR2(50),

FM VARCHAR2(50),

OT VARCHAR2(50)

)

/

Теперь применяя INSERT с выражением, перегрузим данные в новую таблицу:

INSERT INTO OLD_PEOPLE SELECT * FROM PEOPLE

/

Теперь в обеих таблицах одинаковые данные. Вот таким образом можно, применяя оператор SELECT со всей его мощью, получать результаты разнообразных запросов. Но при этом количество, имена и типы данных обеих таблиц должны быть одинаковы!!!

Для удаления данных служит оператор DELETE. Синтаксис его таков:

DELETE FROM таблица WHERE условие

Как мы видим в операторе DELETE так же есть часть определения условия WHERE. То есть все, что можно использовать для описания работы WHERE в операторе SELECT, применимо и здесь. Допустим нам нужно удалить запись с номером три. Записываем:

DELETE FROM PEOPLE

WHERE ID = 3

/

COMMIT

Теперь давайте удалим все из таблицы PEOPLE. Записываем:

DELETE FROM PEOPLE

/

COMMIT

/

Вот так до неприличия просто работает оператор DELETE.

Данные в таблицах БД изменяются с помощью оператора DML - UPDATE. Синтаксис этого оператора таков:

UPDATE таблица SET имя столбца = выражение WHERE условие

Синтаксически все довольно просто, как видим, в операторе UPDATE так же присутствует предложение WHERE, а следовательно, применимы все правила получения результирующего набора. Давайте посмотрим на практике, что можно сделать с таблицей с помощью оператора DML - UPDATE.

UPDATE PEOPLE

SET NM = 'IVAN'

/

COMMIT

/

UPDATE PEOPLE

SET NM = 'Irvin',

FM = 'Show',

OT = 'Brefovich'

WHERE ID = 5

/

COMMIT

/

15

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]