Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
1
Készítette: Pető László
DBASE Készítette: Pető László
2
Az egyed A nyilvántartás szereplői pl.: az osztály tanulói
A nyilvántartás célja határozza meg, hogy az egyedekről milyen adatokat tartunk nyilván. pl.: tanárok - érdemjegy; cipész - lábméret
3
A rekord Ugyanazon egyedről nyilvántartott adatok összessége
általában sorszámmal látjuk el tanulókról például rekordot alkothat: név, születési hely, születési dátum, testvérek száma, tanulmányi átlag, bejáró-e.
4
A mező A nyilvántartás oszlopai
A rekordok adatai a mezők sorrendjének megfelelően kell, hogy kövessék egymást.
5
Az adatbázisfájl A nyilvántartás valamilyen háttértárolón, fájlban helyezkedik el. Több összetartozó adatbázisfájl és a hozzájuk tartozó kiegészítő állományok (pl. indexfájl) alkotják az adatbázist.
6
A relációs adatbázis
7
Az adatbázis-kezelők feladata
Az adatbázisfájl létrehozása Az adatbázisfájl kiegészítése újabb rekordokkal A rekordok tartalmának módosítása Rekordok törlése Válogatás a rekordok között Művelet elvégzése az adatbázisfájlban szereplő adatokkal
8
Az adatbázis-kezelők feladata
A rekordok sorrendjének megváltoztatása Több adatbázisfájl egyidejű használata Az adatok kiírása Jelentéskészítés Lekérdezések végrehajtása
9
DBASE Az egyik legegyszerűbb és legismertebb adatbázis-kezelő
Az adatbázisfájl nevének kiterjesztése csak DBF lehet.
10
A mező neve A mezők azonosítója max. 10 karakterből állhat.
Az azonosítókat a felhasználó adja meg. Szerepelhetnek benne: az angol ABC nagy betűi számjegyek aláhúzásjel
11
Példa mezőnevekre
12
Adattípusok szám dátum karaktersorozat (szöveg) logikai
13
Szám Csak számjegyeket, tizedespontot és előjelet tartalmazhat -18.25
1965 +34.22
14
Dátum 8 karakterből áll: az év 4 számjegye, a hónap 2 számjegye és a nap 2 számjegye
15
Karaktersorozat Tetszőleges karaktereket tartalmazhat Bartók Béla
16
Logikai adat Igen vagy nem jellegű kérdésekre tartalmazhat választ.
Az igent az Y vagy a T betű jelentheti A nemet az N vagy az F betű jelentheti
17
Rövidítések
18
Példa
19
A mező hossza Azt a számot, amely megadja, hogy a mező legfeljebb hány karaktert tartalmazhat, a mező hosszának nevezzük.
20
Megjegyzések A logikai mező hossza mindig 1.
A dátum mező hossza mindig 8. Karakteres mező nem lehet hosszabb 254-nél. Numerikus mező nem lehet hosszabb 19-nél. A tizedesjegyek száma nem lehet több 15-nél. A numerikus mező hossza legalább kettővel kell, hogy több legyen, mint a tizedesjegyek száma.
21
Az adatbázisfájl tervezése
Kik lesznek az egyedek? Milyen adatokat akarunk az egyedekről tárolni? (mezők) Mi legyen a mezők neve? Milyen típusúak legyenek a mezők? Milyen hosszúak legyenek a karakteres és a numerikus mezők? A numerikus mezők hány tizedest tartalmazzanak?
22
Példa - KÖNYV Szerző Cím Kiadás éve Vannak-e benne képek? Ára
23
Példa - ISMERŐSÖK Név Születési dátum Irányítószám Város Utca Házszám
24
Szükséges állományok DBASE.EXE - maga a program
DBASE.OVL - kiegészítés DBASEINL.OVL - kiegészítés DBASE.MSG - üzenetek HELP.DBS - súgó CONFIG.DB - konfigurációs állomány
25
Megjegyzés A gép CONFIG.SYS állománya a következő sorokat kell tartalmazza mindenképp: FILES = 20 BUFFERS = 15 Az nem baj, ha nagyobb értékek szerepelnek!
26
Bejelentkező képernyő
27
A parancs-cella Milyen parancs végrehajtása van folyamatban.
Ha Parancs Sor felirat látható, akkor nincs végrehajtás alatt álló feladat.
28
A meghajtó-cella Az aktuális meghajtót mutatja.
29
Az adatbázisfájl-cella
Annak az adatbázisfájlnak a nevét mutatja, amin éppen dolgozunk. Ha üres, akkor nincs nyitott adatbázisfájl.
30
A rekord-cella Ha dolgozunk egy adatbázison, akkor az abban lévő összes rekord számát mutatja, és azt, hogy hányadik rekordon állunk.
31
Az üzemmód-cella INS billentyűvel válthatunk a betoldó és a felülíró üzemmód között. Az üzemmódok állapotát mutatja.
32
A lámpa-cella A NumLock és a CapsLock lámpák állapotát jelzi ki.
33
A kurzor kurzor Ide kell begépelni a parancsokat.
Kis és nagybetűk egyaránt használhatók Egy parancs max. 254 karakterből állhat. A parancs begépelése után ENTER-t kell ütni. Az előzőleg kiadott parancsok között a fel és le nyilakkal közlekedhetünk.
34
CLEAR Képernyő törlése
35
QUIT Kilépés a DBASE-ből
36
Az adatbázisfájl létrehozása
CREATE fájlnév CREATE WORK.DBF
37
Az adatbázisfájl szerkezetének begépelése
38
Az adatbázisfájl szerkezetének mentése
CTRL+END
39
Az adatbázis feltöltése
40
Az adatbázisfájl feltöltése
Lezárás: CTRL+END
41
Az adatbázisfájlok számbavétele
DIR
42
Adatbázisfájl megnyitása
USE önmagában kiadva lezárja a nyitott adatbázisfájlt USE fájlnév USE KIRALY.DBF
43
Adatbázisfájl szerkezetének kiíratása
DISPLAY STRUCTURE
44
Az aktuális rekord A nyitott adatbázisfájl kitüntetett rekordja
Célszerű azt aktuálissá tenni, amelyikre szükségünk van. A rekord-cella mutatja az aktuális rekord sorszámát. Ha a rekord-cellában EOF látható, akkor nincs aktuális rekord. Ha a rekord-cellában None látható, akkor a fájlnak nincsenek rekordjai.
45
Kijelölés GO paranccsal
GO 7 : a hetedik rekordot tesszük aktuálissá GO TOP : az első rekord így is aktuálissá tehető GO BOTTOM : az utolsó rekord így is aktuálissá tehető
46
Kijelölés SKIP paranccsal
SKIP 4 : ha pl. jelenleg a 6. rekord az aktuális, akkor a 10. válik aktuálissá SKIP -3 : ha jelenleg a 9. rekord volt aktuális, akkor a 6. válik aktuálissá. SKIP szám nélkül ugyanaz, mint SKIP 1 Ha a paranccsal az első rekord előttire hivatkoznánk, akkor az első válik aktuálissá. Ha az utolsó utánira hivatkoznánk, akkor nem lesz aktuális rekord.
47
Rekord hozzáfűzése APPEND Befejezés: CTRL+END
48
Rekord betoldása INSERT : Az aktuális rekord után told be
49
Rekord betoldása INSERT BEFORE : Az aktuális rekord elé told be.
50
Aktuális rekord kiíratása
DISPLAY
51
Adatbázis tartalmának kiíratása
DISPLAY ALL
52
Adatbázis tartalmának kiíratása
LIST
53
Módosítás EDIT
54
Módosítás CHANGE
55
Módosítás BROWSE
56
Rekordok törlése DELETE : kijelöli a törlésre szánt rekordot
RECALL : megszünteti a rekord törlésre kijelöltségét PACK : valamennyi törlésre kijelölt rekordot eltávolítja az adatbázisból. Visszavonhatatlan következményekkel jár.
57
DELETE
58
RECALL
59
PACK
60
ZAP Az adatbázisfájl összes rekordját visszavonhatatlanul törli.
61
Konstansok, konstanstípusok
pl.: a GO 9 parancsban a 9 konstans. numerikus karakteres logikai
62
Konstansok megadása Numerikus: -18.25 1965 +34.22
63
Konstansok megadása Karakteres ”Bartók Béla” ‘ ‘ ‘ ‘
64
Konstansok megadása Logikai .Y. (igaz) .N. (hamis) .T. (igaz)
.F. (hamis)
65
Műveletek + : összeadás - : kivonás * : szorzás / : osztás
** vagy ^ : hatványozás .AND. : logikai és .OR. : logikai vagy .NOT. : logikai tagadás
66
Műveletek < : kisebb > : nagyobb = : egyenlő
<= : kisebb vagy egyenlő >= : nagyobb vagy egyenlő <> vagy # : nem egyenlő $ : benne foglaltatik-e?
67
Művelet eredményének kiíratása
68
Számtani műveletek
69
Naptári műveletek
70
Összefűző műveletek
71
Logikai műveletek
72
Összehasonlító műveletek
73
Karakterkereső műveletek
74
A kifejezés fogalma A kifejezés nem más, mint
konstansoknak mezőneveknek műveleti jeleknek olyan összekapcsolása, aminek van értelme. Használhatók még gömbölyű zárójelpárok.
75
Kifejezések értelmetlen numerikus és karakteres mező tartalmát összeadni
76
Kifejezések
77
Műveletek sorrendje (1. szint, legmagasabb rendű)
** vagy ^ : hatványozás (N) + : összefűzés szóközmeghagyással (C) - : összefűzés szóközáthelyezéssel (C) $ : bennefoglaltatik (C)
78
Műveletek sorrendje (2. szint)
- : előjelváltás (N)
79
Műveletek sorrendje (3. szint)
* : szorzás (N) / : osztás (N)
80
Műveletek sorrendje (4. szint)
+ : összeadás (N) - : kivonás (N) + : dátum növelése (D) - : dátum csökkentése (D) - : dátumok különbözete (D)
81
Műveletek sorrendje (5. szint)
< : kisebb (L) > : nagyobb (L) = : egyenlő (L) <= : kisebb, vagy egyenlő (L) >= : nagyobb, vagy egyenlő (L) # : nem egyenlő (L)
82
Műveletek sorrendje .NOT. : tagadás (6. szint) .AND. : és (7. szint)
.OR. : vagy (8. szint)
83
Példák
84
Numerikus kifejezések
85
Numerikus kifejezések
86
Dátum jellegű kifejezések
87
Dátum jellegű kifejezések
88
Karakteres kifejezések
89
Karakteres kifejezések
90
Logikai kifejezések
91
Logikai kifejezések
92
Példa
93
Példa
94
Feladatok Kiss Gyula, Herczeg András, Sólyom Melinda esetén értékelje ki az ALAPBER+POTLEK-LEVONAS kifejezést! Kiss Gyula, Herczeg András, Fekete Béla és Babai Attila esetén értékelje ki az EGYETEM.AND.VEZETO kifejezést
95
Feladatok Herczeg András, Fekete Béla és Sólyom Melinda esetén értékelje ki az EGYETEM.AND.ALAPBER>= kifejezést! Sutus Csabáné,Kertai Sándor és Kun András esetén értékelje ki a VEZETO.OR.LEVONAS>0 kifejezést!
96
Feladatok Csabai Antal, Kada Erika és Pfleigel Péter esetén értékelje ki a .NOT.VEZETO.AND.MUNKA_KEZD-SZUL_DATUM>23*365 kifejezést! Adja meg, hogy Kis András, Falus Róbert és Kada Erika hány napot élt addig a napig, amikor belépett!
97
Hatáskör fogalma aktuális rekordra vonatkozik (DISPLAY, DELETE, RECALL) valamennyi rekordra vonatkozik (LIST, EDIT, CHANGE) módosítás nélkül a parancsok mindig alapértelmezett hatáskörrel lépnek életbe.
98
Hatáskör módosítása RECORD NEXT ALL REST
99
RECORD általános hatáskörű parancs csak az aktuális rekordra vonatkozzon LIST RECORD 5 (csak az 5. rekordot listázza) DELETE RECORD 7 (csak a 7. rekordot jelöli ki törlésre)
100
NEXT a parancs az aktuális rekordtól számított néhány rekordra fog vonatkozni RECALL NEXT 3 (ha az aktuális rekord a 7., akkor a rekord kijelöltsége meg fog szűnni.) LIST NEXT 4 (ha az aktuális rekord a 6., akkor rekord tartalma íródik ki.)
101
ALL a parancs hatáskörébe az összes rekord bele fog tartozni
DISPLAY ALL (valamennyi rekord tartalmát megmutatja) DELETE ALL (az összes rekordot ki fogja jelölni törlésre)
102
REST a parancs hatáskörébe az aktuális és az azt követő összes rekord fog beletartozni. LIST REST (az aktuális rekordtól az adatbázis utolsó rekordjáig minden rekordot listáz) RECALL REST (az aktuális rekordtól az utolsóig megszünteti a kijelöltséget)
103
A feltétel Egyes parancsok hatásköre beállítható úgy, hogy csak azokon hajtódjon végre, amelyekre valamilyen feltétel teljesül.
104
FOR DISPLAY FOR TESTVER>3 : azokat mutatja, akiknek több testvérük van 3-nál. LIST FOR BEJARO : kilistázza a bejárókat. DELETE TESTVER>3.AND.BEJARO : kijelöli törlésre a bejárók közül azokat, akiknek 3-nál több testvérük van.
105
Feladat
106
Feladat
107
Feladat Írasd a képernyőre azokat a mozdonyokat, amelyek nem villanymozdonyok, és a sebességük 100 km/h-nál kisebb! Írasd a képernyőre az összes olyan mozdonyt, amelyeknek a tömege 100 tonnánál kisebb és a sebessége 100 km/h-nál nagyobb!
108
Feladat Írasd a képernyőre a 100 km/h-nál nagyobb sebességű Ganz-MÁVAG gyártmányú mozdonyt! Írasd ki a képernyőre a Blau Lady típusú mozdony adatait!
109
Kifejezéslista Tetszőleges típusú kifejezések felsorolása egymástól vesszővel elválasztva. NEV+SZUL_HELY,TESTVER*10,BEJAR.AND.TESTVER>=1,SZUL_DATUM+1
110
Példa
111
Feladat A dolgozókat tartalmazó adatbázisból listázzuk az összes dolgozó nevét és havi alapbérét! A 4. rekordtól kezdve listázzuk az összes dolgozó nevét és éves alapbérét! Listázzuk az egyetemet végzett vezető beosztású dolgozók nevét és éves járandóságát!
112
Feladat Listázzuk a Ft-nál kevesebb havi alapbérű dolgozók nevét és alapbérét! Listázzuk az összes nem vezető beosztású Ft-nál magasabb havi alapbérű dolgozó nevét Listázzuk az összes olyan dolgozó nevét és havi alapbérét, aki 23 éves kora után került a céghez!
113
Rekordsorszám letiltása
OFF DISPLAY ALL : A rekordsorszámot is kiírja. DISPLAY ALL OFF : nem írja ki a rekordsorszámokat
114
Kiíratás a nyomtatóra LIST : a képernyőre listáz
TO PRINT LIST : a képernyőre listáz LIST TO PRINT : a nyomtatóra listáz A papír nyomtatóból való kivétele előtt be kell írni a lapemelést eredményező EJECT parancsot.
115
Mezőlista Vannak olyan parancsok, amelyek hatásköre korlátozható néhány mezőre. A mezőlista mezőnevek vesszővel történő felsorolása. NEV,TESTVER NEV,SZUL_HELY,BEJARO A mezőlista használata előtt mindig ki kell írni a FIELDS szót!
116
Példák BROWSE FIELDS NEV,ATLAG : csak a tanulók nevét és átlagát módosíthatjuk. EDIT RECORD 4 FIELDS NEV,SZUL_HELY : csak a 4. rekordban szereplő tanuló neve és születési helye módosítható. CHANGE FIELDS NEV,SZUL_DATUM,TESTVER FOR BEJARO : csak a bejárók nevét, születési dátumát és testvéreinek számát módosíthatjuk.
117
A mezők tartalmának automatikus módosítása
REPLACE [hatáskör] mezőnév1 WITH kifejezés1[,mezőnév2 WITH kifejezés2…] [FOR feltétel]
118
Példa
119
Példa A vegyi anyagok ára egységesen 20%-kal nőtt, a haszonkulcs pedig mostantól 30% lett: REPLACE BESZERZ_AR WITH BESZERZ_AR*1.2,H_KULCS WITH 30 FOR KOD=‘V’ Az élelmiszerek kódját E betűről L-re szeretnénk változtatni: REPLACE KOD WITH ”L” FOR KOD=‘E’
120
Összegzés SUM [hatáskör] [numerikus_kifejezéslista] [FOR feltétel]
A dolgozók összes alapbére és pótléka: SUM ALAPBER,POTLEK A dolgozók számára az egész év folyamán mekkora összeget kell kifizetnünk: SUM 12*(ALAPBER+POTLEK-LEVONAS)
121
Átlagolás AVERAGE [hatáskör] [numerikus_kifejezéslista] [FOR feltétel]
A dolgozók havi alapbérének és pótlékának átlaga: AVERAGE ALAPBER,POTLEK A dolgozók évi járandóságának átlaga: AVERAGE 12*(ALAPBER+POTLEK-LEVONAS)
122
Számlálás COUNT [hatáskör] [FOR feltétel]
Hány olyan egyetemet végzett dolgozó van, akinek alapbére nem éri el a Ft-ot? COUNT FOR EGYETEM.AND.ALAPBER<80000
123
Példák SUM az eredmény három szám: a havi alapbérek, a havi bérpótlékok és a havi levonások összege AVERAGE az eredmény három szám: a havi alapbérek, a havi bérpótlékok és a havi levonások átlaga
124
Példák Mennyi az egyetemet végzett vezető beosztású dolgozók havi járandóságának átlaga: AVERAGE (ALAPBER+POTLEK-LEVONAS) FOR EGYETEM.AND.VEZETO
125
Feladatok A tanulói adatbázisból tudjuk meg, hogy a tanulóknak összesen hány testvérük van? Mennyi az osztály tanulmányi átlaga? Hány tanulónak jobb a tanulmányi átlaga 3,75-nél? Mennyi a bejáró tanulók átlaga? Hány tanuló születet 1970 előtt?
126
Adatbázisfájl szerkezetének megváltoztatása
MODIFY STRUCTURE Ha a mező típusát megváltoztatjuk, akkor a mező tartalma törlődhet!!! Ha a mező hosszát csökkentjük, akkor a mező tartalma csonkulhat!!! Mező hosszának növelésénél a tartalom megmarad, helykitöltő karakterekkel gyarapszik.
127
Adatbázisfájl szerkezetének megváltoztatása
Ha egy mezőt megszüntetünk, akkor tartalma elvész!!! Új mező létrehozása után a feltöltésig üres a tartalma. Ha a mező nevét és hosszát egyszerre változtatjuk, akkor tartalma elvész.
128
Fájl másolása COPY FILE teljes_fájlazonosító TO teljes fájlazonosító
nem lehetséges globális fájlhivatkozás, mint a DOS COPY parancsánál!!! Nyitott adatbázisfájl nem másolható!!!
129
Fájl átnevezése RENAME teljes_fájlazonosító TO teljes_fájlazonosító
130
Fájl törlése ERASE teljes_fájlazonosító
globális fájlhivatkozás nem alkalmazható, mint a DOS DEL parancsánál
131
Kimásolás az adatbázisfájlból
COPY [hatáskör] [FIELDS mezőlista] TO teljes_fájlazonosító [FOR feltétel] a másolatba csak a hatáskör által kijelölt rekordok mezőlistában megadott mezői kerülnek át.
132
Feladatok A tanulói nyilvántartásból másolj ki olyan adatbázist, amely a 3,75-nél jobb átlagú tanulók adatait tartalmazza! A tanulói nyilvántartásból készítsd el a bejáró tanulók nyilvántartását!
133
Keresés az adatbázisfájlban
LOCATE [hatáskör] [FOR feltétel] CONTINUE Ha a megadott feltételnek több rekord is eleget tesz, akkor a következő megfelelő rekordra lépéshez kell a CONTINUE parancs
134
Rendezés Az adatbázisfájlról olyan másolatot készítünk, amelyben a rekordok valamilyen szempont szerint sorrendben helyezkednek el. SORT [hatáskör] ON igénylista [FOR feltétel] TO teljes_fájlazonosító
135
Igénylista egy vagy több mezőnevet tartalmazhat vesszővel elválasztva
a mezőnevek /után kapcsolók követhetik /A : növekvő sorrend /D : csökkenő sorrend /C : kis- és nagybetű között nem tesz különbséget (csak karakteres mezőnél) alapértelmezés a növekvő sorrend
136
Példa Névsor szerinti rendezés: SORT ON NEV TO A:\NEVSOR.DBF
Tanulmányi átlag szerinti csökkenő sorrend: SORT ON ATLAG /D TO A:\JEGYEK.DBF Születési hely szerint, ha az ugyanaz, akkor a testvérek száma szerint, ha az is ugyanaz, akkor születési dátum szerint csökkenő: SORT ON SZUL_HELY,TESTVER,SZUL_DATUM /D TO A:\HELY.DBF
137
Példa Rendezd átlag szerint csökkenő, ha az egyenlő, akkor névsor szerint azokat, akiknek 3 testvérük van! SORT ON ATLAG /D,NEV FOR TESTVER=3 TO A:\HAROM.DBF
138
Feladatok A dolgozói nyilvántartást rendezd névsor szerint!
A dolgozói nyilvántartást rendezd alapbér szerinti csökkenő sorrendbe! A dolgozói nyilvántartást rendezd levonás szerinti csökkenő sorrendbe, azon belül születési dátum szerinti csökkenő sorrendbe!
139
Indexelés A rekordok kezelési sorrendjét anélkül változtatjuk, hogy azok fizikai sorrendje változna. A kezelési sorrend módosítását egy általunk megadott kifejezéssel, a kulcskifejezéssel valósítjuk meg. A kulcskifejezés értéke minden rekordnál kiszámítódik, a rekordok ezen érték szerint növekvően alakítják ki a kezelési sorrendet.
140
Indexelés A kialakuló sorrend egy indexfájlban tárolódik.
Az indexfájl ugyanannyi rekordból áll, mint az adatbázisfájl. Két mezőből áll: a kulcskifejezés értéke a rekordok eredeti sorszáma Az adatbázisfájlt ilyenkor indexelt adatbázisfájlnak nevezzük
141
Példa Kulcskifejezés: TESTVER*10+ATLAG
142
Példa Az indexfájl: Kezelési sorrend: Első a 6. Rekord
második a 3. Rekord harmadik a 2. Rekord negyedik az 5. Rekord ötödik az 1. Rekord hatodik a 4. Rekord
143
Az indexfájlok azonosítása
Az indexfájl nevét az határozza meg, aki az indexfájlt létrehozza. Az indexfájl kiterjesztése NDX kell, hogy legyen. Megadáskor elhagyható a kiterjesztés, azt a dBase automatikusan a fájlnévhez adja.
144
Indexelési műveletek Indexfájl létrehozása
indexfájlok megnyitása és lezárása főindexfájl kijelölése a főindexfájl módosító szerepének használata újraindexelés
145
Indexfájl létrehozása
INDEX ON kulcskifejezés TO teljes_fájlazonosító Példa névsor szerinti indexelés esetén: INDEX ON NEV TO NEVSOR.NDX Példa átlag szerinti indexelés esetén: INDEX ON 5-ATLAG TO JEGYEK.NDX
146
Indexelés Az indexfájl létrehozása után automatikusan az új indexfájl hatása érvényesül. A DISPLAY parancs mindig az érvényes index szerinti sorrendet mutatja.
147
Példa INDEX ON SZUL_HELY+NEV TO HELY.NDX
elsősorban a születési hely szerinti növekvő sorrend alakul ki azoknál a rekordoknál, ahol a születési hely ugyanaz, ott a név szerinti ABC sorrend lesz érvényben.
148
Példa INDEX ON TESTVER*10+ATLAG TO TEST.NDX
a testvérek száma szerint rendez ahol a testvérek száma egyenlő, ott a tanulmányi átlag szerinti növekedő sorrend lesz érvényben.
149
Megjegyzés Kívánatos, hogy az adatbázisban végrehajtott változások az indexfájlban is megjelenjenek. Csak azokban az indexfájlokban történik változás, amelyek a módosítás pillanatában nyitva voltak.
150
Indexfájlok megnyitása
SET INDEX TO teljes_fájlazonosítók_listája a listában a teljes fájlazonosítókat vesszővel kell elválasztani. A SET INDEX TO paraméter nélkül bezárja az összes nyitott indexfájlt!!!
151
Megjegyzés Ha megnyitunk egy indexfájlt, akkor az összes addigi nyitott lezáródik. Egyszerre maximum 7 indexfájl nyitható meg. Ha az INDEX paranccsal létrehozunk egy indexfájlt, akkor az automatikusan megnyílik, az összes addig nyitott záródik.
152
Főindexfájl kijelölése
A nyitott indexfájlok közül egyet ki lehet tüntetni. A kitüntetett indexfájl neve főindexfájl. A SET INDEX parancsban az első helyen álló indexfájl automatikusan főindexfájllá válik.
153
Főindexfájl változtatása
SET ORDER TO numerikus_konstans A numerikus konstans határozza meg, hogy a legutolsó SET INDEX parancsban szereplő indexfájlok közül melyik legyen a főindexfájl.
154
Megjegyzés SET ORDER TO 0 : Az indexfájlok nyitva maradnak, de nem lesz főindexfájl egyik sem. Ha új indexfájlt hozunk létre, akkor mindaddig az lesz a főindexfájl, míg másként nem rendelkezünk.
155
A főindexfájl módosító szerepe
Ha van kijelölt főindexfájl akkor módosulhat: egyes parancsok hatásköre egyes parancsok működése
156
A GO és a SKIP parancs módosulása
GO TOP, GO BOTTOM az indexfájl szerinti elsőt és utolsót jelenti, GO 5 továbbra is az eredeti adatbázisfájl ötödik rekordját. A SKIP parancs az indexelés szerint ugrál a rekordok között.
157
A hatáskör módosulása RECORD p: az eredetit jelenti
NEXT p: az indexfájl szerint működik REST: az indexfájl szerint működik ALL: az indexfájl szerint működik DISPLAY, LIST, EDIT, CHANGE, DELETE, RECALL, LOCATE, CONTINUE, BROWSE: az indexfájl szerint működik.
158
Újraindexelés Előfordulhat, hogy az adatbázist úgy módosítottuk, hogy nem volt nyitva az indexfájl. A változásnak szeretnénk érvényt szerezni ebben az indexfájlban is. REINDEX A nyitott indexfájlokat újra létrehozza.
159
Az indexelés előnyei a rendezéssel szemben
A rendezés megduplázza az adatbázisfájlt, nagyobb lesz a helyfoglalás. Az indexfájl viszont kisméretű. Az eredeti adatbázisfájl módosítása után mindig létre kell hozni a rendezett adatbázisfájlt. Indexelésnél legfeljebb akkor kell újraindexelni, ha az indexfájl nem volt nyitva a módosítás után.
160
Feladatok A dolgozói adatbázist indexelje névsor szerint!
A dolgozói adatbázist indexelje alapbér szerint! Zárja le az indexfájlokat! Nyissa meg mindkét indexfájlt úgy, hogy a bér szerinti legyen a főindexfájl! Változtassa meg a főindexfájlT4
161
Gyorskeresés FIND karakteres_konstans vagy FIND numerikus_konstans
(attól függ, hogy a főindexfájl karakteres, vagy numerikus kifejezéssel lett létrehozva) a parancs a legelső olyan rekordot teszi aktuálissá, amelynél a kulcskifejezés értéke a megadott konstanssal egyenlő. (ha több ilyen van, akkor azok úgyis egymásután jönnek.)
162
Példa Keressük meg azokat a dolgozókat a dolgozói nyilvántartásból, akiknek Ft a havi alapbére! INDEX ON ALAPBER TO ALAPR.NDX FIND 20000
163
Példa Keressük a Kovács Béla nevű dolgozókat!
INDEX ON NEV TO NEVREN.NDX FIND ”Kovács Béla”
164
Munkaterület A Dbase-ben tíz munkaterületet használhatunk
Eddig mindig az 1-est használtuk Ugyanazok a műveletek érvényesek minden munkaterületen, mint az 1-esen. Ugyanaz az adatbázisfájl nem nyitható meg több munkaterületen!
165
A munkaterület azonosítója
1-től 10-ig számokkal A-tól J-ig betűvel az illető munkaterületen megnyitott adatbázisfájl nevével Például, ha az 1-es munkaterületen a TANULO.DBF-et nyitottuk meg, akkor az 1-es munkaterület azonosítási lehetőségei: 1; A; TANULO
166
Aktuális munkaterület
Az a munkaterület, amit az adott pillanatban használunk. Eddig mindig az 1-es volt az aktuális.
167
Munkaterület váltása SELECT munkaterület_azonosító
A képernyőn külön jel nem mutatja, hogy melyik az aktuális. Példa: USE TANULO (az egyes munkaterületen megnyitjuk a TANULO.DBF-et) SELECT 2 (átlépünk a 2-es munkaterületre) USE KONYV (a 2-es munkaterületen megnyitjuk a KONYV.DBF-et)
168
Munkaterület váltása Az 1-est a következőkkel aktiválhatjuk:
SELECT 1; SELECT A; SELECT TANULO A 2-est a következőkkel aktiválhatjuk: SELECT 2; SELECT B; SELECT KONYV
169
Aktív adatbázisfájl Az aktuális munkaterületen megnyitott adatbázisfájl. A DISPLAY, LIST, GO, SKIP, APPEND, INSERT, EDIT, CHANGE, BROWSE, DELETE, RECALL, PACK, ZAP, ?, REPLACE, SUM, AVERAGE, COUNT, MODIFY STRUCTURE, DISPLAY STRUCTURE, LOCATE, CONTINUE, SORT, INDEX, SET INDEX, SET ORDER és REINDEX parancsok mindig az aktuális adatbázisra vonatkoznak.
170
Feladat Az 1-es munkaterületen nyisd meg a KONYV.DBF-et!
A 2-es munkaterületen nyisd meg a TANULO.DBF-et! A 3-as munkaterületen nyisd meg az ISMEROS.DBF-et! A 4-es munkaterületen nyisd meg a POSTA DBF-et!
171
Összetett mezőnév Ha nem az aktív adatbázisfájl egy mezőjére hivatkozunk, akkor összetett mezőnevet kell használnunk. Adatbázis_neve->mezőnév TANULO->ATLAG (a TANULO.DBF ATLAG mezője) DISPLAY TANULO->ATLAG,CIM (nem aktuális adatbázis mezőiben lévő adatok kiíratása.)
172
Adatbázisfájlok kapcsolata (Feladaton keresztül)
ISMEROS.DBF
173
Adatbázisfájlok kapcsolata (Feladaton keresztül)
POSTA.DBF
174
I. A 3-as munkaterületen nyissuk meg az ISMEROS.DBF-et!
SELECT 3 USE ISMEROS A 4-es munkaterületen nyissuk meg a POSTA.DBF-et! SELECT 4 USE POSTA
175
II. Tedd aktuálissá a 3-as munkaterületet, majd ott tedd aktuálissá az 5. Rekordot és írasd ki az IRSZ mező tartalmát SELECT 3 GO 5 DISPLAY IRSZ
176
III. Tedd aktuálissá a 4-es munkaterületet, hozz létre egy indexfáljt, amely biztosítja az irányítószámok szerinti növekvő sorrendet, majd keresd meg azt a rekordot, amelyben ugyanaz az irányítószám szerepel, mint az ISMEROS.DBF 5. rekordjában! INDEX ON SZAM TO IRREN FIND irányítószám
177
IV. Írasd ki az 5. Rekordban szereplő ismerősöd nevét, és hogy melyik településen lakik! DISPLAY ISMEROS->NEV, POSTA->TELEPULES
178
Kapcsoló-kifejezés Amely alkalmas két adatbázisfájl közötti kapcsolat kialakítására. Az előző feladatban az IRSZ illetve a SZAM mezők voltak a kapcsoló-kifejezések. Megjegyzés: Az előző feladatban nem alakult ki tartós kapcsolat az adatbázisfájlok között.
179
Két adatbázisfájl összekapcsolása
A kapcsoló-kifejezések segítségével tartós kapcsolatot alakítunk ki az adatbázisfájlok között. Az összekapcsolt adatbázisok nem egyenrangúak; vezér szolga A tartósság azt jelenti, hogy a vezér bármely rekordját aktuálissá téve a szolga azon rekordja válik aktuálissá, amely biztosítja, hogy a kapcsoló-kifejezések értéke ugyanaz legyen.
180
Az összekapcsolás menete
A vezért és a szolgát is meg kell nyitni egy-egy munkaterületen. A szolgával kapcsolatban létre kell hozni egy indexfájlt, amely a kapcsoló-kifejezés szerinti növekvő sorrendet biztosítja. Ezt az indexfájlt főindexfájllá kell tenni. A vezért meg kell tenni aktív adatbázisfájlnak.
181
Az összekapcsolás menete
SET RELATION TO kapcsoló-kifejezés INTO fájlnév kapcsoló-kifejezés: a vezér kapcsoló-kifejezése fájlnév: a szolga neve
182
Az előző feladat tartós kapcsolattal
SELECT 3 USE ISMEROS.DBF SELECT 4 USE POSTA.DBF INDEX ON SZAM TO IRREN.NDX SET RELATION TO IRSZ INTO POSTA LIST NEV, POSTA->TELEPULES
183
Adatbázisfájlok együttes tervezése
Ha tervezéskor kiderül, hogy egy mezőben az értékek gyakran ismétlődnek, akkor azokat érdemes külön adatbázisfájlban elhelyezni, mert ott csak egyszer kell őket szerepeltetni. Valamilyen kóddal érdemes helyettesíteni, ami mindkét adatbázisban kapcsoló-kifejezés lesz.
184
Több adatbázisfájl összekapcsolása
Egy vezérhez egyidejűleg csak egy szolga kapcsolható A szolga azonban vezére lehet egy harmadik adatbázisfájlnak. Ily módon max. 8 adatbázisfájl kapcsolható össze. (Kétszer nem szerepelhet a láncban ugyanaz az adatbázisfájl)
185
Példa FORGALOM.DBF egy áruház napi forgalmi adatait tartalmazza
186
Példa ARU.DBF tartalmazza, hogy melyik cikkszám melyik árut jelenti, az áru egységárát, mennyiségi egységét.
187
Példa MERETK.DBF innen lehet megtudni, hogy melyik mértékegységkód melyik mértékegységet jelöli
188
Példa A FORGALOM.DBF és az ARU.DBF a cikkszám segítségével kapcsolhatók össze Az ARU.DBF és a MERTEK.DBF a mértékegységkód segítségével kapcsolhatók össze.
189
PÉLDA Adatbázisfájlok megnyitása: SELECT 1 USE FORGALOM SELECT 2
USE ARU SELECT 3 USE MERTEK
190
Példa A FORGALOM és az ARU összekapcsolása SELECT 2
INDEX ON CIKK TO R1.NDX SELECT 1 SET RELATION TO F_CIKK INTO ARU
191
Példa Az ARU és a MERTEK összekapcsolása: SELECT 3
INDEX ON MEKOD TO R2.NDX SELECT 2 SET RELATION TO A_MEKOD INTO MERTEK
192
Példa Írassuk ki a napi forgalmi adatokat úgy, hogy az áru neve, értéke és a mértékegység neve is ki legyen írva: SELECT 1 LIST ARU->ARU_NEV, MENNYISEG*ARU->EGYSEGAR, MERTEK->ME_NEV
193
Példa A napi forgalom összértékének a kiszámítása: SELECT 1
SUM MENNYISEG*ARU->EGYSEGAR
194
Az összekapcsoltság megszüntetése
A vezért aktívvá kell tenni SET RELATION TO
195
A függvény fogalma Olyan eszköz, amelynek segítségével bizonyos kifejezések értékéből új értéket képes előállítani. Az így nyert érték a függvényérték A függvényt a neve azonosítja
196
Függvény típusa Numerikus dátum karakteres logikai
197
Matematikai függvények
198
Abszolútérték ABS(n) ? ABS(-41) ? ABS(41) ? ABS(254-67*54)
199
Egészrész INT(n) ? INT(3.45) ? INT(-4.56) ? INT(3/7-65/3)
200
Négyzetgyök SQRT(n) ? SQRT(49) ? INT(SQRT(72))
201
Kerekítés ROUND ROUND(n1,n2) : az n1 számot n2 darab tizedesre kerekíti ? ROUND( ,2) ? ROUND( ,4) ? ROUND(5/3,1) ? ROUND(SQRT(72)+SQRT(95),1)
202
Maximum MAX MAX(n1,n2) :két szám közül kiválasztja a nagyobbikat
203
MIN MIN MIN(n1,n2) :két szám közül kiválasztja a kisebbiket.
204
Példa A példán kívül többet is érdemes fölvenni!!!!
205
Példa Mekkora a képcső átmérője (átlója)? ? SQRT(HOSSZ**2+SZEL**2)
Az eredményt egy tizedes pontossággal adjuk meg! ? ROUND(SQRT(HOSSZ**2+SZEL**2),1)
206
Példa Minden olyan képcső típusát és átmérőjét írassuk ki, amelyből legalább 1000 darabot gyártottak! DISPLAY ALL TIPUS, SQRT(HOSSZ**2 +SZEL**2) FOR MENNY>=1000
207
Példa Írassuk ki az összes képcső típusát, átmérőjének egységére eső önköltségét és területének egységére eső önköltségét! DISPLAY ALL TIPUS, KOLT/SQRT( HOSSZ**2+SZEL**2), KOLT/(HOSSZ* SZEL)
208
Példa Írassuk ki az összes képcső típusát, valamint az átmérő egységére és a terület egységére eső önköltség közül a nagyobbikat! LIST TIPUS,MAX(KOLT/SQRT(HOSSZ **2+SZEL**2),KOLT/(HOSSZ*SZEL))
209
Példa Írassuk ki az összes képernyő típusát és az átmérő egységére, valamint a terület egységére eső önköltség különbségének abszolút értékét! DISPLAY ALL TIPUS,ABS(KOLT/SQRT( HOSSZ**2+SZEL**2)-KOLT/(HOSSZ* SZEL))
210
Példa Írassuk ki az összes képcső típusát és a hosszúság és szélesség arányának egészrészét! DISPLAY ALL TIPUS,INT(HOSSZ/ SZEL)
211
Karakterkezelő függvények
szöveg szöveg szöveg
212
Balrész-függvény LEFT LEFT(c,n) Típusa: karakteres
Kiválasztja a c karaktersorozat első n számú karakterét
213
Példa LEFT(”Albacomp”,4) értéke ”Alba”
LEFT(”Magyarország”,3) értéke ”Mag”
214
Jobbrész-függvény RIGHT RIGHT(c,n) Típusa: karakteres
Kiválasztja a c karaktersorozat utolsó n db karakterét
215
Példa RIGHT(”Albacomp”,4) értéke ”comp”
RIGHT(”Magyarország”,6) értéke ”ország”
216
Középrész-függvény SUBSTR SUBSTR(c,n1,n2) Típusa: Karakteres
Kiválaszt a c karaktersorozatból az n1-edik karaktertől kezdve n2 darabot.
217
Példa SUBSTR(”Albacomp”,2,3) értéke ”lba”
SUBSTR(”Magyarország”,2,5) értéke ”agyar”
218
Sokszorozó függvény REPLICATE REPLICATE(c,n) Típusa: karakteres
Megismétli a c karaktersorozatot n-szer
219
Példák REPLICATE(”ti”,4) értéke ”titititi”
REPLICATE(”+”,12) értéke ” ”
220
Kisbetű-függvény LOWER LOWER( c) Típusa: karakteres
A c karaktersorozat nagybetűit kisbetűre változtatja (a magyar ékezetes karakterek kivételével)
221
Példa LOWER(”Kovács Éva”) értéke ”kovács Éva”
LOWER(”Magyar”) értéke ”magyar”
222
Nagybetű-függvény UPPER UPPER( c) Típusa: karakteres
Értéke: a c karaktersorozat kisbetűit nagybetűkre cseréli (a magyar ékezetes betűk kivételével)
223
Példák UPPER(”elégséges”) értéke ”ELéGSéGES”
UPPER(”Magyar”) értéke ”MAGYAR”
224
Bal oldali szóközöket levágó függvény
LTRIM LTRIM( c) Típusa: karakteres a c karaktersorozat elejéről levágja a szóközöket LTRIM(” Bartók Béla”) értéke ”Bartók Béla”
225
Jobb oldali szóközöket levágó függvény
RTRIM RTRIM( c) Típusa: karakteres a c karaktersorozat végéről levágja a szóközöket RTRIM(”Kodály Zoltán ”) értéke ”Kodály Zoltán”
226
Hossz-függvény LEN LEN( c) Típusa: numerikus
A c karaktersorozat hossza
227
Példák LEN(”Albacomp”) értéke 8 LEN(”Magyarország”) értéke 12
228
ASCII kód függvény ASC ASC( c) Típusa: Numerikus
A c karaktersorozat első karakterének ASCII kódja ASC(”alma”) értéke 65 ASC(”medve”) értéke 109
229
Karaktert adó függvény
CHR CHR(n) Típusa: karakteres Az n számhoz, mint ASCII kódhoz tartózó karakter CHR(65) értéke ”a”
230
Karakterkereső függvény
AT AT(c1,c2) Típusa: numerikus az a szám, amely megmutatja, hogy a c1 karaktersorozat hányadik karaktertől kezdve található meg a c2 karaktersorozatban. Ha nincs benne, akkor az értéke 0.
231
Példák AT(”kun”,”Kiskunlacháza”) értéke 4
232
Szóközöket adó függvény
SPACE SPACE(n) Típusa: karakteres SPACE(n) ugyanazt jelenti, mint REPLICATE(” ”,n)
233
Betűvizsgáló függvény
ISALPHA ISALPHA( c) Típusa: logikai igaz, ha c karaktersorozat első karaktere betű, egyébként hamis ISALPHA(”Magyarország”) értéke .T. ISALPHA(”1965”) értéke .F.
234
Karakterkezelő függvények alkalmazása
235
Példa
236
Példák Írasd ki az első rekordban szereplő elem nevének hosszát!
DISPLAY LEN(TRIM(NEV)) Írasd ki a 6. rekord nevének első 6 betűjét! DISPLAY LEFT(NEV,6)
237
Példák Írassuk ki az 5. rekord nevét csupa nagybetűvel!
DISPLAY UPPER(NEV) Jelenítsük meg a harmadik rekord nevét és vegyjelét úgy, hogy közöttük pontosan három szóköz legyen! DISPLAY TRIM(NEV)+SPACE(3)+TRIM (VEGYJEL)
238
Példák Írassuk ki azoknak az elemeknek a nevét és vegyjelét, amelyek neve ”um” végződésű! DISPLAY NEV,VEGYJEL FOR AT(”um”,NEV)>0 Írassunk a képernyőre 80 db * karaktert! REPLICATE(”* ”,80)
239
Feladatok Írasd ki azoknak az elemeknek a nevét, vegyjelét és rendszámát, amelyek neve 7 karakternél hosszabb! Írasd ki az összes elem nevét és rendszámát úgy, hogy a nevüknek csak az első 5 betűje szerepeljen!
240
Feladatok Írasd ki csupa nagybetűvel azoknak az elemeknek a nevét, amelyeknek a rendszáma 10-nél nagyobb! Írasd ki a 10-nél kisebb rendszámú elemek nevét és vegyjelét úgy, hogy közöttük pontosan 2 szóköz legyen!
241
Dátumkezelő függvények
242
A mai dátumot megadó függvény
DATE DATE() Típusa: Dátum jellegű A mai dátumot adja meg.
243
Évszám-függvény YEAR YEAR(d) Típusa: Numerikus
A d dátumban szereplő évszámot adja eredményül.
244
Hónap-függvény MONTH MONTH(d) Típusa: Numerikus
A d dátumban szereplő hónap sorszámát adja
245
Nap-függvény DAY DAY(d) Típusa: Numerikus
A d dátumban szereplő nap sorszámát adja
246
DOW DOW DOW(d) Típusa: Numerikus A d dátum a hét hányadik napja volt?
247
Példa Írassuk ki a dolgozói nyilvántartásból azokat, akik 1965-ben születtek! DISPLAY ALL NEV FOR YEAR(SZUL_DATUM)=1965 Írassuk ki az összes adatát a 35 évnél idősebbeknek! DISPLAY ALL FOR DATE()-SZUL_DATUM>35*365
248
Példa Írassuk ki azoknak a nevét, akik február 20-án születtek!
DISPLAY ALL NEV FOR MONTH(SZUL_DATUM)=2.AND.DAY( SZUL_DATUM)=20 Írassuk ki azokat, akik szerdán születtek! DISPLAY ALL NEV FOR DOW(SZUL_DATUM)=4
249
Feladat Írasd ki azokat, akik a Halak jegyében születtek (február 20. és március 21. között)! Számítsd ki, hogy a 40 évnél idősebbek mennyit keresnek összesen! Számítsd ki, hogy a decemberi születésűeknek mennyi az átlagos alapbére! Számláld meg, hogy hányan születtek vasárnap!
250
Választó függvény IIF IIF(l,t1,t2)
Típusa: t1 és t2 típusával megegyező Ha l igaz, akkor az értéke t1, ha hamis, akkor t2
251
Típusváltoztató függvények
A kifejezés értékéből más típusú konstanst tudnak létrehozni. Akkor alkalmazzuk, ha olyan műveletet szeretnénk végrehajtani, ami az adott típussal nem lehetséges.
252
STR STR STR(n1,n2,n3) Az n1 numerikus értéket szöveggé alakítja, n2 hosszon, n3 tizedesjeggyel. n2 alapértéke 10 n3 alapértéke 0
253
Példa STR(16.78,8,4) értéke ” 16.7800” STR(16.78,5) értéke ” 17”
254
VAL VAL( c) A c karaktersorozatot számmá alakítja
csak akkor használandó, ha a c-ben csak számjegyek, előjel és tizedespont található VAL(”15.78”) értéke 15.78
255
CTOD CTOD( c) A c karaktersorozatot, ha lehet dátummá alakítja
CTOD(” ”) értéke február 21-i dátum
256
DTOC DTOC(d) A d dátumot karaktersorozattá változtatja
A CTOD függvény inverze.
257
DOS parancs végrehajtatása
RUN DOS_PARANCS RUN MD ADATOK
258
VÉGE
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.