SQL1

       

SQL1

ÒÈÏÛ ÄÀÍÍÛÕ Â SQL
ÒÈÏÛ ANSI
ÝÊÂÈÂÀËÅÍÒÍÛÅ ÒÈÏÛ ÄÀÍÍÛÕ Â ÄÐÓÃÈÕ ßÇÛÊÀÕ
PL/I
ÊÎÁÎË
ÏÀÑÊÀËÜ
ÔÎÐÒÐÀÍ
Íåêîòîðûå îáùèå íåñòàíäàðòíûå ñðåäñòâà SQL
ÒÈÏÛ ÄÀÍÍÛÕ

ÒÈÏÛ DATE È TIME
ÒÈÏÛ ÒÅÊÑÒÎÂÎÉ ÑÒÐÎÊÈ
ÊÎÌÀÍÄÀ FORMAT
ÔÓÍÊÖÈÈ
ÌÀÒÅÌÀÒÈ×ÅÑÊÈÅ ÔÓÍÊÖÈÈ
ÑÈÌÂÎËÜÍÛÅ ÔÓÍÊÖÈÈ
ÔÓÍÊÖÈÈ ÄÀÒÛ È ÂÐÅÌÅÍÈ
ÄÐÓÃÈÅ ÔÓÍÊÖÈÈ
INTERSECT È MINUS
ÀÂÒÎÌÀÒÈ×ÅÑÊÈÅ ÂÍÅØÍÈÅ ÎÁÚÅÄÈÍÅÍÈß

ÎÒÑËÅÆÈÂÀÍÈÅ ÄÅÉÑÒÂÈÉ
ÂÂÅÄÅÍÈÅ
×ÒÎ ÒÀÊÎÅ "ÐÅËßÖÈÎÍÍÀß ÁÀÇÀ ÄÀÍÍÛÕ"?
ÑÂßÇÛÂÀÍÈÅ ÎÄÍÎÉ ÒÀÁËÈÖÛ Ñ ÄÐÓÃÎÉ
ÏÎÐßÄÎÊ ÑÒÐÎÊ ÏÐÎÈÇÂÎËÅÍ
ÈÄÅÍÒÈÔÈÊÀÖÈß ÑÒÐÎÊ (ÏÅÐÂÈ×ÍÛÉ ÊËÞ×)
ÑÒÎËÁÖÛ ÈÌÅÍÓÞÒÑß È ÍÓÌÅÐÓÞÒÑß
ÒÈÏÎÂÀß ÁÀÇÀ ÄÀÍÍÛÕ
ÏÐÈÌÅ×ÀÍÈÅ: ýòè òðè ïðåäñòàâëåííûõ
ÐÅÇÞÌÅ

ÐÀÁÎÒÀ ÑÎ SQL
Ãëàâà 2. SQL. ÎÁÇÎÐ.
ÊÀÊ ÐÀÁÎÒÀÅÒ SQL?
×ÒÎ ÄÅËÀÅÒ ANSI?
ÈÍÒÅÐÀÊÒÈÂÍÛÉ È ÂËÎÆÅÍÍÛÉ SQL
ÏÎÄÐÀÇÄÅËÛ SQL
ÐÀÇËÈ×ÍÛÅ ÒÈÏÛ ÄÀÍÍÛÕ
SQL. ÍÅÑÎÃËÀÑÎÂÀÍÍÎÑÒÈ.
×ÒÎ ÒÀÊÎÅ "ÏÎËÜÇÎÂÀÒÅËÜ"?

ÓÑËÎÂÍÛÅ ÎÁÎÇÍÀ×ÅÍÈß È ÒÅÐÌÈÍÎËÎÃÈß
Ãëàâà 3. ÈÑÏÎËÜÇÎÂÀÍÈÅ SQL ÄËß ÈÇÂËÅ×ÅÍÈß ÈÍÔÎÐÌÀÖÈÈ ÈÇ ÒÀÁËÈÖ
ÑÎÇÄÀÍÈÅ ÇÀÏÐÎÑÀ
×ÒÎ ÒÀÊÎÅ ÇÀÏÐÎÑ?
ÃÄÅ ÏÐÈÌÅÍßÞÒÑß ÇÀÏÐÎÑÛ?
ÊÎÌÀÍÄÀ SELECT
ÂÛÁÈÐÀÉÒÅ ÂÑÅÃÄÀ ÑÀÌÛÉ ÏÐÎÑÒÎÉ ÑÏÎÑÎÁ
ÎÏÈÑÀÍÈÅ SELECT

ÏÐÎÑÌÎÒÐ ÒÎËÜÊÎ ÎÏÐÅÄÅËÅÍÍÛÕ ÑÒÎËÁÖÎÂ ÒÀÁËÈÖÛ
ÏÅÐÅÓÏÎÐßÄÎ×ÈÂÀÍÈÅ ÑÒÎËÁÖÀ
ÓÄÀËÅÍÈÅ ÈÇÁÛÒÎ×ÍÛÕ ÄÀÍÍÛÕ
ÏÀÐÀÌÅÒÐÛ DISTINCT
ALL ÂÌÅÑÒÎ DISTINCT
ÊÂÀËÈÔÈÖÈÐÎÂÀÍÍÛÉ ÂÛÁÎÐ ÏÐÈ ÈÑÏÎËÜÇÎÂÀÍÈÈ ÏÐÅÄËÎÆÅÍÈÉ
Ãëàâà 4. ÈÑÏÎËÜÇÎÂÀÍÈÅ ÐÅËßÖÈÎÍÍÛÕ È ÁÓËÅÂÛÕ ÎÏÅÐÀÖÈÉ ÄËß ÑÎÇÄÀÍÈß ÁÎËÅÅ ÑËÎÆÍÛÕ ÏÐÅÄÈÊÀÒÎÂ

ÐÅËßÖÈÎÍÍÛÅ ÎÏÅÐÀÖÈÈ
ÁÓËÅÂÛ ÎÏÅÐÀÖÈÈ
Ãëàâà 5. ÈÑÏÎËÜÇÎÂÀÍÈÅ ÑÏÅÖÈÀËÜÍÛÕ ÎÏÅÐÀÒÎÐÎÂ Â ÓÑËÎÂÈßÕ
ÎÏÅÐÀÒÎÐ IN
ÎÏÅÐÀÒÎÐ BETWEEN

ÎÏÅÐÀÒÎÐ LIKE
ÐÀÁÎÒÀ ÑÎ ÇÍÀ×ÅÍÈßÌÈ NULL
ÎÏÅÐÀÒÎÐ IS NULL
ÈÑÏÎËÜÇÎÂÀÍÈÅ NOT ÑÎ ÑÏÅÖÈÀËÜÍÛÌÈ ÎÏÅÐÀÒÎÐÀÌÈ
Ãëàâà. 6 ÎÁÎÁÙÅÍÈÅ ÄÀÍÍÛÕ Ñ ÏÎÌÎÙÜÞ ÀÃÐÅÃÀÒÍÛÕ ÔÓÍÊÖÈÉ
×ÒÎ ÒÀÊÎÅ ÀÃÐÅÃÀÒÍÛÅ ÔÓÍÊÖÈÈ?

ÊÀÊ ÈÑÏÎËÜÇÎÂÀÒÜ ÀÃÐÅÃÀÒÍÛÅ ÔÓÍÊÖÈÈ?
ÑÏÅÖÈÀËÜÍÛÉ ÀÒÐÈÁÓÒ COUNT
ÈÑÏÎËÜÇÎÂÀÍÈÅ DISTINCT
ÈÑÏÎËÜÇÎÂÀÍÈÅ COUNT ÑÎ ÑÒÐÎÊÀÌÈ, À ÍÅ ÇÍÀ×ÅÍÈßÌÈ
ÂÊËÞ×ÅÍÈÅ ÄÓÁËÈÊÀÒΠ ÀÃÐÅÃÀÒÍÛÅ ÔÓÍÊÖÈÈ
ÀÃÐÅÃÀÒÛ, ÏÎÑÒÐÎÅÍÍÛÅ ÍÀ ÑÊÀËßÐÍÎÌ ÂÛÐÀÆÅÍÈÈ
ÏÐÅÄËÎÆÅÍÈÅ GROUP BY
ÏÐÅÄËÎÆÅÍÈÅ HAVING
ÍÅ ÄÅËÀÉÒÅ ÂËÎÆÅÍÍÛÕ ÀÃÐÅÃÀÒÎÂ

Ãëàâà 8. ÔÎÐÌÈÐÎÂÀÍÈÅ ÂÛÂÎÄÀ ÇÀÏÐÎÑÎÂ
ÑÒÐÎÊÈ È ÂÛÐÀÆÅÍÈß
ÑÊÀËßÐÍÎÅ ÂÛÐÀÆÅÍÈÅ Ñ ÏÎÌÎÙÜÞ ÂÛÁÐÀÍÍÛÕ ÏÎËÅÉ
ÑÒÎËÁÖÛ ÂÛÂÎÄÀ
ÏÎÌÅÙÅÍÈÅ ÒÅÊÑÒÀ Â ÂÀØÅÌ ÂÛÂÎÄÅ ÇÀÏÐÎÑÀ
ÓÏÎÐßÄÎ×ÈÂÀÍÈÅ ÂÛÂÎÄÀ ÏÎËÅÉ
ÓÏÎÐßÄÎ×ÈÂÀÍÈÅ Ñ ÏÎÌÎÙÜÞ ÍÅÑÊÎËÜÊÈÕ ÑÒÎËÁÖÎÂ

ÓÏÎÐßÄÎ×ÈÂÀÍÈÅ ÀÃÐÅÃÀÒÍÛÕ ÃÐÓÏÏ
ÓÏÎÐßÄÎ×ÈÂÀÍÈÅ ÂÛÂÎÄÀ ÏÎ ÍÎÌÅÐÓ ÑÒÎËÁÖÀ
ÓÏÎÐßÄÎ×ÈÂÀÍÈÅ Ñ ÏÎÌÎÙÜÞ NULL
Ãëàâà 8. ÇÀÏÐÀØÈÂÀÍÈÅ ÍÅÑÊÎËÜÊÈÕ ÒÀÁËÈÖ ÒÀÊ ÆÅ, ÊÀÊ ÎÄÍÎÉ
ÎÁÚÅÄÈÍÅÍÈÅ ÒÀÁËÈÖ
ÈÌÅÍÀ ÒÀÁËÈÖ È ÑÒÎËÁÖÎÂ
ÑÎÇÄÀÍÈÅ ÎÁÚÅÄÈÍÅÍÈß
ÎÁÚÅÄÈÍÅÍÈÅ ÒÀÁËÈÖ ×ÅÐÅÇ ÑÏÐÀÂÎ×ÍÓÞ ÖÅËÎÑÒÍÎÑÒÜ

ÎÁÚÅÄÈÍÅÍÈÅ ÒÀÁËÈÖ ÏÎ ÐÀÂÅÍÑÒÂÓ ÇÍÀ×ÅÍÈÉ Â ÑÒÎËÁÖÀÕ È ÄÐÓÃÈÅ ÂÈÄÛ ÎÁÚÅÄÈÍÅÍÈÉ
ÎÁÚÅÄÈÍÅÍÈÅ ÁÎËÅÅ ÄÂÓÕ ÒÀÁËÈÖ
Ãëàâà 9. ÎÁÚÅÄÈÍÅÍÈÅ ÒÀÁËÈÖÛ Ñ ÑÎÁÎÉ
ÊÀÊ ÂÛÏÎËÍÈÒÜ ÎÁÚÅÄÈÍÅÍÈÅ ÒÀÁËÈÖÛ Ñ ÑÎÁÎÉ?
ÏÑÅÂÄÎÍÈÌÛ
ÓÑÒÐÀÍÅÍÈÅ ÈÇÁÛÒÎ×ÍÎÑÒÈ
ÏÐÎÂÅÐÊÀ ÎØÈÁÎÊ
ÁÎËÜØÅ ÏÑÅÂÄÎÍÈÌÎÂ

ÊÎÌÏËÅÊÑÍÛÅ ÎÁÚÅÄÈÍÅÍÈß
Ãëàâà 10. ÂÑÒÀÂÊÀ ÎÄÍÎÃÎ ÇÀÏÐÎÑÀ ÂÍÓÒÐÜ ÄÐÓÃÎÃÎ
ÊÀÊ ÐÀÁÎÒÀÅÒ ÏÎÄÇÀÏÐÎÑ?
ÇÍÀ×ÅÍÈß, ÊÎÒÎÐÛÅ ÏÎÄÇÀÏÐÎÑ ÌÎÆÅÒ ÂÛÂÎÄÈÒÜ
DISTINCT Ñ ÏÎÄÇÀÏÐÎÑÀÌÈ
ÏÐÅÄÈÊÀÒÛ Ñ ÏÎÄÇÀÏÐÎÑÀÌÈ ßÂËßÞÒÑß ÍÅÎÁÐÀÒÈÌÛÌÈ
ÈÑÏÎËÜÇÎÂÀÍÈÅ ÀÃÐÅÃÀÒÍÛÕ ÔÓÍÊÖÈÉ Â ÏÎÄÇÀÏÐÎÑÀÕ

ÈÑÏÎËÜÇÎÂÀÍÈÅ ÏÎÄÇÀÏÐÎÑÎÂ, ÊÎÒÎÐÛÅ ÂÛÄÀÞÒ ÌÍÎÃÎ ÑÒÐÎÊ Ñ ÏÎÌÎÙÜÞ ÎÏÅÐÀÒÎÐÀ IN
ÏÎÄÇÀÏÐÎÑÛ ÂÛÁÈÐÀÞÒ ÎÄÈÍÎ×ÍÛÅ ÑÒÎËÁÖÛ
ÈÑÏÎËÜÇÎÂÀÍÈÅ ÂÛÐÀÆÅÍÈÉ Â ÏÎÄÇÀÏÐÎÑÀÕ
ÏÎÄÇÀÏÐÎÑÛ Â ÏÐÅÄËÎÆÅÍÈÈ HAVING
Ãëàâà 11. ÑÎÎÒÍÅѨÍÍÛÅ ÏÎÄÇÀÏÐÎÑÛ
ÊÀÊ ÑÔÎÐÌÈÐÎÂÀÒÜ ÑÎÎÒÍÅѨÍÍÛÉ ÏÎÄÇÀÏÐÎÑ?

ÊÀÊ ÐÀÁÎÒÀÅÒ ÑÎÎÒÍÅÑÅÍÍÛÉ ÏÎÄÇÀÏÐÎÑ?
ÈÑÏÎËÜÇÎÂÀÍÈÅ ÑÎÎÒÍÅѨÍÍÛÕ ÏÎÄÇÀÏÐÎÑΠÄËß ÏÎÈÑÊÀ ÎØÈÁÎÊ
ÑÐÀÂÍÅÍÈÅ ÒÀÁËÈÖÛ Ñ ÑÎÁÎÉ
ÑÎÎÒÍÅѨÍÍÛÅ ÏÎÄÇÀÏÐÎÑÛ Â ÏÐÅÄËÎÆÅÍÈÈ HAVING
ÑÎÎÒÍÅѨÍÍÛÅ ÏÎÄÇÀÏÐÎÑÛ È ÎÁÚÅÄÈÍÅÍÈß
Ãëàâà 12. Èñïîëüçîâàíèå îïåðàòîðà EXISTS

ÊÀÊ ÐÀÁÎÒÀÅÒ EXISTS?
ÂÛÁÎÐ ÑÒÎËÁÖÎÂ Ñ ÏÎÌÎÙÜÞ EXISTS
ÈÑÏÎËÜÇÎÂÀÍÈÅ EXISTS Ñ ÑÎÎÒÍÅѨÍÍÛÌÈ ÏÎÄÇÀÏÐÎÑÀÌÈ
ÊÎÌÁÈÍÀÖÈß ÈÇ EXISTS È ÎÁÚÅÄÈÍÅÍÈß
ÈÑÏÎËÜÇÎÂÀÍÈÅ NOT EXISTS
EXISTS È ÀÃÐÅÃÀÒÛ
ÓËÓ×ØÅÍÍÛÉ ÏÐÈÌÅÐ ÏÎÄÇÀÏÐÎÑÀ

Ãëàâà 13. Èñïîëüçîâàíèå îïåðàòîðîâ ANY, ALL è SOME

SQL1

ÑÏÅÖÈÀËÜÍÛÅ ÎÏÅÐÀÒÎÐÛ ANY ÈËÈ SOME
ÈÑÏÎËÜÇÎÂÀÍÈÅ IN ÈËÈ EXISTS ÂÌÅÑÒÎ ANY

ÊÀÊ ANY ÌÎÆÅÒ ÑÒÀÒÜ ÍÅÎÄÍÎÇÍÀ×ÍÛÌ?
ÑÏÅÖÈÀËÜÍÛÉ ÎÏÅÐÀÒÎÐ ALL
ÐÀÂÅÍÑÒÂÀ È ÍÅÐÀÂÅÍÑÒÂÀ
ÏÐÀÂÈËÜÍÎÅ ÏÎÍÈÌÀÍÈÅ ANY È ALL
ÊÀÊ ANY, ALL È EXIST ÏÎÑÒÓÏÀÞÒ Ñ ÎÒÑÓÒÑÒÂÓÞÙÈÌÈ È ÍÅÈÇÂÅÑÒÍÛÌÈ ÄÀÍÍÛÌÈ?
ÊÎÃÄÀ ÏÎÄÇÀÏÐÎÑ ÂÎÇÂÐÀÙÀÅÒÑß ÏÓÑÒÛÌ?
ANY È ALL ÂÌÅÑÒÎ EXISTS Ñ NULL
ÈÑÏÎËÜÇÎÂÀÍÈÅ COUNT ÂÌÅÑÒÎ EXISTS

Ãëàâà 14. ÈÑÏÎËÜÇÎÂÀÍÈÅ ÏÐÅÄËÎÆÅÍÈß UNION
ÎÁÚÅÄÈÍÅÍÈÅ ÍÅÑÊÎËÜÊÈÕ ÇÀÏÐÎÑÎÂ Â ÎÄÈÍ
ÊÎÃÄÀ ÂÛ ÌÎÆÅÒÅ ÄÅËÀÒÜ ÎÁÚÅÄÈÍÅÍÈÅ ÇÀÏÐÎÑÎÂ?
UNION È ÓÑÒÐÀÍÅÍÈÅ ÄÓÁËÈÊÀÒÎÂ
ÈÑÏÎËÜÇÎÂÀÍÈÅ ÑÒÐÎÊ È ÂÛÐÀÆÅÍÈÉ Ñ UNION
ÈÑÏÎËÜÇÎÂÀÍÈÅ UNION Ñ ORDER BY
ÂÍÅØÍÅÅ ÎÁÚÅÄÈÍÅÍÈÅ

Ãëàâà 15. ÂÂÎÄ, ÓÄÀËÅÍÈÅ È ÈÇÌÅÍÅÍÈÅ ÇÍÀ×ÅÍÈß ÏÎËß
ÊÎÌÀÍÄÛ ÌÎÄÈÔÈÊÀÖÈÈ ßÇÛÊÀ DML
ÂÂÎÄ ÇÍÀ×ÅÍÈÉ
ÂÑÒÀÂÊÀ NULL
ÈÌÅÍÎÂÀÍÈÅ ÑÒÎËÁÖÀ ÄËß ÂÑÒÀÂÊÈ (INSERT)
ÂÑÒÀÂÊÀ ÐÅÇÓËÜÒÀÒÎÂ ÇÀÏÐÎÑÀ
ÓÄÀËÅÍÈÅ ÑÒÐÎÊ ÈÇ ÒÀÁËÈÖ

ÈÇÌÅÍÅÍÈÅ ÇÍÀ×ÅÍÈÉ ÏÎËß
ÌÎÄÈÔÈÖÈÐÎÂÀÍÈÅ ÒÎËÜÊÎ ÎÏÐÅÄÅËÅÍÍÛÕ ÑÒÐÎÊ
ÊÎÌÀÍÄÀ UPDATE ÄËß ÍÅÑÊÎËÜÊÈÕ ÑÒÎËÁÖÎÂ
ÈÑÏÎËÜÇÎÂÀÍÈÅ ÂÛÐÀÆÅÍÈÉ ÄËß ÌÎÄÈÔÈÊÀÖÈÈ
ÌÎÄÈÔÈÖÈÐÎÂÀÍÈÅ NULL-ÇÍÀ×ÅÍÈÉ
ÈÑÏÎËÜÇÎÂÀÍÈÅ ÏÎÄÇÀÏÐÎÑÎÂ Ñ INSERT
ÍÅ ÂÑÒÀÂËßÉÒÅ ÄÓÁËÈÊÀÒÛ ÑÒÐÎÊ

ÈÑÏÎËÜÇÎÂÀÍÈÅ ÏÎÄÇÀÏÐÎÑÎÂ, ÑÎÇÄÀÍÍÛÕ ÂÎ ÂÍÅØÍÈÕ ÇÀÏÐÎÑÀÕ ÒÀÁËÈÖ
ÈÑÏÎËÜÇÎÂÀÍÈÅ ÏÎÄÇÀÏÐÎÑÎÂ Ñ DELETE
ÈÑÏÎËÜÇÎÂÀÍÈÅ ÏÎÄÇÀÏÐÎÑÎÂ Ñ UPDATE
ÎÃÐÀÍÈ×ÅÍÈß ÏÎÄÇÀÏÐÎÑΠÊÎÌÀÍÄ DML
Ãëàâà 17. ÑÎÇÄÀÍÈÅ ÒÀÁËÈÖ
ÊÎÌÀÍÄÀ ÑÎÇÄÀÍÈß ÒÀÁËÈÖÛ
ÈÍÄÅÊÑÛ

ÓÍÈÊÀËÜÍÎÑÒÜ ÈÍÄÅÊÑÀ
ÏÐÈÌÅ×ÀÍÈÅ: ýòà êîìàíäà áóäåò
ÓÄÀËÅÍÈÅ ÈÍÄÅÊÑÎÂ
ÈÇÌÅÍÅÍÈÅ ÒÀÁËÈÖÛ, ÏÎÑËÅ ÒÎÃÎ ÊÀÊ ÎÍÀ ÁÛËÀ ÑÎÇÄÀÍÀ
ÓÄÀËÅÍÈÅ ÒÀÁËÈÖÛ
Ãëàâà 18. ÎÃÐÀÍÈ×ÅÍÈÅ ÇÍÀ×ÅÍÈÉ ÂÀØÈÕ ÄÀÍÍÛÕ
ÎÃÐÀÍÈ×ÅÍÈÅ ÒÀÁËÈÖ
ÎÁÚßÂËÅÍÈÅ ÎÃÐÀÍÈ×ÅÍÈÉ

ÈÑÏÎËÜÇÎÂÀÍÈÅ ÎÃÐÀÍÈ×ÅÍÈÉ ÄËß ÈÑÊËÞ×ÅÍÈß ÏÓÑÒÛÕ (NULL) ÇÍÀ×ÅÍÈÉ
ÓÁÅÄÈÒÅÑÜ, ×ÒÎ ÇÍÀ×ÅÍÈß ÓÍÈÊÀËÜÍÛ
ÓÍÈÊÀËÜÍÎÑÒÜ ÊÀÊ ÎÃÐÀÍÈ×ÅÍÈÅ ÑÒÎËÁÖÀ
ÓÍÈÊÀËÜÍÎÑÒÜ ÊÀÊ ÎÃÐÀÍÈ×ÅÍÈÅ ÒÀÁËÈÖÛ
ÎÃÐÀÍÈ×ÅÍÈÅ ÏÅÐÂÈ×ÍÛÕ ÊËÞ×ÅÉ
ÏÅÐÂÈ×ÍÛÅ ÊËÞ×È ÁÎËÅÅ ×ÅÌ ÎÄÍÎÃÎ ÏÎËß
ÏÐÎÂÅÐÊÀ ÇÍÀ×ÅÍÈÉ ÏÎËÅÉ
ÈÑÏÎËÜÇÎÂÀÍÈÅ CHECK ÄËß ÏÐÅÄÎÏÐÅÄÅËÅÍÈß ÄÎÏÓÑÒÈÌÎÃÎ ÂÂÎÄÈÌÎÃÎ ÇÍÀ×ÅÍÈß
ÏÐÎÂÅÐÊÀ ÓÑËÎÂÈÉ, ÁÀÇÈÐÓÞÙÈÕÑß ÍÀ ÍÅÑÊÎËÜÊÈÕ ÏÎËßÕ
ÓÑÒÀÍÎÂÊÀ ÇÍÀ×ÅÍÈÉ ÏÎ ÓÌÎË×ÀÍÈÞ

Ãëàâà 19. ÏÎÄÄÅÐÆÊÀ ÖÅËÎÑÒÍÎÑÒÈ ÂÀØÈÕ ÄÀÍÍÛÕ
ÂÍÅØÍÈÉ ÊËÞ× È ÐÎÄÈÒÅËÜÑÊÈÉ ÊËÞ×
ÌÍÎÃÎÑÒÎËÁÖÎÂÛÅ ÂÍÅØÍÈÅ ÊËÞ×È
ÑÌÛÑË ÂÍÅØÍÅÃÎ È ÐÎÄÈÒÅËÜÑÊÎÃÎ ÊËÞ×ÅÉ
ÎÃÐÀÍÈ×ÅÍÈÅ ÂÍÅØÍÅÃÎ ÊËÞ×À/FOREIGN KEY
ÊÀÊ ÌÎÆÍÎ ÏÐÅÄÑÒÀÂÈÒÜ ÏÎËß Â ÊÀ×ÅÑÒÂÅ ÂÍÅØÍÈÕ ÊËÞ×ÅÉ
ÂÍÅØÍÈÉ ÊËÞ× ÊÀÊ ÎÃÐÀÍÈ×ÅÍÈÅ ÒÀÁËÈÖÛ

ÂÍÅØÍÈÉ ÊËÞ× ÊÀÊ ÎÃÐÀÍÈ×ÅÍÈÅ ÑÒÎËÁÖÎÂ
ÍÅ ÓÊÀÇÛÂÀÒÜ ÑÏÈÑÎÊ ÑÒÎËÁÖΠÏÅÐÂÈ×ÍÛÕ ÊËÞ×ÅÉ
ÊÀÊ ÑÏÐÀÂÎ×ÍÀß ÖÅËÎÑÒÍÎÑÒÜ ÎÃÐÀÍÈ×ÈÂÀÅÒ ÇÍÀ×ÅÍÈß ÐÎÄÈÒÅËÜÑÊÎÃÎ ÊËÞ×À?
ÏÅÐÂÈ×ÍÛÉ ÊËÞ× ÊÀÊ ÓÍÈÊÀËÜÍÛÉ ÂÍÅØÍÈÉ ÊËÞ×
ÎÃÐÀÍÈ×ÅÍÈß ÂÍÅØÍÅÃÎ ÊËÞ×À
×ÒÎ ÑËÓ×ÈÒÑß, ÅÑËÈ ÂÛ ÂÛÏÎËÍÈÒÅ ÊÎÌÀÍÄÓ ÌÎÄÈÔÈÊÀÖÈÈ?
ÎÏÈÑÀÍÈÅ ÎÃÐÀÍÈ×ÅÍÈÉ ÒÀÁËÈÖÛ
ÄÅÉÑÒÂÈÅ ÎÃÐÀÍÈ×ÅÍÈÉ

ÂÍÅØÍÈÅ ÊËÞ×È, ÊÎÒÎÐÛÅ ÑÑÛËÀÞÒÑß ÍÀ ÑÂÎÈ ÏÎÄ×ÈͨÍÍÛÅ ÒÀÁËÈÖÛ
Ãëàâà 20. ÏÐÅÄÑÒÀÂËÅÍÈÅ. ÂÂÅÄÅÍÈÅ.
×ÒÎ ÒÀÊÎÅ ÏÐÅÄÑÒÀÂËÅÍÈÅ?
ÊÎÌÀÍÄÀ CREATE VIEW
ÌÎÄÈÔÈÖÈÐÎÂÀÍÈÅ ÏÐÅÄÑÒÀÂËÅÍÈÉ
ÈÌÅÍÎÂÀÍÈÅ ÑÒÎËÁÖÎÂ

ÊÎÌÁÈÍÈÐÎÂÀÍÈÅ ÏÐÅÄÈÊÀÒÎÂ ÏÐÅÄÑÒÀÂËÅÍÈÉ È ÎÑÍÎÂÍÛÕ ÇÀÏÐÎÑÎÂ Â ÏÐÅÄÑÒÀÂËÅÍÈßÕ
ÃÐÓÏÏÎÂÛÅ ÏÐÅÄÑÒÀÂËÅÍÈß
ÏÐÅÄÑÒÀÂËÅÍÈß È ÎÁÚÅÄÈÍÅÍÈß
ÏÐÅÄÑÒÀÂËÅÍÈß È ÏÎÄÇÀÏÐÎÑÛ
×ÒÎ ÍÅ ÌÎÃÓÒ ÄÅËÀÒÜ ÏÐÅÄÑÒÀÂËÅÍÈß?
ÓÄÀËÅÍÈÅ ÏÐÅÄÑÒÀÂËÅÍÈÉ
Ãëàâà 21. ÈÇÌÅÍÅÍÈÅ ÇÍÀ×ÅÍÈÉ Ñ ÏÎÌÎÙÜÞ ÏÐÅÄÑÒÀÂËÅÍÈÉ
ÌÎÄÈÔÈÖÈÐÎÂÀÍÈÅ ÏÐÅÄÑÒÀÂËÅÍÈß

ÎÏÐÅÄÅËÅÍÈÅ ÌÎÄÈÔÈÖÈÐÓÅÌÎÑÒÈ ÏÐÅÄÑÒÀÂËÅÍÈß
ÌÎÄÈÔÈÖÈÐÓÅÌÛÅ ÏÐÅÄÑÒÀÂËÅÍÈß È ÏÐÅÄÑÒÀÂËÅÍÈß ÒÎËÜÊÎ_ÄËß_×ÒÅÍÈß.
ÊÀÊÎÅ ÏÐÅÄÑÒÀÂËÅÍÈÅ ßÂËßÅÒÑß ÌÎÄÈÔÈÖÈÐÓÅÌÛÌÈ?
ÏÐÎÂÅÐÊÀ ÇÍÀ×ÅÍÈÉ, ÏÎÌÅÙÀÅÌÛÕ Â ÏÐÅÄÑÒÀÂËÅÍÈÅ
ÏÐÅÄÈÊÀÒÛ È ÈÑÊËÞרÍÍÛÅ ÏÎËß
ÏÐÎÂÅÐÊÀ ÏÐÅÄÑÒÀÂËÅÍÈÉ, ÊÎÒÎÐÛÅ ÁÀÇÈÐÓÞÒÑß ÍÀ ÄÐÓÃÈÕ ÏÐÅÄÑÒÀÂËÅÍÈßÕ
ÏÎËÜÇÎÂÀÒÅËÈ

ÐÅÃÈÑÒÐÀÖÈß
ÏÐÅÄÎÑÒÀÂËÅÍÈÅ ÏÐÈÂÈËÅÃÈÉ
ÑÒÀÍÄÀÐÒÍÛÅ ÏÐÈÂÈËÅÃÈÈ
ÊÎÌÀÍÄÀ GRANT
ÃÐÓÏÏÛ ÏÐÈÂÈËÅÃÈÉ. ÃÐÓÏÏÛ ÏÎËÜÇÎÂÀÒÅËÅÉ.
ÎÃÐÀÍÈ×ÅÍÈÅ ÏÐÈÂÈËÅÃÈÉ ÍÀ ÎÏÐÅÄÅËÅÍÍÛÅ ÑÒÎËÁÖÛ
ÈÑÏÎËÜÇÎÂÀÍÈÅ ÀÐÃÓÌÅÍÒÎÂ ALL È PUBLIC
ÏÐÅÄÎÑÒÀÂËÅÍÈÅ ÏÐÈÂÈËÅÃÈÉ Ñ ÏÎÌÎÙÜÞ WITH GRANT OPTION
ÎÒÌÅÍÀ ÏÐÈÂÈËÅÃÈÉ
ÈÑÏÎËÜÇÎÂÀÍÈÅ ÏÐÅÄÑÒÀÂËÅÍÈÉ ÄËß ÔÈËÜÒÐÀÖÈÈ ÏÐÈÂÈËÅÃÈÉ

ÊÒÎ ÌÎÆÅÒ ÑÎÇÄÀÂÀÒÜ ÏÐÅÄÑÒÀÂËÅÍÈß?
ÄÐÓÃÈÅ ÒÈÏÛ ÏÐÈÂÈËÅÃÈÉ
ÒÈÏÈ×ÍÛÅ ÏÐÈÂÈËÅÃÈÈ ÑÈÑÒÅÌÛ
ÑÎÇÄÀÍÈÅ È ÓÄÀËÅÍÈÅ ÏÎËÜÇÎÂÀÒÅËÅÉ
Ãëàâà 23. ÃËÎÁÀËÜÍÛÅ ÀÑÏÅÊÒÛ SQL
ÏÅÐÅÈÌÅÍÎÂÀÍÈÅ ÒÀÁËÈÖ

ÏÅÐÅÈÌÅÍÎÂÀÍÈÅ Ñ ÒÅÌ ÆÅ ÑÀÌÛÌ ÈÌÅÍÅÌ
ÎÄÍÎ ÈÌß ÄËß ÊÀÆÄÎÃÎ
ÓÄÀËÅÍÈÅ ÑÈÍÎÍÈÌÎÂ
ÊÀÊ ÁÀÇÀ ÄÀÍÍÛÕ ÐÀÑÏÐÅÄÅËÅÍÀ ÌÅÆÄÓ ÏÎËÜÇÎÂÀÒÅËßÌÈ?
ÊÎÃÄÀ ÑÄÅËÀÍÍÛÅ ÈÇÌÅÍÅÍÈß ÑÒÀÍÎÂßÒÑß ÏÎÑÒÎßÍÍÛÌÈ ?
ÊÀÊ SQL ÎÁÙÀÅÒÑß ÑÐÀÇÓ Ñ ÍÅÑÊÎËÜÊÈÌÈ ÏÎËÜÇÎÂÀÒÅËßÌÈ?
ÏÐÈÌÅ×ÀÍÈÅ:

ÒÈÏÛ ÁËÎÊÈÐÎÂÎÊ
ÄÐÓÃÈÅ ÑÏÎÑÎÁÛ ÁËÎÊÈÐÎÂÊÈ ÄÀÍÍÛÕ
Ãëàâà 24. ÊÀÊ ÄÀÍÍÛÅ SQL ÕÐÀÍßÒÑß Â ÓÏÎÐßÄÎ×ÅÍÍÎÌ ÂÈÄÅ?
ÊÀÒÀËÎÃ ÑÈÑÒÅÌÛ

SQL1

ÒÈÏÈ×ÍÛÉ ÊÀÒÀËÎà ÑÈÑÒÅÌÛ
ÈÑÏÎËÜÇÎÂÀÍÈÅ ÏÐÅÄÑÒÀÂËÅÍÈÉ Â ÒÀÁËÈÖÀÕ ÊÀÒÀËÎÃÀ
ÊÎÌÌÅÍÒÀÐÈÉ Â ÑÎÄÅÐÆÀÍÈÈ ÊÀÒÀËÎÃÀ

ÎÑÒÀËÜÍÎÅ ÑÎÄÅÐÆÈÌÎÅ ÊÀÒÀËÎÃÀ
SYSTEMINDEXES - ÈÍÄÅÊÑÀÖÈß Â ÁÀÇÅ ÄÀÍÍÛÕ
SYSTEMUSERAUTH - ÏÎËÜÇÎÂÀÒÅËÜÑÊÈÅ È ÑÈÑÒÅÌÍÛÅ ÏÐÈÂÈËÅÃÈÈ Â ÁÀÇÅ ÄÀÍÍÛÕ
SYSTEMTABAUTH - ÏÐÈÂÈËÅÃÈÈ ÎÁÚÅÊÒÀ, ÊÎÒÎÐÛÅ ÍÅ ÎÏÐÅÄÅËßÞÒ ÀÂÒÎÐÈÇÀÖÈÞ ÑÒÎËÁÖÀ
SYSTEMCOLAUTH - ÏÐÈÂÈËÅÃÈÈ ÎÁÚÅÊÒÀ, ÊÎÒÎÐÛÅ ÎÏÐÅÄÅËßÞÒ ÀÂÒÎÐÈÇÀÖÈÞ ÑÒÎËÁÖÀ
SYSTEMSYNONS - ÑÈÍÎÍÈÌÛ ÄËß ÒÀÁËÈÖ Â ÁÀÇÅ ÄÀÍÍÛÕ
ÄÐÓÃÎÅ ÈÑÏÎËÜÇÎÂÀÍÈÅ ÊÀÒÀËÎÃÀ

Ãëàâà 25. ÈÑÏÎËÜÇÎÂÀÍÈÅ SQL Ñ ÄÐÓÃÈÌ ßÇÛÊÎÌ (ÂËÎÆÅÍÍÛÉ/ÂÑÒÐÎÅÍÍÛÉ SQL)
×ÒÎ ÒÀÊÎÅ - ÂËÎÆÅÍÈÅ SQL?
ÇÀ×ÅÌ ÂÊËÀÄÛÂÀÒÜ SQL?
ÊÀÊ ÄÅËÀÅÒÑß ÂËÎÆÅÍÈÅ SQL?
ÈÑÏÎËÜÇÎÂÀÍÈÅ ÏÅÐÅÌÅÍÍÛÕ ÎÑÍÎÂÍÎÃÎ ßÇÛÊÀ  SQL
ÎÁÚßÂËÅÍÈÅ ÏÅÐÅÌÅÍÍÛÕ
ÈÇÂËÅ×ÅÍÈÅ ÇÍÀ×ÅÍÈÉ ÏÅÐÅÌÅÍÍÛÕ
ÊÓÐÑÎÐ

SQLCODE
ÈÑÏÎËÜÇÎÂÀÍÈÅ SQLCODE ÄËß ÓÏÐÀÂËÅÍÈß ÖÈÊËÀÌÈ
ÏÐÅÄËÎÆÅÍÈÅ WHENEVER
ÌÎÄÈÔÈÖÈÐÎÂÀÍÈÅ ÊÓÐÑÎÐÎÂ
ÏÅÐÅÌÅÍÍÀß INDICATOR
ÈÑÏÎËÜÇÎÂÀÍÈÅ ÏÅÐÅÌÅÍÍÎÉ INDICATOR ÄËß ÝÌÓËßÖÈÈ NULL-ÇÍÀ×ÅÍÈÉ SQL
ÏÐÈÌÅ×ÀÍÈÅ: Ïîñëåäíÿÿ ñòðîêà ýòîãî
ÄÐÓÃÎÅ ÈÑÏÎËÜÇÎÂÀÍÈÅ ÏÅÐÅÌÅÍÍÎÉ INDICATOR

ÑÈÍÒÀÊÑÈÑ È ÑÏÐÀÂÊÀ ÏÎ ÊÎÌÀÍÄÀÌ
ÝËÅÌÅÍÒÛ SQL
ÔÓÍÊÖÈÎÍÀËÜÍÛÅ ÝËÅÌÅÍÒÛ
ÏÐÅÄÈÊÀÒÛ
SQL ÊÎÌÀÍÄÛ

BEGIN DECLARE SECTION (ÍÀ×ÀÒÜ ÐÀÇÄÅË ÎÁÚßÂËÅÍÈÉ)
CLOSE CURSOR (ÇÀÊÐÛÒÜ ÊÓÐÑÎÐ)
COMMIT (WORK) (ÏÎÄÒÂÅÐÄÈÒÜ (ÒÐÀÍÇÀÊÖÈÈ))
CREATE INDEX (ÑÎÇÄÀÒÜ ÈÍÄÅÊÑ)
CREATE SYNONYM (*NONSTANDARD*) (ÑÎÇÄÀÒÜ ÑÈÍÎÍÈÌ) (*ÍÅÑÒÀÍÄÀÐÒÍÛÉ*)
CREATE TABLE (ÑÎÇÄÀÒÜ ÒÀÁËÈÖÓ)
CREATE VIEW (ÑÎÇÄÀÒÜ ÏÐÎÑÌÎÒÐ)
DECLARE CURSOR (ÎÁÚßÂÈÒÜ ÊÓÐÑÎÐ)
DELETE (ÓÄÀËÈÒÜ)
EXEC SQL (ÂÛÏÎËÍÈÒÜ SQL)

FETCH (ÂÛÁÎÐÊÀ/ÈÇÂËÅ×ÅÍÈÅ)
GRANT (ÏÅÐÅÄÀÒÜ ÏÐÀÂÀ)
INSERT (ÂÑÒÀÂÈÒÜ)
OPEN CURSOR (ÎÒÊÐÛÒÜ ÊÓÐÑÎÐ)
REVOKE (*NONSTANDARD*) (ÎÒÌÅÍÈÒÜ ÏÎËÍÎÌÎ×Èß) (ÍÅÑÒÀÍÄÀÐÒÍÀß)
ROLLBACK (WORK) (ÎÒÊÀÒ) (ÒÐÀÍÇÀÊÖÈÈ)
SELECT (ÂÛÁÎÐ)
UNION (ÎÁÚÅÄÈÍÅÍÈÅ)
UPDATE (ÌÎÄÈÔÈÊÀÖÈß)

WHENEVER (ÂÑßÊÈÉ ÐÀÇ ÊÀÊ)
ÒÀÁËÈÖÛ SQL, ÈÑÏÎËÜÇÓÅÌÛÅ Â ÝÒÎÉ ÊÍÈÃÅ