Gyakorlás: Hozzunk létre egy Alkalmazottak táblát AZO szám, Részleg szöveg, Munkakör szöveg és BelépésDátuma dátum típussal.

Hasonló dokumentumok
SQL PÉLDATÁR. készült a PTE TTK Iskolai informatika III. kurzus teljesítésére

Adatbázis rendszerek SQL nyomkövetés

Adattípusok. Max. 2GByte

8. Gyakorlat SQL. DDL (Data Definition Language) adatdefiníciós nyelv utasításai:

Adattípusok. Max. 2GByte

Adatbázisok. 9. gyakorlat SQL: SELECT október október 26. Adatbázisok 1 / 14

Adatbázis-lekérdezés. Az SQL nyelv. Makány György

ADATBÁZIS-KEZELÉS FÉLÉVES FELADAT

Adatbázisok* tulajdonságai

Adatbázis Rendszerek I. 10. SQL alapok (DML esettanulmány)

Tábla létrehozása: CREATE TABLE alma( ID INT( 3 ) NOT NULL PRIMARY KEY, Leiras VARCHAR( 100 ) );

ADATBÁZISOK gyakorlat: SQL 2. rész SELECT

Adatbázisok. 2. gyakorlat SQL november november 12. Adatbázisok 1 / 31

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT október október 26. Adatbázisok 1 / 17

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE) október október 22. Adatbázisok 1 / 14

Java és web programozás

Tartalomjegyzék. Tartalomjegyzék 1. Az SQL nyelv 1 Az SQL DDL alapjai 2

Adatbázis-kezelés. Harmadik előadás

Adatbázisok I. Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER

SQL haladó. Külső összekapcsolások, Csoportosítás/Összesítés, Beszúrás/Törlés/Módosítás, Táblák létrehozása/kulcs megszorítások

SQL. Táblák összekapcsolása lekérdezéskor Aliasok Allekérdezések Nézettáblák

A relációs adatbáziskezelés szabványos nyelve Két fő csoportba sorolhatók az utasításai

Adatbázis kezelés Delphiben. SQL lekérdezések

BEVEZETÉS Az objektum fogalma

Adatbázis Rendszerek II. 8. Gyakorló környezet

Adatbázisok-1 előadás Előadó: dr. Hajas Csilla

Adatbázisok elmélete 9. előadás

STRUCTURED QUERY LANGUAGE(SQL) - ALAPOK

Adatbázis-kezelés, információs-rendszerek

Az SQL nyelv Structured Query Language (Struktúrált lekérdező nyelv)

ADATBÁZIS RENDSZEREK I BEADANDÓ

LEKÉRDEZÉSEK SQL-BEN. A relációs algebra A SELECT utasítás Összesítés és csoportosítás Speciális feltételek

SQL parancsok feldolgozása

Java és web programozás

SQL ALAPOK. Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai

Adatbázisok elmélete 9. előadás

Adatbázis használat I. 2. gyakorlat

Adatbázis-kezelés Feladatok és megoldások

Készítette: Szabóné Nacsa Rozália

Adatbázis-kezelés Feladatok és megoldások

Adatbázis tartalmának módosítása

Az SQL adatbázisnyelv: DML

Relációs algebra áttekintés és egy táblára vonatkozó lekérdezések

Adatbázis használat I. 2. gyakorlat

Adatbázis, adatbázis-kezelő

AB1 ZH mintafeladatok. 6. Minősítse az állításokat! I-igaz, H-hamis

Adatbázis Rendszerek II. 3. SQL alapok

Adatbázisok elmélete 10. előadás

Adatbázis használat I. 5. gyakorlat

Adatbázis Rendszerek I. 9. SQL alapok (DDL esettanulmány)

Elemi alkalmazások fejlesztése IV.

Kilencedik témakör: Lazarus-Firebird. Készítette: Dr. Kotsis Domokos

SQL gyakorló feladatok. 6. Adatbázis gyakorlat április 5.

B I T M A N B I v: T M A N

LOGISZTIKAI ADATBÁZIS RENDSZEREK UNIÓ, ALLEKÉRDEZÉSEK

5.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

KENDE MÁRIA NAGY ISTVÁN: Oracle Példatár(SQL-PL/SQL) Házi feladatok a 3.gyakorlathoz: 1. fejezet: Egyszerű lekérdezések

A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni:

Adatbázisok II. rész

Az SQL nyelv. SQL (Structured Query Language = Strukturált Lekérdező Nyelv).

Adatbázis rendszerek. Molnár Bence. Szerkesztette: Koppányi Zoltán

Vizuális programozás gyakorlat

Adatok szűrése, rendezése

WHERE záradék (további lehetıségek) SQL specialitások, nem írhatók át relációs algebrába: LIKE. NULL értékek. Az ismeretlen (unknown) igazságérték

INFORMATIKA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ

Adatbázisok tavaszi félév Vizsgatételsor

Adatbázisok I. Az SQL nyelv

Az SQL lekérdeznyelv

LOGISZTIKAI ADATBÁZIS RENDSZEREK JOIN, AGGREGÁCIÓ

Webfejlesztés 4. alkalom

Az indexelés újdonságai Oracle Database 12c R1 és 12c R2

ADATBÁZISOK I. Az esetleges hibákat kérlek a csongor@csongorbokay.com címen jelezd! Utolsó módosítás: március 20.

LBRA6i integrált rendszer

SQL- Utasítások csoportosítása Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER

A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlat során a következőket fogjuk gyakorolni:

Lekérdezések I. Egyszerű választó lekérdezések

Alkalmazói rendszerek ACCESS ZH - javítókulcs Informatika tanár MSC, levelező tagozat, január 06.

A gyakorlat során MySQL adatbázis szerver és a böngészőben futó phpmyadmin használata javasolt. A gyakorlaton a következőket fogjuk gyakorolni:

Blahota István. SQLite alapok

Adabáziselérés ODBC-n keresztül utasításokkal C#-ban

Relációs algebrai lekérdezések átírása SQL SELECT-re (példák)

Bódy Bence Az SQL egy újabb példán keresztül

B I T M A N B I v: T M A N

Informatikai képzés Információs rendszerek dr. Hajas Csilla (ELTE IK)

Access alapok. Megnevezés Művelet Minta. Új adatbázis létrehozása. Új / Üres adatbázis.. Tábla létrehozása tervező nézetben.

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 4.ELŐADÁS. Adatbázis alapú alkalmazások készítése PHP-ben

INFORMATIKA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ

5. téma XML DB. Az adatkezelés és XML kapcsolata. Miért fontos az XML használata az adatbázis kezelésben?

SQL DDL-1: táblák és megszorítások

Adatbázis rendszerek. Molnár Bence. Szerkesztette: Koppányi Zoltán

Tájékoztató. Használható segédeszköz: -

Adatbázis I. 11. előadás. Kulcsok az SQL ben. Hivatkozásépségi megszorítások és idegen kulcsok.

Adatbázis rendszerek tervezése


Tankönyv példák kidolgozása

3. Előadás. Az SQL adatbázisnyelv (Tartalom) Az SQL története. Az SQL felépítése. Adattípúsok. SQL utasítások

OO PDO. Tehát PDO használatával, könnyen átállhatunk egy másik adatbáziskezelőre, anélkül hogy a kódot teljes egészében újraírnánk.

Dolgozó Kód Név Város Beosztás Belépés Fizetés Osztály. Adatbázis-kezelés alapjai SQL 2: DQL. v: B IT MAN 169/1

4. Előadás Az SQL adatbázisnyelv

Átírás:

Adatbázis létrehozása Adatleíró műveletek CREATE DATABASE "tan1" WITH ENCODING= LATIN2 ; vagy parancssorból a terminál alatt $ createdb tan1 E=latin2 Kapcsolódás az adatbázishoz $ psql tan1 Adattábla létrehozása CREATE TABLE "Próba" ("AZO" int4 not null, "Név" text, "Lakhely" text, "UtcaHSZ" text, "SzülDátum" date); Hozzunk létre egy Alkalmazottak táblát AZO szám, Részleg szöveg, Munkakör szöveg és BelépésDátuma dátum típussal. CREATE TABLE Alkalmazottak ("AZO" int4, "Részleg" text, "Munkakör" text "BelépésDátuma" date); Hozzuk létre a Juttatás táblát AZO, Jogcím, Összeg adatok tárolására. CREATE TABLE "Juttatások" ("AZO" int4, "Jogcím" text, "Összeg" int4, "Dátum" date); Adattábla módosítása Elsődleges kulcs hozzáadása ALTER TABLE "Próba" ADD PRIMARY KEY ("AZO"); Új mező hozzáadása ALTER TABLE "Próba" ADD COLUMN "Neme" BOOLEAN; Mező alapértelmezett értékének megadása ALTER TABLE "Próba" ALTER COLUMN "Neme" SET DEFAULT TRUE; Mező nevének módosítása ALTER TABLE "Próba" RENAME COLUMN "Neme" TO "Férfi"; Adattábla átnevezése ALTER TABLE "Próba" RENAME TO "Dolgozók"; Adattábla törlése Megj.: DROP TABLE "Dolgozók"; Adatok beszúrása INSERT INTO "Dolgozók" ("AZO","Név","Lakhely","UtcaHsz","SzülDátum") VALUES ( 1, Kis Béla, Budapest, Nagy u. 12, 1950-01-12 ); Vigyünk fel további 5 nevet

Adatok beolvasása állományból \COPY "Dolgozók" FROM /tmp/dolgozok.txt USING DELIMITERS # Alkalmazottak tábla módosításai: AZO mező legyen az elsődleges kulcs, Munkakör mező alapértelmezett értéke legyen Próbaidős Szúrjunk be további rekordokat Majd másoljunk be további rekordokat /tmp/alkalmazottak.txt Juttatások tábla módosításai: Dátum mező alapértelmezett értéke legyen az aktuális dátum: now() Szúrjunk be további rekordokat Majd másoljunk be további rekordokat /tmp/juttatasok.txt Egyszerű lekérdezések 1. Dolgozók nevei és címei Lekérdezések SELECT "Név", "Lakhely", "UtcaHsz" FROM "Dolgozók"; 2. A szegedi dolgozók összes adata SELECT * FROM "Dolgozók" WHERE "Lakhely" = Szeged ; Nők nevei SELECT "Név" FROM "Dolgozók" WHERE "Férfi" = FALSE; 3. A két évnél régebben dolgozók kódjai SELECT "AZO" FROM "Alkalmazottak" WHERE "BelépésDátuma" < 2002-03-03 ; 100ezernél többet keresők kódja SELECT "AZO" FROM "Juttatások" WHERE "Összeg" > 100000; 4. 50.000 és 100.000 Ft közötti juttatások jogcíme és összege SELECT "Jogcím", "Összeg", Ft FROM "Juttatások" WHERE "Összeg" BETWEEN 50000 AND 100000; 5. József nevűek teljes nevei és lakhelyei SELECT "Név", "Lakhely" FROM "Dolgozók" WHERE "Név" LIKE %József% ; 6. A nem B betűvel kezdődő városban lakók nevei és lakhelyei SELECT "Név","Lakhely" FROM "Dolgozó" WHERE "Lakhely" NOT LIKE B% ; Azon dolgozók nevei és címei, akik valamilyen úton laknak SELECT "Név", "UtcaHSZ" FROM "Dolgozók" WHERE "UtcaHSZ" LIKE %út% ;

7. Szegeden lakó nők neve SELECT "Név" FROM "Dolgozók" WHERE "Lakhely" = Szeged AND "Férfi" = FALSE; 8. Tavaly óta belépett vagy szerelők kódja Rendezés SELECT "AZO" FROM "Alkalmazottak" WHERE "BelépésDátuma" >= 2003-01-01 OR "Munkakör" LIKE %szerelő% ; A 200ezernél nagyobb prémiumot kapók kódjai SELECT "AZO" FROM "Juttatások" WHERE "Összeg" > 200000 AND "Jogcím" = Prémium ; 9. Nevek és címek "Lakhely" szerinti sorrendben SELECT "Név", "Lakhely", "UtcaHsz" FROM "Dolgozók" ORDER BY "Lakhely"; 10. Nevek és címek "Lakhely" és "Név" szerinti sorrendben SELECT "Név", "Lakhely", "UtcaHsz" FROM "Dolgozók" ORDER BY "Lakhely","Név"; Juttatások kód és Összeg szerint sorrendben SELECT "AZO", "Összeg" FROM "Juttatások" ORDER BY "AZO", "Összeg"; 11. Juttatások érték szerint csökkenő sorrendben SELECT * FROM "Juttatások" ORDER BY "Összeg" DESC; Az eddig belépett dolgozók kódjai belépési sorrendben. SELECT "AZO" FROM "Dolgozók" ORDER BY "BelépésDátuma"; Jelenítsük meg a Dolgozók neveit lakhely és utca házszám szerint rendezve. SELECT "Név","Lakhely","UtcaHSZ" FROM "Dolgozók" ORDER BY "Lakhely", "UtcaHSZ"; Több táblából lekérdezés 12. Dolgozók neve és munkakör SELECT "Név", "Munkakör" FROM "Dolgozók", "Alkalmazottak" WHERE "Dolgozók.AZO" = "Alkalmazottak.AZO"; 13. XY neve, belépésének dátuma és tavaly kapott juttatásai SELECT "Név", "BelépésDátuma", "Összeg" FROM "Dolgozók", "Alkalmazottak", "Juttatások" WHERE "Dolgozók.AZO" = "Juttatások.AZO" AND "Név" = XY ; 14. Átnevezéssel: nevek és prémiumok SELECT "Név" AS "Teljes név", "Összeg" AS "Prémium" FROM "Dolgozók", "Juttatások" WHERE "Dolgozók.AZO" = "Juttatások.AZO" AND "Jogcím" = Prémium ;

15. Táblaátnevezéssel: Egy címen lakók SELECT "Dolgozók1.Név","Dolgozók2.Név" FROM "Dolgozók" AS "Dolgozók1", "Dolgozók" AS "Dolgozók2" WHERE "Dolgozók1.AZO" <> "Dolgozók2.AZO" AND "Dolgozók1.Lakhely" = "Dolgozók2.Lakhely" AND "Dolgozók1.UtcaHsz" = "Dolgozók2.UtcaHsz"; Tavaly belépettek nevei SELECT "Név" FROM "Dolgozók", "Alkalmazottak" WHERE "BelépésDátuma" BETWEEN 2003-01-01 AND 2003-12-31 ; 100ezernél nagyobb fizetésű tanárok nevei SELECT "Név" FROM "Dolgozók", "Alkalmazottak", "Juttatások" WHERE "Dolgozók.AZO" = "Juttatások.AZO" AND "Munkakör" = "Tanár" AND "Összeg" > 100000 AND "Jogcím" = "Fizetés"; Gyűjtsük ki a szerelők neveit, címeit SELECT "Név","Lakhely","UtcaHsz" FROM "Dolgozók", "Alkalmazottak" WHERE "Munkakör" LIKE %szerelő% ; Gyűjtsük ki a 80 előtt született tanárok neveit SELECT "Név" FROM "Dolgozók", "Alkalmazottak" WHERE "Munkakör" = Tanár AND "SzülDátum" < 1980-01-01 ; Halmazműveletek 16. A szegedi férfiak neve, lakhelye vagy tanárnők neve és lakhelye (SELECT "Név", "Lakhely" FROM "Dolgozók" WHERE "Lakhely" = Szeged AND "Férfi" = TRUE) UNION (SELECT "Név", "Lakcím" FROM "Dolgozók", "Alkalmazottak" WHERE "Munkakör" = Tanár AND "Férfi" = FALSE); 17. A nem szegediek kódjai, kivéve azokat akik 200ezernél többet keresnek (SELECT "AZO" FROM "Dolgozók" WHERE "Lakhely" <> Szeged ) EXCEPT (SELECT "AZO" FROM "Juttatások" WHERE "Összeg" > 200000 AND "Jogcím" = Fizetés ); 18. Azon nők kódjai, akik 100ezernél nagyobb juttatást kapó nők (SELECT "AZO" FROM "Dolgozók" WHERE "Férfi" = FALSE) INTERSECT (SELECT "AZO" FROM "Juttatások" WHERE "Összeg" > 100000); 20 évnél fiatalabb nők és a 20 és 40 közötti férfiak nevét listázzuk ki (UNION) (SELECT "Név" FROM "Dolgozók" WHERE "Férfi" = FALSE AND "SzülDátum" < 1984-01-01 ) UNION (SELECT "Név" FROM "Dolgozók" WHERE "Férfi" = TRUE AND "SzülDátum" BETWEEN 1964-01-01 AND 1984-12-31);

Alkérdések Gyűjtsük ki azokat a 10 évnél régebben dolgozó nőket, akik nem a Munkaügyön dolgoznak (EXCEPT) "Alkalmazottak.BelépésDátuma" < 1994-01-01 AND "Férfi" = FALSE) EXCEPT "Részleg" = Munkaügy ); Kik azok a vezetők, akik legfeljebb 5 éve dolgoznak itt. (INTERSECT) "Részleg" = Vezetőség ) INTERSECT "Alkalmazottak.BelépésDátuma" > 1999-01-01 ); 19. 2000.01.01-n belépett tanár neve és címe SELECT "Név", "Lakhely" FROM "Dolgozók" WHERE "AZO" = (SELECT "AZO" FROM "Alkalmazottak" WHERE "BelépésDátuma" = 2000-01-01 AND "Munkakör" = Tanár ); 20. Szegeden lakó tanárok neve SELECT "Név" FROM "Dolgozók" WHERE "Lakhely" = Szeged AND "AZO" IN (SELECT "AZO" FROM "Alkalmazottak" WHERE "Munkakör" = Tanár ); 21. Legnagyobb fizetésű ember SELECT "Név" FROM "Dolgozók", "Juttatások" WHERE "Juttatások.AZO" = "Dolgozók.AZO" AND "Jogcím" = Fizetés AND "Összeg" >= ALL (SELECT "Összeg" FROM "Juttatások" WHERE "Jogcím" = Fizetés ); Gyűjtse ki alkérdéssel a vezetőségben dolgozó nők nevét SELECT "Név" FROM "Dolgozók" WHERE "Férfi" = FALSE AND "AZO" IN (SELECT "AZO" FROM "Alkalmazottak" WHERE "Részleg" = Vezetőség ); Gyűjtsük ki alkérdéssel a nem a legnagyobb prémiumot kapó szegedieket SELECT "Név" FROM "Dolgozók", "Juttatások" WHERE "Juttatások.AZO" = "Dolgozók.AZO" AND "Lakhely" = Szeged AND "Összeg" < ANY (SELECT "Összeg" FROM "Juttatások"); Ismétlődések szűrése 22. Milyen lakhelyű dolgozóink vannak SELECT DISTINCT "Lakhely" FROM "Dolgozók"; 23. Kik kaptak prémiumot SELECT DISTINCT "Név" FROM "Dolgozók", "Juttatások" WHERE "Dolgozók.AZO" = "Juttatások.AZO" AND "Jogcím" = Prémium ;

Összesítések Milyen városokból léptek be 2003-ban SELECT DISTINCT "Lakhely" FROM "Dolgozók", "Alkalmazottak" WHERE "BelépésDátuma" BETWEEN 2003-01-01 AND 2003-12-31 ; 24. Hány dolgozó él Szegeden SELECT COUNT(*) FROM "Dolgozók" WHERE "Lakhely" = Szeged ; 25. Mennyi prémiumot osztottak ki összesen SELECT SUM("Összeg") FROM "Juttatások" WHERE "Jogcím" = Prémium ; 26. Mennyi az alkalmazottak átlagfizetése SELECT AVG("Összeg") FROM "Juttatások" WHERE "Jogcím" = Fizetés ; 27. Mi volt a legnagyobb fizetés SELECT MAX("Összeg") FROM "Juttatások" WHERE "Jogcím" = Fizetés ; 28. Hányféle helységből jöttek dolgozók SELECT COUNT(DISTINCT "Lakhely") FROM "Dolgozók"; Kérdezze le a legidősebb dolgozó születési dátumát SELECT MIN("SzülDátum") FROM "Dolgozók"; Adja meg a cégnél dolgozó nők számát SELECT COUNT(*) FROM "Dolgozók" WHERE "Férfi" = FALSE; Gyűjtse ki az előző évi összes juttatás összegét SELECT SUM("Összeg") FROM "Juttatások" WHERE "Dátum" BETWEEN 2003-01-01 AND 2003-12-31 ; Csoportosítások 29. Melyik helységből hányan jöttek SELECT "Lakhely",COUNT(*) FROM "Dolgozók" GROUP BY "Lakhely"; 30. Összesen mennyi fizetést osztottak ki az egyes munkaköröknek SELECT "Munkakör",SUM("Összeg") FROM "Juttatások","Alkalmazottak" WHERE "Juttatások.AZO" = "Alkalmazottak.AZO" AND "Jogcím" = Fizetés GROUP BY "Munkakör"; Dolgozók nevei összes eddigi keresetükkel SELECT "Név", SUM("Összeg") FROM "Dolgozók", "Juttatások" WHERE "Dolgozók.AZO" = "Juttatások.AZO" GROUP BY "Név"; Az egyes részlegekben hány alkalmazott van SELECT "Részleg",COUNT(*) FROM "Alkalmazottak" GROUP BY "Részleg";

Összekapcsolás 31. Összes alkalmazott a belépési dátumával együtt SELECT "Név", "BelépésDátuma" FROM "Dolgozók" NATURAL JOIN "Alkalmazottak"; 32. Összes juttatás azzal együtt, hogy ki kapta SELECT "Összeg", "Jogcím", "Név" FROM "Juttatások" LEFT OUTER JOIN "Dolgozók" ON "Juttatások.AZO" = "Dolgozók.AZO"; Összes dolgozó nevét a munkakörével együtt SELECT "Név", "Munkakör" FROM "Dolgozók" NATURAL JOIN "Alkalmazottak"; Rekordok módosítás Adatmódosító műveletek 33. A Kis Piroska nevű dolgozó nevének módosítása UPDATE "Dolgozók" SET "Név" = Kovács Imréné WHERE "Név" = Kis Piroska ; 34. A munkaügy osztály egyesítése a vezetőséggel UPDATE "Alkalmazottak" SET "Részleg" = Vezetőség WHERE "Részleg" = Munkaügy ; A 20 évnél régebben dolgozók fizetéseit emeljük meg 10 %-kal. UPDATE "Jutatatások" SET "Összeg" = "Összeg" * 1.1 WHERE "AZO" IN (SELECT "AZO" FROM "Alkalmazottak" WHERE "BelépésDátuma" < 1984-01-01 ) AND "Jogcím" = Fizetés ; Rekordok törlése 35. A Kovács Imréné nevű dolgozó törlése DELETE FROM "Dolgozók" WHERE "Név" = Kovács Imréné ; 36. Nyugdíjazunk minden 65 évnél idősebb dolgozót DELETE FROM "Dolgozók" WHERE "SzülDátum" < 1939-01-01 ; Töröljük ki minden karbantartó részleghez tartozó az alkalmazottak közül. DELETE FROM "Alkalmazottak" WHERE "Részleg" = Karbantartás ; Töröljünk minden olyan dolgozót, aki tavaly nem kapott juttatást. Az alkalmazottak és a dolgozók közül is (több SQL utasítással). Házi Feladat