VyÜlo: 19.12.2000 Rubrika:
ASP - SQL
SQL(1.): ·vod do problematiky, zßklad p°φkazu SELECT
Chcete se nauΦit vybφrat data z databßze? Zkuste jazyk SQL! V tomto Φlßnku se nauΦφte, jak vypsat data pomocφ p°φkazu SELECT a jakß je jeho zßkladnφ syntaxe. Vφce v Φlßnku...
┌kolem tohoto serißlu o SQL (Stuctured Query Languages)
by m∞lo b²t nauΦit Φtenß°e zßklad∙m SQL a jeho pou₧itφ na p°φkladech nad databßzφ MS ACCES.
V²sledky budou prezentovßny pomocφ ASP (Active Server Pages) -
dynamicky generovan²ch strßnek. Ke vÜem tΘmat∙m budou uvedeny p°φklady a ukßzky
zdrojovΘho k≤du.
SQL je strukturovan² dotazovacφ jazyk, kter² se pou₧φvß k v²b∞ru dat z
databßze. Vφce se o termφnech databßze apod. nebudu rozepisovat, proto₧e
p°edpoklßdßm alespo≥ ΦßsteΦnou znalost problematiky. Pot°ebnΘ termφny se budu
sna₧it v textu vysv∞tlovat postupn∞.
Zßkladnφm (a takΘ nejslo₧it∞jÜφm) p°φkazem SQL je SELECT. Jeho zßkladnφ
(zjednoduÜenß) syntaxe je:
Select Prefix.Pole1, Prefix.Pole2, à.
From Tabulka1 Prefix
Where Podminka1
Neboli obecn∞:
Select <seznam jmen sloupc∙> | *
From <jmΘno tabulky>
[Where <podmφnka selekce>]
pozn.: V hranat²ch zßvorkßch je nepovinnß Φßst zßpisu p°φkazu. V tomto
p°φpad∞ nemusφme zadat podmφnku v²b∞ru a vyberou se vÜechny °ßdky bez omezenφ.
Svislφtko | oznaΦuje v²b∞r z mo₧nostφ, v naÜem p°φpad∞ se jednß
bu∩ o vypsan² v²b∞r sloupc∙ nebo o * co₧ v zßpisu znamenß v²b∞r vÜech
sloupc∙ danΘ tabulky. Zßpis jsem omezil na v²b∞r z jednΘ tabulky a to ·mysln∞,
pro lepÜφ seznßmenφ s problΘmem.
Abychom si mohli toto vÜe ukßzat nßzorn∞, musφme si vytvo°it alespo≥ jednu tabulku.
Jako p°φklad zvolφm t°eba databßzi ZAM (Zam∞stnanci), kterß bude v prvnφ
fßzi obsahovat pouze tabulku ZAMESTNANCI, kterß bude mφt nßsledujφcφ definici.
ZAMESTNANCI: |
ID_ZAM | Number |
JMENO_ZAM | Char(30) |
PRIJMENI_ZAM | Char(30) |
TEL_ZAM | Char(15) |
PLAT | Number |
Prvnφ p°φklad by tedy mohl znφt nßsledovn∞:
Vyberte jmΘna, p°φjmenφ a plat vÜech zam∞stnanc∙.
Zn∞nφ p°φkazu SELECT pro tento p°φklad tedy je:
Select JMENO_ZAM, PRIJMENI_ZAM, PLAT
From ZAMESTNANCI
Jak jednoduchΘ. V²pis hodnot z uvedenΘ databßze vidφte zde:
JMENO_ZAM |
PRIJMENI_ZAM |
PLAT |
FratiÜek |
Novßk |
10000 |
Tonda |
Novßk |
8000 |
Tereza |
Smolφkovß |
9000 |
Adam |
╚ech |
15000 |
A jak by vypadalo °eÜenφ tohoto zadßnφ:
Vyberte jmΘna, p°φjmenφ a plat vÜech zam∞stnanc∙, kte°φ najφ plat v∞tÜφ nebo
roven 10 000 KΦ.
SELECT pro tento p°φpad vypadß nßsledovn∞:
Select JMENO_ZAM, PRIJMENI_ZAM, PLAT
From ZAMESTNANCI
Where PLAT>=10000
A zde op∞t vidφme v²sledek p°φkladu:
JMENO_ZAM |
PRIJMENI_ZAM |
PLAT |
FratiÜek |
Novßk |
10000 |
Adam |
╚ech |
15000 |
A jak by vypadalo, kdybychom cht∞li vybrat z tabulky zam∞stnanc∙ veÜkerΘ
data s platem menÜφm ne₧ 10 000 KΦ?
Select *
From ZAMESTNANCI
Where PLAT<10000
Tentokrßt vypadß v²sledek nßsledovn∞:
ID_ZAM |
JMENO_ZAM |
PRIJMENI_ZAM |
TEL_ZAM |
PLAT |
2 |
Tonda |
Novßk |
0604 222 222 |
8000 |
3 |
Tereza |
Smolφkovß |
0605 333 333 |
9000 |
NapoprvΘ by snad staΦilo. Pokud si chcete otestovat dneÜnφ p°φklady na vlastnφ k∙₧i,
m∙₧ete si stßhnout zkuÜebnφ databßzi i zdrojovΘ k≤dy ukßzkov²ch v²b∞r∙
zde.
P°φÜt∞ bych se cht∞l v∞novat vφce klauzuli WHERE a mo₧n²m logick²m operßtor∙m,
kterΘ je zde mo₧no pou₧φt. Vφce vÜak a₧ p°φÜt∞.
DuÜan Porwol
mushing@mushing.cz
Souvisejφcφ Φlßnky
|