Вы находитесь на странице: 1из 30

1: http://xml.nsu.ru/sql/sql_intro.

xml
2: http://xml.nsu.ru/sql/sql_select.xml
3: http://xml.nsu.ru/sql/sql_where.xml
4: http://xml.nsu.ru/sql/sql_and_or.xml
5: http://xml.nsu.ru/sql/sql_between.xml
Lkona
SQL
[annan cepnn pokyHen1oa nopro1oanena na ocnoae Ha1epnanoa ca1a Lkonm KoncopunyHa W3C. D1o1 ca1 nanne1cn akcnepnHen-
1anLnmH cepaepoH, na ko1opoH copepxanne pokyHen1oa xpann1cn a qopHa1e XML. HonLsoaa1ennH ca1a a1n pokyHen1m poc1ynnm a
anpe HTML (npeo6pasoaanne na c1pone knnen1a c noHouLk 1a6nnum c1nne XSLT) n a anpe PDF (npeo6pasoaanne 1ex xe pokyHen-
1oa a XSL-FO, a sa1eH a qopHa1 PDF).
Qo6po noxanoaa1u a mkony SQL
Ukona SQL
SQL - a1o nsmk, nannkuncn c1anpap1oH ANSI, npepnasnauennm pnn pa6o1m c 6asaHn pan-
nmx. Ha ukone SQL am ysnae1e, kak npnHenn1L SQL pnn nonyuennn poc1yna, sapannn n Hann-
nynnunn c pasnnunmHn anpaHn 6as pannmx, nanpnHep, Oracle, DB2, Sybase, Informix, Microsoft
SQL Server, Access, n ppyrnHn. Hsyua1e SQL!
Tec1 ua suauue SQL
HpoaepL1e caoe snanne SQL! Hpopn1e 1ec1 na snanne SQL!
Kuuru no SQL
Hun1e xopouyk knnry no SQL? Houn1a1e nau o6sop!
Ocuoam SQL: copepxauue
Baepeuue a SQL
1
(open link)
1o 1akoe SQL n kak on ncnonLsye1cn.
SELECT
2
(open link)
Kak a SQL npnHenne1cn ampaxenne SELECT pnn am6opa pannmx ns 1a6nnum.
WHERE
3
(open link)
Kak ncnonLsoaa1L onepa1op WHERE pnn sapannn kpn1epnea o16opa pannmx.
AND u OR
4
(open link)
Kak ncnonLsoaa1L ampaxennn AND n OR pnn coepnnennn neckonLknx ycnoan a onepa1ope
WHERE.
BETWEEN
5
(open link)
Kak ncnonLsoaa1L ampaxenne BETWEEN....AND pnn 1oro, u1o6m na1n pannme ns onpepenen-
noro pnanasona.
Ukonm KoucopuyHa W3C: Lkona SQL http://xml.nsu.ru
- 1 -
6: http://xml.nsu.ru/sql/sql_distinct.xml
7: http://xml.nsu.ru/sql/sql_orderby.xml
8: http://xml.nsu.ru/sql/sql_tryit.xml
9: http://xml.nsu.ru/sql/sql_insert.xml
10: http://xml.nsu.ru/sql/sql_update.xml
11: http://xml.nsu.ru/sql/sql_delete.xml
12: http://xml.nsu.ru/sql/sql_count.xml
13: http://xml.nsu.ru/sql/sql_functions.xml
14: http://xml.nsu.ru/sql/sql_groupby.xml
15: http://xml.nsu.ru/sql/sql_alias.xml
16: http://xml.nsu.ru/sql/sql_join.xml
17: http://xml.nsu.ru/sql/sql_create.xml
18: http://xml.nsu.ru/sql/sql_alter.xml
DISTINCT
6
(open link)
Kak ncnonLsoaa1L knkueaoe cnoao DISTINCT pnn nonyuennn ns kononkn 1onLko pasnnuak-
unxcn snauenn.
ORDER BY
7
(open link)
Kak ncnonLsoaa1L knkueaoe cnoao ORDER BY pnn nonyuennn pnpoa a sapannoH nopnpke.
Ynpaxueuun
8
(open link)
HpoaepL1e caon snannn SQL.
INSERT
9
(open link)
Kak ncnonLsye1cn ampaxenne INSERT pnn 1oro, u1o6m a 1a6nnuy ac1aan1L noam pnp.
UPDATE
10
(open link)
Kak ncnonLsye1cn ampaxenne UPDATE pnn o6noanennn nnn nsHenennn pnpoa a 1a6nnue.
DELETE
11
(open link)
Kak ncnonLsye1cn ampaxenne DELETE pnn ypanennn pnpoa a 1a6nnue.
COUNT
12
(open link)
B a1o rnaae o6Lncnne1cn ncnonLsoaanne ac1poennmx a SQL qynkun COUNT.
B1opan c1yneuu SQL: copepxauue
4yukuu SQL
13
(open link)
B a1o rnaae o6Lncnne1cn ncnonLsoaanne ac1poennmx a SQL qynkun.
GROUP BY u HAVING
14
(open link)
B a1o rnaae o6Lncnne1cn ncnonLsoaanne ac1poenno a SQL qynkunn GROUP BY.
HceapouHeua (alias)
15
(open link)
B a1o rnaae o6Lncnne1cn, kak ncnonLsyk1cn nceaponHena kononok n 1a6nnu.
O61epuueuue
16
(open link)
Kak ncnonLsoaa1L am6op nnqopHaunn 6onee, ueH ns opno 1a6nnum.
Cospauue u ypaneuue
17
(open link)
Kak cospaaa1L n ypann1L 6asm pannmx n 1a6nnum.
ALTER TABLE
18
(open link)
Kak ncnonLsye1cn ampaxenne ALTER TABLE pnn po6aanennn nnn ypanennn kononok a nHek-
uecn 1a6nnue.
Tec1 uasuauue SQL
Ukonm KoucopuyHa W3C: Lkona SQL http://xml.nsu.ru
- 2 -
19: http://www.w3schools.com/sql/sql_quiz.asp
20: http://www.w3schools.com/sql/sql_books.asp
Tec1 uasuauue SQL
19
(open link)
HpoaepL1e caoe snanne SQL!
Pecypcm no SQL
Kuuru no SQL
20
(open link)
Hue1e xopouyk knnry no SQL? Houn1a1e naue o6ospenne!
Baepeuue a SQL
SQL - s1o nsmk, nannmucn c1aupap1oH ANSI, npepuasuaveuum pnn pa6o1m c 6asaHu pau-
umx
H1o 1akoe SQL?
SQL pacunqpoamaae1cn kak nsmk c1pyk1ypnpoaannmx sanpocoa (Structured Query
Language).
SQL nosaonne1 pa6o1a1L c 6aso pannmx.
SQL - a1o nsmk, nannkuncn c1anpap1oH ANSI.
SQL nosaonne1 amnonnn1L sanpocm k 6ase pannmx.
SQL nosaonne1 nsaneka1L pannme ns 6asm.
SQL nosaonne1 ac1aann1L a 6asy pannmx noame sanncn.
SQL nosaonne1 ypann1L sanncn ns 6asm pannmx.
SQL nosaonne1 o6noann1L sanncn a 6ase pannmx.
SQL ouenL nerko nsyun1L.
SQL nanne1cn c1aupap1oH
SQL nanne1cn c1anpap1oH ANSI (American National Standards Institute) pnn cnc1eH poc1yna k
6asaH pannmx. Bmpaxennn SQL npnHennk1cn pnn nonyuennn n o6noanennn pannmx a 6ase
pannmx.
SQL pa6o1ae1 c 1aknHn 6asaHn pannmx, kak Access, DB2, Informix, Microsoft SQL Server,
Oracle, Sybase n HnornHn ppyrnHn (k coxanennk, 6onLunnc1ao ns a1nx cnc1eH nHek1 caon
co6c1aennme pacunpennn a1oro nsmka).
Ta6num
Basm pannmx copepxa1 o6Lek1m, ko1opme nasmaak1cn 1a6nnuaHn.
B a1nx 1a6nnuax copepxa1cn sanncn, a ko1opmx xpann1cn pannme. Ta6nnum npen1nqnunpyk1cn
no nHenaH (nanpnHep "Persons (nepconm)", "Orders (sakasm)", "Suppliers (noc1aaunkn)").
Ta6nnum coc1on1 ns kononok n pnpoa c pannmHn. Pnpm copepxa1 sanncn (nanpnHep, opna sa-
nncL pnn kaxporo uenoaeka). Kononkn copepxa1 pannme (nanpnHep, First Name (qaHnnnn),
Last Name (nHn), Address (appec), n City (ropop)).
Ukonm KoucopuyHa W3C: Lkona SQL http://xml.nsu.ru
- 3 -
Bo1 npnHep 1a6nnum, nHekue nHn "Persons (nepconm)":
LastName FirstName Address City
Hansen Ola Timoteivn 10 Sandnes
Svendson Tove Borgvn 23 Sandnes
Pettersen Kari Storgt 20 Stavanger
LastName, FirstName, Address, n City - a1o kononkn 1a6nnum. Pnpm copepxa1 3 sanncn c nn-
qopHaune o 3 nepconax.
3anpocm SQL
Hocpepc1aoH SQL Hm HoxeH pena1L sanpocm k 6ase pannmx n nonyua1L pesynL1a1 a 1a6nnuno
qopHe.
C noHouLk cnepykuero sanpoca:
SELECT LastName FROM Persons
Mm nonyunH cnepykun pesynL1a1:
LastName
Hansen
Svendson
Pettersen
O6pa1n1e annHanne: a neko1opmx cnc1eHax ynpaanennn 6asaHn pannmx a konue kaxporo SQL-
ampaxennn 1pe6ye1cn c1aan1L 1ouky c sann1o. Ha naue ukone Hm o6xopncn 6es a1oro.
Ynpaaneuue pauumHu a SQL
Kak nopckasmaae1 nasaanne a1oro nsmka, on npepnasnauen pnn amnonnennn sanpocoa. Ho
kpoHe 1oro, nsmk SQL copepxn1 cnn1akcnc pnn o6noanennn sannce, ac1aakn noamx sannce n
ypanennn cyuec1aykunx.
BHec1e koHanpm sanpocoa n o6noanennn o6pasyk1 nsmk ynpaanennn pannmHn DML (Data
Manipulation Language), ko1opm nanne1cn uac1Lk SQL:
SELECT - nsanekae1 pannme ns 6asm.
UPDATE - o6noanne1 pannme a 6ase.
DELETE - ypanne1 pannme ns 6asm.
INSERT - ac1aanne1 noame pannme a 6asy.
Onpepeneuue pauumx a SQL
Hsmk onpepenennn pannmx DDL (Data Definition Language) nanne1cn uac1Lk SQL, ko1opan no-
saonne1 cospaaa1L n ypann1L 1a6nnum a 6ase pannmx. KpoHe 1oro, Hm HoxeH sapaaa1L nn-
pekcm (knkun), onncmaa1L cansn Hexpy 1a6nnuaHn n naknapmaa1L ycnoann na 1a6nnum a 6ase
pannmx.
Ukonm KoucopuyHa W3C: Lkona SQL http://xml.nsu.ru
- 4 -
Han6onee aaxnmHn ampaxennnHn nsmka DDL a SQL nannk1cn:
CREATE TABLE - cospae1 noayk 1a6nnuy a 6ase pannmx.
ALTER TABLE - nsHenne1 1a6nnuy a 6ase pannmx.
DROP TABLE - ypanne1 1a6nnuy ns 6asm pannmx.
CREATE INDEX - cospae1 nnpekc (nonckoam nnpekc).
DROP INDEX - ypanne1 nnpekc.
SQL u ASP (Active Server Pages)
SQL nanne1cn aaxno uac1Lk ASP, no1oHy u1o ADO (Active Data Object), ko1opm npnHenne1cn
a ASP pnn pa6o1m c 6asaHn pannmx, ocnoamaae1cn na SQL.
Bmpaxeuue SELECT
Bmpaxeuue SELECT o16upae1 konouku pauumx a 6ase
Ta6ynupoaauum pesynu1a1 sanpoca coxpaune1cn a 1a6nue pesynu1a1a (oua uasmaae1cn pe-
synu1upymuH Huoxec1aoH)
Bmpaxeuue SELECT
Bmpaxenne SELECT am6npae1 onpepenennme kononkn pannmx a 6ase.
Ono ncnonLsye1cn no cnepykueHy ua6nony:
SELECT wmn_xononxw(wmena_xononox) FROM wmn_ianwu-
HpuHep: am6op konouok a 1a6nue
1o6m am6pa1L kononkn "LastName (qaHnnnn)" n "FirstName (nHn)", cnepye1 ncnonLsoaa1L
npnHepno 1akoe ampaxenne SELECT:
SELECT LastName,FirstName FROM Persons
Ta6nnua Persons (nepconm):
LastName FirstName Address City
Hansen Ola Timoteivn 10 Sandnes
Svendson Tove Borgvn 23 Sandnes
Pettersen Kari Storgt 20 Stavanger
PesynL1a1:
LastName FirstName
Hansen Ola
Svendson Tove
Pettersen Kari
Ukonm KoucopuyHa W3C: Lkona SQL http://xml.nsu.ru
- 5 -
HpuHep: am6op acex konouok
1o6m am6pa1L ace kononkn a 1a6nnue "Person", nyxno ncnonLsoaa1L aHec1o nHenn am6npae-
Ho kononkn cnHaon *, ao1 1ak:
SELECT * FROM Persons
PesynL1a1 sanpoca:
LastName FirstName Address City
Hansen Ola Timoteivn 10 Sandnes
Svendson Tove Borgvn 23 Sandnes
Pettersen Kari Storgt 20 Stavanger
Ta6nua pesynu1a1a
PesynL1a1 sanpoca SQL coxpanne1cn a pesynL1npykueH Hnoxec1ae. Ha nero Hoxno cHo1pe1L
kak na 1a6nnuy pannmx, a ko1opo copepxn1cn pesynL1a1 sanpoca. BonLunnc1ao nporpaHH pa-
6o1m c 6asaHn pannmx nosaonnk1 nepepanra1Lcn no pesynL1npykueHy Hnoxec1ay nocpepc1-
aoH nporpaHHnmx qynkun, nanpnHep, Move-To-First-Record (nepe1n k nepao sanncn), Get-
Record-Content (nokasa1L copepxnHoe sanncn), Move-To-Next-Record (nepe1n k cnepykue
sanncn) n 1.p.
Ha a1o ukone Hm ne paccHa1pnaaeH nopo6nme nporpaHHnme qynkunn.
Ecnn am xo1n1e ysna1L 6onLue o poc1yne k SQL-pannmH nocpepc1aoH amsoaa qynkun, noce-
1n1e nauy ukony ADO.
Hcnonusoaa1u nu 1ovky c sann1o nocne ampaxeuu SQL?
Bo Hnornx pykoaopc1aax no SQL nac1anaak1, u1o6m am acerpa saaepuann ampaxenne SQL 1ou-
ko c sann1o.
D1o ne npaannLno. Ho 1ouka c sann1o nanne1cn c1anpap1nmH cnoco6oH saaepuennn ampaxe-
nnn SQL ( n paspenennn neckonLknx ampaxenn) a cnc1eHax, a ko1opmx nosaonne1cn amnonne-
nne neckonLknx ampaxenn SQL a 1euennn opnoro o6pauennn k cepaepy 6asm pannmx.
Onepa1op WHERE
Onepa1op WHERE npuHeune1cn pnn sapauun kpu1epuea o16opa
Onepa1op WHERE
1o6m am6npa1L pannme a 1a6nnue no onpepenennoHy kpn1epnk, a ampaxenne SELECT Hoxno
po6aan1L onepa1op WHERE no cnepykueHy ua6nony:
SELECT wmn_xononxw FROM wmn_ianwu-
WHERE wmn_xononxw ycnoswe snauenwe
Ukonm KoucopuyHa W3C: Lkona SQL http://xml.nsu.ru
- 6 -
C onepa1opoH WHERE Hoxno ncnonLsoaa1L cnepykune ycnoann:
Onepa1op Ycnoaue
= Paano
<> He paano
> BonLue ueH
< MenLue ueH
>= BonLue nnn paano
<= MenLue nnn paano
BETWEEN Hpnnapnexn1 sapannoHy npoHexy1ky, aknkuan ero kpan
LIKE O6Lncnne1cn nnxe
O6pa1n1e annHanne: a neko1opmx aec1nnx SQL onepa1op <> (ne paano) Hoxe1 6m1L sanncan
kak !=.
HpuHep: am6op nepcou (persons) us onpepeneuuoro ropopa (city)
1o6m am6pa1L ns 1a6nnum 1onLko sanncn o nepconax, ko1opme xnay1 a ropope Sandnes, cne-
pye1 po6aan1L a ampaxenne SELECT onepa1op WHERE, ao1 1ak:
SELECT * FROM Persons WHERE City='Sandnes'
Ta6nnua Persons (nepconm):
LastName FirstName Address City Year
Hansen Ola Timoteivn 10 Sandnes 1951
Svendson Tove Borgvn 23 Sandnes 1978
Svendson Stale Kaivn 18 Sandnes 1980
Pettersen Kari Storgt 20 Stavanger 1960
PesynL1a1 sanpoca:
LastName FirstName Address City Year
Hansen Ola Timoteivn 10 Sandnes 1951
Svendson Tove Borgvn 23 Sandnes 1978
Svendson Stale Kaivn 18 Sandnes 1980
Hcnonusoaauue kaamvek
O6pa1n1e annHanne, u1o a a1oH npnHepe Hm snauenne, sanncannoe a ycnoane, saknkunnn a
opnnapnme kaamukn. B SQL opnnapnme kaamukn ncnonLsye1cn pnn sapannn 1ekc1oamx snaue-
nn. BonLunnc1ao cnc1eH ynpaanennn 6asaHn pannmx nosaonnk1 ncnonLsoaa1L n paonme ka-
Ukonm KoucopuyHa W3C: Lkona SQL http://xml.nsu.ru
- 7 -
amukn. ncnoame snauennn ne nyxno saknkua1L a kaamukn.
[nn 1ekc1oamx snauenn:
Boi iax npaswnsno:
SELECT * FROM Persons WHERE FirstName='Tove'
Boi iax ne npaswnsno:
SELECT * FROM Persons WHERE FirstName=Tove
[nn uncnoamx snauenn:
Boi iax npaswnsno:
SELECT * FROM Persons WHERE Year>1965
Boi iax ne npaswnsno:
SELECT * FROM Persons WHERE Year>'1965'
Ycnoaue LIKE
Ycnoane LIKE npnHenne1cn pnn sapannn noncka a kononke no onpepenennoHy ua6nony
(na11epny).
Cnn1akc ncnonLsye1cn 1ako:
SELECT wmn_xononxw FROM wmn_ianwu-
WHERE wmn_xononxw LIKE naiiepn
B nauane n a konue na11epna pnn sapannn nk6mx 6yka a na11epne Hoxno ncnonLsoaa1L cnHaon
"%".
HpuHep: am6op nepcoum no na11epuy uHeuu nepcoum
D1o ampaxenne SQL am6epe1 acex nepcon, nHena ko1opmx naunnak1cn c 6ykam 'O':
SELECT * FROM Persons WHERE FirstName LIKE 'O%'
D1o ampaxenne SQL am6epe1 acex nepcon, nHena ko1opmx konuak1cn 6ykao 'a':
SELECT * FROM Persons WHERE FirstName LIKE '%a'
D1o ampaxenne SQL am6epe1 acex nepcon, a nHenax ko1opmx nHee1cn koH6nnaunn 6yka 'la':
SELECT * FROM Persons WHERE FirstName LIKE '%la%'
Bo acex a1nx npnHepax Hm nonyunH pesynL1a1:
LastName FirstName Address City Year
Hansen Ola Timoteivn 10 Sandnes 1951
Onepa1opm AND u OR
Onepa1op WHERE
Onepa1opm AND n OR nosaonnk1 coepnnn1L neckonLko ycnoan a onepa1ope WHERE.
Onepa1op AND nosaonne1 am6pa1L pnp, ecnn pnn nero amnonnnk1cn ace nepeuncnennme ycno-
Ukonm KoucopuyHa W3C: Lkona SQL http://xml.nsu.ru
- 8 -
ann. Onepa1op OR nosaonne1 am6pa1L pnp, ecnn pnn nero amnonnne1cn xo1n 6m opno ns nepe-
uncnennmx ycnoan.
Opuruuanuuan 1a6nua (ucnonusye1cn a s1ux npuHepax)
LastName FirstName Address City
Hansen Ola Timoteivn 10 Sandnes
Svendson Tove Borgvn 23 Sandnes
Svendson Stephen Kaivn 18 Sandnes
HpuHep 1
Onepa1op AND ncnonLsye1cn pnn am6opa acex nepcon, uLn nHena paanm "Tove", a qaHnnnn
paanm "Svendson":
SELECT * FROM Persons
WHERE FirstName='Tove'
AND LastName='Svendson'
PesynL1a1 sanpoca:
LastName FirstName Address City
Svendson Tove Borgvn 23 Sandnes
HpuHep 2
Onepa1op OR ncnonLsye1cn pnn am6opa acex nepcon, uLn nHena paanm "Tove" nnn uLn qaHn-
nnn paanm "Svendson":
SELECT * FROM Persons
WHERE firstname='Tove'
OR lastname='Svendson'
PesynL1a1 sanpoca:
LastName FirstName Address City
Svendson Tove Borgvn 23 Sandnes
Svendson Stephen Kaivn 18 Sandnes
HpuHep 3
KpoHe 1oro, Hoxno koH6nnnpoaa1L onepa1opm AND and OR (pnn qopHnpoaannn cnoxnmx ampa-
xenn ncnonLsyk1cn cko6kn):
SELECT * FROM Persons WHERE
(FirstName='Tove' OR FirstName='Stephen')
Ukonm KoucopuyHa W3C: Lkona SQL http://xml.nsu.ru
- 9 -
AND LastName='Svendson'
PesynL1a1 sanpoca:
LastName FirstName Address City
Svendson Tove Borgvn 23 Sandnes
Svendson Stephen Kaivn 18 Sandnes
Onepa1op BETWEEN ... AND
Onepa1op BETWEEN ... AND
Onepa1op BETWEEN ... AND am6npae1 pannme a onpepenennoH pnanasone, aknkuan ero kpan.
3nauennn, o1Heuakune kpan pnanasona, Hory1 6m1L uncnoamHn, 1ekc1oamHn nnn a qopHa1e
pa1m.
SELECT wmn_xononxw FROM wmn_ianwu-
WHERE wmn_xononxw
BETWEEN snauenwe_1 AND snauenwe_2
Opuruuanuuan 1a6nua (ucnonusye1cn a s1ux npuHepax)
LastName FirstName Address City
Hansen Ola Timoteivn 10 Sandnes
Svendson Tove Borgvn 23 Sandnes
Nordmann Anna Neset 18 Sandnes
Pettersen Kari Storgt 20 Stavanger
HpuHep 1
[nn 1oro, u1o6m am6pa1L ace nepconm, qaHnnnn ko1opmx no anqaan1y naxopn1cn Hexpy
"Hansen" n "Pettersen" (aknkuan a1n qaHnnnn), ncnonLsye1cn cnepykun SQL-sanpoc:
SELECT * FROM Persons WHERE LastName
BETWEEN 'Hansen' AND 'Pettersen'
PesynL1a1 sanpoca:
LastName FirstName Address City
Hansen Ola Timoteivn 10 Sandnes
Nordmann Anna Neset 18 Sandnes
Pettersen Kari Storgt 20 Stavanger
Ukonm KoucopuyHa W3C: Lkona SQL http://xml.nsu.ru
- 10 -
HpuHep 2
[nn 1oro, u1o6m am6pa1L acex nepcon, uLn qaHnnnn nexa1 ane ykasannoro a npepmpyueH
npnHepe pnanasona, ncnonLsye1cn onepa1op NOT:
SELECT * FROM Persons WHERE LastName
NOT BETWEEN 'Hansen' AND 'Pettersen'
PesynL1a1 sanpoca:
LastName FirstName Address City
Svendson Tove Borgvn 23 Sandnes
SELECT DISTINCT
Knmveaoe cnoao DISTINCT ucnonusye1cn, korpa uyxuo nonyvu1u 1onuko pasnuvamuecn
suaveuun.
Knmveaoe cnoao DISTINCT
SQL-ampaxenne SELECT aosapauae1 nnqopHaunk ns kononok 1a6nnum. Ho u1o pena1L, ecnn
Hm xo1nH o1o6pa1L 1onLko pasnnuakunecn aneHen1m?
B SQL pnn a1oro nyxno k ampaxennk SELECT po6aan1L knkueaoe cnoao DISTINCT, ncnonLsyn
cnepykun cnn1akcnc:
SELECT DISTINCT wmn(wmena)_xononxw FROM wmn_ianwu-
HpuHep: am6op koHnauu us 1a6num sakasoa
Hyc1L Hm nHeeH npoc1yk 1a6nnuy Orders, a ko1opo ykasanm nasaannn koHnann n noHepa sa-
kasoa:
Company OrderNumber
Sega 3412
W3Schools 2312
Trio 4678
W3Schools 6798
D1o SQL-ampaxennet
SELECT Company FROM Orders
pac1 1ako pesynL1a1:
Company
Sega
Ukonm KoucopuyHa W3C: Lkona SQL http://xml.nsu.ru
- 11 -
W3Schools
Trio
W3Schools
O6pa1n1e annHanne, u1o nHn koHnannn W3Schools qnrypnpye1 a pesynL1a1e sanpoca ne opnn
pas. Hnorpa naH a1oro ne nyxno.
HpuHep: am6op pasnuvumx koHnauu us 1a6num sakasoa
A ao1 a1o SQL-ampaxennet
SELECT DISTINCT Company FROM Orders
pac1 ppyro pesynL1a1:
Company
Sega
W3Schools
Trio
O6pa1n1e annHanne, u1o 1enepL nHn koHnannn W3Schools qnrypnpye1 a pesynL1a1e sanpoca
1onLko opnn pas. D1o 1o, u1o nyxno.
Knmveaoe cnoao ORDER BY
Knmveaoe cnoao ORDER BY npuHeune1cn pnn cop1upoaku u ynopnpovuaauun pesynu1a1oa sa-
npoca
Cop1upoaka pnpoa
Konc1pykunn ORDER BY npnHenne1cn pnn cop1npoakn pnpoa.
Ta6nnua Orders (sakasm):
Company OrderNumber
Sega 3412
ABC Shop 5678
W3Schools 2312
W3Schools 6798
HpuHep 1
O1o6paxenne koHnann a anqaan1noH nopnpke:
SELECT Company, OrderNumber FROM Orders
Ukonm KoucopuyHa W3C: Lkona SQL http://xml.nsu.ru
- 12 -
ORDER BY Company
PesynL1a1 sanpoca:
Company OrderNumber
ABC Shop 5678
Sega 3412
W3Schools 6798
W3Schools 2312
HpuHep 2
O1o6paxenne koHnann a anqaan1noH nopnpke n noHepa sakasoa a nopnpke aospac1annn:
SELECT Company, OrderNumber FROM Orders
ORDER BY Company, OrderNumber
PesynL1a1 sanpoca:
Company OrderNumber
ABC Shop 5678
Sega 3412
W3Schools 2312
W3Schools 6798
HpuHep 3
O1o6paxenne koHnann a o6pa1noH anqaan1noH nopnpke:
SELECT Company, OrderNumber FROM Orders
ORDER BY Company DESC
PesynL1a1 sanpoca:
Company OrderNumber
W3Schools 6798
W3Schools 2312
Sega 3412
ABC Shop 5678
Hoynpaxun1ecu a SQL-sanpocax
3pecu am cHoxe1e noynpaxun1ucn a cospauuu SQL-sanpocoa.
Ukonm KoucopuyHa W3C: Lkona SQL http://xml.nsu.ru
- 13 -
Mm 6ypeH ncnonLsoaa1L 1a6nnuy Customers a 6ase pannmx Northwind:
CompanyName ContactName Address City
Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin
Antonio Moreno Taquerna Antonio Moreno Mataderos 2312 Mxico D.F.
Berglunds snabbkup Christina Berglund Berguvsvpgen 8 Lulee
Ernst Handel Roland Mendel Kirchgasse 6 Graz
North/South Simon Crowther South House 300 Queensbridge London
Romero y tomillo Alejandra Camino Gran Vna, 1 Madrid
Simons bistro Jytte Petersen Vinbxltet 34 Kubenhavn
The Big Cheese Liz Nixon 89 Jefferson Way Suite 2 Portland
Wolski Zajazd Zbyszek Piestrzeniewicz ul. Filtrowa 68 Warszawa
Honpo6y1e pasnuvume sanpocm
HocHo1pn1e, kak pec1aye1 SQL: ckonnpy1e SQL-sanpocm, npnaepennme specL n ac1aaL1e nx a
1ekc1oaoe none. Moxno nonpo6oaa1L n caon co6c1aennme sanpocm:
SELECT * FROM customers
SELECT CompanyName, ContactName
FROM customers
SELECT * FROM customers
WHERE companyname LIKE 'a%'
SELECT CompanyName, ContactName
FROM customers
WHERE CompanyName > 'g'
AND ContactName > 'g'
- ! -
[annoe nn1epak1nanoe copepxanne pokyHen1a Hoxe1 6m1L npepc1aaneno 1onLko a aapnan1e on-nan. On naxopn1cn na http://xml.nsu.ru.
Bmpaxeuue INSERT INTO
Bc1aaka uoamx pnpoa
Bmpaxenne INSERT INTO ac1aanne1 a 1a6nnuy noame pnpm:
INSERT INTO wmn_ianwu-
VALUES (snauenwe_1, snauenwe_2,....)
KpoHe 1oro, am Hoxe1e konkpe1nsnpoaa1L kononkn, a ko1opme am xo1n1e ac1aan1L pannme:
Ukonm KoucopuyHa W3C: Lkona SQL http://xml.nsu.ru
- 14 -
INSERT INTO wmn_ianwu- (xononxa_1, xononxa_2,...)
VALUES (snauenwe_1, snauenwe_2,....)
Bc1aaka uoaoro pnpa
Bo1 1a6nnua Persons:
LastName FirstName Address City
Pettersen Kari Storgt 20 Stavanger
A ao1 SQL-ampaxenne:
INSERT INTO Persons
VALUES ('Hetland', 'Camilla', 'Hagabakka 24', 'Sandnes')
Mm nonyunH ao1 1ako pesynL1a1:
LastName FirstName Address City
Pettersen Kari Storgt 20 Stavanger
Hetland Camilla Hagabakka 24 Sandnes
Bc1aaka pauumx a onpepeneuume konouku
Bo1 1a6nnua Persons:
LastName FirstName Address City
Pettersen Kari Storgt 20 Stavanger
Hetland Camilla Hagabakka 24 Sandnes
A ao1 SQL-ampaxenne:
INSERT INTO Persons (LastName, Address)
VALUES ('Rasmussen', 'Storgt 67')
Mm nonyunH ao1 1ako pesynL1a1:
LastName FirstName Address City
Pettersen Kari Storgt 20 Stavanger
Hetland Camilla Hagabakka 24 Sandnes
Rasmussen Storgt 67
Bmpaxeuue UPDATE
O6uoaneuue pnpoa
Ukonm KoucopuyHa W3C: Lkona SQL http://xml.nsu.ru
- 15 -
Bmpaxenne UPDATE o6noanne1 nnn nsHenne1 pnpm:
UPDATE wmn_ianwu- SET wmn_xononxw = nosoe_snauenwe
WHERE wmn_xononxw = nexoiopoe_snauenwe
Ta6nua Person
LastName FirstName Address City
Nilsen Fred Kirkegt 56 Stavanger
Rasmussen Storgt 67
O6uoaneuue opuo konouku a pnpe
Mm xo1nH po6aan1L nHn nepconm, qaHnnnn ko1opo "Rasmussen":
UPDATE Person SET FirstName = 'Nina'
WHERE LastName = 'Rasmussen'
Mm nonyunH ao1 1ako pesynL1a1:
LastName FirstName Address City
Nilsen Fred Kirkegt 56 Stavanger
Rasmussen Nina Storgt 67
O6uoaneuue ueckonukux konouok a pnpe
TenepL Hm xo1nH nsHenn1L appec n po6aan1L nasaanne ropopa:
UPDATE Person
SET Address = 'Stien 12', City = 'Stavanger'
WHERE LastName = 'Rasmussen'
Mm nonyunH ao1 1ako pesynL1a1:
LastName FirstName Address City
Nilsen Fred Kirkegt 56 Stavanger
Rasmussen Nina Stien 12 Stavanger
Bmpaxeuue DELETE
Ypaneuue pnpoa
Bmpaxenne DELETE nosaonne1 ypann1L pnpm ns 1a6nnum:
DELETE FROM wmn_ianwu- WHERE wmn_xononxw = snauenwe
Ukonm KoucopuyHa W3C: Lkona SQL http://xml.nsu.ru
- 16 -
Ta6nua Person
LastName FirstName Address City
Nilsen Fred Kirkegt 56 Stavanger
Rasmussen Nina Stien 12 Stavanger
Ypaneuue pnpa
YpannH sanncL o nepcone Nina Rasmussen:
DELETE FROM Person WHERE LastName = 'Rasmussen'
Mm nonyunH ao1 1ako pesynL1a1:
LastName FirstName Address City
Nilsen Fred Kirkegt 56 Stavanger
4yukuu COUNT
B SQL uHem1cn ac1poeuume qyukuu pnn nopcve1a konuvec1aa sanuce a 6ase pauumx
Cuu1akcuc qyukuu nopcve1a
Cnn1akcnc ac1poennmx qynkun COUNT amrnnpn1 1ak:
SELECT COUNT(xononxa) FROM ianwua
4yukun COUNT(*)
Oynkunn COUNT(*) aosapauae1 uncno am6pannmx pnpoa a pesynL1a1e sanpoca.
Hyc1L y nac nHee1cn 1a6nnua Persons:
Name Age
Hansen, Ola 34
Svendson, Tove 45
Pettersen, Kari 19
D1o1 sanpoc aosapa1n1 uncno pnpoa a 1a6nnue:
SELECT COUNT(*) FROM Persons
Mm nonyunH 1ako pesynL1a1:
3
A a1o1 sanpoc aosapa1n1 uncno nepcon, ko1opmH 6onLue 20 ne1:
Ukonm KoucopuyHa W3C: Lkona SQL http://xml.nsu.ru
- 17 -
SELECT COUNT(*) FROM Persons WHERE Age>20
Mm nonyunH 1ako pesynL1a1:
2
4yukun COUNT(konouka)
Oynkunn COUNT(kononka) aosapauae1 uncno pnpoa a sapanno kononke, uLe snauenne a a1o
kononke ne paano nyc1oHy (NULL).
Hyc1L y nac nHee1cn 1a6nnua Persons:
Name Age
Hansen, Ola 34
Svendson, Tove 45
Pettersen, Kari
B pesynL1a1e a1oro sanpoca Hm napeH konnuec1ao nepcon, y ko1opmx a none "Age" 1a6nnum
"Persons" amc1aaneno kakoe-nn6ypL snauenne:
SELECT COUNT(Age) FROM Persons
Mm nonyunH 1ako pesynL1a1:
2
Oynkunn COUNT(column) ropn1cn pnn noncka kononok, a ko1opmx ne amc1aaneno kakoe-1o sna-
uenne. O6pa1n1e a a1oH npnHepe annHanne na 1o, u1o pesynL1a1 HenLue na epnnnuy, ueH o6-
uee uncno kononok a 1a6nnue, no1oHy u1o y opno ns nepcon snauenne aospac1a o1cy1c1aye1.
COUNT DISTINCT
B ampaxennn COUNT Hoxno ncnonLsoaa1L knkueaoe cnoao DISTINCT n 1orpa 6ypy1 nopcun-
1anm 1onLko pasnnuakunecn pesynL1a1m.
Cnn1akcnc npn a1oH 1ako:
SELECT DISTINCT COUNT(xononxa(xononxw)) FROM ianwua
Hyc1L y nac nHee1cn 1a6nnua Orders:
Company OrderNumber
Sega 3412
W3Schools 2312
Trio 4678
W3Schools 6798
Hpn sanpoce SQL:
SELECT COUNT(Company) FROM Orders
Mm nonyunH 1ako pesynL1a1:
Ukonm KoucopuyHa W3C: Lkona SQL http://xml.nsu.ru
- 18 -
4
A ao1 c a1nH sanpocoH SQL:
SELECT DISTINCT COUNT(Company) FROM Orders
Mm nonyunH 1ako pesynL1a1:
3
4yukuu SQL
B SQL uHee1cn Huoxec1ao ac1poeuumx qyuku pnn nopcve1oa u amvucneuu
Cuu1akcuc qyuku
Cnn1akcnc ac1poennmx a SQL qynkun 1akoa:
SELECT function(xononxa) FROM ianwua
Opuruuanuuan 1a6nua (ucnonusye1cn a npuHepax)
Name Age
Hansen, Ola 34
Svendson, Tove 45
Pettersen, Kari 19
4yukun AVG(konouka)
Oynkunn AVG aosapauae1 cpepnee snauenne kononkn a am6panno o6nac1n. Hyc1me snauennn
ne yun1maak1cn a nopcue1e cpepnero.
HpuHep 1
B a1oH npnHepe aosapauae1cn cpepnee snauenne aospac1a nepcon ns 1a6nnum Persons:
SELECT AVG(Age) FROM Persons
Mm nonyunH 1ako pesynL1a1:
32.67
HpuHep 2
B a1oH npnHepe aosapauae1cn cpepnee snauenne aospac1a nepcon ns 1a6nnum Persons, ko1o-
pme c1apue 20 ne1:
SELECT AVG(Age) FROM Persons where Age>20
Mm nonyunH 1ako pesynL1a1:
39.5
4yukun MAX(konouka)
Ukonm KoucopuyHa W3C: Lkona SQL http://xml.nsu.ru
- 19 -
Oynkunn MAX aosapauae1 HakcnHanLnoe snauenne kononkn. Hyc1me snauennn ne yun1maa-
k1cn.
HpuHep
SELECT MAX(Age) FROM Persons
Mm nonyunH 1ako pesynL1a1:
45
4yukun MIN(konouka)
Oynkunn MIN aosapauae1 HnnnHanLnoe snauenne kononkn. Hyc1me snauennn ne yun1maak1cn.
HpuHep
SELECT MIN(Age) FROM Persons
Mm nonyunH 1ako pesynL1a1:
19
O6pa1n1e annHanne: Oynkunn MIN n MAX Hoxno ncnonLsoaa1L n a 1ekc1oamx kononkax, u1o6m
na1n nepame nnn nocnepnne snauennn no anqaan1noHy nopnpky.
4yukun SUM(konouka)
Oynkunn SUM aosapauae1 o6uyk cyHHy snauenn a kononke a am6panno o6nac1n. Hyc1me
snauennn a amuncnennnx ne yun1maak1cn.
HpuHep 1
B a1oH npnHepe Hm nonyunH cyHHapnm aospac1 nepcon ns 1a6nnum Person:
SELECT SUM(Age) FROM Persons
Mm nonyunH pesynL1a1:
98
HpuHep 2
B a1oH npnHepe Hm nonyunH cyHHapnm aospac1 nepcon ns 1a6nnum Person, ue aospac1
6onLue 20 ne1:
SELECT SUM(Age) FROM Persons where Age>20
Mm nonyunH pesynL1a1:
79
Knmveame cnoaa GROUP BY u HAVING
4yukunH arperupoaauun (uanpuHep, SUM) vac1o ueo6xopuHa pononuu1enuuan qyukuo-
uanuuoc1u, ko1opan po6aanne1cn knmveamH cnoaoH GROUP BY
Knmveame cnoaa GROUP BY
Knkueame cnoaa GROUP BY 6mnn po6aanenm a SQL, nockonLky qynkunn arpernpoaannn
Ukonm KoucopuyHa W3C: Lkona SQL http://xml.nsu.ru
- 20 -
(nanpnHep, SUM) aosapauak1 koH6nnaunk snauenn ace kononkn kaxpm pas, korpa amsm-
aae1cn a1a qynkunn.
Bes pononnn1enLno qynkunonanLnoc1n, ko1opyk po6aanne1 knkueaoe cnoao GROUP BY, na-
npnHep, neaosHoxno na1n cyHHy snauenn a kako-nn6o rpynne snauenn a konoke.
Cnn1akcnc knkueaoro cnoaa GROUP BY 1akoa:
SELECT xononxa,SUM(xononxa)
FROM ianwua GROUP BY xononxa
HpuHep ucnonusoaauun knmveaoro cnoaa GROUP BY
Bo1 1a6nnua npopax Sales:
Company Amount
W3Schools 5500
IBM 4500
W3Schools 7100
Hpn sanpoce:
SELECT Company, SUM(Amount) FROM Sales
Mm nonyunH 1ako pesynL1a1:
Company SUM(Amount)
W3Schools 17100
IBM 17100
W3Schools 17100
Hpnaepennm naHn npnHep kopa sanpoca ne aepen, nockonLky aosapauennan kononka ne na-
nne1cn uac1Lk koH6nnaunn-arpera1a. HcnonLsyn knkueaoe cnoao GROUP BY ncnpaan1 oun6ky,
kak a a1oH SQL-sanpoce:
SELECT Company,SUM(Amount) FROM Sales
GROUP BY Company
PesynL1a1:
Company Amount
W3Schools 12600
IBM 4500
Knmveaoe cnoao HAVING
Knkueaoe cnoao HAVING 6mno po6aaneno a SQL nockonLky knkueaoe cnoao WHERE ne Hoxe1
6m1L ncnonLsoaano coaHec1no c qynkunnHn arpernpoaannn (nanpnHep, SUM).
Bes knkueaoro cnoaa HAVING 6mno 6m neaosHoxno npoaepn1L snauennn, nonyuaeHme a pe-
Ukonm KoucopuyHa W3C: Lkona SQL http://xml.nsu.ru
- 21 -
synL1a1e pec1ann qynkunn, na kakoe-nn6o ycnoane.
Cnn1aknc knkueaoro cnoaa HAVING 1akoa:
SELECT xononxa,SUM(xononxa) FROM ianwua
GROUP BY xononxa
HAVING SUM(xononxa) ycnoswe snauenwe
Bo1 1a6nnua npopax Sales:
Company Amount
W3Schools 5500
IBM 4500
W3Schools 7100
Hpn sanpoce:
SELECT Company,SUM(Amount) FROM Sales
GROUP BY Company HAVING SUM(Amount)>10000
Mm nonyunH 1ako pesynL1a1:
Company SUM(Amount)
W3Schools 12600
HceapouHeua (alias)
B SQL pnn uHeu 1a6nu u konouok Hoxuo ucnonusoaa1u nceapouHeua
HceapouHn konouku
Cnn1akcnc 1akoa:
SELECT xononxa AS nceszowmn_xononxw FROM ianwua
HceapouHn 1a6num
Cnn1akcnc 1akoa:
SELECT xononxa FROM ianwua AS nceszowmn_ianwu-
HpuHep: ucnonusoaauue nceapouHeuu konouku
Bo1 1a6nnua Persons:
LastName FirstName Address City
Hansen Ola Timoteivn 10 Sandnes
Svendson Tove Borgvn 23 Sandnes
Pettersen Kari Storgt 20 Stavanger
Ukonm KoucopuyHa W3C: Lkona SQL http://xml.nsu.ru
- 22 -
A ao1 sanpoc SQL
SELECT LastName AS Family, FirstName AS Name
FROM Persons
PesynL1a1:
Family Name
Hansen Ola
Svendson Tove
Pettersen Kari
HpuHep: ucnonusoaauue nceapouHeuu 1a6num
Bo1 1a6nnua Persons:
LastName FirstName Address City
Hansen Ola Timoteivn 10 Sandnes
Svendson Tove Borgvn 23 Sandnes
Pettersen Kari Storgt 20 Stavanger
A ao1 sanpoc SQL
SELECT LastName, FirstName
FROM Persons AS Employees
PesynL1a1:
Ta6nnua Employees:
Family Name
Hansen Ola
Svendson Tove
Pettersen Kari
O61epuueuue
O61epuueuun u knmvu
Hnorpa pnn nonyuennn pesynL1a1a naH nyxno o6Lepnnn1L pae 1a6nnum. Torpa naH cnepye1 am-
nonnn1L o6Lepnnenne.
Ta6nnum a 6ase pannmx Hory1 6m1L coo1necenm ppyr c ppyroH c noHouLk knkue. Hepanunm
knku (primary key) - a1o kononka, a ko1opo copepxn1cn ynnkanLnoe snauenne pnn kaxporo
pnpa. Ee nasnauenne - noHouL cansa1L pannme ns pasnmx 1a6nnu aHec1e 6es nonnoro py6nnpo-
aannn acex pannmx ns o6onx 1a6nnu.
Ukonm KoucopuyHa W3C: Lkona SQL http://xml.nsu.ru
- 23 -
B npnaepenno nnxe 1a6nnue Employees, kononka ID nanne1cn nepanunmH knkuoH, a1o osna-
uae1, u1o paa pasnnunmx pnpa ne Hory1 nHe1L opnnakoam ID. Hpen1nqnka1op ID pasnnuae1
payx nepcon, paxe ecnn y nnx opnnakoame nHena.
Bsrnnnya na npnHep 1a6nnum, npnaepennm nnxe, am saHe1n1e, u1o:
Kononka ID nanne1cn nepanunmH knkuoH 1a6nnum Employees.
Kononka ID a 1a6nnue Orders ncnonLsye1cn pnn o6pauennn k nepconaH ns 1a6nnum
Employees 6es ncnonLsoaannn nx nHen.
Opuruuanuume 1a6num (ucnonusym1cn a npuHepax)
Bo1 1a6nnua Employees:
ID Name
01 Hansen, Ola
02 Svendson, Tove
03 Svendson, Stephen
04 Pettersen, Kari
Bo1 1a6nnua Orders:
ID Product
01 Printer
02 Table
03 Chair
O6paeuue k payH 1a6nuaH
Bm Hoxe1e am6npa1L pannme ns payx 1a6nnu, o6pauancL k payH 1a6nnuaH, ao1 1ak:
HpuHep 1
K1o sakasan npopyk1 n u1o nHenno 6mno sakasano?
SELECT Employees.Name, Orders.Product
FROM Employees, Orders
WHERE Employees.ID = Orders.ID
PesynL1a1:
Name Product
Hansen, Ola Printer
Svendson, Stephen Table
Svendson, Stephen Chair
HpuHep 2
Ukonm KoucopuyHa W3C: Lkona SQL http://xml.nsu.ru
- 24 -
K1o sakasan npnn1ep?
SELECT Employees.Name
FROM Employees, Orders
WHERE Employees.ID = Orders.ID
AND Orders.Product = 'Printer'
PesynL1a1:
Name
Hansen, Ola
Hcnonusoaauue o61epuueuu
Takxe Hm HoxeH am6npa1L pannme ns payx 1a6nnu, ncnonLsyn knkueaoe cnoao JOIN, ao1 1ak
(nyuue pena1L nHenno 1ak):
HpuHep INNER JOIN
Cnn1akcnc:
SELECT none_1, none_2, none_3
FROM nepsan_ianwua
INNER JOIN siopan_ianwua
ON nepsan_ianwua.xnxuesoe_none
= siopan_ianwua.snemnee_xnxuesoe_none
K1o sakasan npopyk1 n kako nHenno?
SELECT Employees.Name, Orders.Product
FROM Employees
INNER JOIN Orders
ON Employees.ID = Orders.ID
INNER JOIN aosapauae1 ace pnpm ns o6onx 1a6nnu, a ko1opmx nHee1cn coo1ae1c1ane. Ecnn a
1a6nnue Employees ec1L pnpm, ko1opme ne nHek1 coo1ae1c1ann a 1a6nnue Orders, a1n pnpm ne
ampak1cn a pesynL1a1.
PesynL1a1:
Name Product
Hansen, Ola Printer
Svendson, Stephen Table
Svendson, Stephen Chair
HpuHep LEFT JOIN
Cnn1akcnc:
SELECT none_1, none_2, none_3
FROM nepsan_ianwua
LEFT JOIN siopan_ianwua
ON nepsan_ianwua.xnxuesoe_none
= siopan_ianwua.snemnee_xnxuesoe_none
Ukonm KoucopuyHa W3C: Lkona SQL http://xml.nsu.ru
- 25 -
Hepeuncnn1L acex pa6o1nnkoa n nx sakasm - ecnn ec1L.
SELECT Employees.Name, Orders.Product
FROM Employees
LEFT JOIN Orders
ON Employees.ID = Orders.ID
LEFT JOIN aosapauae1 ace pnpm ns nepao 1a6nnum Employees, paxe ecnn kakoHy-1o pnpy ne1
coo1ae1c1ann a 1a6nnue Orders. [axe ecnn a 1a6nnue Employees ec1L pnpm, pnn ko1opmx a
1a6nnue Orders ne1 coo1ae1c1an, onn ace paano 6ypy1 amaepenm a pesynL1a1.
PesynL1a1:
Name Product
Hansen, Ola Printer
Svendson, Tove
Svendson, Stephen Table
Svendson, Stephen Chair
Pettersen, Kari
HpuHep RIGHT JOIN
Cnn1akcnc:
SELECT none_1, none_2, none_3
FROM nepsan_ianwua
RIGHT JOIN siopan_ianwua
ON nepsan_ianwua.xnxuesoe_none
= siopan_ianwua.snemnee_xnxuesoe_none
Hepeuncnn1L ace sakasm n k1o nHenno sakasan - ecnn sakasan.
SELECT Employees.Name, Orders.Product
FROM Employees
RIGHT JOIN Orders
ON Employees.ID = Orders.ID
RIGHT JOIN aosapauae1 ace pnpm ns 1a6nnum Orders, paxe ecnn nH ne1 coo1ae1c1an a 1a6-
nnue Employee. Ecnn a 1a6nnue Orders o6napyxnaak1cn pnpm, ko1opmH a 1a6nnue Employees
ne1 coo1ae1c1an, onn ace paano amaopn1cn a pesynL1a1.
PesynL1a1:
Name Product
Hansen, Ola Printer
Svendson, Stephen Table
Svendson, Stephen Chair
HpuHep 2
K1o sakasan npnn1ep?
SELECT Employees.Name
FROM Employees
Ukonm KoucopuyHa W3C: Lkona SQL http://xml.nsu.ru
- 26 -
INNER JOIN Orders
ON Employees.ID = Orders.ID
WHERE Orders.Product = 'Printer'
PesynL1a1:
Name
Hansen, Ola
Cospauue 6asm pauumx u 1a6num
Cospauue 6asm pauumx
[nn cospannn 6asm pannmx ncnonLsye1cn cnepykun cnn1akcnc:
CREATE DATABASE wmn_as-_zann-x
Cospauue 1a6num
[nn cospannn 1a6nnum a 6ase pannmx ncnonLsye1cn cnepykun cnn1akcnc:
CREATE TABLE wmn_ianwu-
(
wmn_xononxw_1 iwn_zann-x,
wmn_xononxw_2 iwn_zann-x,
.......
)
HpuHep cospauun 1a6num
B a1oH npnHepe nokasano cospanne 1a6nnum, nHekue nHn Person, a 1a6nnue ue1mpe ko-
nonkn. HHena kononok coo1ae1c1aenno: "LastName", "FirstName", "Address", n "Age":
CREATE TABLE Person
(
LastName varchar,
FirstName varchar,
Address varchar,
Age int
)
B a1oH npnHepe peHonc1npye1cn, kak sapa1L HakcnHanLnyk pnnny pannmx a kononke:
CREATE TABLE Person
(
LastName varchar(30),
FirstName varchar,
Address varchar,
Age int(3)
)
Ukonm KoucopuyHa W3C: Lkona SQL http://xml.nsu.ru
- 27 -
Tunm pauumx
Tnn pannmx onpepenne1, pannme kakoro 1nna Hory1 copepxa1Lcn a kononke. B a1o 1a6nnue
nepeuncnenm caHme pacnpoc1panennme 1nnm pannmx a SQL:
Tun pauumx Onucauue
integer(size) int(size)
smallint(size) tinyint(size)
Xpanenne uenmx uncen. MakcnHanLnoe uncno unqp uenoro uncna sapae1cn a cko6kax
decimal(size, d)
numeric(size,d)
Xpanenne pecn1nunmx ppo6e. MakcnHanLnoe uncno unqp a uncne sapae1cn napaHe1poH
"size". MakcnHanLnoe uncno unqp cnpaaa o1 pecn1nunoro paspenn1enn sapae1cn napaHe1-
poH "d"
char(size) Xpanenne c1pok qnkcnpoaanno pnnnm (c1pokn Hory1 coc1on1L ns unqp, 6yka n cneunanL-
nmx cnHaonoa). Onkcnpoaannan pnnna sapae1cn a cko6kax
varchar(size) Xpanenne c1pok nepeHenno pnnnm (c1pokn Hory1 coc1on1L ns unqp, 6yka n cneunanLnmx
cnHaonoa). MakcnHanLnm pasHep sapae1cn a cko6kax
date(yyyymmdd) Xpanenne pa1
Cospauue uupekca
Hnpekcm cospak1cn a 1a6nnuax pnn 6onee 6mc1po n aqqek1nano nokannsaunn pnpoa. Moxno
cospa1L nnpekcm na opny nnn neckonLko kononok 1a6nnum, kaxpoHy nnpekcy pae1cn nHn.
HonLsoaa1enn ne Hory1 anpe1L nnpekcoa, onn ncnonLsyk1cn 1onLko pnn noamuennn ckopoc1n
amnonnennn sanpocoa.
O6pa1n1e annHanne: o6noanenne 1a6nnum, copepxaue nnpekcm sannHae1 6onLue apeHenn,
ueH ne copepxaue nnpekcoa, no1oHy u1o nnpekcm 1oxe nyxno o6noann1L. Tak u1o nnpekcm
xopouo cospaaa1L 1onLko pnn 1ex kononok, ko1opme uac1o ncnonLsyk1cn pnn noncka.
YnnkanLnm nnpekc
Cospanne ynnkanLnoro nnpekca 1a6nnum. D1o osnauae1, u1o paa pasnnunmx pnpa 1a6nnum ne
Hory1 nHe1L opnnakoaoe snauenne nnpekca:
CREATE UNIQUE INDEX wmn_wnzexca
ON wmn_ianwu- (wmn_xononxw)
HHn_kononkn onpepenne1 nHn konokn, ko1opyk Hm nnpekcnpyeH.
Hpoc1o nnpekc
Cospanne npoc1oro nnpekca 1a6nnum. Ecnn onyc1n1L knkueaoe cnoao UNIQUE, noa1opnkunecn
snauennn nnpekca ponyckak1cn:
CREATE INDEX wmn_wnzexca
ON wmn_ianwu- (wmn_xononxw)
HHn_kononkn onpepenne1 nHn konokn, ko1opyk Hm nnpekcnpyeH.
HpuHep cospauun uupekca
B a1oH npnHepe cospae1cn npoc1o nnpekc, ko1opoHy pae1cn nHn PersonIndex. Hnpekc cospa-
Ukonm KoucopuyHa W3C: Lkona SQL http://xml.nsu.ru
- 28 -
e1cn na none LastName 1a6nnum Person:
CREATE INDEX PersonIndex
ON Person (LastName)
Ecnn am xo1n1e nponnpekcnpoaa1L snauennn a kononke a nopnpke y6maannn, nocne nHenn ko-
nonkn cnepye1 po6aan1L sapesepanpoaannoe cnoao DESC:
CREATE INDEX PersonIndex
ON Person (LastName DESC)
Ecnn am xo1n1e nponnpekcnpoaa1L neckonLko kononok 1a6nnum, am Hoxe1e nepeuncnn1L nHena
nnpekcnpyeHmx kononok a cko6kax, paspennn nx sann1mHn:
CREATE INDEX PersonIndex
ON Person (LastName, FirstName)
Ypaneuue uupekca
Moxno ypann1L nHekuncn a 1a6nnue nnpekc c noHouLk ampaxennn DROP:
DROP INDEX wmn_ianwu-.wmn_wnzexca
Ypaneuue 6asm pauumx unu 1a6num
Ypanenne 6asm pannmx:
DROP DATABASE wmn_as-_zann-x
Ypanenne 1a6nnum:
DROP TABLE wmn_ianwu-
Ypanenne pannmx ns 1a6nnum c coxpanenneH 1a6nnum:
DELETE TABLE wmn_ianwu-
Bmpaxeuue ALTER TABLE
ALTER TABLE
Bmpaxenne ALTER TABLE npnHenne1cn pnn po6aanennn nnn ypanennn kononok a nHekuecn
1a6nnue:
ALTER TABLE wmn_ianwu-
ADD wmn_xononxw iwn_zann-x
ALTER TABLE wmn_ianwu-
DROP wmn_xononxw
O6pa1n1e annHanne: neko1opme cnc1eHm 6as pannmx ne nosaonnk1 ypann1L kononkn ns 1a6-
nnum 6asm pannmx (DROP nHn_kononkn).
Hcxopuan 1a6nua Person:
Ukonm KoucopuyHa W3C: Lkona SQL http://xml.nsu.ru
- 29 -
LastName FirstName Address
Pettersen Kari Storgt 20
HpuHep po6aaneuun konouku
[o6aanH kononky c nHeneH City a 1a6nnuy Person:
ALTER TABLE Person ADD City varchar(30)
PesynL1a1:
LastName FirstName Address City
Pettersen Kari Storgt 20
HpuHep ypaneuun konouku
TenepL ypannH kononky c nHeneH Address a 1a6nnue Person:
ALTER TABLE Person DROP Address
PesynL1a1:
LastName FirstName City
Pettersen Kari
Developed by Metaphor (c) 2002
Ukonm KoucopuyHa W3C: Lkona SQL http://xml.nsu.ru
- 30 -

Вам также может понравиться