370 likes | 577 Views
Microsoft Access. Lekérdezések. Melléklet. NorthwindSQL.mdb adatbázis [X] => QueryX lekérdezés. Elnevezés. Nem lehet két azonos nevű Nem lehet táblával azonos nevű. Lekérdezések típusai. Választó lekérdezések Módosító lekérdezések Törlő Frissítő Hozzáfűző Táblakészítő
E N D
Microsoft Access Lekérdezések
Melléklet • NorthwindSQL.mdb adatbázis • [X] => QueryX lekérdezés
Elnevezés • Nem lehet két azonos nevű • Nem lehet táblával azonos nevű
Lekérdezések típusai • Választó lekérdezések • Módosító lekérdezések • Törlő • Frissítő • Hozzáfűző • Táblakészítő • Kereszttáblás lekérdezés • SQL specifikus lekérdezés • Egyesítő • Átadó • Adatdefiniáló
Választó lekérdezések (DQL) • Vetítés (projekció) • Válogatás (szelekció) • Számított mező • Rendezés • Csoportosítás • Összekapcsolás
SQL nyelv DQL utasításai (1) • Projekció • SELECT m1 [,m2...,mi] FROM táblanév; [0] • Minden mező esetén: * [2] • DISTINCT [3] • TOP [4] • ALL, ez az alapértelmezett • Táblanév.mezőnév • [Szóköz van a névben]
SQL nyelv DQL utasításai (2) • Szelekció • WHERE [5] • And, or, not [6] • Between • Like [7] • Dátumok megadása [8] • Igen/Nem (-1=True; 0=False) • IS NULL • IN, lekérdezések beágyazása [19]
SQL nyelv DQL utasításai (3) • Számított mező [9] • Lehet matematikai, szöveges, logikai, dátum-idő, stb. kifejezés • AS • Szerepelhet a WHERE záradékban [10]
SQL nyelv DQL utasításai (4) • Rendezés • ORDER BY [11] • Több mező szerint is lehet • Rendezés iránya
SQL nyelv DQL utasításai (5) • Csoportképzés • Min(), Max(), Avg(), Sum(), Count() [12] • Csoport képző: GROUP BY [13] • Csoportok szelekciója: HAVING [14] • WHERE záradék csoportosítás esetén
SQL nyelv DQL utasításai (6) • Összekapcsolás • Természetes összekapcsolás [15] • JOIN • INNER [16] • LEFT, RIGHT [17]
SQL nyelv DQL utasításai (7) • UNIO [18] • Azonos számú mezők száma • UNION ALL, alapból csak a különböző sorokat mutatja, így gyorsabb is • Csak az első SELECT-ben használjunk Aliast
Tippek • A lekérdezések egymásra épülhetnek 50 szint mélyen • DML műveletek a lekérdezésekben • Rekordmódosítás a lekérdezésben • Rekordfelvétel a lekérdezésben • Rekord törlése a lekérdezésben
Lekérdezések formázása • Mezőlista tulajdonságok • Mező tulajdonságok • Lekérdezés tulajdonságok
DQL felhasználása • Beágyazott lekérdezések • Másik lekérdezés WHERE záradékában • Listák sorforrása • Másik lekérdezés rekordforrásaként
SQL nyelv DML utasításai (1) • INSERT INTO • Sor (ok) beszúrása • Céltábla • Értékek beszúrása [21] • Lekérdezés beszúrása [22] • Futtatás módja
SQL nyelv DML utasításai (2) • DELETE FROM • Sorok törlése • DELETE * FROM tábla [23] • Feltétel megadása • Futtatás módja
SQL nyelv DML utasításai (3) • UPDATE • Frissítő lekérdezés [24] • Ha nincs WHERE, akkor minden rekordot módosít
SQL nyelv DDL utasításai (1) • SELECT INTO • Táblakészítő parancs • Céltábla • Egy sor beszúrásával [25] • Lekérdezés beszúrásával [26] • Futtatás módja
SQL nyelv DDL utasításai (2) • DROP TABLE • Tábla törlése [27]
SQL nyelv DDL utasításai (3) • CREATE TABLE [28] • Mezők • Adattípusok • Kulcs • Kötelező • Idegenkulcs
Tippek lekérdezésekhez (1) • Táblák lekérdezése [29] • Véletlen rekordok kiválasztása [30] • Paraméterek használata [31] [32] • További tippek: • acFundSQL.mdb • acIntSQL.mdb
Tippek lekérdezésekhez (2) • Lekérdezés tulajdonságai • Leírás • Összes mező a kimenetre • Csúcsérték • Egyedi értékek (DISTINCT) • Egyedi rekordok (DISTINCTROW) • Forrás-adatbázis
Hasznos függvények (1) • Dátum-idő függvények • Date(), Time(), Now() • DateAdd(intervallum;szám;dátum) • DateDiff(intervallum;d1;d2;hétkezdőnap) • DateSerial(é;h;n), TimeSerial(ó;p;m) • DateValue(szöveg), TimeValue(szöveg) • Day(dátum), Month(dátum), Year(dátum) • Hour(idő), Minute(idő), Second(idő) • IsDate(kif)
Hasznos függvények (2) • Átalakítás függvények • Asc(karakter) • Chr(szám) • Hex(szám) • Oct(szám) • Nz(kifejezés;érték ha Null)
Hasznos függvények (3) • Vizsgálat függvények • IsNumeric(kifejezés) • IsNull(kifejezés) • IsDate(kifejezés)
Hasznos függvények (4) • Matematikai függvények • Abs(szám) • Int(szám) • Kerek(szám;pontosság) • Log(szám) • Rnd(szám) • Sgn(szám) • Sqr(szám)
Hasznos függvények (5) • Szövegkezelő függvények • InStr(kezdet;sz1;sz2) • LCase(szöveg), UCase(szöveg) • Left(szöv;n), Right(szöv;n), Mid(szöv,n,m) • Len(szöveg) • LTrim(szöv), RTrim(szöv), Trim(szöv) • String(szám;szöveg) • StrComp(sz1;sz2) • Space(szám)
Hasznos függvények (6) • Programfolyamat függvények • Choose(index;kif1;kif2;…) • IIF(logikai kif;igaz kif;hamis kif) • Switch(logkif1;kif1;logkif2;kif2;…)
Hasznos függvények (7) • Tartományösszesítő függvények • DAvg(kifejezés;tartomány;feltétel) • DCount(kifejezés;tartomány;feltétel) • DFirst(kifejezés;tartomány;feltétel) • DLast(kifejezés;tartomány;feltétel) • DMax(kifejezés;tartomány;feltétel) • DMin(kifejezés;tartomány;feltétel) • DSum(kifejezés;tartomány;feltétel) • DLookup(kifejezés;tartomány;feltétel)
Konstansok • „” • False (Hamis) 0 • True (Igaz) -1 • Null
Operátorok • Aritmetikai • +, -, *, /, ^, \, mod • Összehasonlító • <, <=, >, >=, <>, =, Between • Logikai • Not, And, Or, Xor, Imp, Eqv • Szöveg • &
Lekérdezések feldolgozása • Szintaktika ellenőrzése • Léteznek-e a megnevezett táblák, mezők, helyesek-e a kifejezések, stb. • Lekérdezés-terv létrehozása • A legoptimálisabb módszer meghatározása • Végrehajtás
Lekérdezés-terv (1) • JOIN algoritmusok • 830 sor rendelés • 2155 sor részl. • Rendeléskód [1:N] • Hivatkozási integritás
Lekérdezés-terv (2) • SELECT * FROM [Rendelések] INNER JOIN [Rendelés részletei] ON [Rendelések].[Rendeléskód] = [Rendelés részletei].[Rendeléskód] • Két módszer kínálkozik • Végig megyünk a rendeléseken, és minden rekordhoz megkeressük az összes rekordot • Végigmegyünk a gyermek rekordokon, és megkeressük mindegyikhez az aparekordot • Mindegyik két egymásba ágyazott ciklus. • NESTED LOOP
Lekérdezés-terv (3) • NESTED LOOP • Ha az egyik tábla kicsi, akkor gyors • Ha mindkét tábla nagy, akkor nagyon költségigényes • Nagy táblák esetén, ha van WHERE záradék, ami csökkenti a rekordszámot, akkor ismét gyors lehet
Lekérdezés-terv (4) • MERGE JOIN • Mindkét táblán csak egyszer megy végig • Csak akkor ha mindkét táblában a rekordok rendezett módon érhetők el • Van index a JOIN mezőkre • A Merge előtt lefut egy logikai sorbarendezési művelet • Két lába van, az egyikkel az egyik, a másikkal a másik táblán csoszog előre • Használhatatlan, ha a JOIN operátor nem =, hanem >=, <=, stb.