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

DQL. A select parancs az adattábla lekérdezésére szolgál, azaz a táblában tárolt adatok közül az előírt feltételeknek megfelelőket kiválogatja. Formája.

Hasonló előadás


Az előadások a következő témára: "DQL. A select parancs az adattábla lekérdezésére szolgál, azaz a táblában tárolt adatok közül az előírt feltételeknek megfelelőket kiválogatja. Formája."— Előadás másolata:

1 DQL

2 A select parancs az adattábla lekérdezésére szolgál, azaz a táblában tárolt adatok közül az előírt feltételeknek megfelelőket kiválogatja. Formája (egyszerű esetben): SELECT mezőnév1[, mezőnév2,...] FROM táblanév1[,táblanév2,..] [WHERE feltétel]; A [] az opcionális (választható) részeket mutatja. A SELECT kulcsszó utáni mezőnevek határozzák meg, hogy melyik oszlop adatai jelennek meg az eredményben. Tetszőleges számú oszlop adható meg, vagy a „*” jellel az összes oszlop kiválasztható.

3 A FROM kulcsszó utáni táblanév, ill. táblanevek adja meg, hogy melyik táblá(k)ra vonatkozik a lekérdezés. Az opcionális (válaszható) WHERE záradék határozza meg a kulcsszó utáni logikai feltétel alkalmazásával azt, hogy mely rekordok adatai lesznek benne az eredményben. Amelyik rekordra a feltétel teljesül,annak kijelölt mezői a lekérdezés eredményében megjelennek. A WHERE záradékban használható relációk: =, >, =,, predikátumok

4 A predikátumok a feltételek egyszerűbb megadását segítik. IS – egyenlőség feltétel (pl.:IS NULL) LIKE – mintaillesztő operátor. olyan rekordok adatai választhatók ki, amelyek „hasonlóak” egy megadott mintához. A "%" jel használható joker- karakterként. (pl.: LIKE 'Er%'; ) BETWEEN alsóérték AND felsőérték a határok közötti értékkel rendelkező sorok kerülnek kiválasztásra (pl.BETWEEN 50 AND 100) IN (értéklista) – értékegyezés vizsgálat (pl.:IN (’1’,’2’)

5 Alkalmazott tábla: knévvnévkorvárosállam JohnJones45PaysonArizona Mary Jones25PaysonArizona EricEdwards32San Diego California Mary Ann Edwards32PhoenixArizona Ginger Howell42FlagstaffArizona SebastianSmith 23Gila Bend Arizona GusGray35BagdadArizona Mary AnnMay52TucsonArizona Erica Williams 60Show Low Arizona Leroy Brown22PinetopArizona ElroyCleaver22GlobeArizona

6 Alkalmazott: knévvnévkorvárosállam JohnJones45PaysonArizona Mary Jones25PaysonArizona EricEdwards32San Diego California Mary Ann Edwards32PhoenixArizona Ginger Howell42FlagstaffArizona SebastianSmith 23Gila Bend Arizona GusGray35BagdadArizona Mary AnnMay52TucsonArizona Erica Williams 60Show Low Arizona Leroy Brown22PinetopArizona ElroyCleaver22GlobeArizona SELECT knév, vnév, város FROM alkalmazott; EREDMÉNY????

7 SELECT knév, vnév, város FROM alkalmazott; JohnJones45Payson Arizona Mary Jones25Payson Arizona EricEdwards32San Diego California Mary Ann Edwards32Phoenix Arizona Ginger Howell42Flagstaff Arizona SebastianSmith 23Gila Bend Arizona GusGray35Bagdad Arizona Mary Ann May52Tucson Arizona Erica Williams 60Show Low Arizona Leroy Brown22Pinetop Arizona ElroyCleaver22Globe Arizona

8 SELECT vnév, város, kor FROM alkalmazott WHERE kor > 30; Alkalmazott: knévvnévkorvárosállam JohnJones45PaysonArizona Mary Jones25PaysonArizona EricEdwards32San Diego California Mary Ann Edwards32PhoenixArizona Ginger Howell42FlagstaffArizona SebastianSmith 23Gila Bend Arizona GusGray35BagdadArizona Mary AnnMay52TucsonArizona Erica Williams 60Show Low Arizona Leroy Brown22PinetopArizona ElroyCleaver22GlobeArizona

9 SELECT vnév, város, kor FROM alkalmazott WHERE kor > 30; JohnJones45Payson Arizona Mary Jones25Payson Arizona EricEdwards32San Diego California Mary An Edwards 32Phoenix Arizona Ginger Howell42Flagstaff Arizona SebastianSmith 23Gila Bend Arizona GusGray35Bagdad Arizona Mary Ann May52Tucson Arizona Erica Williams 60Show Low Arizona Leroy Brown22Pinetop Arizona ElroyCleaver22Globe Arizona

10 SELECT knév, vnév, város, állam FROM alkalmazott WHERE knév LIKE 'J%'; Alkalmazott: knévvnévkorvárosállam JohnJones45PaysonArizona Mary Jones25PaysonArizona EricEdwards32San Diego California Mary Ann Edwards32PhoenixArizona Ginger Howell42FlagstaffArizona SebastianSmith 23Gila Bend Arizona GusGray35BagdadArizona Mary AnnMay52TucsonArizona Erica Williams 60Show Low Arizona Leroy Brown22PinetopArizona ElroyCleaver22GlobeArizona

11 SELECT knév, vnév, város, állam FROM alkalmazott WHERE knév LIKE 'J%'; JohnJones45Payson Arizona Mary Jones25Payson Arizona EricEdwards32San Diego California Mary Ann Edwards32Phoenix Arizona Ginger Howell42Flagstaff Arizona SebastianSmith 23Gila Bend Arizona GusGray35Bagdad Arizona Mary Ann May52Tucson Arizona Erica Williams 60Show Low Arizona Leroy Brown22Pinetop Arizona ElroyCleaver22Globe Arizona

12 SELECT knév, vnév, kor FROM alkalmazott WHERE vnév LIKE '%illia%'; JohnJones45Payson Arizona Mary Jones25Payson Arizona EricEdwards32San Diego California Mary Ann Edwards32Phoenix Arizona Ginger Howell42Flagstaff Arizona SebastianSmith 23Gila Bend Arizona GusGray35Bagdad Arizona Mary Ann May52Tucson Arizona Erica Williams 60Show Low Arizona Leroy Brown22Pinetop Arizona ElroyCleaver22Globe Arizona

13 SELECT knév, vnév, kor FROM alkalmazott WHERE vnév LIKE '%illia%'; JohnJones45Payson Arizona Mary Jones25Payson Arizona EricEdwards32San Diego California Mary Ann Edwards32Phoenix Arizona Ginger Howell42Flagstaff Arizona SebastianSmith 23Gila Bend Arizona GusGray35Bagdad Arizona Mary Ann May52Tucson Arizona Erica Williams 60Show Low Arizona Leroy Brown22Pinetop Arizona ElroyCleaver22Globe Arizona

14 SELECT knév, vnév, FROM alkalmazott WHERE kor BETWEEN 30 AND 40; Alkalmazott: knévvnévkorvárosállam JohnJones45PaysonArizona Mary Jones25PaysonArizona EricEdwards32San Diego California Mary Ann Edwards32PhoenixArizona Ginger Howell42FlagstaffArizona SebastianSmith 23Gila Bend Arizona GusGray35BagdadArizona Mary AnnMay52TucsonArizona Erica Williams 60Show Low Arizona Leroy Brown22PinetopArizona ElroyCleaver22GlobeArizona

15 SELECT knév, vnév, FROM alkalmazott WHERE kor BETWEEN 30 AND 40; Alkalmazott: knévvnévkorvárosállam JohnJones45PaysonArizona Mary Jones25PaysonArizona EricEdwards32San Diego California Mary Ann Edwards32PhoenixArizona Ginger Howell42FlagstaffArizona SebastianSmith 23Gila Bend Arizona GusGray35BagdadArizona Mary AnnMay52TucsonArizona Erica Williams 60Show Low Arizona Leroy Brown22PinetopArizona ElroyCleaver22GlobeArizona

16 SELECT vnév,kor FROM alkalmazott WHERE város IN (‘Payson’, ‘Bagdad); Alkalmazott: knévvnévkorvárosállam JohnJones45PaysonArizona Mary Jones25PaysonArizona EricEdwards32San Diego California Mary Ann Edwards32PhoenixArizona Ginger Howell42FlagstaffArizona SebastianSmith 23Gila Bend Arizona GusGray35BagdadArizona Mary AnnMay52TucsonArizona Erica Williams 60Show Low Arizona Leroy Brown22PinetopArizona ElroyCleaver22GlobeArizona

17 SELECT vnév,kor FROM alkalmazott WHERE város IN (‘Payson’, ‘Bagdad), Alkalmazott: knévvnévkorvárosállam JohnJones45PaysonArizona Mary Jones25PaysonArizona EricEdwards32San Diego California Mary Ann Edwards32PhoenixArizona Ginger Howell42FlagstaffArizona SebastianSmith 23Gila Bend Arizona GusGray35BagdadArizona Mary AnnMay52TucsonArizona Erica Williams 60Show Low Arizona Leroy Brown22PinetopArizona ElroyCleaver22GlobeArizona

18 Matematikai műveletek Az ANSI SQL-92 szabvány a következő alapműveleteket tartalmazza +, -,*, / Logikai műveletek feltételekben SELECT mezőnév-lista FROM táblanév-lista WHERE feltétel1 AND feltétel2; Az AND (ÉS) művelet két v. több feltétel egyidejű teljesülését kívánja meg, az OR (VAGY) viszont bármelyik feltétel teljesülésekor igaz eredményt ad.

19 Összesítő függvények MIN adott oszlop legkisebb értéke MAX adott oszlop legnagyobb értéke SUM numerikus oszlop értékeinek összege AVG adott oszlop értékeinek átlaga COUNT adott oszlop értékeink darabszáma COUNT (*)sorok száma egy táblában Az összesítő függvények ”számértéket tartalmazó oszlopot” képeznek. Ez nem egy meglévő oszlop, hanem a SELECT parancs hatására jön létre!

20 A GROUP BY záradék A GROUP BY záradék összegyűjti azon sorok adatait amelyek adatot tartalmaznak a kijelölt oszlopokban és lehetővé teszi összesítő függvények kiértékelését ezeken az adatokon. SELECT mezőnév1, összesítő_fv(mezőnév2) FROM táblanév-lista GROUP BY mezőnév-lista; Példa: SELECT AVG(kor) FROM alkalmazott GROUP BY város; Ez az utasítás az alkalmazott tábla rekordjait városonként csoportosítja és minden csoportra kiszámítja a kor mező átlagértékét, azaz megadja az alkalmazottak átlagos életkorát városonként.

21 A HAVING záradék SELECT mezőnév1, összesítő_fv(mezőnév2) FROM táblanév-lista GROUP BY mezőnév-lista HAVING feltétel; A HAVING záradék azt teszi lehetővé, hogy feltételt adjunk meg a csoportokra vonatkozólag. Mindig a GROUP BY záradék után következik! Ismét egy példa: Az alkalmazott tábla tartalmazza az alkalmazott nevét, az osztályt ahol dolgozik, fizetését és életkorát. Ha az egyes osztályokon dolgozók átlagfizetése érdekel bennünket, a következő lekérdezés kell:

22 SELECT osztály, AVG(fizetés) FROM alkalmazott GROUP BY osztály; Amennyiben csak akkor érdekes az átlagfizetés, ha 20000 fölött van, írjuk a következőt: SELECT osztály, AVG(fizetés) FROM alkalmazott GROUP BY osztály HAVING AVG(fizetés) > 20000;

23 Az ORDER BY záradék SELECT mezőnév-lista FROM táblanév-lista ORDER BY mezőnév-lista [ASC | DESC]; [ ] = opcionális Az ORDER BY egy opcionális záradék amely a lekérdezés eredményét rendezi egy v. több oszlop szerint növekedő v. csökkenő sorrendbe. ASC = növekedő sorrend, alapértelmezett DESC = csökkenő sorrend

24 Alkalmazott tábla: knévvnévkorvárosállam JohnJones45PaysonArizona Mary Jones25PaysonArizona EricEdwards32San Diego California Mary Ann Edwards32PhoenixArizona Ginger Howell42FlagstaffArizona SebastianSmith 23Gila Bend California GusGray35BagdadArizona Mary AnnMay52TucsonArizona Erica Williams 60Show Low Arizona Leroy Brown22PinetopArizona ElroyCleaver22GlobeArizona SELECT knév, vnév, kor+5 FROM alkalmazott WHERE knév LIKE ’Eric%’ AND állam=‘Arizona’;

25 Alkalmazott tábla: knévvnévkorvárosállam JohnJones45PaysonArizona Mary Jones25PaysonArizona EricEdwards32San Diego California Mary Ann Edwards32PhoenixArizona Ginger Howell42FlagstaffArizona SebastianSmith 23Gila Bend California GusGray35BagdadArizona Mary AnnMay52TucsonArizona Erica Williams 65Show Low Arizona Leroy Brown22PinetopArizona ElroyCleaver22GlobeArizona SELECT knév, vnév, kor+5 FROM alkalmazott WHERE knév LIKE ’Eric%’ AND állam=‘Arizona’;

26 Alkalmazott tábla: knévvnévkorvárosállam JohnJones45PaysonArizona Mary Jones25PaysonArizona EricEdwards32San Diego California Mary Ann Edwards32PhoenixArizona Ginger Howell42FlagstaffArizona SebastianSmith 23Gila Bend California GusGray35BagdadArizona Mary AnnMay52TucsonArizona Erica Williams 60Show Low Arizona Leroy Brown22PinetopArizona ElroyCleaver22GlobeArizona SELECT knév, vnév, kor FROM alkalmazott ORDER BY kor DESC;

27 knévvnévkor Erica Williams 60 Mary AnnMay52 JohnJones45 Ginger Howell42 GusGray35 EricEdwards32 Mary Ann Edwards32 Mary Jones25 SebastianSmith 23 Leroy Brown22 ElroyCleaver22 SELECT knév, vnév, kor FROM alkalmazott ORDER BY kor DESC;

28 Alkalmazott tábla: knévvnévkorvárosállam ElroyCleaver22GlobeArizona Leroy Brown22PinetopArizona JohnJones45PaysonArizona Mary Jones25PaysonArizona EricEdwards32San Diego California Mary Ann Edwards32PhoenixArizona Ginger Howell42FlagstaffArizona SebastianSmith 23Gila Bend California GusGray35BagdadArizona Mary AnnMay52TucsonArizona Erica Williams 60Show Low Arizona SELECT * FROM alkalmazott ORDER BY állam,kor;

29 knévvnévkorvárosállam Erica Williams 60Show Low Arizona Mary AnnMay52TucsonArizona JohnJones45PaysonArizona Ginger Howell42FlagstaffArizona GusGray35BagdadArizona Mary Ann Edwards32PhoenixArizona Mary Jones25PaysonArizona Leroy Brown22PinetopArizona ElroyCleaver22GlobeArizona EricEdwards32San Diego California SebastianSmith 23Gila Bend California SELECT * FROM alkalmazott ORDER BY állam,kor DESC;

30 Alkalmazott tábla: knévvnévkorvárosállam ElroyCleaver22GlobeArizona Leroy Brown22PinetopArizona JohnJones45PaysonArizona Mary Jones25PaysonArizona EricEdwards32San Diego California Mary Ann Edwards32PhoenixArizona Ginger Howell42FlagstaffArizona SebastianSmith 23Gila Bend California GusGray35BagdadArizona Mary AnnMay52TucsonArizona Erica Williams 60Show Low Arizona SELECT állam, AVG (kor) FROM alkalmazott GROUP BY állam;

31 államAVG(kor) Arizona41,6 California37,8 SELECT állam, AVG (kor) FROM alkalmazott GROUP BY állam;

32 Alkalmazott tábla: knévvnévkorvárosállam ElroyCleaver22GlobeArizona Leroy Brown22PinetopArizona JohnJones45PaysonArizona Mary Jones25PaysonArizona EricEdwards32San Diego California Mary Ann Edwards32PhoenixArizona Ginger Howell42FlagstaffArizona SebastianSmith 23Gila Bend California GusGray35BagdadArizona Mary AnnMay52TucsonArizona Erica Williams 60Show Low Arizona SELECT állam,MAX( kor) FROM alkalmazott GROUP BY állam HAVING MAX(kor)>35;

33 államMAX(kor) Arizona60 SELECT állam,MAX( kor) FROM alkalmazott GROUP BY állam HAVING MAX(kor)>35;

34 A select összefoglalás: A SELECT parancshoz öt fontosabb záradék kapcsolható, amelyek közül egyetlen, a FROM a kötelező. Minden záradék számos opciót, paramétert tartalmaz. A SELECT záradékos formája: SELECT [ALL | DISTINCT] mezőnév1 [,mezőnév2 …] matematikai műveletek, aggregáló fv. FROM táblanév1[,táblanév2…] [WHERE feltételek] logikai műveletek [GROUP BY mezőnév-lista] [HAVING feltételek] [ORDER BY mezőnév-lista [ASC | DESC] ]

35 DDL

36 A create table parancs új adattáblát hoz létre. Egyszerű formája: CREATE TABLE táblanév (mezőnév1 adattípus, [mezőnév2 adattípus, …mezőnévn adattípus]); Ha opcionális megszorításokat is alkalmazunk: CREATE TABLE táblanév (mezőnév1 adattípus [megszorítás], [mezőnév2 adattípus [megszorítás], …mezőnévn adattípus [megszorítás]); [ ] = opcionális Tetszőleges számú oszlop adható meg.

37 Megszorítások: Amikor táblákat hozunk létre gyakori, hogy egy vagy több oszlopára olyan előírásokat teszünk, amelyek korlátozzák a beírható adatokat. - UNIQUE (egyedi) megszorítást, ami azt jelenti, hogy nem lehet két v. több olyan rekord, ami az adott oszlopban azonos adatot tartalmaz. -NOT NULL megszorítás, ami kizárja hogy az oszlop üresen maradjon. -Pl.: CREATE TABLE alkalmazott (alk_azon NUMBER(5) NOT NULL UNIQUE);

38 A tábla elsődleges kulcsát a PRIMARY KEY megszorítással jelezzük. CREATE TABLE alkalmazott (alk_azon NUMBER(5) NOT NULL UNIQUE, knév VARCHAR(15), vnév VARCHAR(20), kor NUMBER(3), cím VARCHAR(30), város VARCHAR(20), állam VARCHAR(20), PRIMARY KEY (alk_azon));

39 -FOREIGN KEY (idegen kulcs) -PL. CREATE TABLE forgalom (eladó NUMBER(5) NOT NULL, számlaösszeg NUMBER(6), FOREIGN KEY(eladó)REFERENCES alkalmazott(alk_azon)); Az idegen kulcs megszorításban meg kell nevezni azt a mezőt, amely az idegen kulcsot tartalmazza és azt is, hogy az adott mezőnek a másik táblában mi a neve.

40 A drop table parancs egy adattábla és összes sorának törlésére szolgál. Formája: DROP TABLE táblanév Példa: DROP TABLE alkalmazott; A tábla törléséhez a DROP TABLE kulcsszó után meg kell adni a törlendő tábla nevét. A DROP TABLE hatása nem azonos a tábla összes rekordjának törlésével, mert ez az oszlopokra vonatkozó minden információt, a megszorításokat is törli, vagyis a teljes tábla- definíció is megszűnik.

41 Táblák összekapcsolása SELECT parancssal SELECT mezőnév1, mezőnév2,..., táblanévN.mező FROM táblanév1, táblanév2,..., táblanévN WHERE kapcsolómező(minősített) operátor(feltétel) kapcsolómező;

42 Táblák összekapcsolása INNER JOIN parancssal(belső) SELECT táblanév1.mezőnév, táblanév2.mezőnév,... FROM táblanév1 INNER JOIN táblanév2 ON táblanév1.kulcsmező = táblanév2.kulcsmező;

43 Táblák összekapcsolása LEFT(RIGHT) JOIN parancssal(külső) SELECT táblanév1.mezőnév, táblanév2.mezőnév,... FROM táblanév1 INNER JOIN táblanév2 ON táblanév1.kulcsmező = táblanév2.kulcsmező;

44 Halmazműveletek Unió SELECT.. UNION SELECT Metszet SELECT.. INTERSECT SELECT Különbség SELECT...MINUS SELECT...

45 DML

46 Az insert into parancs új sort (rekordot) ad a táblához: INSERT INTO táblanév (első mezőnév [,...utolsó mezőnév]) VALUES (első érték,[...utolsó érték]); [] = opcionális Figyelem: a mezőnevek közül kizárólag azokat kell felsorolni, amelyeknek értéket adunk, vagyis nem kell a rekord összes mezőnevét megadni! Példa: INSERT INTO alkalmazott (knév, vnév, kor, város, állam) VALUES ('Luke', 'Duke', 45, 'Hazard Co', 'Georgia');

47 Az update parancs adattábla azon rekordjainak megváltoztatására, frissítésére szolgál, amelyek kielégítik az előírt feltételeket. A feltételeket a WHERE záradék tartalmazza. Formája: UPDATE táblanév SET mezőnév = új érték [,következő mezőnév = köv. új érték...] WHERE mezőnév OPERATOR érték

48 A delete parancs rekordok törlésére szolgál. Formája: DELETE FROM táblanév WHERE mezőnév OPERATOR érték [and|or mezőnév OPERATOR érték]; [ ] = opcionális Példák: DELETE FROM alkalmazott; Figyelem: ha nincs WHERE záradék, minden rekord törlődik! DELETE FROM alkalmazott WHERE vnév = 'May'; DELETE FROM alkalmazott WHERE knév = 'Mike' OR knév = 'Eric';


Letölteni ppt "DQL. A select parancs az adattábla lekérdezésére szolgál, azaz a táblában tárolt adatok közül az előírt feltételeknek megfelelőket kiválogatja. Formája."

Hasonló előadás


Google Hirdetések