Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

DBASE Készítette: Pető László. 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.

Hasonló előadás


Az előadások a következő témára: "DBASE Készítette: Pető László. 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."— Előadás másolata:

1 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

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 fájlnév USE KIRALY.DBF USE önmagában kiadva lezárja a nyitott adatbázisfájlt

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 CHANGE

55 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: – –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

86 Dátum jellegű kifejezések

87

88 Karakteres kifejezések

89

90 Logikai kifejezések

91

92 Példa

93

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

107 Í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 DISPLAY ALL : A rekordsorszámot is kiírja. DISPLAY ALL OFF : nem írja ki a rekordsorszámokat OFF

114 Kiíratás a nyomtatóra LIST : a képernyőre listáz LIST TO PRINT : a nyomtatóra listáz TO PRINT 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 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 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 SELECT 3 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 ? MAX(23,34) ? MAX(2/4,20/41)

203 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

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 AT(”KUN”,”Kiskunlacháza”) értéke 0

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(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(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 ” ” STR(16.78,5) értéke ” 17” STR(16.78,,4) értéke ” ” STR(16.78) é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


Letölteni ppt "DBASE Készítette: Pető László. 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."

Hasonló előadás


Google Hirdetések