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.
23SQL. 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
53Reliacinė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.
63Kuo 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.
73Lentelė
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.
83SQL 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 skirtumaiMSSQL
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ų tipaiCHAR(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 tipasPagal 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 į MSSQLCONVERT(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 objektaiRodiniai 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 objektaiIš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 skyriai1. 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 kursas2 dalis. Duomenų apibrėžimo kalba
www.aplana.ru
20.
Duomenų apibrėžimo kalba1.
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 kalba2. 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 kursas3 dalis. Duomenų manipuliavimo kalba
www.aplana.ru
23.
Duomenų manipuliavimo kalba1. 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 kalbaINSERT 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 kalbaDuomenų 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 kalba273
28.
Duomenų manipuliavimo kalbaPirminis 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 raktasALTER 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 kalbaINSERT 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 kuriantKaip 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 kalba2. 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
ATNAUJINTI asmens_informaciją NUSTATYTI atlyginimą = atlyginimas * 2
WHERE asmens_id = 3;
323
33.
Duomenų manipuliavimo kalba3. 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.11. 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 kursas4 dalis. DRL. Paprastos užklausos
www.aplana.ru
37.
Mūsų mokymo duomenų bazė373
38.
Duomenų paieškos kalbaSELECT – 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 kalba1.
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.
SujungimasDviejų ar daugiau teksto dalių sujungimas.
SELECT produkto_pavadinimas + " pardavė " + pardavėjas IŠ pirkimo;
403
41.
Duomenų paieškos kalba2. 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 kalba3. 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 kalba4.
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 kalba5. 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 kalba6.
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 kalbaKUR – 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 kalbaPavyzdž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 kalbaTaip 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 kalbaAsortimento 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 kalbaBū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 kalbaPASIRINKITE 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 kalbaLIKE 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 kalbaLIKE 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 kalbaRūš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.21. 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:
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 kursas5 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ąlygaPASIRINKITE 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ų tipaiTaip 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 parinktysadresu
telefonas
VIDINIS PRISIJUNGIMAS
SELECT * FROM adresas INNER JOIN phone ON address.ClientID=phone.ClientID
613
62.
Stalo sujungimo parinktysadresu
telefonas
SELECT * FROM adresas, telefonas WHERE adresas.clientID=phone.ClientID
623
63.
Stalo sujungimo parinktysadresu
telefonas
KAIRĖ PRISIJUNGTI
PASIRINKTI * IŠ adreso KAIRĖJO PRIJUNGTI telefoną ĮJUNGTI adresas.ClientID=phone.ClientID
633
64.
Stalo sujungimo parinktysadresu
telefonas
TEISINGAS PRISIJUNGTI
PASIRINKTI * IŠ adreso DEŠINĖJO PRIJUNGTI telefoną ĮJUNGTI adresas.ClientID=phone.ClientID
643
65.
Stalo sujungimo parinktysadresu
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 FROMNaudojant 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.31. 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 kursas6 dalis. Suvestinės funkcijos. Grupavimas
duomenis.
www.aplana.ru
73.
Matematiniai operatoriaiMatematinis 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 operatoriaiSumavimo 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 operatoriai3. 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 operatoriai5. 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.
TURIMASHAVING – 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.
TURIMASTai 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.41. 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 kursas7 dalis. Papildomos užklausos
www.aplana.ru
82.
Papildomos užklausosAntrinė 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žklausosYra 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žklausosVienos 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žklausosKelių 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.
YRAEXISTS 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.
YRAPASIRINKTI * 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.51. 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 kursas8 dalis. Funkcijos dirbant su eilutėmis, datomis ir
numeriai
www.aplana.ru
92.
Funkcijos, skirtos darbui su skaičiaisROUND – 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čiaisTRUNC – 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 stalaiPagalbiniai (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 datomisGETDATE – 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 datomisEOMONTH – 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 datomisDATEDIFF – 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 tekstuUPPER – 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 tekstuLEN – apibrėžia linijos ilgį.
PASIRINKITE produkto_pavadinimas, LEN(produkto_pavadinimas) LENGTH
IŠ produkto
WHERE LEN(produkto_pavadinimas) > 15;
993
100.
Funkcijos, skirtos darbui su tekstuSUBSTRING – 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 tekstuPASIRINKTI SUBSTRING(elemento_id, 1, 3) VIETA,
SUBSTRING(elemento_id, 5, 3) ITEM_NUMBER
FROM old_item;
101
3
102.
Funkcijos, skirtos darbui su tekstuCHARINDEX – 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 tekstuCHARINDEX(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ėjimasPASIRINKITE elemento_desc, SUBSTRING(prekės_desc, 1, CHARINDEX(",", item_desc, 1))
KATEGORIJA
FROM old_item;
104
3
105.
Funkcija Įdėjimas105
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.61. 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štekliaihttp://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.