Èòàê, ïðèñòóïèì ê áîëåå äåòàëüíîìó ðàçáîðó îïåðàòîðîâ DML. Áåç ïðèìåíåíèÿ ýòèõ îïåðàòîðîâ áûëî áû âîîáùå áåññìûñëåííà âñÿ ýòà çàòåÿ ñ ñåðâåðàìè ÁÄ. Íà÷àòü ëó÷øå âñåãî ñ îïåðàòîðà DML - INSERT. Îïåðàòîð INSERT, ñëóæèò äëÿ çàïîëíåíèÿ òàáëèö ÁÄ äàííûìè è ÿâëÿåòñÿ äîñòàòî÷íî ïðîñòûì â èñïîëüçîâàíèè. Äàâàéòå ïîñìîòðèì, íà ñèíòàêñèñ îïåðàòîðà INSERT:
---------------- INSERT INTO --- òàáëèöà ---------------------------------------------------
-------------------------------- (èìÿ ñòîëáöà òàáëèöû) -------------------------------------
--------------------------------------- , --------------------------------------------------
----------------------- VALUES --- (âûðàæåíèå); --------------------------------------------
----------------------- îïåðàòîð âûáîðà --------------------------------------------
ß äóìàþ, ïîíÿòíî, ÷òî "òàáëèöà" - ýòî èìÿ òàáëèöû, êóäà ââîäÿòñÿ äàííûå. "èìÿ ñòîëáöà" - ýòî ñïèñîê ñòîëáöîâ, â êîòîðûå ââîäÿòñÿ äàííûå. "Âûðàæåíèå" - ýòî ñîáñòâåííî ñàìè äàííûå. "Îïåðàòîð âûáîðà" - ýòî ïðåäëîæåíèå SELECT, äëÿ çàïîëíåíèÿ òàáëèöû. Èñïîëüçóåòñÿ áåç ÷àñòè VALUES. Äàâàéòå óäàëèì âñå òàáëèöû, êîòîðûå âû ñîçäàâàëè â ïðîøëûé ðàç, òàê êàê ñåé÷àñ ìû áóäåì ðàññìàòðèâàòü èõ íîâûé âàðèàíò. Óäàëÿòü òàáëèöû âû óæå óìååòå. Åñëè âû íå ñäåëàëè ýòîãî â ïðîøëûé ðàç òî ïðîñòî ââåäèòå:
DROP TABLE PEOPLE
/
DROP TABLE NEWPEOPLE
/
COMMIT
/
Çàòåì ñîçäàåì òàáëèöó PEOPLE ñ íîâûìè ïàðàìåòðàìè:
CREATE TABLE PEOPLE
(
ID NUMBER PRIMARY KEY,
NM VARCHAR2(50),
FM VARCHAR2(50),
OT VARCHAR2(50)
)
/
COMMIT
/
Ïîëó÷àåì:
SQL> CREATE TABLE PEOPLE
2 (
3 ID NUMBER PRIMARY KEY,
4 NM VARCHAR2(50),
5 FM VARCHAR2(50),
6 OT VARCHAR2(50)
7 )
8 /
Òàáëèöà ñîçäàíà.
SQL> COMMIT
2 /
Ôèêñàöèÿ îáíîâëåíèé çàâåðøåíà.
Îáðàòèòå âíèìàíèå íà ïîëå 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
/
Ïîëó÷àåì:
SQL> INSERT INTO PEOPLE(ID, NM, FM, OT)
2 VALUES(1, 'John', 'Godwin', 'Petrovich')
3 /
1 ñòðîêà ñîçäàíà.
SQL> INSERT INTO PEOPLE(ID, NM, FM, OT)
2 VALUES(2, 'Bob', 'Doris', 'Martovich')
3 /
1 ñòðîêà ñîçäàíà.
SQL> INSERT INTO PEOPLE(ID, NM, FM, OT)
2 VALUES(3, 'Frank', 'Black', 'Milleniumich')
3 /
1 ñòðîêà ñîçäàíà.
SQL> INSERT INTO PEOPLE(ID, NM, FM, OT)
2 VALUES(4, 'Pupkin', 'Misha', 'Semenovich')
3 /
1 ñòðîêà ñîçäàíà.
SQL> INSERT INTO PEOPLE(ID, NM, FM, OT)
2 VALUES(5, 'Pistoletov', 'Makar', 'Patronovich')
3 /
1 ñòðîêà ñîçäàíà.
SQL> INSERT INTO PEOPLE(ID, NM, FM, OT)
2 VALUES(6, 'Avtomatov', 'Kolya', 'Pricelovich')
3 /
1 ñòðîêà ñîçäàíà.
SQL> COMMIT
2 /
Ôèêñàöèÿ îáíîâëåíèé çàâåðøåíà.
 ÷àñòè 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)
)
/
COMMIT
/
Ïîëó÷àåì: SQL> CREATE TABLE OLD_PEOPLE 2 ( 3 ID NUMBER PRIMARY KEY, 4 NM VARCHAR2(50), 5 FM VARCHAR2(50), 6 OT VARCHAR2(50) 7 ) 8 / Òàáëèöà ñîçäàíà. SQL> COMMIT 2 / Ôèêñàöèÿ îáíîâëåíèé çàâåðøåíà.
Òåïåðü ïðèìåíÿÿ INSERT ñ âûðàæåíèåì, ïåðåãðóçèì äàííûå â íîâóþ òàáëèöó:
INSERT INTO OLD_PEOPLE
SELECT * FROM PEOPLE
/
Ïîëó÷àåì:
SQL> INSERT INTO OLD_PEOPLE
2 SELECT * FROM PEOPLE
3 /
6 ñòðîê ñîçäàíî.
SQL> COMMIT
2 /
Ôèêñàöèÿ îáíîâëåíèé çàâåðøåíà.
Òåïåðü â îáåèõ òàáëèöàõ îäèíàêîâûå äàííûå. Âîò òàêèì îáðàçîì ìîæíî, ïðèìåíÿÿ îïåðàòîð SELECT ñî âñåé åãî ìîùüþ, ïîëó÷àòü ðåçóëüòàòû ðàçíîîáðàçíûõ çàïðîñîâ. Íî ïðè ýòîì êîëè÷åñòâî, èìåíà è òèïû äàííûõ îáåèõ òàáëèö äîëæíû áûòü îäèíàêîâû!!! Íàïðèìåð, òàêèì îïåðàòîðîì ÿ ÷àñòî ïîëüçóþñü ïðè ñëèâàíèè òàáëèö òåëåôîííûõ íîìåðîâ. Î÷åíü óäîáíî. Òàêèì îáðàçîì, ìû ðàññìîòðåëè ïåðâûé èç òðåõ îñíîâíûõ îïåðàòîðîâ, DML - INSERT. Ïîêà íå óäàëÿéòå òàáëèöû PEOPLE è OLD_PEOPLE, â ñëåäóþùåì øàãå îíè íàì åùå ïîíàäîáÿòñÿ. Ïîêà ìîæåòå ïîðàáîòàòü ñ òåì ìàòåðèàëîì, êîòîðûé ðàññìîòðåëè ñåé÷àñ.