SQL lekérdezés, az SQL SELECT Az egyszerû Select általános formája : SELECT Ri1.A1, .. Rir.Ar FROM R1, .. , Rk WHERE ? ;
Ahol R1, .. , Rk : alaprelációk R.A : R reláció A attribútuma ? : DRC formula
A lekérdezéssel ekvivalens relációs algebrai kifejezés :
? Ri1.A1, .. Rir.Ar(??` (R1X .. XRk))
A kiértékelés menete a relációs algebrai kifejezés szerint történik.
Az attribútumok felsorolása helyetti * karakter az összeset helyettesesíti.
Pl. - a negatív egyenlegû vásárlók neve SELECT Vnév FROM Vásárló WHERE Egyenleg<0 ;
- azon szállítók neve, akik árujából Ló Béla rendelt már valaha SELECT Szállító.SzNév FROM Rendelés, Tétel, Szállító WHERE Rendelés.VNév='Ló Béla' AND Rendelés.Rsz=Tétel.Rsz AND Tétel.Termék=Szállító.Termék ;
Az egyedi attribútumok neve elõtti minõsítés elhagyható. A FROM utáni felsorolásban a relációknak alias nevet adhatunk. ... FROM Rendelés R, Tétel T, Szállító Sz ...
Az eredményben levõ ismétlõdések kiszûrése : SELECT DISTINCT .....
Feladat : - Azon vevõk neve és címe, akik vásároltak egyszerre legalább 5 patareszelõt - Ló Béla által rendelt, 1200 piculánál olcsóbb termékek neve - Azon vásárlók neve és címe, akik egyenlege kisebb, mint Ló Béla egyenlege
Speciális operátorok a WHERE klauzában
1. LIKE - összehasonlítás karakter-stringgel
<karakteres kifejezés> LIKE <minta>
Z betûvel kezdõdõ termékek listája SELECT Termék FROM Szállító WHERE Termék LIKE 'Z' OR Termék LIKE 'z' ;
A mintába tehetõ speciális karakterek : % : tetszõleges számú karaktert helyettesíthet _ : egy karaktert helyettesíthet
2. IN, ANY, ALL - Halmaz operátorok Az összehasonlítás operandusaként szereplõ halmazokat létrehozhatjuk felsorolással vagy belsõ SELECT utasítással (beágyazott select, sub-query).
a., IN - halmazba tartozás
Azon rendelések listája, amelyek tartalmaznak Nyerget, Zablát, Lókötõt SELECT Rsz FROM Tétel WHERE Termék IN ('Nyereg', 'Zabla', 'Lókötõ')
Ló Béla által rendelt termékek listája SELECT DISTINCT Termék FROM Tétel WHERE Rsz IN ( SELECT Rsz FROM Rendelés WHERE VNév='Ló Béla' );
b., <kifejezés> ? ALL <halmaz> - a halmaz minden elemére történõ megkötés Jelentése : A ? ANY S : (?X)(X?S ? A?X)
<kifejezés> ? ANY <halmaz> - létezésre történõ megkötés Jelentése : A ? ANY S : (?X)(X?S ? A?X)
Pl. A legdrágább termék neve SELECT Termék FROM Szállító WHERE Ár > ALL ( SELECT Ár FROM Szállító );
Feladat :
- Azon vevõk neve, akik rendeltek a legdrágább termékbõl - Azon szállítók neve, akik szállítanak olyan terméket, amit a Nyerges Ktsz is szállít - Azon vevõk neve és címe, akik rendeltek olyan terméket, amit már Ló Béla is rendelt
A beágyazott select
A beágyazott select általában nem tartalmazhat minden klauzát, csak SELECT-FROM-WHERE felépítésû lekérdezés lehet. Ha eredménye egy érték, akkor úgy kezelhetjük a külsõ lekérdezésben, mint egy konstanst. Ha eredménye több érték (halmaz), akkor a halmazoperátorokkal kezelhetjük õket.
A beágyazott select fajtái :
- független - korrelált
Ha független, akkor a kiértékeléskor elõször a belsõ lekérdezést értékeljük ki, aminek eredménye nem függ a külsõ lekérdezéstõl.
Ha korrelált, akkor a belsõ lekérdezés eredménye függ a külsõ lekérdezéstõl. Ez akkor jöhet létre, ha a belsõ lekérdezésben hivatkozunk a külsõ lekérdezésben szereplõ valamely attribútumra. Ekkor a külsõ lekérdezés FROM után szereplõ relációinak minden sorára végrehajtódik a belsõ lekérdezés.
Pl. CSAPOLJA (Kocsma, Sör) SZERETI (Korhely, Sör) ODAJÁR (Korhely, Kocsma)
Azon korhelyek listája, akik látogatnak olyan kocsmát, ahol csapolnak olyan sört, amit szeret.
SELECT DISTINCT Szereti.Korhely FROM Szereti, Csapolja WHERE Szereti.Sör=Csapolja.Sör AND Csapolja.Kocsma IN ( SELECT Odajár.Kocsma FROM Odajár WHERE Odajár.Korhely=Szereti.Korhely );
Feladat : - Azon korhelyek listája, akik látogatnak olyan kocsmát, ahol csapolnak olyan sört, amit szeret. - belsõ lekérdezés nélkül - Hova menjen Ló Béla ? Azon kocsmák listája, ahol csapolnak olyan sört, amit Ló Béla szeret. - Kiket listáz ki a következõ lekérdezés ? SELECT Korhely FROM Odajár WHERE Kocsma NOT IN ( SELECT Kocsma FROM Csapolja WHERE Sör IN ( SELECT Sör FROM Szereti WHERE Szereti.Korhely=Odajár.Korhely ) );
Pl. - A vásárlók egyenlegének átlaga SELECT AVG(Egyenleg) FROM Vásárló ;
- A zablát gyártók száma SELECT COUNT(*) #ZablaGyártók FROM Szállító WHERE Termék = 'Zabla' ;
- Azok száma, akik rendeltek már Nyerget SELECT COUNT(DISTINCT Rendelés.Vnév) FROM Rendelés, Tétel WHERE Tétel.Termék = 'Nyereg' AND Tétel.Rsz = Rendelés.Rsz ;
Az összesítõ mûvelet a WHERE -el kiválasztott összes rekordra számítódik ki. Ebben az esetben az eredménylistában csak konstansok szerepelhetnek és összesítõ operátorok.
Az összesítés elvégezhetõ csoportosítás alapján is :
GROUP BY A1,A2, ... Ak
Két rekord akkor kerül egy csoportba az összesítéshez, ha A1, ... Ak attribútumaikban megegyeznek. Ezeknek az attribútumoknak az eredménylistában is szerepelniük kell, hogy az eredmény értelmezhetõ legyen.
Pl. - a termékek és azok átlagos árának listája SELECT Termék, AVG(Ár) Átlagár FROM Szállító GROUP BY Termék ;
A csoportokat is szûrhetjük a jellemzõik alapján : GROUP BY A1,A2, ... Ak HAVING ?
? : logikai kifejezés, amely a csoportokra értékelõdik ki
Pl. - azon termékek neve, szállítóinak száma és átlagára, amelyet legalább ketten szállítanak SELECT Termék, COUNT(*) Darab, AVG(Ár) Átlagár FROM Szállító GROUP BY Termék HAVING COUNT(*) > 1 ;
Pl. Azon korhelyek listája, akik csak olyan kocsmába járnak, ahol csapolnak olyan sört, amit szeret. SELECT Korhely FROM Szereti WHERE 0 = (SELECT Count (*) FROM Odajár WHERE Odajár.Korhely = Szereti.Korhely AND NOT Szereti.Sör = ANY ( SELECT Sör FROM Csapolja WHERE Csapolja.Kocsma=Odajár.Kocsma ) ) ;
Feladat : - Azon vásárlók száma, akik még nem rendeltek Lókötõt - Lista a termékekrõl és azok számáról, akik már rendeltek belõle
Adatmódosítás
1. Új rekord beszúrása egy táblázatba
INSERT IGNORE INTO R [(<oszloplista>)] VALUES (<értéklista>) ;
Ha nem adunk meg oszloplistát, akkor minden oszlopnak értéket kell adni, a definiálásnál megadott sorrend szerint.
Pl. -egy új vevõ beszúrása, ismeretlen cím esetén INSERT IGNORE INTO Vásárló (Vnév, Egyenleg) VALUES ('Kiss Béla', 0 ) ;
Egy táblázathoz hozzáfûzhetjük egy lekérdezés eredményét is, természetesen az oszlopok adattípusának figyelembevételével.
NYERGES (Termék, Ár) - A Nyerges KTSZ. árúinak adatait tartalmazó létezõ táblázat
INSERT IGNORE INTO Nyerges SELECT Termék, Ár FROM Szállító WHERE SzNév='Nyerges KTSZ' ;
2. Rekord törlése táblázatból DELETE FROM R WHERE ? ;
Pl. - A 42-es nyerget tartalmazó rendelések törlése DELETE FROM Rendelés WHERE Rsz IN ( SELECT Rsz FROM Tétel WHERE Termék = 'Nyereg / 42' ) ;
Minden egyedtípushoz külön táblát használunk, amelyek az egyedtípusok adatinak tárolására szolgálnak..
A táblák alkalmasak arra, hogy az adatokat közvetlenül a táblába vigyük be és szerkeszthessük.
A bevitt adatokat rendezhetjük, szûrhetjük és lekérdezés segítségével válogathatunk belõlük.
A táblák rekordjai (egyed-elõfordulásai) egymással kapcsolatot létesíthetnek.
Új tábla létrehozása:
Tervezõ nézetben kötelezõ 2 adatot megadni.
· Mezõnév
Jellemzõje, hogy:
max 64 karakter hosszú,
nem tartalmazhat [,],(,),=,>,<,;,jeleket és szóközt,
· Adattípus
Szöveg max. 255 karakter (alapértelmezésben 50)
Szám
dátum/idõ
pénznem
számláló
logikai igen/nem
A mezõknek a következõ tulajdonságokat lehet beállítani:
· Mezõméret
van alapértéke, ezért nem kötelezõ a megadása
pl. szöveges mezõnél a karakterek száma vagy szám típusnál a lehetséges értékek tartománya
· Formátum:
Dátum és szám megadott formátuma
· Tizedes helyek
A tizedes jegyek száma
· Beviteli maszk
Formázó karaktereket jelenít meg
A tulajdonság segítségével megkönnyíthetjük az adatok bevitelét, és elõírhatjuk, hogy milyen értékeket lehet a mezõbe írni.
Legyen R(A1, A2, ..., An) egy reláció és legyenek P, Q az A attribútumhalmaz részhalmazai Azt mondjuk, hogy P funkcionálisan meghatározza Q-t, vagyis Q funkcionálisan függ P-tol, ha abból, hogy a reláció valamely két sora megegyezik P halmazon, következik, hogy a két sor értékei megegyeznek a Q halmazon is. A P attribútum-részhalmaz funkcionálisan meghatározza a Q attribútumhalmazt, ha minden P-hez tartozó értékhez pontosan egy Q-hoz tartozó értéket tudunk hozzárendelni. A kulcs és a reláció többi attribútuma között funkcionális függoség áll fenn. A kulcsok szerepe alapveto fontosságú a normalizálás folyamatában.
Elsodleges kulcs: A relációban kell lennie egy vagy több olyan attribútumnak, amelyeket a sorok egyedi azonosítójaként lehet használni. Kulcsjelölt: Bármely olyan attribútum halmaz, amelyet egyedi azonosítóként lehet használni. Egyszerû kulcs: Olyan kulcsjelölt, mely egyetlen attribútumból áll. Összetett kulcs: Ha egy kulcsjelölt két vagy több olyan elembol áll, amelyek mindegyike más relációk elemei, attribútumai, azt összetett kulcsnak nevezzük. Ezzel lehet kifejezni a sok-sok kapcsolatot két reláció vagy entitás között. Hierarchikus kulcs: Olyan kulcs, amelynek legalább egy olyan összetevoje van, amely önmagában véve nem azonosít semmit. Gyakran szolgál egy ismétlodo csoport egyes elemeinek egyedi azonosítására. Idegen kulcs: Más egyedtípusban elsodleges kulcsként használt tulajdonságtípus.
Az elsõdleges kulcs (primary key)szerepe: A táblázat sorainak egyértelmû azonosítására szolgál.
Elõfordul, hogy két vagy több oszlopra van szükségünk az egyértelmû azonosításhoz.
Az elsõdleges kulcs választásánál ügyelnünk kell arra, hogy a kulcsban szereplõ oszlopok száma minimális legyen, ha bármelyik oszlopot elhagyjuk, akkor már nem különbözteti meg a táblázat két sorát.
Az elsõdleges kulcsok kijelölése az adatbázis-tervezés egyik legfontosabb feladata. A konkrét adatmodell legtöbbször nyilvánvalóvá teszi, hogy mi legyen az elsõdleges kulcs a relációban.
Minek egy nõnek szoftver üzemeltetõi vizsga? Miért nem elég egy sima ECDL? Én ezt nem értem. Ha valakinek szoftver üzemeltetõi vizsga kell, annak már kell valami alap tudás is. Ez OKJ-s vizsga. Ahova jártam suliba, nekünk az ECDL és a szoftver üzemeltetõi kötelezõ volt év végén (mint nyári termelési gyakorlat) :Ð
Kettõt kattintok, berakom a cd-t, majd használom. Bazz, ilyen primitív kérdéseket...
Szoftver üzemeltetõi vizsga :)
Ismertesse,jellemezze az Access adatbázis-kezelõt! Hogyan hozhat létre adattáblákat az adatbázis-kezelõben? Mi az elsõdleges kulcs szerepe az adatbázis-kezelõben? Milyen kapcsolattípusok hozhatók létre a táblák között az Accessben? Milyen adatípusokat használhatunk az Accessben,melyiket mikor célszerû használni? Az adatbázis-kezelõben a szöveg adattípusnál milyem mezõtulajdonságokat állíthatunk be? Mi a lekérdezés az adatbázis-kezelõben? Mondjon példát használatára! Hogyan hozhat létre jelentést Access-ben? Mire használható a SCANDISK parancs? Mit jelent a lemeztöredezettség, ezt hogyan lehet megszûntetni? Mi az abszolúlt és reletív és kevert cellahivatkozás? Mikor melyiket használjuk? Hogyan történik a printer telepítése WIN98 alatt? Mire használhatjuk a bemutatóanyag készítõ programot,hogyan segíti a bemutatók készítését a program? Milyen elemeket használhatunk a diákon, hogyan módosíthatjuk azen elemek tulajdonságait? Milyen lehetõség van sablonok használatára? Hogyan lehet Win98 alatt PEER-TO-PEER hálózatot kialakítani? Milyen animációs lehetõségeket nyújt a Power Point? Hogyan készíthetõk multimédiás alkalmazások vele? Win98 hálózatban milyem megosztási jogokat lehet megadni? Milyen nézetei vannak a PowerPointnak? Hogyan nyomtathatók ki az elkészült diák? Milyen lehetõség van a lejátszásra? Milyen automatizmusok segítik vagy támogatják a lejátszást?
Nah röviden ennyi lenne a téma, olyan weblapokat keresnék itt a melóban,ahol ezt le lehetne nyúlni tétel formában
Minek iratkozik be a barátnõ huga ilyen tanfolyamra, ha utána nem tanul semmit?
Chatelni, honfoglalózni, tevét etetni azt lehetett biztos, az órán odafigyelni NEM!
Senki? Brühühü...
Üdv! Lenne egy olyan gondom hogy hozzámvágtak egy vizsgasort (a barátnõm huga) amit ki kellene dolgoznom csak baromira nincs kedvem hozzá Arra gondoltam hogy megkeresem a neten ezeket,de nem találtam konkrétan kidolgozva õket! Nem tud valaki véletlenül egy olyan helyet,ahol megvannak ezek? Egy sör aki tud ilyet