SQL kalbos bazinis kursas. SQL kalba

Sergejus Vorobjovas
Pagrindinis bandymų inžinierius
SQL. Bazinis kursas
www.aplana.ru

Turinys
● 1 dalis: SQL įvadas
● 2 dalis. Duomenų apibrėžimo kalba
● 3 dalis. Duomenų manipuliavimo kalba
● 4 dalis. DRL. Paprastos užklausos.
● 5 dalis. Duomenų pasirinkimas iš kelių lentelių.
● 6 dalis. Suvestinės funkcijos. Duomenų grupavimas.
● 7 dalis. Papildomos užklausos.
● 8 dalis. Darbo su eilutėmis, datomis ir skaičiais funkcijos.
23

SQL. Bazinis kursas
1 dalis: SQL įvadas
www.aplana.ru

Įvadas į SQL
SQL (struktūrinės užklausos kalba)
užklausos“) yra universali kompiuterių kalba, naudojama
duomenų kūrimas, keitimas ir valdymas reliacinėse duomenų bazėse
duomenis.
43

Įvadas į SQL
Duomenų bazė – sąrašas arba susietų sąrašų rinkinys su
informacija
Duomenų bazių valdymo sistema (DBVS) – speciali
programinė įranga, valdanti šiuos sąrašus
53

Reliacinės ir nesusijusios duomenų bazės
Reliacinė duomenų bazė – duomenų bazė, pagrįsta reliaciniu modeliu
duomenys:
Duomenys duomenų bazėje yra lentelių rinkinys;
Duomenys atitinka tam tikras vientisumo sąlygas;
Palaiko stalo manipuliavimo operatorius
(pavyzdžiui, lentelės pasirinkimas arba kopijavimas).
Nereliacinės duomenų bazės – hierarchinės, tinklinės,
Objektinis, NoSQL.
63

Kuo duomenų bazės skiriasi nuo skaičiuoklių?
1. Daugelio eilučių saugojimas
IN skaičiuoklės eilučių skaičius ribotas.
Duomenų bazėje saugoma milijonai eilučių.
2. Vienu metu teikiama paslauga daugeliui vartotojų
3. Saugumas.
Vartotojams suteikiamos tik privilegijos
tam tikros lentelės ir veiksmai.
4. Santykinės savybės.
Duomenys saugomi skirtingose ​​lentelėse, tarp lentelių
yra ryšių.
5. Duomenų kokybės užtikrinimo apribojimai.
73

Lentelė
Eilutė (eilutė) – kiekvienai skirta horizontali langelių eilutė
stalo objektas.
Įrašas – duomenys eilutėje.
Stulpelis – pateikiama vieno tipo informacija.
Laukas – stulpelio ir eilutės sankirta.
83

SQL sąsajos pagrindai
DBVS
93
vardas
Dekodavimas
„InterBase“ / „FireBird“.
PSQL
Procedūrinis SQL
IBM DB2
SQL PL
SQL procedūrinė kalba
Ms SQL Server / Sybase ASE
T-SQL
Transact-SQL
MySQL
SQL/PSM
SQL / nuolatinis saugomas
Modulis
Orakulas
PL/SQL
Procedūrinė kalba/SQL
(pagal Ada kalbą)
PostgreSQL
PL/pgSQL
Procedūrinis
Kalba / PostgreSQL
(labai panašus į Oracle
PL/SQL)

10.

DBVS funkcijų sintaksės skirtumai
MSSQL
DB2
SKAIČIUS
NUMERIS
SKAIČIUS
DATAADD
MONTH_ADD
(Data + 10 DIENŲ)
EOMONTH
PASKUTINĖ DIENA
PASKUTINĖ DIENA
DATEDIFF
MONTH_BETWEEN
TIMESTAMPDIFF
VIRŠUTINIS
VIRŠUTINIS
UCASE/UPPER
PAVERSTI
TO_CHAR
TO_CHAR
INITCAP
INITCAP
-
103
Orakulas

11.

SQL sintaksė
Funkcijose ir objektų pavadinimuose didžiosios ir mažosios raidės neskiriamos:
PASIRINKTI = PASIRINKTI.
Tačiau ieškant teksto laukuose skiriamos didžiosios ir mažosios raidės
SQL nėra jautrus eilučių pertraukoms
Trūksta būtinų eilutės pabaigos simbolių
Palaiko vienos eilutės komentarus ir
/*daugia eilute */
Įprasta kiekvieną operaciją užbaigti kabliataškiu, bet
Vykdant atskiras komandas, jų naudojimas nėra
Būtinai
113

12.

Duomenų tipai
CHAR(n) – pastovaus ilgio eilutės (MS SQL Server iki 256 baitų), t.y.
į eilutę įvedė mažiau duomenų – dydis nesikeis
VARCHAR(n) – kintamo ilgio eilutės, t.y. reikia daug atminties
kiek duomenų
INTEGER – skaičius be kablelio
SKAIČIUS (m,n) – naudojamas nuliui ir teigiamam arba
neigiami fiksuoto ir slankaus kablelio skaičiai. MPRECISION (bendras skaitmenų skaičius), n – SCALE (skaitmenų skaičius dešinėje
kablelio). m/n – pasirenkami parametrai
DATA – data formatu yyyy-mm-dd (ISO), dd/mm/yyyy (ANSI), dd-MON-yy.
BOOLEAN – loginių duomenų tipas: true/false arba 1/0.
Be to, lauko reikšmė gali būti NULL - reiškia, kad nėra reikšmių -
tuščia ląstelė.
123

13.

DATE tipas
Pagal numatytuosius nustatymus duomenų bazėje galite nurodyti datą formatu DD-MONYYYY (pavyzdžiui, '01-FEB-1900'):
INSERT INTO table1 (id, data_work) vertes (1, '01-FEB-1900').
Taip pat galite naudoti raktinį žodį DATE. Be to, jau už
datos formatas YYYY-MM-DD (pvz., '1900-02-01'):
INSERT INTO table1 (id, data_work) reikšmės (1, DATE '1900-02-01').
Taip pat galite naudoti datos ir laiko tipą TIMESTAMP
nustatyti ne tik datą, bet ir laiką:
INSERT INTO table1 (id, data_work) vertes (1, '01-FEB-1900-10.50.01'),
tie.
1900 m. vasario 1 d. 10 valandų 50 minučių ir 1 sekundė (dd-MON-yy formatas
-hh.mm.ss.nnnnn)
133

14.

Duomenų tipų konvertavimas į MSSQL
CONVERT(duomenų tipas, eilutė, stilius) – vieno konvertavimas
duomenų formatą į kitą
Simboliais:
KONVERTUOTI(VARCHAR(20), GETDATE())
Pasimatyme
KONVERT.(DATETIME, "2015-11-14", 105)
Pagal skaičių
KONVERTUOTI (SKAIČIUS, '1234657890")
143

15.

Duomenų tipų konvertavimas „Oracle“.
TO_CHAR(įvesties vertė, formatas) – datos konvertavimas,
skaičiai, laikai į eilutę.
Formatas: 'MONTH DD', 'MONTH DD, YYYY', "DD/MM/YYYY", "DAY MON, YY AD"
METAI
$9,999.00
ir kt.
TO_CHAR (SYSDATE, "MONTH DD")
TO_DATE(įvesties reikšmė, formatas) – eilutės konvertavimas į
data. Formatas: DD-MON-YYYY
Mėnuo dd, YYYY , HH:MI val.
ir kt.
TO_DATE("02-JAN-2012", "DD-MON-YYYY")
TO_NUMBER(įvesties reikšmė, formatas) – eilutės konvertavimas į skaičių.
TO_NUMBER("123")
153

16.

Kiti duomenų bazės objektai
Rodiniai yra duomenų bazės objektai, kuriuose nėra
savo lenteles, bet jų turinys paimtas iš kitų lentelių
arba peržiūros vykdydami užklausą.
Schema yra pavadinta susijusių duomenų bazės objektų grupė.
Indeksas – objektas, sukurtas didinti
Paieškos našumas. Paslėpta lentelė, kurioje yra vienas
arba keli svarbūs lentelės stulpeliai ir eilučių rodyklės
lenteles.
Apribojimas – sąlygos, kurios turi būti įvykdytos
vartotojo įvestus įrašus.
163

17.

Kiti duomenų bazės objektai
Išsaugota procedūra – duomenų bazės objektas,
kuri yra SQL instrukcijų rinkinys. Saugoma duomenų bazėje.
Procedūros iškvietimas sukelia joje esančio turinio vykdymą.
nurodymus.
Funkcija – panaši į saugomą procedūrą, bet grąžina
vertė, kurią galima naudoti didesnėje
operatorius
Trigeris – procedūra, kuri atliekama automatiškai,
kai įvyksta koks nors nurodytas įvykis.
Žymeklis – nuoroda į kontekstinės atminties sritį. Naudojant
žymeklį, galite atskirai apdoroti kiekvieną su juo susietą eilutę
nim SQL sakinys.
173

18.

SQL kalbos skyriai
1. DDL – duomenų apsaugos kalba (duomenų bazės objektų apibrėžimo kalba).
KURTI, KEITI, NUMESTI ir kt.
2. DCL – duomenų valdymo kalba (duomenų valdymo kalba).
SUTEIKTI, ATŠAUKTI
3. DML – duomenų manipuliavimo kalba
duomenis). Įterpti, ATNAUJINTI, IŠTRINTI
4. Data Retrieval – duomenų paieška PASIRINKITE
5. Transaction Control (transakcijų proceso palaikymo kalba).
ĮSIPAREIGOJIMAS, ATGALIMAS, IŠSAUGOJIMAS.
183

19.

SQL. Bazinis kursas
2 dalis. Duomenų apibrėžimo kalba
www.aplana.ru

20.

Duomenų apibrėžimo kalba
1.
KURTI LENTELĘ (sukurti lenteles)
Bendroji sintaksė:
KURTI LENTELĘ lentelės_pavadinimas (
1 laukas 1 lauko tipas,
2 laukas 2 lauko tipas,
..., laukasN Lauko tipasN);
KURTI LENTELĘ asmens_informacija (
asmens_id INTEGER NOT NULL,
vardas VARCHAR(15) NOT NULL,
pavardė VARCHAR(20) NOT NULL,
lytis CHAR(1),
gimtadienis DATE,
atlyginimas SKAIČIUS(7,2));
203

21.

Duomenų apibrėžimo kalba
2. ALTER TABLE (keisti lenteles)
ALTER TABLE lentelės_pavadinimas (ADD<имя столбца> <определение столбца>}|
(MODIFIKAS<имя столбца> <Определение столбца>)| (NULEISKITE Stulpelį<имя
stulpelis>)
3. NEMOKAMA STALAS (statelių pašalinimas)
DROP TABLE lentelės_pavadinimas (CASCADE CONSTRAINTS);
4. Sutrumpinti LENTELĘ (valymo stalai)
TRUNCATE TABLE lentelės_pavadinimas
213

22.

SQL. Bazinis kursas
3 dalis. Duomenų manipuliavimo kalba
www.aplana.ru

23.

Duomenų manipuliavimo kalba
1. INSERT – įterpkite vieną įrašą.
INSERT INTO lentelės_pavadinimas VALUES (1 lauko reikšmė, 2 lauko reikšmė,...,
lauko N reikšmė);
INSERT INTO lentelės_pavadinimas (1 laukas, 3 laukas,...) VALUES (1 lauko reikšmė, 2 lauko reikšmė,...,
lauko N reikšmė);
INSERT INTO personal_info VALUES (1, "Jonas", "Smitas", "M", "15-OCT-1973",
45568.56);
INSERT INTO asmens_informacija (asmens_id, vardas, pavardė) VALUES (5, Sarah, 'Connor');
Sėkmingai.
INSERT INTO personal_info VERTES (NULL, "Jane", "Smith", "F", "8-AUG-1987",
NULL);
Klaida, nes asmens_id negali būti NULL.
233

24.

Duomenų manipuliavimo kalba
Įterpiama įrašų grupė
INSERT INTO lentelės_pavadinimas
PASIRINKTI...;
KURTI LENTELĘ t2 (
first_1 VARCHAR(15),
paskutinis_1 VARCHAR(20),
gimtadienis_1 DATA);
INSERT INTO t2
PASIRINKITE vardą, pavardę, gimimo datą
IŠ asmens_informacijos;
243

25.

Duomenų manipuliavimo kalba
INSERT INTO personal_info VALUES (2, "Sara", "Doe", "F", "9-OCT-1986",
29789.56);

29789.56);
Sėkmingai.
INSERT INTO personal_info VALUES (3, "Sara", "Doe", "F", "9-OCT-1986",
29789.56);
Dabar ištrinkime antrąjį įrašą su asmens_id=2
IŠTRINTI IŠ asmens_informacijos WHERE asmens_id = 2
253

26.

Duomenų manipuliavimo kalba
Duomenų vientisumas
Objekto vientisumas – apibrėžia lentelės eilutę kaip unikalų egzempliorių
kažkoks subjektas.
Pirminis raktas – stulpelis arba stulpelių grupė yra unikalūs
identifikuojant kiekvieną įrašą.
Užsienio raktas yra santykių tarp lentelių atspindys. Pavaldinys
lentelėje turi būti identiškas stulpelis (arba stulpelių grupė), kurį reikia saugoti
vertybes, kurios vienareikšmiškai identifikuoja pagrindinius įrašus.
Nuorodos vientisumas – antrinėse lentelėse neturi būti įrašų
nurodant neegzistuojančius pagrindinės lentelės įrašus.
263

27.

Duomenų manipuliavimo kalba
273

28.

Duomenų manipuliavimo kalba
Pirminis raktas
ALTER TABLE lentelės_pavadinimas
ADD PRIMARY KEY(stulpelio_pavadinimas);
ALTER TABLE asmens_informacija
PRIDĖTI PIRMINĮ RAKTĄ(asmens_id);
Pirminės rakto reikšmės reiškia unikalų identifikavimą
įrašai, atitinkamai, reikšmės negali būti kartojamos.
Ir vėl bandysime pridėti įrašą su asmens_id=2:
INSERT INTO personal_info VALUES (2, "Rita", "Blow", "F", "9-OCT-1975",
29789.56);
283

29.

Išorinis raktas
ALTER TABLE antrinės lentelės_pavadinimas
PRIDĖTI APRIBOJIMĄ apribojimo_pavadinimas UŽSIENIS RAKTAS (stulpelio_pavadinimas
pavaldinys
lentelės) NUORODOS pagrindinės_lentelės_pavadinimas;
KURTI LENTELĘ asmens_adresas (
asmens_id INTEGER,
adresas VARCHAR(200));
ALTER TABLE asmens_adresas
PRIDĖTI APRIBOJIMĄ asmens_fk_adresas
UŽSIENIS RAKTAS (person_id)
NUORODOS personal_info;
293

30.

Duomenų manipuliavimo kalba
INSERT INTO asmens_adreso VERTĖS (1, "Maskva, Arbat gatvė, 67-14");
INSERT INTO asmens_adresas VALUES (2, "Maskva, Arbat gatvė, 67-14");
Sėkmingai.
INSERT INTO asmens_adresas VALUES (4, "Zelenograd, Green street, 23");
Klaida. Bandoma įterpti antraeilį įrašą, kai jo nėra
atitinkamą pagrindinį įrašą.
INSERT INTO asmens_adresas VALUES (3, "Zelenograd, Green street, 23");
303

31.

Lentelių susiejimas kuriant
Kaip jau aptarėme anksčiau, jis plačiai naudojamas kuriant
pirminiai (PAGRINDINIS RAKTAS) ir užsienio (FOREIGN KEY) raktai
per komandas, skirtas keisti esamų lentelių struktūrą. Taip pat
Kurdami lentelę galite pridėti šias konstrukcijas:
KURTI LENTELĘ tab1(
ID sveikasis skaičius PIRMINIS RAKTAS,
…..
313

32.

Duomenų manipuliavimo kalba
2. UPDATE – lentelės stulpelių reikšmių keitimas
A) Visų lentelės stulpelių reikšmių keitimas
ATNAUJINTI
NUSTATYTI =
ATNAUJINTI asmens_adresą
SET adresas = "Volgogradas, pirmoji gatvė, 15-20"
B) Konkrečių lentelės reikšmių keitimas
ATNAUJINTI
NUSTATYTI =
KUR =
UPDATE person_address SET address = "Volgogradas, pirmoji gatvė, 15-20"
WHERE asmens_id = 3;
ATNAUJINTI
NUSTATYTI =
KUR = [operatorius]
ATNAUJINTI asmens_informaciją NUSTATYTI atlyginimą = atlyginimas * 2
WHERE asmens_id = 3;
323

33.

Duomenų manipuliavimo kalba
3. DELETE – ištrinamos lentelės eilutės
A) Visų lentelės stulpelių reikšmių pašalinimas
IŠTRINTI IŠ
B) Konkrečių lentelės reikšmių ištrynimas
IŠTRINTI IŠ
KUR =
333

34.

Praktinė užduotis Nr.1
1. Sukurkite duomenų bazę, parodytą 1 pav. (sukurkite lenteles ir išorinį raktą)
2. Į lenteles įveskite šiuos duomenis.
Skyrius: (1, „Rinkodara“), (2, „RD“)
Emp: (1, 1, "James", 1000), (2, 2, "Smith", 2000)
3. Sukurkite lentelę dept_arch, kurios struktūra tokia pati kaip lentelės skyrius.
4. Įdėkite visus duomenis iš skyriaus lentelės į lentelę dept_arch.
343

35.

Praktinė užduotis Nr.1 ​​(tęsinys)
5. Padidinti Smith darbuotojo atlyginimą 15 proc.
6. Įsitikinkite, kad į skyriaus lentelę negalima įterpti šio įrašo: (2, "Pardavimai"). Kodėl?
7. Įsitikinkite, kad į emp lentelę negalima įterpti šio įrašo: (3, 4, "Black", 3000,
„Aktyvus“). Kodėl?
8. Pakeiskite RD skyriaus pavadinimą į RandD (dept table).
9. Iš emp lentelės pašalinkite įrašą su emp_id = 1.
12. Pašalinkite visus įrašus iš tuščiosios lentelės.
13. Numeskite emp lentelę.
353

36.

SQL. Bazinis kursas
4 dalis. DRL. Paprastos užklausos
www.aplana.ru

37.

Mūsų mokymo duomenų bazė
373

38.

Duomenų paieškos kalba
SELECT – duomenų pasirinkimas. Šis skyrius būtinas prašyme ir
leidžia:
SELECT laukas1,…laukasN FROM lentelė1, .., lentelėN WHERE sąlyga
383
Apibrėžkite išvesties stulpelių sąrašą
Įgalinti apskaičiuotus stulpelius
Įgalinti konstantas
Pervardykite išvesties stulpelius
Nurodykite pasikartojančių eilučių apdorojimo principą
Įgalinti suvestines funkcijas

39.

Duomenų paieškos kalba
1.
Išvesties stulpelių sąrašo apibrėžimas
Išvesties stulpelių sąrašą galima nurodyti keliais būdais:
. Nurodykite simbolį *, kad nurodytumėte visų stulpelių įtraukimą į užklausos rezultatus
prašymus natūralia seka.
. Išvardykite tik tuos, kurių jums reikia norima tvarka<имена столбцов>.
PASIRINKITE asmens_kodą, vardą, pavardę IŠ asmens;
--Galime pakeisti stulpelių tvarką
PASIRINKITE vardą, pavardę, asmens kodą IŠ asmens;
393

40.

Sujungimas
Dviejų ar daugiau teksto dalių sujungimas.
SELECT produkto_pavadinimas + " pardavė " + pardavėjas IŠ pirkimo;
403

41.

Duomenų paieškos kalba
2. Skaičiuojamųjų stulpelių įjungimas
Apskaičiuoti užklausos stulpeliai gali būti:
. Paprastų aritmetinių išraiškų rezultatai (+, -, /, *_ arba
eilutės sujungimas (+).
. Sumavimo funkcijų rezultatai (AVG|SUM|MAX|MIN|
COUNT)
413

42.

Duomenų paieškos kalba
3. Konstantų įjungimas
Stulpeliai gali būti skaitinės ir konstantos
simbolių tipai.
PASIRINKITE „Yra toks kodas“, asmens_kodas, „už“, vardas, pavardė
NUO asmens
423

43.

Duomenų paieškos kalba
4.
Išvesties stulpelių pervardijimas
Apskaičiuoti, taip pat bet kokie kiti stulpeliai, jei pageidaujama,
galite priskirti unikalų pavadinimą naudodami raktinį žodį
AS:<выражение>AS<новое имя>
SELECT product_name + " pardavė " + pardavėjas AS SOLDBY
NUO pirkimo;
Galite nustatyti slapyvardžius nenaudodami raktinio žodžio, bet su apribojimais:
SELECT produkto_pavadinimas + " pardavė " + pardavėjas SOLDBY
NUO pirkimo;
SELECT produkto_pavadinimas + " pardavė " + pardavėjas "Pardavėjas"
NUO pirkimo;
433

44.

Duomenų paieškos kalba
5. Nurodant dublikatų tvarkymo principą
DISTINCT – draudžia pasikartojančias eilutes išvestyje
daug. Jis gali būti nurodytas vieną kartą viename SELECT sakinyje.
Praktiškai iš pradžių formuojamas išvesties rinkinys,
sutvarkytas, o tada iš jo pašalinami dublikatai
reikšmės. Tai paprastai užtrunka ilgai ir neturėtų būti daroma
piktnaudžiavimas.
PASIRINKTI ATSKIRTI * NUO asmens
ALL (numatytasis) – užtikrina įtraukimą į
užklausos rezultatai ir pasikartojančios reikšmės
443

45.

Duomenų paieškos kalba
6.
Suvestinių funkcijų įgalinimas
Sumavimo funkcijos (rinkinys, statistinė arba
baziniai) yra skirti apskaičiuoti kai kurias vertes
duotas eilučių rinkinys. Naudojami šie agregatai
Funkcijos:
AVG|SUM(<выражение) – подсчитывает среднее значение | сумму от
<выражение>.
MIN|MAX(<выражение>) – randa didžiausią | minimali vertė.
COUNT(*|<имя столбца>) – skaičiuoja eilučių skaičių
Bet apie tai vėliau
453

46.

Duomenų paieškos kalba
KUR – tam tikrus atitinkančių duomenų pasirinkimas
sąlygos.
PASIRINKITE lauką1,...laukąN IŠ lentelės1, .., lentelęM WHERE
sąlyga1,…sąlygaY
463

47.

Duomenų paieškos kalba
Pavyzdžiai:
PASIRINKTI * IŠ produkto, WHERE laststockdate IS NULL;
SELECT * FROM product WHERE laststockdate IS NOT NULL;
PASIRINKITE produkto_pavadinimas, prekės_kaina, kiekis_rankoje
IŠ produkto WHERE kiekis_rankoje > 150;
PASIRINKITE produkto_pavadinimas, prekės_kaina IŠ produkto
WHERE produkto_pavadinimas<>„Kvadratinis cinkelis“;
473

48.

Duomenų paieškos kalba
Taip pat yra sudėtingesnių sąlygų:
Pataikė į daugelį
<конструктор значений строки>IN (<подзапрос>|<набор конструкторов
eilutės reikšmės>)
Apibrėžiamas reikšmių rinkinys, į kurį prieš tai buvo parašytas palyginimo objektas
raktažodis IN, gali priklausyti arba nepriklausyti. Jei antrinė užklausa nėra
grąžina eilutes, tada predikatas įvertina FALSE.
Darbo su rinkiniais pavyzdžiai:
PASIRINKTI * IŠ pirkimo KUR pardavėjas IN („CA“, „BB“);
PASIRINKTI * IŠ pirkimo, KUR pardavėjo NĖRA („CA“, „BB“);
SELECT * FROM pirkimas WHERE (pardavėjas + produkto_pavadinimas) (("CA" + "Mažas"
Valdiklis“), („GA“ + „Chrome Phoobar“))
483

49.

Duomenų paieškos kalba
Asortimento priedai
<конструктор значений строки>TARP<конструктор
eilutės reikšmės 1>IR<конструктор значений строки 2>
Tarinys BETWEEN yra panašus į IN predikatą, bet vietoj elementų
aibės ji apibrėžia apimančias ribas, į kurias jis [neturėtų] patekti
paspauskite tikrinamą vertę.
KUR
produkto_kaina NE TARP 1 IKI 80;
493

50.

Duomenų paieškos kalba
Būlio operatoriai
<предикат>(IR|ARBA|NE)<предикат>
Pastabos: Būlio operatoriai susieja vieną ar daugiau predikatų su forma
viena loginė reikšmė TRUE|FALSE. Naudojant predikatus su
Būlio operatoriai, galite žymiai padidinti selektyvų
galimybė pasirinkti eilutes užklausos rezultatuose.
Naudodami Būlio operatorius, ypač operatorių NOT, turėtumėte
naudokite skliaustus teisingas brėžinys sąlygos (IR
įvykdytas prieš ARBA).

„%Widget“ ARBA produkto_kaina< 20;
PASIRINKITE produkto_pavadinimas, produkto_kaina IŠ produkto WHERE produkto_pavadinimas LIKE
„%Widget“ IR produkto_kaina< 20;
503

51.

Duomenų paieškos kalba

PASIRINKITE laukų sąrašą FROM lentelių sąrašo WHERE reikšmę pažymėti LIKE
(šablonas) (ESCAPE (slaptažodžio vardas));
Bet kuris simbolis - _
SELECT asmens_kodas, vardas, pavardė FROM asmens WHERE asmens_kodas LIKE "_A";
Bet kuri poeilutė – %
SELECT produkto_pavadinimas FROM gaminio WHERE produkto_pavadinimas LIKE "%Chrome%";
Jei reikia rasti tekstą su % simboliu (pavyzdžiui, prekės pavadinimas
ab%cdef):
WHERE produkto_pavadinimas LIKE "ab$%c%" ESCAPE "$";
Pirmasis % skaitomas kaip simbolis pavadinime, antrasis kaip bet kokia eilutė.
513

52.

Duomenų paieškos kalba
LIKE apytikslis paieškos operatorius
… kur antrasis vardas, pvz., „%ov%“
... kur patronimas, pvz., „I%“
... kur patronimas, pvz., „%vich“
... kur pavardė kaip '____ov'
523

53.

Duomenų paieškos kalba
LIKE apytikslis paieškos operatorius

pasirinkite produkto_pavadinimas iš pirkimo
kur produkto_pavadinimas, pvz., „%Widget“
pasirinkite produkto_pavadinimas iš pirkimo
kur produkto_pavadinimas, pvz., „%$%Widget“
pabėgti „$“
533

54.

Duomenų paieškos kalba
Rūšiavimas
SELECT stulpelių sąrašas FROM sąrašas lentelių WHERE sąlyga
ORDER BY stulpelių sąrašas ASC (DESC);
Mažėjantis:
PASIRINKITE produkto_pavadinimas, prekės_kaina IŠ produkto
UŽSAKYTI PAGAL produkto_kainą DESC;
Didėjimo tvarka:
PASIRINKITE produkto_pavadinimas, prekės_kaina IŠ produkto
UŽSAKYTI PAGAL produkto_pavadinimą ASC;
543

55.

Praktinė užduotis Nr.2
1. Parašykite užklausą, kurioje būtų rodoma visa pirkimo lentelė.
2. Parašykite užklausą, iš kurios pasirenkami stulpeliai produkto_pavadinimas ir kiekis
Pirkimo stalai.
3. Parašykite užklausą, kuri parenka šiuos stulpelius atvirkštine tvarka.
4. Parašykite užklausą, kuri atspausdina asmenį kiekvienoje lentelės eilutėje
toks tekstas:
pradėjo darbą *. Gautas stulpelis
priskirkite slapyvardį „Pradėtas darbas“.
5. Parašykite užklausą, kurioje būtų rodomas produktų pavadinimas produkto_pavadinimas
(stalo prekė), kuriai kaina nenurodyta (NULL).
6. Parašykite užklausą, kurioje būtų rodomas produkto pavadinimas produkto_pavadinimas
(pirkimo stalas), iš kurių pardavė nuo 3 iki 23 vnt.
* MSSQL nepalaiko stulpelių sujungimo su varchar ir datos duomenų tipais. Naudokite operatorių
konvekcija: CONVERT (VARCHAR, samdyti)
3

56.

Praktinė užduotis Nr.2 (tęsinys)
7. Parašykite užklausą, kurioje būtų rodomi darbuotojų, kurių
priimtas į darbą 2010 metų vasario 1, 15 ir 28 dienomis.
8. Parašykite užklausą, kurioje būtų rodomi produktų pavadinimai
produkto_pavadinimas (pirkimo lentelė), parduodamas darbuotojų, kurių pavardės prasideda raide „B“.
9. Parašykite užklausą, kurioje būtų rodomi produktų pavadinimai
produkto_pavadinimas (pirkimo lentelė), kurį parduoda darbuotojai, kurių pavardės neprasideda
"B".
10. Parašykite užklausą, kurioje būtų nurodytos pavardės ir įdarbinimo data
darbuotojų, kurių pavardės prasideda raide „B“ ir kurie yra priimami
dirbti iki 2010-03-01.
11. Parašykite užklausą, kurioje būtų rodomi produktų pavadinimai
produkto_pavadinimas ir paskutinė pristatymo data paskutinės atsargos data (lentelė
produktas), kurių pavadinimai yra mažas valdiklis, vidutinis valdiklis ir didelis
Valdiklis arba tie, kurie neturi paskutinės pristatymo datos.
Rūšiuoti pagal paskutinio pristatymo datą mažėjančia tvarka.
563

57.

SQL. Bazinis kursas
5 dalis. Duomenų gavimas iš kelių lentelių
www.aplana.ru

58.

Duomenų gavimas iš kelių lentelių
PASIRINKITE lentelės_pavadinimas_1.stulpelio_pavadinimas, lentelės_pavadinimas_2.
stulpelio_pavadinimas
IŠ lentelės_pavadinimas_1, lentelės_pavadinimas_2;

NUO pirkimo, asmuo;
Dekarto gaminys – derinys be
WHERE sąlyga, kurios rezultatas yra kiekvienoje eilutėje
viena lentelė derinama su kiekviena kitos eilute
lenteles.
583

59.

Duomenų gavimas iš kelių lentelių su sąlyga
PASIRINKITE lentelės_pavadinimas_1.stulpelio_pavadinimas, lentelės_pavadinimas_2. stulpelio_pavadinimas
IŠ lentelės_pavadinimas_1, lentelės_pavadinimas_2
WHERE pagrindinės_lentelės_pavadinimas.pirminis_raktas =
sublentelės_pavadinimas.užsienio_raktas;
PASIRINKITE pirkinį.produkto_pavadinimas, asmens.vardas, asmens.pavardė
NUO pirkimo, asmuo
KUR asmuo.asmens_kodas = pirkimas.pardavėjas;
593

60.

Ryšių tipai
Taip pat yra ir kitų būdų sujungti lenteles raktais:
<таблица А> [<тип соединения>] PRISIJUNK<таблица B>ĮJUNGTA<предикат>
<тип соединения>yra vienas iš argumentų: INNER|(LEFT|right|
PILNAS)
INNER – apima eilutes, kuriose yra stulpelių su atitinkamais duomenimis
sujungtos lentelės. Naudojama pagal numatytuosius nustatymus.
KAIRĖ – apima visas A lentelės eilutes (kairioji lentelė) ir visas atitinkančias
reikšmes iš lentelės B. Neatitinkančių eilučių stulpeliai užpildomi NULL reikšmėmis.
DEŠINĖ – apima visas B lentelės eilutes (dešinėje lentelėje) ir visas atitinkamas
A lentelės reikšmės. Atvirkštinė kairiojo sujungimo parinktis.
FULL – apima visas abiejų lentelių eilutes. Atitinkantys eilučių stulpeliai
užpildomos tikrosiomis reikšmėmis, o nesutampančios eilutės užpildomos NULL reikšmėmis.
IŠORINIS (išorinis) – kvalifikacinis žodis, reiškiantis, iš kurio atsiranda nederančios eilutės
iš pirmaujančios lentelės yra įtrauktos kartu su atitinkančiomis.
603

61.

Stalo sujungimo parinktys
adresu
telefonas
VIDINIS PRISIJUNGIMAS
SELECT * FROM adresas INNER JOIN phone ON address.ClientID=phone.ClientID
613

62.

Stalo sujungimo parinktys
adresu
telefonas
SELECT * FROM adresas, telefonas WHERE adresas.clientID=phone.ClientID
623

63.

Stalo sujungimo parinktys
adresu
telefonas
KAIRĖ PRISIJUNGTI
PASIRINKTI * IŠ adreso KAIRĖJO PRIJUNGTI telefoną ĮJUNGTI adresas.ClientID=phone.ClientID
633

64.

Stalo sujungimo parinktys
adresu
telefonas
TEISINGAS PRISIJUNGTI
PASIRINKTI * IŠ adreso DEŠINĖJO PRIJUNGTI telefoną ĮJUNGTI adresas.ClientID=phone.ClientID
643

65.

Stalo sujungimo parinktys
adresu
telefonas
VISAS PRISIJUNGTI
SELECT * FROM adresas VISAS PRISIJUNGTI telefonas ĮJUNGTAS adresas.ClientID=phone.ClientID
653

66.

Prisijunkite prie operatorių
UNION grąžina visas eilutes iš abiejų SELECT teiginių; pasikartojantis
vertės pašalinamos.
UNION ALL grąžina visas eilutes iš abiejų SELECT teiginių; pasikartojantis
rodomos vertės.
INTERSECT grąžina eilutes, kurios pateikiamos ir pirma, ir antra
su SELECT teiginiu.
EXCEPT grąžina eilutes, kurias grąžina pirmasis SELECT sakinys,
neįskaitant tų, kurie buvo grąžinti antruoju pareiškimu.
Stulpelių skaičius ir tvarka, kurį SELECT grąžino iš abiejų lentelių, turi būti
sutampa.
663

67.

Prisijunkite prie operatorių
PASIRINKITE produkto_pavadinimą
NUO pirkimo
UŽSAKYTI PAGAL produkto_pavadinimą
673
PASIRINKITE produkto_pavadinimą
IŠ pirkimo_archyvo
UŽSAKYTI PAGAL produkto_pavadinimą
PASIRINKITE produkto_pavadinimą
NUO pirkimo
SĄJUNGOS
PASIRINKITE produkto_pavadinimą
IŠ pirkimo_archyvo
UŽSAKYTI PAGAL produkto_pavadinimą

68.

Prisijunkite prie operatorių
PASIRINKITE produkto_pavadinimą
NUO M pirkimas
U N I O N VISI
PASIRINKITE produkto_pavadinimą
IŠ M pirkimo_archyvas
UŽDARYTI IKI 1
683
PASIRINKITE produkto_pavadinimą
NUO M pirkimas
IŠSKYRUS
PASIRINKITE produkto_pavadinimą
IŠ M pirkimo_archyvas
UŽDARYTI IKI 1
PASIRINKITE produkto_pavadinimą
NUO M pirkimas
KREZEKTA
PASIRINKITE produkto_pavadinimą
IŠ M pirkimo_archyvas
UŽDARYTI IKI 1

69.

Pseudonimas srityje FROM
Naudojant dideles duomenų bazes su schemomis, įprasta
slapyvardžių naudojimas:
PASIRINKITE pirkimo.produkto_pavadinimas, gaminio.paskutinės atsargos data, asmens.vardas,
asm.pavardė
NUO pirkimo kaip pirkinio,
Asmuo kaip asmenys,
Produkto produktas
KUR asm.asmens_kodas = pirk.pardavėjas IR
prod.product_name = purc.product_name;
693

70.

Praktinė užduotis Nr.3
1. Parašykite užklausą, kuri parodytų produktų lentelių Dekarto sandaugą
ir pirkti.
2. Parašykite užklausą, kurioje būtų rodomas parduodamos prekės pavadinimas
prekės_pavadinimas, kiekis (pirkimo lentelė) ir
kiekis_rankoje (produktų lentelė).
3. Parašykite užklausą, kurioje būtų rodomas produkto pavadinimas produkto_pavadinimas
(pirkimo lentelė), paskutinio pristatymo paskutinės atsargos data (lentelė
prekė) ir pardavėjo pavardė (asmenų lentelė).
4. Parašykite užklausą, kurioje būtų rodomi stulpeliai produkto_pavadinimas, vardas, pavardė,
Pirkimo ir asmens lentelių išorinio sujungimo pavardė. Naudoti stalams
trumpi slapyvardžiai.
703

71.

Praktinė užduotis Nr.3 (tęsinys)
5. Parašykite užklausą, kurioje būtų rodomi visi nesikartojantys pirkimo kodai
pardavėjai
pardavėjas iš pirkinių_archyvų lentelės.
6. Parašykite užklausą, kurioje būtų rodomi tik tų pardavėjų kodai iš
pirkimo lenteles, kurios taip pat yra pirkimo_archyvo lentelėje.
7. Parašykite užklausą, kuri parodytų visus (įskaitant pasikartojančius) kodus
pardavėjų pardavėjas iš pirkimo ir pirkimo_archyvo lentelių.
713

72.

SQL. Bazinis kursas
6 dalis. Suvestinės funkcijos. Grupavimas
duomenis.
www.aplana.ru

73.

Matematiniai operatoriai
Matematinis operatorius – simboliai, žymintys operacijas (+, -, *, /)
Skaičiavimai naudojant lentelių duomenis.
PASIRINKITE produkto_pavadinimas, prekės_kaina * 1,07 NUO prekės;
PASIRINKITE produkto_pavadinimas, prekės_kaina * kiekis_rankoje
IŠ produkto;
PASIRINKITE produkto_pavadinimas, produkto_kaina * 1,07 * kiekis_rankoje produkto_kaina * kiekis_rankoje
IŠ produkto;
PASIRINKITE produkto_pavadinimą, produkto_kainą * (kiekis_rankoje + 10)
IŠ produkto;
733

74.

Matematiniai operatoriai
Sumavimo funkcijos (rinkinių, statistinės arba pagrindinės funkcijos)
yra skirti apskaičiuoti tam tikras tam tikro rinkinio vertes
linijos.
1. SUM – susumuoja reikšmes ir grąžina bendrą sumą.
PASIRINKTI SUMĄ (kiekis)
NUO pirkimo;
2. AVG – grąžina nurodytos vertės vidurkį
stulpelyje.
PASIRINKTI AVG(produkto_kaina)
IŠ produkto;
743

75.

Matematiniai operatoriai
3. MIN – grąžina minimalią reikšmę iš nurodyto stulpelio.
PASIRINKTI MIN(produkto_kaina)
IŠ produkto;
4. MAX – grąžina didžiausią reikšmę iš nurodyto stulpelio.
PASIRINKTI MAX(produkto_kaina)
IŠ produkto;
753

76.

Matematiniai operatoriai
5. COUNT – skaičiuoja įrašus.
PASIRINKTI SKAIČIUS (*)
NUO pirkimo; -- eilučių skaičius, įskaitant NULL reikšmes
PASIRINKTI COUNT (produkto_pavadinimas)
NUO pirkimo;-- vertės stulpelyje, ignoruojant NULL
763

77.

GRUPUOTI PAGAL
Šis skyrius skirtas užklausos rezultatams sujungti į grupes ir apskaičiuoti
kiekvienos iš jų statistinės reikšmės. Kartais vartojamas terminas
"sugrupuotas stalas"
PASIRINKITE produkto_pavadinimas, SUM (kiekis)
NUO pirkimo
GROUP BY produkto_pavadinimas;
Į SELECT sakinį galite įtraukti kelias grupės funkcijas.
PASIRINKITE produkto_pavadinimą, SUM(kiekis) "Iš viso parduota", COUNT(kiekis) operacijų
NUO pirkimo
GROUP BY produkto_pavadinimas;
773

78.

TURIMAS
HAVING – yra poskyris, skirtas skaičiui apriboti
eilučių sugrupuotoje lentelėje ir yra sąlygos GROUP BY dalis.
Šio skyriaus predikatas paremtas tuo pačiu semantines taisykles, kaip
WHERE sąlygoje, bet tik
tie stulpeliai, kurie nurodyti GROUP BY punkte. Likusieji gali
Naudokite tik agregavimo funkcijose. Šis skyrius
riboja eilučių, į kurias suskirstyta, grupių (pogrupių) sudėtį
užklausos rezultatas. Grupės (pogrupiai) apima tik tuos iš
galimų eilučių, kurių reikšmės atitinka sąlygas, rinkinys
HAVING skyrelio tarinys. Galite naudoti skiltyje HAVING
įdėtos užklausos su agregavimo funkcijomis, taip pat susijusios
antrinės užklausos.
783

79.

TURIMAS
Tai yra, apibendrinant tai, kas buvo aprašyta aukščiau, galime susiaurinti
poskyrio priskyrimas:
Su HAVING konstrukcija galite
filtrų grupės.
HAVING grupėse veikia taip pat, kaip WHERE individualiems įrašams.
PASIRINKITE produkto_pavadinimas, SUM(kiekis) "Iš viso parduota",
COUNT (kiekis) operacijų
NUO pirkimo
GROUP BY produkto_pavadinimas
TURIMAS SUMĄ (kiekis)< 5;
793

80.

Praktinė užduotis Nr.4
1. Parašykite užklausą, rodančią, po kokios bus prekės prekės_kaina kaina
padidinti 15 proc.
2. Parašykite užklausą, kuri parodytų, kiek produktų yra prekių lentelėje.
3. Parašykite užklausą, nurodydami, kokiam produktų kiekiui (prekių lentelė)
kaina nurodyta.
4. Parašykite užklausą, kurioje būtų rodoma minimali ir maksimali produktų kaina produkto_kaina.
5. Parašykite užklausą, nurodydami, kiek buvo gauta iš kiekvienos prekės pardavimų
vardai.
6. Parašykite užklausą, rodančią, kiek buvo gauta iš kiekvienos prekės pardavimų
vardai. Rodyti tik tuos įrašus, kurių pardavimo suma yra didesnė nei 125.
803

81.

SQL. Bazinis kursas
7 dalis. Papildomos užklausos
www.aplana.ru

82.

Papildomos užklausos
Antrinė užklausa yra įprasta SELECT užklausa, įdėta į sakinį
PASIRINKTI
ATNAUJINTI
arba
IŠTRINTI.
Jis naudojamas kaip duomenų šaltinis FROM sąlygai arba
KUR iš pagrindinio operatoriaus.
823

83.

Papildomos užklausos
Yra keletas papildomų užklausų naudojimo apribojimų:
833
Papildoma užklausa turi pasirinkti tik vieną stulpelį (išskyrus antrinę užklausą su
predikatas EXISTS), o jo rezultato duomenų tipas turi atitikti tipą
predikate nurodyta duomenų reikšmė.
Kai kuriais atvejais, norėdami garantuoti, galite naudoti raktinį žodį DISTINCT
gauti vieną vertę.
Į antrinę užklausą negalite įtraukti sąlygos ORDER BY arba UNION.
Antrinė užklausa gali būti paieškos sąlygos kairėje arba dešinėje.
Papildomos užklausos gali naudoti agregavimo funkcijas be skaidinių
GRUPUOTI PAGAL

84.

Vienos eilės papildomos užklausos
Vienos eilutės antrinė užklausa yra antrinė užklausa, kuri pateikia tik 1 reikšmę.
Su antrinės užklausos rezultatu naudojami palyginimo simboliai (=,<>, <, <=,
>, >=)
PASIRINKTI * IŠ produkto
WHERE laststockdate = (SELECT laststockdate
FROM product WHERE produkto_pavadinimas = "Mažas valdiklis");
Pavyzdys (naudojant agregavimo funkciją vienos eilutės antrinėje užklausoje):
SELECT * FROM produktas WHERE produkto_kaina >
(SELECT AVG(product_price) FROM product);
843

85.

Kelių eilučių antrinės užklausos
Kelių eilučių antrinė užklausa yra antrinė užklausa, kuri pateikia tik >=1
prasmė.
Tokių antrinių užklausų negalite palyginti
naudojant lygybės/nelygybės ženklus; funkcija turi būti naudojama
IN.
PASIRINKTI * IŠ produkto
WHERE produkto_pavadinimas IN
(PASIRINKITE ATSKIRTI produkto_pavadinimą NUO pirkimo);
ATNAUJINTI produktą NUSTATYTI produkto_kaina = produkto_kaina * 0,9
WHERE produkto_pavadinimas NOT IN (PASIRINKITE DISTINCT produkto_pavadinimas
NUO pirkimo);
853

86.

YRA
EXISTS naudoja antrinę užklausą kaip argumentą ir
įvertinama kaip tiesa, jei antrinėje užklausoje yra
išvestis, kitaip kaip klaidinga.
Antrinė užklausa vykdoma vieną kartą ir gali būti
keli stulpeliai, nes jų reikšmės nėra patikrintos,
bet eilučių buvimo rezultatas tiesiog įrašomas.
Pastabos dėl predikato EXISTS:
EXISTS yra predikatas, kuris grąžina TRUE arba FALSE, ir
jis gali būti naudojamas vienas arba kartu su kitais loginiais
posakius.
863

87.

YRA
PASIRINKTI * IŠ produkto
KUR YRA
(PASIRINKTI * IŠ pirkimo
WHERE produktas.produkto_pavadinimas = pirkimas.produkto_pavadinimas);
873

88.


VISI – bus lyginama su visais įrašais, kurie
grąžina antrinę užklausą (arba tik su visomis rinkinio reikšmėmis). Tiesa
grįš tik tuo atveju, jei grąžins visus įrašus
antrinė užklausa patenkins jūsų nurodytą sąlygą.
PASIRINKTI * IŠ produkto
WHERE produkto_kaina >= VISI (SELECT product.product_price
NUO pirkimo, prekės


Užklausa grąžins visus produktus iš produktų lentelės, kurių kaina yra didesnė nei arba
lygi kiekvienos darbuotojo parduodamos prekės su kodu „GA“ kainai.
883

89.

Grupės sąlygos (palyginimo operatoriai).
ANY – palyginimas bus teisingas, jei sąlygą tenkins bent viena
įrašas iš antrinės užklausos (arba rinkinio).
SELECT * FROM product WHERE product_price > ANY (SELECT
produktas.produkto_kaina
NUO pirkimo, prekės
WHERE pirkimas.produkto_pavadinimas = produkto.produkto_pavadinimas
IR pirkimas.pardavėjas = "GA");
Užklausa grąžins visus įrašus iš produktų lentelės, kuriai nurodyta produkto kaina
daugiau nei bet kurios darbuotojo parduodamos prekės su kodu „GA“ kaina.
KAI KURI – daro tą patį, ką BET. Visiškai keičiamas.
893

90.

Praktinė užduotis Nr.5
1. Parašykite užklausą, kuri grąžintų visus tuo pačiu metu įdarbintus darbuotojus
tą pačią dieną kaip darbuotojas Johnas Smithas.
2. Parašykite užklausą, kuri pateikia visus produktus, kurių kaina yra mažesnė už vidutinę kainą.
3. Parašykite užklausą, kuri grąžintų visas prekes, kurios buvo parduotos daugiau nei vieną kartą
laikai.
4. Spausdinti ne kartą parduotų prekių kainą, padidintą 15%.
5. Naudodami sąlygą EXISTS parašykite užklausą, kuri grąžina visus darbuotojus
kurie bent kartą ką nors pardavė.
6. Parašykite užklausą, kuri grąžina visas prekes iš prekių lentelės, kurios kaina
mažesnė nei bet kurios darbuotojo parduodamos prekės su kodu „GA“ kaina.
7. parašyti užklausą, kuri grąžins visas prekes iš prekių lentelės, kurių kaina mažesnė
bent vienos darbuotojo parduodamos prekės su kodu „GA“ kainos. Įsitikinti, kad
SOME ir ANY operatoriai yra keičiami.
903

91.

SQL. Bazinis kursas
8 dalis. Funkcijos dirbant su eilutėmis, datomis ir
numeriai
www.aplana.ru

92.

Funkcijos, skirtos darbui su skaičiais
ROUND – apvalina skaičius bet kokiu nurodytu tikslumu.
ROUND(įvesties_vertė, kablelio skaičius)
PASIRINKITE produkto_pavadinimas, ROUND(produkto_kaina, 0)
IŠ produkto;
SELECT ROUND(1234.5678, 3) --MSSQL
SELECT ROUND(1234.5678, 3) FROM DUAL;
ROUND funkcija
ROUND(1234.5678,4)
ROUND(1234.5678; 3)
ROUND(1234.5678; 2)
ROUND(1234.5678;1)
ROUND(1234.5678,0)
ROUND(1234.5678, -1)
ROUND(1234.5678;-2)
ROUND(1234.5678,-3)
923
Grąžinimo vertė
1234.5678
1234.568
1234.57
1234.6
1235
1230
1200
1000
-- Orakulas

93.

Funkcijos, skirtos darbui su skaičiais
TRUNC – sutrumpina skaičių, sumažindamas jo tikslumą.
TRUNC funkcija
Grąžinimo vertė
TRUNC(1234.5678;4)
1234.5678
TRUNC(1234.5678;3)
1234.567
TRUNC(1234.5678; 2) 1234.56
TRUNC(1234.5678;1)
1234.5
TRUNC(1234.5678,0)
1234
TRUNC(1234.5678;-1)
1230
TRUNC(1234.5678; -2) 1200
TRUNC(1234.5678; -3) 1000
933

94.

Pagalbiniai stalai
Pagalbiniai (manekeno) stalai
Atlikti funkcijas neprisirišant prie konkrečių lentelių daugelyje DBVS
būtina nurodyti paslaugų lentelę, nes tai reiškia SQL
pasirinkti... iš konstrukcijos.
Oracle – DUAL
DB2-SYSDUMMY1
SIBASE – DUMMY
MySQL – DUAL
MSSQL – trūksta. MSSQL atpažįsta paslaugų užklausas be
reikia nurodyti fiktyvią lentelę.
943

95.

Funkcijos dirbant su datomis
GETDATE – grąžina dabartinę datą.
pasirinkite getdate ();
DATEADD – grąžina datą, gautą kaip pradinės datos sumą
data ir intervalas, pridėtas prie nurodytos datos datos dalies
data.
ADD_MONTHS(vertė, kiekis, pradžios data)
PASIRINKITE DATAADD(mėnuo, 1, GETDATE());
SELECT DATEADD(metai, -2, GETDATE());
953

96.

Funkcijos dirbant su datomis
EOMONTH – grąžina paskutinę bet kurio nurodyto mėnesio dieną
jam perduotoje datoje (MSSQL 2012+).
EOMONTH (data)
SELECT EOMONTH(GETDATE());
SELECT EOMONTH("2015-03-15");
PASIRINKITE vardą_vardą, pavardę, samdos datą, EOMONTH(išsamdyti)+1
IŠ asmens;
963

97.

Funkcijos dirbant su datomis
DATEDIFF – pateikia dvi datas skiriančių vienetų skaičių.
DATEDIFF(vertė, pradžios data, pabaigos data)
SELECT DATEDIFF(milisekundė, GETDATE(), SYSDATETIME());
SELECT DATEDIFF(MONTH, "17-RUG-2012", GETDATE());
973

98.

Funkcijos, skirtos darbui su tekstu
UPPER – visus simbolius eilutėje įrašo didžiosiomis raidėmis.
LOWER – visus eilutės simbolius rašo mažosiomis raidėmis.
INITCAP (oracle) – pakeičia eilutės didžiąsias ir mažąsias raides į mišrią (pirmoji kiekvienos raidės raidė
žodžiai bus rašomi didžiosiomis raidėmis, likusi žodžio dalis – mažosiomis).
SELECT UPPER(produkto_pavadinimas) IŠ produkto;
SELECT LOWER(produkto_pavadinimas) IŠ produkto;
SELECT INITCAP("šis TEKSTAS buvo nenuspėjamas atvejis") FROM DUAL;
983

99.

Funkcijos, skirtos darbui su tekstu
LEN – apibrėžia linijos ilgį.
PASIRINKITE produkto_pavadinimas, LEN(produkto_pavadinimas) LENGTH
IŠ produkto
WHERE LEN(produkto_pavadinimas) > 15;
993

100.

Funkcijos, skirtos darbui su tekstu
SUBSTRING – sutrumpina parametro reikšmę.
SUBSTRING(šaltinio_tekstas, pradžios simbolio padėtis,
Personažai)
SUBSTRING(1 eilutė, a, [,b])
Grąžina „1 eilutės“ dalį, prasidedančią simboliu numeriu a,
ir turintys b ilgio simbolius. Jei a = 0, tai yra lygiavertė
a = 1 (eilutės pradžia), jei b yra teigiami grąžinti simboliai
iš kairės į dešinę. Jei b yra neigiamas, pradedant nuo eilutės pabaigos ir
skaičiuojami iš dešinės į kairę! Jei b trūksta, tada numatytasis
visi simboliai grąžinami iki eilutės pabaigos
100
3

101.

Funkcijos, skirtos darbui su tekstu
PASIRINKTI SUBSTRING(elemento_id, 1, 3) VIETA,
SUBSTRING(elemento_id, 5, 3) ITEM_NUMBER
FROM old_item;
101
3

102.

Funkcijos, skirtos darbui su tekstu
CHARINDEX – suranda simbolio (ar simbolių), skiriančio elementus, padėtį
linijos
CHARINDEX(1 eilutė, 2 eilutė, [,a])
Grąžina vietą „1 eilutė“ į „2 eilutę“. peržiūrima "2 eilutė".
kairėje, pradedant nuo a padėties. Jei a yra neigiamas, tada žiūrima į "2 eilutę".
Dešinėje. Numatytoji a reikšmė yra 1, o tai lemia poziciją
pirmasis įvykis, "1 eilutė", "2 eilutė". Jei nurodyta a, „1 eilutė“ nėra
rasta, grąžina 0
102
3

103.

Funkcijos, skirtos darbui su tekstu
CHARINDEX(paieškos_simbolis, paieškos_tekstas, padėtis
_pradinis_simbolis)
SELECT item_desc, CHARINDEX(",", item_desc, 1)
FROM old_item;
103
3

104.

Funkcija Įdėjimas
PASIRINKITE elemento_desc, SUBSTRING(prekės_desc, 1, CHARINDEX(",", item_desc, 1))
KATEGORIJA
FROM old_item;
104
3

105.

Funkcija Įdėjimas
105
3
SELECT item_desc,
SUBSTRING(elemento_desc, 1, CHARINDEX(",", elemento_desc, 1)-1) KATEGORIJA,
SUBSTRING(elemento_desc, CHARINDEX(",", elemento_desc, 1)+2, 99) ITEM_DIZE
FROM old_item;

106.

Praktinė užduotis Nr.6
1. Naudoju funkcijas dirbdamas su datomis ir skaičiais, skaičiuodamas,
kiek tau metų?
2. Viršuje atspausdinkite eilutę „ŽINAU TEKSTO FUNKCIJAS“ ir
mažosios raidės.
3. Išsiaiškinkite šios eilutės ilgį.
4. Darbas su stulpeliu Buy.product_name, išvestis:
pirmieji trys simboliai
visi likę simboliai pradedant nuo ketvirto
pilna eilutė
106
3

107.

Naudingi ištekliai
http://sqlfiddle.com/ – įrankis, imituojantis tuščią duomenų bazę:
leidžia atlikti didelę dalį DML, DDR ir DR
prašymus. Palaiko 5 pagrindinius dialektus
http://www.sql-tutorial.ru/ - interaktyvi pamoka apie SQL įjungimą
rusų
http://www.sql-ex.ru/ - interaktyvus sprendimų portalas
SQL užduotys
https://dev.mysql.com/downloads/mysql/ – nemokama SQL
serveris įvairioms OS
https://www.mysql.com/products/workbench/ – nemokama
įrankis darbui su MySql serveriu
107
3

108.

Ačiū už dėmesį!
Jūsų klausimai?
Įmonė „Aplana“.
Sergejus Vorobjovas
Pagrindinis bandymų inžinierius
+7-917-556-13-49
www.aplana.ru

SQL (dažniausiai tariamas "SEQUEL") reiškia " Struktūrinė kalba Prašymai“. Tai kalba, suteikianti galimybę kurti ir dirbti su reliacinėmis duomenų bazėmis, kurios yra susijusios informacijos rinkiniai, saugomi lentelėse. Jei jums įdomu, nuo ko pradėti mokytis SQL, ateikite pas mus. Mūsų įmonė siūlo Jums SQL kursus, taip pat SQL pamokas pradedantiesiems, kuriuos išstudijavus sukuriama duomenų bazė SQL duomenys Galite gaminti patys. SQL mokymasis yra daug žadanti veikla. Tai apima SQL paskaitas, SQL duomenų bazių kursus ir SQL užklausų kursus. Galima lankyti SQL kalbos kursus ir vesti SQL mokymus nuo nulio, taip pat lankyti SQL programavimo kursus naudojant SQL mokymus internetu, gaunant išskirtinę praktiką

Duomenų bazių pasaulis vis labiau unifikuojasi, todėl atsirado poreikis sukurti standartinę kalbą, kuri galėtų veikti daugelyje skirtingų kompiuterių aplinkų. Standartinė kalba leis naudotojams, kurie mokosi SQL arba SQL serverio kursus, kurie žino vieną komandų rinkinį, jas naudoti kuriant, ieškant, modifikuojant ir perduodant informaciją, nesvarbu, kur jie dirba.

Mūsų vis labiau tarpusavyje susijusiame kompiuterių pasaulyje vartotojas, turintis tokią kalbą, turi didžiulį pranašumą įvairiais būdais naudodamas ir apibendrindamas informaciją iš įvairių šaltinių. Todėl SQL serverio mokymas ir SQL užklausų mokymas yra labai svarbūs.

Jos elegancija ir nepriklausomybė nuo kompiuterinių technologijų, taip pat reliacinių duomenų bazių technologijų pramonės lyderių palaikymas padarė SQL dominuojančia standartine kalba ir, tikėtina, artimiausioje ateityje išliks. Dėl šios priežasties kiekvienas, norintis dirbti su duomenų bazėmis, turėtų žinoti SQL, išklausyti pagrindinį SQL kursą arba mokytis SQL nuo nulio ir išklausyti pagrindinį SQL kursą.

SQL standartą apibrėžia ANSI (Amerikos nacionalinis standartų institutas) ir duotas laikas taip pat pripažino ISO (Tarptautinė standartizacijos organizacija). Tačiau dauguma komercinių duomenų bazių programų išplečia SQL be ANSI įspėjimo, pridedant įvairių kitų kalbos funkcijų, kurios, jų nuomone, bus labai naudingos. Kartais jie kiek pažeidžia kalbos standartą, nors geros idėjos linkusios vystytis ir dėl savo naudingumo greitai tampa savaime „rinkos“ standartais. Visų šių funkcijų galite išmokti lankydami SQL mokymo kursus mūsų biure arba SQL mokymus internetu.

Prieš pradėdami naudoti SQL, turite suprasti, kas yra reliacinės duomenų bazės ir kaip jos kuriamos, taip pat išklausyti SQL mokymo kursą ir išmokti SQL serverio pamokų, kad SQL duomenų bazės kūrimas neatrodytų bauginanti užduotis.

Kaip pabrėžėme anksčiau, SQL reiškia struktūrinės užklausos kalbą. Studijuoja SQL užklausos ir duomenų bazės užklausų kūrimas yra bene dažniausiai naudojamas SQL aspektas. Tiesą sakant, mažai tikėtina, kad kas nors naudotų kalbą SQL naudotojų kategorijoje. Dėl šios priežasties SQL kalbos tyrimą pradėsime aptardami užklausą ir kaip ji vykdoma šia kalba.

Užklausa yra komanda, kurią suteikiate savo duomenų bazės programai, kuri nurodo jai atspausdinti tam tikrą informaciją iš lentelių į atmintį. Ši informacija paprastai siunčiama tiesiai į jūsų naudojamą kompiuterio ekraną arba terminalą, nors daugeliu atvejų ji taip pat gali būti siunčiama į spausdintuvą, išsaugota faile (kaip objektas kompiuterio atmintyje) arba pateikiama kaip Papildoma informacija kitai komandai ar procesui.

Užklausos paprastai laikomos DML kalbos dalimi. Tačiau kadangi užklausa nekeičia informacijos lentelėse, o tiesiog parodo ją vartotojui, užklausas laikysime atskira kategorija tarp DML komandų, kurios atlieka veiksmą, o ne tiesiog rodo duomenų bazės turinį.

Visos SQL užklausos susideda iš vienos komandos. Šios komandos struktūra yra apgaulingai paprasta, nes turite ją išplėsti, kad būtų atlikti labai sudėtingi vertinimai ir duomenų apdorojimas. Ši komanda vadinama SELECT.

SQL kalba. Bazinis kursas.

Šioje pamokoje, kurią parašė Jevgenijus Morgunovas, aprašomi SQL kalbos pagrindai – tai pagrindinis kursas. Be to, kalba atsižvelgiama į konkrečią duomenų bazių valdymo sistemą (DBVS) - PostgreSQL. SQL kalbos įdiegimas kiekvienoje DBVS vienaip ar kitaip atitinka standartą, tačiau be standartizuotų funkcijų ir galimybių, kiekviena DBVS taip pat siūlo savo papildomų plėtinių kalba. PostgreSQL suteikia labai geras palaikymas SQL kalbos standartas, taip pat suteikia įdomių ir praktiškai naudingų papildomų funkcijų. Vienas iš pagrindinių PostgreSQL privalumų yra išplečiamumas. Tai reiškia, kad, pavyzdžiui, vartotojas (kuris, žinoma, yra duomenų bazės ekspertas) gali kurti savo duomenų tipus. Šie duomenų tipai turės visas įtaisytųjų duomenų tipų savybes ir gali būti pradėti naudoti nesustabdant serverio. Be to, PostgreSQL yra nemokamas atvirojo kodo produktas. pirminis kodas, kuri yra prieinama daugelyje platformų.

Mokomoji medžiaga apima ne tik visas pagrindines SQL komandas, bet ir kitas temas, tokias kaip indeksai ir operacijos. Vadovas parašytas taip, kad juo būtų galima naudotis tiek vadovaujant mokytojui, tiek savarankiškai. Daroma prielaida, kad studentai turi prieigą prie jau įdiegtos DBVS, todėl PostgreSQL diegimo procedūra nėra išsamiai aptariama, o pateikiamos tik instrukcijos, kur rasti diegimo instrukcijas. Ši pamoka skirta suteikti praktinių SQL kalbos naudojimo įgūdžių. Mokomoji medžiaga pateikiama taip, kad atlikdamas kiekvieno skyriaus pabaigoje pateiktas užduotis skaitytojas įgytų daug svarbių žinių.

Šios žinios gali būti nepateiktos pagrindiniame skyrių tekste. Daroma prielaida, kad didelę dalį užduočių skaitytojas atliks savarankiškai, naudodamas PostgreSQL DBVS dokumentaciją, tačiau dažnai pateikiamos jų įgyvendinimo instrukcijos.

Vadovas skirtas studentams, studijuojantiems 03/09/01 - "Informatika ir informatika", 03/09/02 - "Informacinės sistemos ir technologijos", 03/09/03 - "Taikomoji informatika", 03/ 09/04 – „Programinės įrangos inžinerija“ ir 02/03. 03 – „Matematinis informacinių sistemų palaikymas ir administravimas“. Tai gali būti naudinga daugeliui studentų ir specialistų, kurie nori susipažinti su SQL kalbos pagrindais PostgreSQL duomenų bazių valdymo sistemos aplinkoje.

Leidėjas – Postgres Professional

Išleidimo metai – 2017 m

Knygos formatas – PDF

Nuorašas

2 Postgres Professional Company E. P. Morgunovas SQL KALBA. PAGRINDINIO KURSŲ MOKYMO IR PRAKTINIS VADOVAS Maskva 2017 m

3 UDC BBK M79 M79 Morgunov, E. P. SQL kalba. Bazinis kursas: edukacinis-praktinis. pašalpa / E. P. Morgunovas; Redaguota E. V. Rogova, P. V. Luzanova; Postgres Professional. M., p. Šis mokomasis ir praktinis vadovas yra pirmoji, pagrindinė SQL kalbos mokymo kurso dalis, kurią siūlo Rusijos įmonė Postgres Professional. Mokomoji medžiaga pateikiama remiantis PostgreSQL duomenų bazių valdymo sistemos naudojimu. Vadovas gali būti naudojamas tiek vadovaujant mokytojui, tiek savarankiškas mokymasis SQL kalba. Vadovas skirtas studentams, studijuojantiems „Informatikos ir informatikos“, „Informacinės sistemos ir technologijos“, „Taikomosios informatikos“, „Programinės įrangos inžinerijos“ ir „Informacinių sistemų matematinės pagalbos ir administravimo“ srityse. Tai gali būti naudinga daugeliui studentų ir specialistų, kurie nori susipažinti su SQL kalbos pagrindais PostgreSQL duomenų bazių valdymo sistemos aplinkoje. UDC BBK Postgres Professional, 2017 E. P. Morgunovas, 2017 m.

4 Turinys Įvadas 5 1 Įvadas į duomenų bazes ir SQL Kas yra duomenų bazės ir kodėl jos reikalingos Pagrindinės reliacinio modelio sąvokos Kas yra kalba SQL aprašymas dalykinė sritis ir mokymo bazė duomenis Kontroliniai klausimai ir užduotys Darbo aplinkos kūrimas DBVS diegimas psql programa interaktyvus PostgreSQL terminalas Mokymo duomenų bazės diegimas Testo klausimai ir užduotys Pagrindinės operacijos su lentelėmis 22 Testo klausimai ir užduotys PostgreSQL DBMS duomenų tipai Skaitmeniniai tipai Simbolių (eilutės) tipai Datos/laiko tipai Būlio tipai Masyvai Tipai JSON iššūkiai ir iššūkiai Duomenų apibrėžimas Kalbos pagrindai Numatytosios reikšmės ir vientisumo apribojimai Lentelių kūrimas ir išmetimas Lentelių keitimas Rodiniai Duomenų bazės schemos iššūkiai ir iššūkiai Užklausos Išplėstinės SELECT komandos ypatybės. lentelės Eilučių pašalinimas iš lentelių Testo klausimai ir užduotys

5 8 Rodyklės Bendra informacija Kelių stulpelių indeksai Unikalūs indeksai Išraiškomis pagrįsti indeksai Daliniai rodyklės Viktorina ir pratimai Operacijos Atskyrimo lygis SKAITYTI NEĮSipareigotas Izoliacijos lygis SKAITYTI ĮSIPAREIGOTA Izoliacijos lygis KARTOTOJAMAS SKAITYTI Izoliacijos lygis SERIALIZUOJAMAS Operacijų pavyzdys Blokavimo Viktorina ir pratimai Našumo gerinimas Sąvokos Tvarkymo technikos Tvarkaraščio optimizavimo technikos. užklausos Testo klausimai ir užduotys Rekomenduojami šaltiniai 255 4

6 Įvadas Šiuo metu terminas „duomenų bazė“ yra žinomas daugeliui žmonių, net ir tiems, kurie toli nuo profesinio tobulėjimo. kompiuterines programas . Duomenų bazės tapo labai plačiai paplitusia technologija, kuriai, savo ruožtu, reikia daugiau žmonių joms kurti ir prižiūrėti. Duomenų bazių teorijos ir praktikos raidos eigoje reliacinių duomenų modelis tapo de facto standartu, o šio modelio rėmuose buvo suformuota specializuota programavimo kalba, leidžianti atlikti visas reikalingas operacijas su Structured Query Language ( SQL) duomenis. Taigi, svarbi duomenų bazių specialisto kvalifikacijos sudedamoji dalis yra SQL kalbos mokėjimas. Ši pamoka apima SQL kalbos pagrindus ir yra pagrindinis kursas. Be to, kalba atsižvelgiama į konkrečią duomenų bazių valdymo sistemą (DBVS) PostgreSQL. SQL kalbos įdiegimas kiekvienoje DBVS vienaip ar kitaip atitinka standartą, tačiau be standartizuotų funkcijų ir galimybių kiekviena DBVS taip pat siūlo savo papildomus kalbos plėtinius. PostgreSQL suteikia labai gerą SQL kalbos standarto palaikymą, taip pat įdomių ir praktiškai naudingų papildomų funkcijų. Vienas iš pagrindinių PostgreSQL privalumų yra išplečiamumas. Tai reiškia, kad, pavyzdžiui, vartotojas (kuris, žinoma, yra duomenų bazės ekspertas) gali kurti savo duomenų tipus. Šie duomenų tipai turės visas įtaisytųjų duomenų tipų savybes ir gali būti pradėti naudoti nesustabdant serverio. Be to, „PostgreSQL“ yra nemokamas atvirojo kodo produktas, prieinamas daugelyje platformų. Mokomoji medžiaga apima ne tik visas pagrindines SQL komandas, bet ir kitas temas, tokias kaip indeksai ir operacijos. Vadovas parašytas taip, kad juo būtų galima naudotis tiek vadovaujant mokytojui, tiek savarankiškai. Daroma prielaida, kad studentai turi prieigą prie jau įdiegtos DBVS, todėl PostgreSQL diegimo procedūra nėra išsamiai aptariama, o pateikiamos tik instrukcijos, kur rasti diegimo instrukcijas. Ši pamoka skirta suteikti praktinių SQL kalbos naudojimo įgūdžių. Mokomoji medžiaga pateikiama taip, kad atlikdamas kiekvieno skyriaus pabaigoje pateiktas užduotis skaitytojas įgytų daug svarbių žinių. Šios žinios gali būti nepateiktos pagrindiniame skyrių tekste. Daroma prielaida, kad didelę dalį užduočių skaitytojas atliks savarankiškai, naudodamas PostgreSQL DBVS dokumentaciją, tačiau dažnai pateikiamos jų įgyvendinimo instrukcijos. Vadove pateiktos užduotys skiriasi sudėtingumo lygiu. Sunkiausi iš jų, taip pat tie, kuriems atlikti reikia daug laiko, pažymėti žvaigždute. Užduotis galima atlikti studijuojant konkretaus skyriaus mokomąją medžiagą. Tačiau kai kurie iš jų yra sudėtingo pobūdžio, todėl norint juos užbaigti reikia išstudijuoti visą skyrių arba bent keletą jo dalių. 5

7 Nors vadovas yra orientuotas į praktiką ir nėra teorinis kursas, pirmame skyriuje trumpai, pradiniame lygmenyje, išdėstomos pagrindinės duomenų bazių teorijos ir reliacinio modelio sąvokos. Tai daroma tam, kad studentai galėtų nedelsdami pradėti praktiškai įsisavinti SQL kalbą nuo pirmųjų akademinio semestro dienų, net iki to momento, kai šios sąvokos bus nuodugniai aptariamos paskaitų kurse. Fakultetuose informacines technologijas Rusijos universitetuose duomenų bazės tradiciškai tiriamos antrame ar trečiame kurse. Be to, šiai disciplinai paprastai skiriamas vienas semestras. Tačiau akademinių studijų valandų skaičius gali skirtis. Jei šios disciplinos praktiniams užsiėmimams mokymo programoje yra skirtos 36 valandos, tada vadovo medžiagai mokytis rekomenduojame skirti laiko taip. 1 skyrius. Duomenų bazių ir SQL įvadas 2 skyrius. Darbastalio kūrimas Skyrius 3. Pagrindinės lentelės operacijos 4 skyrius. PostgreSQL duomenų tipai 5 skyrius. Duomenų apibrėžimo kalbos pagrindai 6 skyrius. Užklausos 7 skyrius. Duomenų keitimas Skyrius 8. Indeksai 9 skyrius. Operacijos 10 skyrius: Produktyvumo didinimas 1 valanda 1 valanda 4 valandos 4 valandos 4 valandos 8 valandos 4 valandos 2 valandos 4 valandos 4 valandos 1 ir 2 skyrius galima atlikti per vieną dviejų valandų pamoką, nes PostgreSQL jau turi būti įdiegtas klasėje iš anksto. 3 skyriuje trumpai apžvelgiamos pagrindinės SQL kalbos savybės, o ją baigę mokiniai turėtų suprasti paprastus būdus, kaip naudoti visas pagrindines kalbos komandas. Šis skyrius nėra labai sunkus, tačiau yra didelis, todėl jo studijoms skiriamos keturios valandos. 4 skyrius apima pagrindinius duomenų tipus, naudojamus PostgreSQL. Tai ilgas skyrius, tačiau didelę jo dalį sudaro užduotys ir pratimai. Tikimasi, kad per keturias valandas studentai išmoks tik pagrindines duomenų tipų naudojimo sąvokas. Ir norint, kad žinios būtų įtvirtintos, rekomenduojama remtis šio skyriaus medžiaga (įskaitant pratybas) studijuojant likusius vadovo skyrius, jei reikia, paaiškinti tam tikras taikymo ypatybes. specifiniai tipai. Rekomenduojame šio skyriaus studijoms skirtą laiką padalyti taip: dvi valandas pirmosioms keturioms pastraipoms apie skaitinius ir eilučių tipus, datos/laiko tipus ir loginį tipą, dar dvi valandas masyvams ir json/jsonb tipui. Norėdami vykdyti duomenų bazės užklausas, turite gerai suprasti jos struktūrą ir lentelių ryšius. Todėl 5 skyrius, kuriame pateikiami duomenų apibrėžimo kalbos pagrindai, yra labai svarbus detalaus Oro transporto duomenų bazės lentelių tyrimo ir pasirengimo 6 skyriaus įsisavinimui požiūriu. Kadangi skyriuje pateikta medžiaga yra pagrįsta apie tai, kad duomenų bazė jau yra įdiegta mokinio kompiuteryje, įveskite Lentelių kūrimui nereikia komandų. Tai leidžia sutrumpinti skyriaus studijoms skiriamą laiką. Vadove laikomasi požiūrio, kai pirmiausia apima duomenų apibrėžimo komandas, o vėliau – duomenų tvarkymo komandas. Todėl 5 skyrius „Duomenų apibrėžimo kalbos pagrindai“ yra prieš 6 skyrių

8 6 skyrius „Užklausos“. Tačiau pasirinktas metodas nėra įgyvendinamas pernelyg griežtai: apžvalgos 3 skyriuje pateikiamos pagrindinės komandos, įskaitant paprastas užklausas. O užklausos jau yra duomenų apdorojimo kalba. 5 skyriui skirtos keturios valandos. Per pirmąją dviejų valandų pamoką turėtumėte išstudijuoti pirmas dvi pastraipas, kuriose aptariami tokie klausimai kaip vientisumo apribojimai ir lentelių kūrimas bei trynimas. Antroji dviejų valandų pamoka turėtų būti skirta likusių trijų pastraipų studijavimui. Jie kalba apie lentelių, rodinių ir duomenų bazių schemų modifikavimo būdus. 6 skyrius yra pagrindinis vadovo skyrius, todėl jo studijoms skiriamos aštuonios valandos, tai yra daugiau nei kitų skyrių studijoms. Jį sudaro keturios pastraipos. Pirmasis iš jų skirtas įvairiems papildomos funkcijos SELECT komandos. Tai apie, ypač apie tokius dalykus kaip LIMIT ir OFFSET sąlygos, operatorius LIKE ir įprastos išraiškos sąlygos WHERE sąlygose ir kitos funkcijos. Tačiau šio skyriaus medžiaga nėra sudėtinga, jos studijavimui užtenka vienos valandos. Antroje pastraipoje kalbama apie lentelių sujungimo būdus. Tai sudėtingesnė tema, kuriai reikia dviejų valandų. Trečioje pastraipoje kalbama apie agregavimą ir grupavimą. Jame kalbama apie tokį svarbų ir įdomi tema, kaip ir lango funkcijos. Šiam skyriui taip pat reikia dviejų valandų pamokos. Sunkiausia šio skyriaus dalis yra ketvirtoji. Kalbama apie antrines užklausas. Visų pirma, ji apima tokią svarbią ir įdomią temą kaip bendrosios lentelės išraiškos CTE. Norėdami ištirti šios pastraipos medžiagą, turite skirti tris valandas. 7 skyriuje yra visos komandos duomenų keitimui: eilučių įterpimui, eilučių atnaujinimui ir eilučių trynimui. Kadangi ankstesniuose skyriuose šios komandos jau buvo naudojamos paprastoms problemoms spręsti, šiame skyriuje aprašomi sudėtingesni jų naudojimo būdai. Jame yra daug pratimų, jie sudaro pusę jo tūrio. Rekomenduojama dvi valandas mokytis, kaip įterpti eilutes į lenteles, ir dar dvi valandas mokytis atnaujinti ir ištrinti eilutes. 8 skyrius yra apie rodykles ir yra trumpas, todėl jį galima atlikti per vieną dviejų valandų pamoką. Kadangi indeksai yra glaudžiai susiję su našumo problemomis, ty užklausos vykdymo greičiu, patartina, išstudijavus paskutinį skyrių, grįžti į 8 skyrių ir pažvelgti į jame pateiktas komandas ir užklausas, jau žinant apie komandą EXPLAIN. . Sandoriams skirtas 9 skyrius.Jų vykdymo mechanizmai turi daug subtilybių, todėl studijuojant šį skyrių būtina eksperimentuoti ir bandyti paaiškinti gautus rezultatus. Paskutiniame 10 skyriuje aptariamas našumo didinimas. Šis skyrius gali atrodyti pernelyg abstraktus ir sudėtingas pradedančiajam SQL kursui, tačiau jis vis dėlto labai svarbus. Studentai turi išmokti skaityti užklausų vykdymo planus ir suprasti kiekvienos plane nurodytos operacijos tikslą. O įvaldyti užklausų optimizavimo meną pareikalaus daug laiko ir patirties, ji neateis iš karto. Tuo atveju, kai disciplinos „Duomenų bazės“ praktiniams užsiėmimams programoje yra skirtos 54 valandos, galima keisti siūlomą mokymo valandų paskirstymą. Visų pirma, 4 skyriuje daugiau laiko galima skirti 7 duomenų tipams

9 json/jsonb ir masyvai. 6 skyriuje atidžiau pažvelgta į langų funkcijas ir įprastas lentelių išraiškas. Nagrinėjant 9 skyrių apie sandorius, būtų naudinga sukurti paprastą programą, kuri naudoja operacijas, ir eksperimentuoti su programa paleisdami kelis seansus lygiagrečiai, tuo pačiu keičiant operacijų izoliavimo lygius. Kaip dalis 10 skyriaus, prasminga grįžti prie 8 skyriaus komandų ir užklausų ir išnagrinėti jų vykdymo planus naudojant komandą EXPLAIN. Dėl papildomo laiko galite apsvarstyti visas padidinto sudėtingumo užduotis ir pratimus (pažymėtus žvaigždute). Taigi laiko pasiskirstymas galėtų būti toks: 1 skyrius. Duomenų bazių ir SQL įvadas 2 skyrius. Darbo aplinkos kūrimas 3 skyrius. Pagrindinės lentelės operacijos 4 skyrius. PostgreSQL duomenų tipai 5 skyrius. Duomenų apibrėžimo kalbos pagrindai 6 skyrius. Užklausos 7 skyrius . jų paskirties vietas. Vartotojo įvestos komandos kaip aplinkoje Operacinė sistema, o psql paslaugų aplinkoje yra paryškinti paryškintu monospace šriftu. Pavyzdžiui: psql -d demo -U postgres arba SELECT avg(total_amount) FROM užsakymai; Operacinės sistemos komandų ir SQL komandų, vykdomų psql paslaugų aplinkoje, rezultatai spausdinami monospace šriftu. Pavyzdžiui, atsakant į komandą EXPLAIN SELECT * FROM orcrafts; Ekrane bus rodoma: QUERY PLAN Seq Scan on orcraft (kaina = eilutės = 9 plotis = 52) (1 eilutė) Tikimės, kad vadovėlyje pateiktos medžiagos studijavimas padės pagerinti jūsų įgūdžių lygį ir išplėsti profesinį akiratį . 8

10 1 Įvadas į duomenų bazes ir SQL Šis skyrius yra įvadinis. Jame kalbėsime apie duomenų bazių pagrindus, kas yra reliacinis modelis ir kam reikalinga SQL kalba. Labai svarbi tema šiame skyriuje bus dalykinės srities aprašymas, kurio pagrindu bus kuriama mokymo duomenų bazė, kuri pasitarnaus kaip SQL kalbos mokymosi platforma. Šis vadovas visų pirma skirtas praktiniam SQL kalbos įsisavinimui, o ne duomenų bazės teorijos studijoms, todėl norint studijuoti teoriją reikia remtis autoritetingais šaltiniais, kurių sąrašas pateikiamas vadovo pabaigoje. 1.1 Kas yra duomenų bazės ir kam jos reikalingos Duomenų bazių technologijos egzistavo ne visada. Tačiau dar prieš jų įgyvendinimą žmonės taip pat rinko ir tvarkė duomenis. Vienas iš duomenų saugojimo būdų buvo vadinamieji plokšti failai, kurių struktūra buvo labai paprasta: duomenys buvo saugomi įrašų, suskirstytų į fiksuoto ilgio laukus, pavidalu. Realiame gyvenime tarp duomenų elementų dažnai atsiranda sudėtingų ryšių, kuriuos reikia perkelti į elektroninę duomenų bazę. Naudojant plokščius failus, šiuos ryšius sunku organizuoti ir dar sunkiau išlaikyti, kai pakeičiami arba ištrinami atskiri duomenų elementai. Viena iš pagrindinių duomenų bazės teorijos sąvokų yra duomenų modelis. Galima sakyti, kad tai apibūdina duomenų organizavimo būdą ir pagrindinius prieigos prie jų būdus. Pirmiausia buvo pasiūlyti hierarchiniai ir tinklo duomenų modeliai. Tačiau teorijų ir idėjų evoliucijos eigoje buvo sukurtas reliacinis duomenų modelis, kuris dabar yra dominuojantis. Todėl šiuo metu vyrauja reliacinio tipo duomenų bazės. Jų būdingas bruožas yra tai, kad duomenis vartotojas suvokia kaip lenteles. Vartotojas turi savo žinioje operatorius duomenims iš lentelių paimti, taip pat naujiems duomenims įterpti, esamiems duomenims atnaujinti ir ištrinti. Vienas iš reliacinės duomenų bazės privalumų yra galimybė palaikyti ryšius tarp duomenų elementų, todėl programuotojas nebereikia užsiimti šiuo įprastu ir labai daug laiko reikalaujančiu darbu. Tais laikais, kai reliacinės duomenų bazių technologijos dar nebuvo plačiai paplitusios, programuotojai turėjo rankiniu būdu įdiegti operacijas procedūrinėmis kalbomis, kurios dabar vadinamos kaskadiniais pašalinių raktų atnaujinimais arba kaskadiniais įrašų trynimais iš antraeilių lentelių (failų). Čia žodis „rankiniu būdu“ reiškia, kad norint atlikti šias operacijas, reikėjo parašyti kodą, susidedantį iš elementarių komandų, kad būtų pasiektas kiekvienas atnaujinamas ar naikinamas įrašas. Toks požiūris į darbą su duomenų bazėmis buvo vadinamas navigacija; programuotojas programai nurodė konkretų įrašų paieškos algoritmą. Kaip pavyzdį paimkime paprastą situaciją: failų pagrindu sukurtoje duomenų bazėje saugoma informacija apie mokinius ir jų egzaminų pažymius, o asmeniniai mokinių duomenys – viename faile, pavadinkime jį „Studentais“, o egzaminų pažymiai. kitame faile, kurį pavadinkime „Vertinimais“. Jei reikia ištrinti informaciją apie konkretų studentą ir jo egzamino darbus 9

11 pažymių, tuomet turėsite ne tik atlikti konkretaus įrašo ištrynimo operaciją iš failo „Mokiniai“, bet papildomai organizuoti ciklą, ieškant ir ištrinant iš „Pažymių“ failo įrašus, kurių rakto lauko reikšmė tokia pati kaip laukelį ištrintame įraše iš bylos „Studentai“. Dirbdamas su reliacinėmis duomenų bazėmis, programuotojas yra atleidžiamas nuo programavimo „atominiu“ lygiu, nes šiuolaikinės „bendravimo“ su šiomis duomenų bazėmis kalbos yra deklaratyvios. Tai reiškia, kad norint gauti rezultatą, pakanka tik nurodyti, ką reikia gauti, tačiau nebūtina nurodyti rezultato gavimo būdo, t.y., kaip jį gauti. Duomenų bazių sistema – tai kompiuterizuota sistema, skirta informacijai saugoti, apdoroti ir vartotojų prašymu išduoti. Tokia sistema apima programinę ir techninę įrangą, pačius duomenis ir vartotojus. Šiuolaikinės sistemos duomenų bazės, kaip taisyklė, yra kelių vartotojų. Tokiose sistemose prie duomenų bazės vienu metu gali prisijungti keli vartotojai. Pagrindinė programinė įranga yra duomenų bazių valdymo sistema. Angliškai ji vadinama duomenų bazių valdymo sistema (DBMS). Be DBVS, duomenų bazių sistemoje gali būti komunalinių paslaugų, taikomųjų programų (programų) kūrimo įrankių, duomenų bazių projektavimo įrankių, ataskaitų generatorių ir kt. Duomenų bazių sistemų vartotojai skirstomi į keletą kategorijų. Pirmoji kategorija – taikomųjų programų programuotojai. Antroji kategorija – galutiniai vartotojai, už kuriuos atliekamas visas darbas. Jie gali pasiekti duomenų bazę naudodami taikomosios programos arba universalios programos, kurios yra įtrauktos į programinė įranga pati DBVS. Dauguma DBVS turi vadinamąjį užklausos kalbos procesorių, kuris leidžia vartotojui įvesti aukšto lygio kalbos komandas (pvz., SQL). Trečioji vartotojų kategorija yra duomenų bazių administratoriai. Jų pareigos apima: sukurti duomenų bazę, pasirinkti optimalius prieigos prie jos būdus, apriboti skirtingų vartotojų galias pasiekti tam tikrą duomenų bazėje esančią informaciją, vykdyti Rezervinė kopija duomenų bazės ir tt Duomenų bazių sistemą galima suskirstyti į du pagrindinius komponentus: serverį ir klientų (arba sąsajų) rinkinį. Serveris yra DBVS. Klientai yra įvairios programos, kurias parašė programų programuotojai, arba įmontuotos programos, tiekiamos kartu su DBVS. Vienas serveris gali aptarnauti daug klientų. Šiuolaikinėse DBVS yra duomenų žodynas. Tai yra duomenų bazės dalis, kuri apibūdina pačius joje saugomus duomenis. Duomenų žodynas padeda DBVS atlikti savo funkcijas. 1.2 Pagrindinės reliacinio modelio sąvokos Kiekviena technologijų sritis turi savo terminiją. Yra pagrindinės sąlygos, kuriomis grindžiamos visos tolesnės diskusijos. Vartojami tokie terminai

12 taip pat yra duomenų bazių sektoriuje. Dabar apie juos trumpai pakalbėsime. Epochoje iki reliacinės teorijos atsiradimo į duomenų bazes tradiciškai buvo žiūrima kaip į rinkmenų, sudarytų iš įrašų, rinkinį, o įrašai savo ruožtu buvo suskirstyti į atskirus laukus. Laukas buvo elementarus duomenų vienetas. Reliacinėse duomenų bazėse vartotojas duomenis suvokia lentelių pavidalu. Todėl terminas „failas“ atitinka terminą „lentelė“, vietoj termino „įrašas“ vartojamas terminas „eilutė“, o vietoje termino „laukas“ – terminas „stulpelis“ (arba „stulpelis“). naudotas. Taigi lentelės susideda iš eilučių ir stulpelių, kurių sankirtoje turi būti „atominės“ reikšmės, kurių negalima suskaidyti į mažesnius elementus neprarandant prasmės. Formaliojoje reliacinių duomenų bazių teorijoje šios lentelės vadinamos ryšiais, todėl duomenų bazės vadinamos reliacinėmis. Santykis yra matematinis terminas. Nustatant tokių ryšių savybes, naudojama aibių teorija. Pagal šią teoriją lentelės eilutės bus vadinamos kortelėmis, o stulpeliai – atributais. Santykis turi galvą, kurią sudaro atributai, ir kūną, kuris susideda iš eilučių. Atributų skaičius vadinamas ryšio laipsniu, o kortelių skaičius – kardinaliuoju skaičiumi. Be aibių teorijos, vienas iš santykių teorijos pagrindų yra tokia matematinės logikos šaka kaip predikatinis skaičiavimas. Taigi duomenų bazių teorijoje ir praktikoje yra trys terminų grupės. Kartais skirtingų grupių terminai naudojami kaip sinonimai, pavyzdžiui, įrašas ir eilutė. Kaip minėjome aukščiau, reliacinėse duomenų bazėse vartotojas duomenis suvokia lentelių pavidalu. Panagrinėkime paprastą sistemą, kurioje yra tik dvi lentelės. Pirmoji „Mokiniai“: pažymių knygelė Pilnas pavadinimas Dokumentų serija Dokumento numeris Ivanovas Ivanas Petrovičius Klimovas Andrejus Ivanovičius Novikovas Nikolajus Jurjevičius Ir antrasis „Pasiekimas“: pažymių knygelė Dalykas Studijų metai Semestro įvertinimas Fizika 2016 / Matematika 2016 / 1 Fizika / Kai 2016 dirbant su duomenų bazėmis, dažnai tenka laikytis įvairių apribojimų, kuriuos gali nulemti konkrečios dalykinės srities specifika. Supaprastindami realią situaciją, sutinkame su šiais apribojimais: 11

13 Įrašų knygos numerį sudaro penki skaitmenys ir jis negali būti neigiamas (skirtingi universitetai naudoja įvairios schemos numerių priskyrimas pažymių knygelėms; šios schemos gali būti daug sudėtingesnės nei mūsų pasirinktos ir gali būti atsižvelgta, pavyzdžiui, į metus, kai studentas įstojo į universitetą); asmens tapatybę patvirtinančio dokumento serija – keturženklis, o asmens tapatybę patvirtinančio dokumento numeris – šešiaženklis; semestro skaičius gali turėti tik dvi reikšmes: 1 (rudens semestras) ir 2 (pavasario semestras); pažymys gali būti tik trys: 3 (patenkinamai), 4 (gerai) ir 5 (puikiai): kiti pažymiai į pažymių knygeles nepriimami. Lentelių eilutėms identifikuoti ir lentelėms tarpusavyje susieti naudojami vadinamieji raktai. Kandidato raktas yra lentelės atributų derinys, unikaliai identifikuojantis joje esančias eilutes. Raktą taip pat gali sudaryti tik vienas lentelės atributas. Pavyzdžiui, lentelėje „Mokiniai“ toks identifikatorius gali būti atributas „Pažymių knygos numeris“. Du jos atributai kartu gali būti naudojami kaip galimas šios lentelės raktas: „Asmens dokumento serija“ ir „Asmens dokumento numeris“. Nė vienas iš jų negali būti naudojamas kaip unikalus identifikatorius. Šiuo atveju raktas bus sudėtinis. Svarbu, kad potencialus raktas nebūtų perteklinis, ty joks į jį įtrauktų atributų poaibis neturėtų turėti unikalumo savybės. Kandidato raktas, apimantis du minėtus atributus, yra neperteklinis. Raktai reikalingi eilutės (įrašo) lygio adresavimui. Jei lentelėje yra daugiau nei vienas kandidatas raktas, vienas iš jų pasirenkamas kaip vadinamasis pirminis raktas, o likusieji bus alternatyvūs raktai. Pažvelkime į lenteles „Studentai“ ir „Pasiekimai“. Tarkime, kad lentelėje „Mokiniai“ nėra eilutės su pažymių knygelės numeriu 55900, tada į lentelę „Pažanga“ nėra prasmės įtraukti eilutę su šiuo pažymių knygelės numeriu. Taigi, lentelės „Pasiekimai“ stulpelio „Pažymių knygos numeris“ reikšmės turi atitikti to paties stulpelio „Studentai“ lentelės reikšmes. Atributas Įvertinimų knygos numeris lentelėje Akademinė pažanga yra vadinamojo išorinio rakto pavyzdys. Lentelė, kurioje yra išorinis raktas, vadinama nuorodų lentele. Lentelė, kurioje yra atitinkamas kandidato raktas, vadinama nuoroda lentele. Tokiais atvejais sakoma, kad išorinis raktas nurodo raktą kandidatą nuorodų lentelėje. Užsienio raktas gali būti sudėtinis, tai yra, jame gali būti daugiau nei vienas atributas. Užsienio raktas neturi būti unikalus. Užtikrinimo, kad duomenų bazėje nebūtų neteisingų užsienio raktų reikšmių, problema yra žinoma kaip nuorodos vientisumo problema. Apribojimas, kad užsienio raktų reikšmės turi atitikti kandidatų raktų reikšmes, vadinamas nuorodos vientisumo apribojimu. DBVS yra atsakinga už nuorodos vientisumo apribojimų vykdymą, o kūrėjas turi nurodyti tik atributus, kurie naudojami kaip išoriniai 12

14 raktų. Duomenų bazės projektavimas dažnai reikalauja, kad ištrinant eilutę iš nurodytos lentelės, atitinkamos nurodytos lentelės eilutės taip pat turi būti ištrintos, o pasikeitus stulpelio, kuriame nurodomas išorinis raktas, reikšmės, išorinio rakto reikšmės nuoroda lentelė turi būti pakeista. Šis metodas vadinamas kaskadiniu trynimu (atnaujinimu). Kartais naudojami kiti metodai. Pavyzdžiui, užuot ištrynę eilutes iš nuorodų lentelės, tos eilutės tiesiog pakeičiamos į išorinį raktą įtrauktų atributų reikšmėmis vadinamosiomis NULL reikšmėmis. Tai yra specialios reikšmės, reiškiančios „nieko“ arba jokios reikšmės, ir nėra tas pats, kas „nulis“ arba „tuščia eilutė“. NULL reikšmė naudojama duomenų bazėse ir kaip numatytoji reikšmė, kai vartotojas neįvedė jokios konkrečios reikšmės. Pirminiuose raktuose negali būti NULL reikšmių. Sandoriai yra viena iš svarbiausių duomenų bazių teorijos sąvokų. Tai duomenų bazės operacijų rinkinys, laikomas vienu ir nedalomu darbo vienetu, visiškai arba visai neatliekamas, jei operacijos metu įvyksta koks nors gedimas. Taigi sandoriai yra duomenų nuoseklumo užtikrinimo priemonė. Mūsų duomenų bazėje sandorį gali sudaryti, pavyzdžiui, dvi operacijos: eilutės išbraukimas iš lentelės „Studentai“ ir su išoriniu raktu susijusių eilučių ištrynimas iš lentelės „Pasiekimai“. 1.3 Kas yra SQL kalba SQL kalba yra neprocedūrinė kalba, kuri yra standartinėmis priemonėmis darbas su duomenimis visose reliacinėse DBVS. Šia kalba parašyti operatoriai (komandos) tik nurodo DBVS, kokį rezultatą reikia gauti, bet neaprašo šio rezultato gavimo tvarkos. Pati DBVS nustato vartotojo komandos vykdymo būdą. SQL kalba tradiciškai išskiria duomenų apibrėžimo operatorių grupę (Data Definition Language DDL), duomenų apdorojimo operatorių grupę (Data Manipulation Language DML) ir operatorių grupę, kuri valdo prieigos prie duomenų bazės objektų privilegijas (Data Control Language DCL). Duomenų apibrėžimo kalbos (DDL) sakiniai apima komandas, skirtas kurti, keisti ir ištrinti lenteles, rodinius ir kitus duomenų bazės objektus. Šios komandos išsamiai aprašomos 5 ir 8 skyriuose.. Duomenų manipuliavimo kalbos (DML) teiginiai apima komandas, skirtas nuskaityti eilutes iš lentelių, įterpti eilutes į lenteles, atnaujinti eilutes ir ištrinti eilutes. Šios komandos išsamiai aptariamos 6 ir 7 skyriuose. DCL teiginiai pamokoje neaptariami, nes PostgreSQL leidžia jų nenaudoti pradiniame SQL kalbos mokymosi etape. 13

15 1.4 Dalyko srities ir mokymo duomenų bazės aprašymas Norėdami parodyti visas pagrindines SQL kalbos galimybes, mums reikia duomenų bazės. Ši duomenų bazė neturėtų būti pernelyg sudėtinga, kad jos studijoms nereikėtų per daug laiko. Tačiau tuo pat metu jis turi būti pakankamai įvairus, kad prašymai į jį atrodytų tikėtini, beveik tokie patys kaip ir realiame darbe. Kaip dalyką pasirinksime keleivių vežimą oro transportu. Originalų jo aprašymą ir oro transporto duomenų bazės aprašymą rasite adresu ru/docs/postgrespro/current/demodb-bookings.html. Tikimės, kad ši sritis yra žinoma daugeliui mūsų vadovėlio skaitytojų. Žinoma, edukaciniais tikslais tikroji situacija sąmoningai supaprastinama, tačiau išsaugomi visi esminiai dalykai. Taigi, tam tikra Rusijos oro linijų bendrovė vykdo keleivių pervežimą. Ji turi savo orlaivių parką įvairių modelių. Kiekvienas orlaivio modelis turi tam tikrą Tarptautinės oro transporto asociacijos (IATA) priskirtą kodą. Šiuo atveju darysime prielaidą, kad to paties modelio orlaivių salono išdėstymas yra vienodas, t.y., verslo klasės ir ekonominės klasės salonų sėdynių išdėstymo ir numeravimo tvarka. Pavyzdžiui, jei tai yra Sukhoi SuperJet-100 modelis, tada 2A sėdynė yra verslo klasė, o 20D sėdynė yra ekonominė. Verslo klasė ir ekonominė klasė yra vadinamosios paslaugų klasės atmainos. Mūsų aviakompanija vykdo skrydžius tarp Rusijos oro uostų. Kiekvienam oro uostui priskiriamas unikalus trijų raidžių kodas, naudojant tik didžiąsias lotyniškos abėcėlės raides. Šiuos kodus skiria ne pati aviakompanija, o specialios organizacijos, tvarkančios keleivių vežimą oru. Dažnai oro uosto pavadinimas nesutampa su miesto, kuriam priklauso oro uostas, pavadinimu. Pavyzdžiui, Novosibirsko mieste oro uostas vadinamas Tolmačevo, Jekaterinburgo mieste – Koltsovo, o Sankt Peterburge – Pulkovo. Be to, kai kuriuose miestuose yra daugiau nei vienas oro uostas. Kaip pavyzdį iš karto prisimenu Maskvą su Domodedovo, Šeremetjevo ir Vnukovo oro uostais. Pridėkime dar vieną svarbią detalę: kiekvienas oro uostas yra charakterizuojamas geografines koordinates ilguma ir platuma bei laiko juosta. Formuojami skrydžių maršrutai tarp miestų. Žinoma, kiekviename tokiame maršrute reikia nurodyti ne tik miestą, bet ir oro uostą, nes, kaip jau minėjome, mieste gali būti ne vienas oro uostas. Siekdami supaprastinti realybę, nuspręsime, kad maršrutai neturės tarpinių sustojimų, t.y. juose bus tik išvykimo ir paskirties oro uostas. Kiekvienas maršrutas turi šešių skaitmenų skaičių, įskaitant lotyniškos abėcėlės skaičius ir raides. Remiantis maršrutų sąrašu, sudaromas skrydžių tvarkaraštis (arba skrydžiai). Grafike nurodomas numatytas išvykimo ir atvykimo laikas, taip pat skrydį vykdančio orlaivio tipas. Kai skrydis realiai vykdomas, reikia atsižvelgti į Papildoma informacija, būtent: faktinis išvykimo laikas ir tikrasis atvykimo laikas, taip pat skrydžio būsena. Skrydžio būsena gali turėti keletą reikšmių: 14

16 Suplanuota (užsisakyti galima prieš mėnesį); Laiku (registracija pradedama prieš dieną); Atidėtas (skrydis atidėtas); Išvyko; Atvyko (atvyko); Atšauktas. Dabar kreipiamės į keleivius. Skrydis prasideda nuo bilieto užsakymo. Šiuo metu įprasta išduoti elektroninius bilietus. Kiekvienas toks bilietas turi unikalų numerį, susidedantį iš 13 skaitmenų. Vienos užsakymo procedūros metu gali būti išduodami keli bilietai, tačiau kiekviena tokia procedūra turi unikalų šešių skaitmenų užsakymo numerį (šifrą), susidedantį iš didžiųjų lotyniškos abėcėlės raidžių ir skaičių. Be to, kiekvienai užsakymo procedūrai įrašoma užsakymo data ir apskaičiuojama bendra išduodamų bilietų kaina. Kiekviename biliete, be trylikos skaitmenų numerio, yra keleivio identifikatorius, taip pat jo vardas ir pavardė (lotyniška transkripcija) ir kontaktinė informacija. Keleivio identifikavimo dokumento numeris naudojamas kaip keleivio identifikatorius. Žinoma, keleivis gali pakeisti savo dokumentą, o kartais net pavardę ir vardą per laiką, praėjusį tarp bilietų užsakymo skirtingomis dienomis, todėl tiksliai pasakyti, ar tam pačiam keleiviui buvo išduoti kokie nors konkretūs bilietai, neįmanoma. Kiekviename elektroninis bilietas Gali būti įtrauktas daugiau nei vienas skrydis. Ekspertai šiuos skrydžių įrašus vadina segmentais. Kelių segmentų buvimo pavyzdys yra toks: Krasnojarskas Maskva, Maskvos Anapa, Anapa Maskva, Maskvos Krasnojarskas. Tuo pačiu metu vieno rezervavimo metu galima išduoti kelis bilietus skirtingiems keleiviams. Kiekvienam skrydžiui nurodomas skrydžio numeris, išvykimo ir paskirties oro uostai, išvykimo ir atvykimo laikai, taip pat skrydžio kaina. Be to, nurodoma vadinamoji paslaugų klasė: ekonominė, verslo ir tt Keleiviui atvykus į išvykimo oro uostą ir užsiregistravus dėl bilieto, išduodamas vadinamasis įlaipinimo talonas. Šis kuponas yra susietas su lėktuvo bilietu: kupone nurodomas tas pats numeris, kurį turi šio keleivio elektroninis bilietas. Be to, biliete nurodomas skrydžio numeris ir vietos numeris lėktuve. Taip pat nurodomas įlaipinimo bilieto numeris – eilės numeris, priskirtas registruojantis tam tikro skrydžio bilietams. Priminsime, kad kiekviena vieta lėktuvo salone atitinka tam tikrą aptarnavimo klasę. Ši informacijaį kuriuos atsižvelgiama registruojant bilietus ir išduodant įlaipinimo talonus. Jei, pavyzdžiui, keleivis įsigijo ekonominės klasės bilietą, tai jo įlaipinimo kortelėje bus nurodytas vietos numeris ekonominės klasės salone, bet ne verslo klasės salone. Vadovaudamiesi pateiktu dalykinės srities aprašymu, galite sukurti modelių duomenų bazę, skirtą SQL kalbos mokymuisi. Kadangi mūsų vadovėlis pirmiausia skirtas mokytis SQL kalbos, o ne duomenų bazės projektavimo menui, parodysime tik 15 diagramą.

17 Užsakymai Užsakymai Oro uostai Oro uostai # book_ref * book_date * total_amount # oro uosto_kodas * oro uosto_pavadinimas * miestas * ilguma * platuma * laiko juosta Bilietai Bilietai # bilieto_nr * book_ref * keleivio_id * keleivio_vardas kontaktiniai_duomenys Bilietų_skrydžiai Skrydžiai * bilietų_nr # skrydžio_idflight_flight_flight_ * planuotas_išvykimas * tvarkaraštis_atvykimas * išvykimo_oro uostas * atvykimo_oro uostas * būsena * lėktuvo_kodas faktinis_išvykimas faktinis_atvykimas Orlaiviai Lėktuvai # lėktuvo_kodas * modelis * diapazonas Įlaipinimo bilietai Sėdynės Vietos # bilieto_no # skrydžio_id * įlaipinimo_nr * sėdynės_nr # skrydžio_id * įlaipinimo_nr * sėdynės_nr , taip pat jų ryšiai ir atributai. Kituose skyriuose parodysime konkrečius duomenų tipus, pirminius ir pašalinius raktus, taip pat apribojimus, taikomus atributams ir lentelėms, kai pažvelgsime į SQL komandas, skirtas fiziškai kurti lenteles duomenų bazėje. Aukščiau pateiktą diagramą galite rasti „Postgres Professional“ svetainėje adresais, nurodytais šio skyriaus pradžioje. Testo klausimai ir užduotys 1. Kokios operatorių grupės išskiriamos kaip SQL kalbos dalis? 2. Pateikite neformalų pagrindinių reliacinio duomenų modelio sąvokų apibrėžimą: ryšys, eilė, požymis. 3. Kodėl reliacinėse lentelėse reikalingi išoriniai raktai? 4. Kas yra kandidato raktas? 5.* Pateikite perteklinio kandidato rakto pavyzdį vienai iš oro linijų duomenų bazės lentelių ir paaiškinkite, kodėl jis būtų perteklinis. 16

18 6.* Dabartinis oro transporto duomenų bazės įgyvendinimas daro prielaidą, kad to paties modelio orlaiviuose gali būti tik vienas salono išdėstymas. Įsivaizduokime, kad vadovybė nusprendžia, jog būtina atsižvelgti į galimybę turėti skirtingus kiekvieno modelio maketus. Kurias lenteles šiuo atveju reikės keisti ir kaip? Ar man reikės sukurti papildomų lentelių? 17

19 2 Darbo aplinkos kūrimas Prieš pradėdami tiesiogiai mokytis SQL kalbos, turite gauti prieigą prie PostgreSQL serverio. Tai galima padaryti, pavyzdžiui, kompiuterių laboratorijoje arba susisiekus nuotolinis serveris per terminalą. Tačiau galite kurti darbo aplinka sau ir savo vietinis kompiuteris, nustatymas pilna versija PostgreSQL DBVS, t.y. serverio ir kliento programos. Tokiu atveju turėsite daug daugiau galios konfigūruoti ir naudoti PostgreSQL. Paskutinėje skyriaus dalyje parodysime, kaip įdiegti mokomąją krovinių oro transportu duomenų bazę, užpildytą specialiai paruoštais patikimais duomenimis. 2.1 DBVS diegimas Kadangi ši pamoka skirta SQL kalbos mokymuisi, o ne PostgreSQL DBVS administravimo pagrindams, apsiribosime tik trumpomis instrukcijomis, kur rasti diegimo instrukcijas. Pirmiausia turite pasirinkti DBVS platinimą, kurį norite įdiegti. Galite pasirinkti originalią PostgreSQL parinktį arba tą, kurią siūlo Postgres Professional. Jis vadinamas Postgres Pro ir apima ne tik visas funkcijas ir modulius, įtrauktus į standartinį platinimą, bet ir papildomus Postgres Professional patobulinimus. Šie paskirstymai vienodai tinka mokytis SQL kalbos pagrindų. Tačiau dokumentai rusų kalba yra įtraukti tik su PostgreSQL. Kai nuspręsite dėl konkretaus DBVS paskirstymo, turite pasirinkti operacinę sistemą. PostgreSQL palaiko daugybę sistemų, įskaitant skirtingos versijos„Linux“, taip pat „Windows“. Rekomenduojama įdiegti naujausią stabilią DBVS versiją. Jei nuspręsite naudoti originalų PostgreSQL distribuciją, instrukcijas, kaip jį įdiegti įvairiose operacinėse sistemose, rasite šiuo adresu. Jei pasirinkote PostgreSQL platinimą, turėtumėte eiti čia: naujausias. Įdiegę PostgreSQL ir PostgreSQL Windows aplinka teks imtis papildomų priemonių, kad rusiškos abėcėlės naudojimas interaktyviame psql terminale nesukeltų problemų. psql įrankis aptariamas kitame skyriuje. Diegimo proceso metu bus sukurta DBVS vartotojo abonementas, pavadintas postgres. Jums nereikia kurti papildomų paskyrų, kad galėtumėte studijuoti šį vadovą. 18

20 Įdiegę vieną ar kitą PostgreSQL distribuciją, turite išmokti paleisti duomenų bazės serverį, nes kitaip dirbti su duomenimis neįmanoma. Kaip tai padaryti, išsamiai aprašyta dokumentacijos skyriuje 18.3 „Duomenų bazės serverio paleidimas“. Šį skyrių galite rasti adresu current/server-start.html. Diegiant DBVS Windows aplinkoje, sukuriama paslauga automatinis paleidimas PostgreSQL serveris įkeliant operacinę sistemą. Baigę dirbti su serveriu, turite jį teisingai sustabdyti (išjungti). Tokios situacijos sprendimo procedūra aprašyta dokumentacijos skyriuje 18.5 „Serverio išjungimas“. Šį skyrių galite rasti adresu postgresql/9.6/server-shutdown.html. 2.2 Programuoti psql interaktyvų terminalą PostgreSQL Norėdami pasiekti duomenų bazės serverį, PostgreSQL pakete yra interaktyvus terminalas psql. Norint jį paleisti, reikia įvesti komandą psql.. Paleidus psql įrankį Windows aplinkoje, rusiškos abėcėlės raidės gali būti rodomos neteisingai. Norėdami tai pašalinti, turėsite pakeisti Lucida konsolės šriftą lango, kuriame veikia psql, ypatybėse ir naudodami komandą chcp pakeisti esamą kodo puslapį CP1251: chcp 1251 Psql paslaugų aplinkoje galite įvesti ne tik SQL kalbos komandas, bet ir įvairias paslaugų komandas, kurias palaiko pati programa. Norėdami greitai gauti pagalbos dėl visų paslaugų komandų, įveskite \? Daugelis tokių komandų prasideda \d simboliais. Pavyzdžiui, norėdami peržiūrėti visų lentelių ir rodinių, sukurtų duomenų bazėje, prie kurios esate prisijungę, sąrašą, įveskite komandą \dt Jei jus domina konkrečios duomenų bazės lentelės apibrėžimas (kitaip tariant, struktūra), Pavyzdžiui, studentai, turite įvesti komandą \d studentai Norėdami gauti visų SQL komandų sąrašą, turite paleisti komandą \h Norėdami parodyti konkrečios SQL komandos aprašymą, pvz., CREATE TABLE, turite tai padaryti : \h KURTI 19 LENTELĘ

21 Šis įrankis leidžia sumažinti rankinio įvesties kiekį, užpildant įvestą komandą naudojant psql. Pavyzdžiui, įvesdami SQL komandą, galite naudoti klavišą Tab, kad užbaigtumėte įvestą komandos raktinį žodį arba duomenų bazės lentelės pavadinimą. Pavyzdžiui, įvesdami komandą CREATE TABLE..., galite įvesti simbolius „cr“ ir paspausti klavišą Tab. psql užbaigs šį žodį „sukurti“. Tą patį galite padaryti su žodžiu LENTELĖ. Norėdami jį įvesti, tiesiog įveskite raides "ta" ir paspauskite klavišą Tab. Jei įvesite per mažai raidžių, kad psql galėtų vienareikšmiškai identifikuoti raktinį žodį, jis nebus užbaigtas. Tačiau šiuo atveju galite du kartus paspausti klavišą Tab ir gauti visų sąrašą raktinius žodžius, pradedant įvestu raidžių deriniu. 2.3 Mokymo duomenų bazės diegimas Baigę duomenų bazės serverio diegimą, galime tiesiogiai pereiti prie klausimo, kaip įdiegti Postgres Professional parengtą oro krovinių mokymo duomenų bazę jūsų PostgreSQL klasteryje. Įmonės tinklalapyje yra šiai duomenų bazei skirta skiltis, kurią rasite paspaudus nuorodą.Jis pateikiamas trimis versijomis, besiskiriančiomis tik duomenų kiekiu: kompaktiškiausioje – vieno mėnesio, vidutinio dydžio – duomenys. apima trijų mėnesių laikotarpį, o pilniausioje versijoje pateikiami visų metų duomenys. Visi duomenys buvo sukurti naudojant specialius algoritmus, kad būtų užtikrintas jų „tikimumas“. Rekomenduojame pradėti nuo kompaktiškos oro transporto duomenų bazės versijos, o įgiję patirties rašant SQL užklausas, įdiegsite pilną versiją ir su ja galėsite geriau „pajusti“ įvairius darbo su dideliais subtilybes. duomenų apimtis, pavyzdžiui, įvertinti indeksų įtaką duomenų prieigos spartai. Pirmasis žingsnis diegiant duomenų bazę yra atsisiųsti jos archyvuotą formą. atsarginė kopija sekite ZIP nuorodą. Tada reikia išskleisti failą iš archyvo: unzip demo_small.zip Išskleistas failas vadinamas demo_small.sql. Dabar jūsų PostgreSQL klasteryje sukursime duomenų bazę pavadinimu demo. Trumpiausia komandos versija bus tokia: psql -f demo_small.sql -U postgres Jei norite peradresuoti pranešimų, kuriuos DBVS sugeneruoja veikimo metu, išvestį iš ekrano į failus, galite tai padaryti: psql -f demo_small .sql -U postgres > demo.log 2>demo.err Galite atskirti standartinę išvestį ir standartinės klaidos išvestį. Įprasti pranešimai bus nukreipti į demo.log failą, o klaidų pranešimai – į demo.err failą. Atkreipkite dėmesį, kad tarp skaičiaus 2, nurodančio aprašą standartinis įrenginys klaidos pranešimo išvestis, o „>“ ženklas, nurodantis išvesties peradresavimą, neturi būti tarpo. 20

22 Jei jums patogiau surinkti visus pranešimus į vieną bendrą failą, turite tai padaryti: psql -f demo_small.sql -U postgres > demo.log 2>&1 Atkreipkite dėmesį, kad visa išraiška 2>&1 komandos pabaiga rašoma be tarpų. Ji nurodo operacinei sistemai, kad klaidų pranešimai turi būti siunčiami į tą pačią vietą, kur išvedami įprasti pranešimai. Jei mūsų SQL failas buvo labai didelis, galime paleisti komandą fone, įdėdami į pabaigą komandinė eilutė simbolį „&“ ir stebėti proceso eigą realiu laiku, naudodami komandą uodega. psql -f demo_small.sql -U postgres > demo.log 2>&1 & tail -f demo.log Pasirinkite vieną iš siūlomų komandos parinkčių, kad įdiegtumėte duomenų bazę ir paleistumėte komandą. Viskas paruošta! Prie naujos duomenų bazės galite prisijungti: psql -d demo -U postgres Testo klausimai ir užduotys 1. Atlikite PostgreSQL DBVS diegimo procedūrą pasirinktos operacinės sistemos aplinkoje. 2. Susipažinkite su psql priemone naudodamiesi įtaisytuoju žinynu, taip pat žinynu, iškviestu naudojant komandą psql --help 3. Be psql priemonės, yra ir kitų universalios programos darbui su PostgreSQL duomenų bazės serveriu, pavyzdžiui, pgadmin. Tai galingas GUI įrankis. Įdiekite pgadmin programą patys ir išmokite pagrindinių darbo su ja metodų. 4. Įdiekite pavyzdinę duomenų bazę. Pabandykite prisijungti prie jo naudodami psql įrankį. Norėdami išeiti iš paslaugų programos, naudokite komandą \q. 21

23 3 Pagrindinės operacijos su lentelėmis SQL kalba yra labai įvairi, ji apima daugybę komandų, kurios savo ruožtu kartais turi daug parametrų ir raktinių žodžių. Bet pradėsime nuo trumpos pagrindinių SQL kalbos savybių apžvalgos. Šiame skyriuje sužinosite, kaip įvesti duomenis į duomenų bazę, išmoksite pagrindinių informacijos gavimo iš duomenų bazės būdų, t. y. atrankos, taip pat sužinosite, kaip galite pakeisti duomenų bazėje saugomą informaciją ir ištrinti duomenis, kurie yra nebereikia.reikia. Studijų praktikoje užsienio kalbos yra gera tradicija. Jau pirmoje pamokoje mokinys išmoksta keletą pagrindinių gramatinių struktūrų ir žodžių, leidžiančių pasakyti kelias paprasčiausias, bet vis dėlto praktiškai naudingas frazes. Šios tradicijos laikysimės. IN šį skyriųŠi pamoka supažindins su pagrindinėmis SQL komandomis, kurios leis atlikti pagrindines operacijas. Sudėtingesnių (ir įdomių) komandų sužinosite kituose skyriuose. Pakalbėkime keletą žodžių apie mūsų požiūrį į darbą. Iš esmės yra du galimi mokinio darbo organizavimo būdai. Pirmasis būdas yra toks: studentas naudojasi duomenų baze, kurioje jau yra visos reikalingos lentelės ir kiti duomenų bazės objektai, iš anksto parengti vadovėlio autoriaus ar kito kvalifikuoto specialisto. Tuo pačiu metu į lenteles jau buvo įvestas tam tikras reikalingų duomenų rinkinys, todėl galite iš karto pradėti vykdyti šių lentelių užklausas. Aprašytas metodas atrodo labai patrauklus, nes reikalauja mažiau pastangų pradiniame SQL kalbos įsisavinimo etape. Tačiau, mūsų nuomone, teisingesnis yra kitas metodas. Greičiausiai tai daug darbo reikalaujanti, bet pasinaudoję, kaip sakoma, geriau pajusite lentelių kūrimo ir įrašų įvedimo į šias lenteles procesą. O vykdydami įvairias duomenų bazių užklausas galėsite lengviau įvertinti užklausos rezultato teisingumą, nes visus duomenis įvedėte patys ir todėl galite pagrįstai atspėti, kokius rezultatus tikitės matyti ekrane. Žinoma, pirmasis metodas gali būti labai naudingas mokantis sudėtingesnių, pažangesnių SQL kalbos funkcijų, kurias sunku suprasti nenaudojant didelio duomenų kiekio, be to, neracionalu rankiniu būdu įvesti didelius duomenų kiekius į duomenų bazę. Daug racionaliau būtų juos sukurti automatiškai naudojant programinę įrangą. 1 skyriuje aprašėme temos sritį, todėl dabar galime pradėti tiesiogiai kurti lenteles duomenų bazėje. Norėdami atlikti visas vėlesnes komandas ir operacijas, naudosime psql įrankį, kuris yra įtrauktas į standartinį PostgreSQL DBVS pristatymą. Demonstracinė duomenų bazė jau turėtų būti įdiegta jūsų kompiuteryje. Jo kūrimo procesas aprašytas 2 skyriuje. Dabar paleiskite psql įrankį ir prisijunkite prie šios duomenų bazės naudodami sąskaitą postgres vartotojas: psql -d demo --U postgres Norėdami kurti lenteles SQL, naudokite komandą CREATE TABLE. Visa sintaksė pateikta PostgreSQL dokumentacijoje, tačiau supaprastinta sintaksė yra: 22


„Postgres“ profesionali įmonė E. P. Morgunovas „PostgreSQL“. SQL kalbos pagrindai Vadovėlis Sankt Peterburgas "BHV-Petersburg" 2018 UDC 004.655 BBK 32.973.26-018.2 M79 Morgunov, E. P. M79 PostgreSQL. Pagrindai

SQL kalba Paskaita 6 Rodyklės E. P. Morgunovas Sibirskis Valstijos universitetas Mokslas ir technologija pavadintas akademiko M. F. Reshetnevo vardu, Krasnojarsko informatikos ir telekomunikacijų institutas [apsaugotas el. paštas]

Bratčikovas I.L. 41. Duomenų bazių projektavimo pagrindai. DBVS konstravimo metodai. SQL, diegimo pavyzdžiai. Šiuolaikinių duomenų bazių pagrindai. 1. Pagrindiniai apibrėžimai. Terminija. Literatūroje galite rasti

10 tema. Duomenų bazių technologijos pagrindai Duomenų bazių technologija yra vienas svarbiausių informatikos pasiekimų, naudojamas kuriant kompiuterines informacines sistemas ir informaciją diegiančias programas.

PAGRINDINĖS DUOMENŲ BAZIŲ SĄVOKOS 1. Projektuodami duomenų bazę pasirinkite teisingą procedūrą a) Duomenų perdavimo problemos sprendimas b) Dalyko srities analizė, atsižvelgiant į galutinių vartotojų reikalavimus c)

Įvadas Ši knyga skirta kūrėjams, kurie naudoja Oracle kaip duomenų bazių valdymo sistemą (DBVS). Todėl šioje knygoje daug vietos problemoms spręsti neskiriama

1 variantas Pasirinkite teisingą atsakymą. Galimas tik vienas teisingas atsakymas. 1. Informacinė sistema yra a) Bet kuri informacijos apdorojimo sistema b) Apdorojimo sistema tekstinė informacija

SQL kalba 3 paskaita Duomenų apibrėžimo kalbos pagrindai E. P. Morgunovas Sibiro valstybinis mokslo ir technologijų universitetas pavadintas akademiko M. F. Reshetnevo vardu Krasnojarsko informatikos ir telekomunikacijų institutas

SQL kalba 5 paskaita Kintantys duomenys E. P. Morgunovas Sibiro valstybinis mokslo ir technologijų universitetas pavadintas akademiko M. F. Reshetnevo vardu Krasnojarsko informatikos ir telekomunikacijų institutas [apsaugotas el. paštas]

➀ Informacinės sistemos ir duomenų bankai. Svarbiausia sąlyga norint užtikrinti efektyvų bet kurios organizacijos funkcionavimą yra išvystytos informacinės sistemos buvimas. Informacinė sistema yra sistema

1 skyrius. Darbo pradžia Kaip veikia duomenų bazė „Microsoft Access“. Duomenų struktūros projektavimas Darbo su duomenų baze etapai Pradėkime Access 2007 vartotojo sąsaja Elementų nustatymas

3 skyrius. Kelių vartotojų versijos diegimas ir paleidimas Reikalavimai ir sąlygos...1 SBIS++ diegimo tinkle procedūra...2 Pervasive.SQL serverio ir kliento diegimas ir konfigūravimas...3 Programos diegimas...4 Paruošimas

TESTO UŽDUOTŲ BANKAS Akademinė disciplina Kryptis Mokymo lygis Katedra B1.B.12 Duomenų valdymas 03/09/02 Informacinių sistemų ir technologijų matavimo ir automatizavimo metodų ir priemonių bakalauro laipsnis

Duomenų bazės Kompiuterinės technologijos plėtra buvo vykdoma dviem pagrindinėmis kryptimis: kompiuterinių technologijų panaudojimas skaitiniams skaičiavimams atlikti; kompiuterinių technologijų naudojimas

Maskvos valstybinis technikos universitetas, pavadintas N. E. Baumano Kalugos filialo Yu. E. Gagarino, S. V. Ponomarevo vardu. SQL KALBOS TAIKYMAS MS ACCESS Mokomasis ir metodinis vadovas UDC 681.3.06 BBK 32.973

1. Informacija ir duomenys 2. Pagrindinės duomenų bazių sistemų sąvokos Informacija kompiuterių sistemos su duomenų bazėmis tai informacinės, matematinės, programinės, kalbos, organizacinės sistemos

PDM ŽINGSNIS SUITE versija 5.0 PDM STEP Suite diegimo instrukcijos Sistemos programuotojo instrukcijos. 1 dalis JSC tyrimų centras „Taikomoji logistika“ 2019 PDM STEP Suite v.5.0. Instrukcijos sistemos programuotojui

1 iš 6 Paskaita 1. Duomenų bazių sistemos architektūra. Duomenų bazių sistemos administratoriaus funkcijos įmonės informacinėje sistemoje. Duomenų bazės objektai. 1.1. ANSI/SPARC...1 duomenų bazių sistemos architektūra

TURINYS ĮVADAS... 3 1 SUBJEKTŲ DOMENO TYRIMAS IR PROBLEMOS NUSTATYMAS... 4 2 INFOLOGIJOS MODELIO KŪRIMAS... 5 3 DATALOGIJOS DUOMENŲ BAZĖS PROJEKTAVIMAS... 6 3.1 Valdymo sistemos parinkimas

IN šiuolaikinėmis sąlygomis Automatizuojant įmones tenka susidurti su skirtingais ir dažnai diametraliai priešingais reikalavimais tų pačių apskaitos skyrių apskaitai. Pagal dokumentaciją

Akademinė disciplina „Duomenų bazės ir jų valdymas“ Taikomoji informatika (bakalauro laipsnis) specialybės studentams 080800.62 Paskaita 15 DUOMENŲ BAZIŲ PRIEIGOS ORGANIZAVIMO MODELIAI Ugdomieji klausimai: 1. Architektūra

SQL kalbos paskaita 7 Sandoriai E. P. Morgunovas Sibiro valstybinis mokslo ir technologijų universitetas pavadintas akademiko M. F. Reshetnevo vardu Krasnojarsko informatikos ir telekomunikacijų institutas [apsaugotas el. paštas]

Kompiuterinių informacinių technologijų 13 modulis. bendrosios charakteristikos Prieiga prie DBVS 1 MODULO TIKSLAI Išstudijavęs modulį galėsi: kalbėti apie funkcionalumą Prieiga prie DBVS; žinoti savybes

Elektroninė dokumentų valdymo sistema A r h i v a r u s Diegimo vadovas Maskva, 2008 2 SANTRAUKA Šiame dokumente pateikiamas programinės įrangos produkto „EUFRAT-Document Flow“ pristatymo paketo aprašymas.

DUOMENŲ BAZĖS (DB). OBD VALDYMO SISTEMOS Bendrosios nuostatos Bet kurios informacinės sistemos paskirtis – apdoroti duomenis apie realaus pasaulio objektus. Plačiąja šio žodžio prasme duomenų bazė yra informacijos apie

Įvadas į duomenų bazes. Įvadas į SQL. Sumy Educational Center Programinės įrangos kokybės užtikrinimas (QA) Netcracker 2016 1 Sužinosite apie šiuos dalykus Kas yra duomenų bazė DBVS duomenų bazių klasifikacija DBVS klientai

1.1. Darbo su duomenų bazėmis pagrindai 1.1.1. Duomenų bazės ir duomenų bazių valdymo sistemos. Duomenų modeliai Duomenų bazė (DB) yra pavadintas struktūrizuotų duomenų rinkinys, susijęs su konkrečia

Atrodo, kad tai buvo visai neseniai, bet kokie reikšmingi pokyčiai įvyko nuo to laiko! 1999 m. pradžioje autorius ruošėsi išleisti knygą „Profesionalus SQL serverio 7.0 programavimas“.

Įvadas į duomenų bazių teoriją 1 paskaita Paskaitos metmenys Pagrindinės sąvokos Duomenų organizavimas duomenų bazėje Duomenų modelių tipai Duomenų bazių architektūra Duomenų bazių klasifikacija Server 2008. Paskaita 1 2 Pagrindinės sąvokos Server 2008. Paskaita

4 priedėlis Procesų ir skaičiavimų valdymo posistemis TURINYS 1. Bendra informacija... 2 2. Būsenų ir darbo procesų modeliavimas... 2 2.1. Valstybinių grupių sąrašo tvarkymas... 2 2.2. Kūrimas

Softacom CRM diegimo vadovas 2.1 versija. 1 „Softacom CRM diegimo vadovas“. Pateikiamas sistemos diegimo proceso aprašymas. Turinys 1 ĮVADAS... 3 1.1 Bendra informacija apie sistemą... 3 1.2 Funkcijos

4 laboratorinis darbas „Ryšių tarp lentelių kūrimas“ Darbo tikslas: ištirti reliacinės duomenų bazės struktūros kūrimo technologiją m. Microsoft Office Prieiga 2007 1. Trumpa teorinė informacija Word

Loginė atsarginė kopija Temos Loginė ir fizinė atsarginė kopija Atskirų lentelių kopijavimas Duomenų bazių ir grupių atsarginių kopijų kūrimas ir atkūrimas 2 Atsarginių kopijų tipai Loginė atsarginė kopija

MICROSOFT ACCESS: RYŠIAI, SKAIČIUOTI LAUKAI, DB MYGTUKO FORMOS KŪRIMAS I. LENTELĖS RYŠIAI Šiuolaikinės duomenų bazės dažniausiai susideda iš daugybės tarpusavyje sujungtų lentelių. Vienas iš tikslų sukurti gerą struktūrą

NACIONALINĖ AVIACIJOS UNIVERSITETAS Taikomosios informatikos katedra Kursinio darbo Tema: Microsoft Access DBVS Duomenų bazių kūrimas ir apdorojimas Darbo tikslas: teoriškai ir praktiškai įsisavinti pagrindines darbo technikas

Sandoriai ir lygiagreti prieiga: „PostgreSQL“ ir „Oracle“ diegimų palyginimas Egoras Rogovas, „Postgres Professional“ Kodėl visa tai? užklausos rezultatas Kodėl visa tai? užklausos rezultatas Sandoriai Atomiškumas visi

@DB, DBVS 1. Duomenų struktūra, kuriai būdingas žemesnio lygio objektų pavaldumas aukštesnio lygio objektams, vadinama A. lentelinė B. reliacinė *C. hierarchinis D. tinklas 2. Skiriamasis

VOGBIT diegimo vadovas 2010 Turinys Įvadas... 4 Reikalavimai programinei įrangai ir aparatūra... 5 Diegimo seka... 6 Programos diegimas... 7 Licencijos užklausa ir gavimas...

Duomenų bazių kūrimo etapai Paprastai su duomenų bazėmis dirba neprofesionalai, todėl galima suformuluoti tokius duomenų bazei keliamus reikalavimus. Kurdami duomenų bazę kūrėjai turėtų sutelkti dėmesį į tai

Duomenų bazių valdymo sistema Prieiga prie duomenų Atlieka Nazlygul Niyazovna Chibinova, Kazanės (Privozhsky) federalinio universiteto Jelabuga instituto Užsienio kalbų fakulteto studentė. Mokslinis

Informatika Paskaita 5 MS Access Informacinės sistemos Taikymai dideliems duomenų kiekiams saugoti, papildyti, redaguoti ir naudoti Paprasčiausiu atveju naudojimas reiškia prieigą

Turinys Pratarmė...3 I dalis. Duomenų bazės, DBVS ir duomenų modeliai 1 skyrius. Duomenų bazių technologijos paskirtis. Duomenų bazių valdymo sistemų funkcijos ir pagrindiniai komponentai................................................ ........

Ugdymo proceso stebėjimo ir automatizavimo laboratorija. Švietimo proceso palaikymo svetainės administratoriaus vadovas, 3 versija, 2015-12-18. Korotkovas D.S., Zhuchok I.O. Įjungti išjungti

6 skyrius Duomenų bazių teorija 6.1. Bendrosios sąvokos 6.2. Duomenų modeliai 6.3. Reliacinės duomenų bazės 6.4. Postrelaciniai modeliai ir duomenų bazės 6.5. Duomenų bazių projektavimas Šiuolaikinės informacinės sistemos,

Laboratorinis darbas 9 Microsoft Access 2007 galimybių generuoti užklausas su naudojant SQL. Tikslas: 1. Sužinokite, kaip formuoti užklausas naudojant SQL programoje Microsoft Access

Oro navigacijos informacijos dokumentų rengimo kompleksas Aviacijos duomenų bazės sukūrimas Bendrosios nuostatos Pagrindinis komplekso aeronautikos informacijos šaltinis yra reliacinė aeronautikos informacijos duomenų bazė.

1. Numatomos srovės valdymo priemonės. Klausimai, pateikti apklausai (diskutui) akademinės disciplinos skyriams: 1 skyrius. Įvadas į duomenų bankus 1. Duomenų banko (DB) samprata. BnD komponentai. 1.1. Informacinis

2 paskaita 1 Pagal žodyną: Informacinių sistemų architektūros Informacinė sistema – tai organizaciškai sutvarkytas dokumentų (dokumentų masyvų) ir informacinių technologijų rinkinys, įskaitant naudojimą

J. Bowman, S. Emerson, M. Darnovsky PRAKTINIS SQL VADOVAS Ši knyga padės net tada, kai geriausias vartotojo vadovas bus nenaudingas. Čia pateikiamos temos, kurios dažnai praleidžiamos.

Elektroninė dokumentų valdymo sistema A r h i v a r i s Diegimo vadovas Maskva, 2009 2 SANTRAUKA Šiame dokumente pateikiamas programinės įrangos produkto „EUFRAT-Document Flow“ pristatymo paketo aprašymas.

Dalintis