1 / 30

SQL történelem

SQL történelem. 1970 Edgar F. Codd (IBM) cikke 12 szabály a relációs adatmodellekre 1979 első kereskedelmi forgalmazású relációs adatbáziskezelő 1986 az ANSI elfogadta az első SQL szabvány t Mára minden jelentősebb relácós-adatbázis kezelő SQL alapú (Oracle,IBM DB2…). Az SQL nyelv.

mariam-luna
Télécharger la présentation

SQL történelem

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SQL történelem • 1970 Edgar F. Codd (IBM) cikke 12 szabály a relációs adatmodellekre • 1979 első kereskedelmi forgalmazású relációs adatbáziskezelő • 1986 az ANSI elfogadta az első SQL szabványt • Mára minden jelentősebb relácós-adatbázis kezelő SQL alapú (Oracle,IBM DB2…)

  2. Az SQL nyelv • SQL= Structured Query Language • (nem a fizikai tárolás, az algoritmus a fontos, hanem a feldolgozás eredményének meghatározásán van a hangsúly) • A nyelvi elemeket szokásos adatdefiníciós(Data Definition Language, DDL) és adatkezelési (Data Manipulation Language, DML) részekre bontani. • A nyelvben az utasításokat a pontosvessző választja el egymástól.

  3. Adatdefiníciós utasítások (pl.) • CREATE • Adatbázis objektum létrehozása. • CREATE TABLE Szamla (Szamlaszam NUMERIC(24),Tulajdonos VARCHAR(60),Nyitas DATE,Allapot VARCHAR(1), PRIMARY KEY (Szamlaszam)); • ...

  4. Adatkezelő utasítások • SELECT • Az utasítás az adatok egy halmazát válogatja ki egy táblázatba a relációs adatbázisból (az ACCESS választó lekérdezése) • Záradékai (majdnem mind opcionális): • FROM, WHERE, GROUP BY, HAVING, ORDER BY

  5. SELECT • A SELECT mögött az eredményhalmaz oszlopait kell itt felsorolni. • Nagyon hasznos, hogy további SELECT-ek is lehetnek benne! • SELECT Vevő.NÉV • SELECT Vevő.* • SELECT Vevő.NÉV, Vevő.LAKCÍM • SELECT Csalad.GYERMEK, [meddig]-[mettől] AS hossz

  6. FROM • Meghatározza, hogy mely adatbázis-táblákból szeretnénk összegyűjteni az adatokat. • SELECT * • FROM Vevő • SELECT Vevő. NÉV • FROM Vevő • Több táblánál minden sort minden sorral párosít • SELECT * (Ez így persze nem jó semmire, Descartes szorzat) • FROM Beteg, Kezeles

  7. WHERE • Szűrési feltételeket fogalmaz meg, amelyek szűkítik az eredményhalmazt (a Descartes-szorzathoz képest) • SELECT Csalad.SZÜLŐ • FROM Csalad • WHERE (((Csalad.SZÜLŐ)="ENDRE")); • SELECT *FROM Beteg, KezelesWHERE Beteg.ID = Kezeles.BetegID • Feltételben AND, OR, BETWEEN…

  8. GROUP BY • Egyes sorok összevonását, csoportosítását írja elő az eredménytáblában • SELECT SZÜLŐ, Count(SZÜLŐ) AS Gyermekszám • FROM Csalad • GROUP BY Csalad.SZÜLŐ;

  9. GROUP BY 2 • SELECT SZÜLŐ, Count(*) • FROM Csalad • GROUP BY Csalad.SZÜLŐ; SQL-es megoldás

  10. GROUP BY 3 • Feltétel is megadható • SELECT COUNT(*), Tulajdonos • FROM Szamla • WHERE Allapot = 'N‘ • GROUP BY Tulajdonos • A fenti példa a Tulajdonos oszlop alapján csoportosítja a sorokat. A csoportosítás előtt kivehetjük a feltételnek nem megfelelő rekordokat.

  11. HAVING (group by megelőzi) • A WHERE-hez hasonlóan itt is szűrést fogalmaz-hatunk meg, azonban itt a csoportosítás utáni eredményhalmazra. • SELECT COUNT(*), Tulajdonos • FROM Szamla • WHERE Allapot = 'N‘ • GROUP BY Tulajdonos • HAVING COUNT(*) > 1 • Az előző példához képest itt annyi a módosulás, hogy csak azok a csoportok jelennek meg, amelyek egynél több sorból lettek összevonva.

  12. ORDER BY • Az eredményhalmaz rendezését adja meg. • SELECT Csalad.SZÜLŐ • FROM Csalad • ORDER BY Csalad.SZÜLŐ; • Vagy csökkenőben rendezve • SELECT Csalad.SZÜLŐ • FROM Csalad • ORDER BY Csalad.SZÜLŐ DESC;

  13. További adatkezelő utasítások • INSERT • Adatokat ad hozzá egy táblához. • INSERT INTO Szamla(Szamlaszam,Tulajdonos,Nyitas, Allapot) VALUES (123456, 'H. Kovács Géza', '1996.05.14.', 'N'); • UPDATE • Módosítást hajt végre az adatokon. • UPDATE Szamla SET Allapot = 'D' WHERE Szamlaszam = 123456; • DELETE • Adatokat töröl egy táblából. • DELETE FROM Beteg WHERE TAJ = '123 456 789';

  14. Feladatok az alkalmazáshoz

  15. A problémakör

  16. Mi legyen ebből? • A kiválasztott adatok: • Név, cím, adószám, rendelés dátuma, rendelésszám, termékkód, terméknév, mennyiség, bruttó egységár, vállalt határidő • Elnevezések: • Név, cím, adószám, rend_dátum, rend_szám, kód, név, darab, dátum

  17. Az adatok csoportosítása Egy bizonylaton csak egyszer fordulhat elő Egy bizonylaton többször is előfordulhat Most így állunk: RENDELÉSFEJ{rend_szám, név, cím, adószám, rend_dátum} RENDELÉS{rend_szám,kód, név, darab, ár, dátum}

  18. További alakítások • Vegyük ki a megrendelőre vonatkozó adatokat és helyettesítsük egyetlen kóddal (partner_kód) • Hasonlóan vegyük ki a termékre jellemző adatokat és csak a kód-ot hagyjuk meg (kód) • Tudni szeretnénk, hogy elkészült-e már a termék, ezért a RENDELÉS táblában legyen egy új mező • Így tehát: • PARTNER{partner_kód, név, cím, adószám} • RENDELÉSFEJ{rend_szám, partner_kód, rend_dátum} • RENDELÉS{rend_szám,kód, darab, dátum, kész} • TERMÉK{kód, név, ár}

  19. További alakítások 2 • A PARTNER táblát a további példáinkban nem használjuk (a rendelésre koncentrálunk) • Egy termék többféle anyagból készül. Tárolni szeretnénk a termékek milyen anyagokból épülnek fel (ez egy N:M kapcsolt lenne) • Ezért egy új, szerkezet nevű táblát hozunkÍgy:TERMÉK : SZERKEZET 1:NSZERKEZET : ANYAG N:1

  20. TERMÉK : SZERKEZET : ANYAG

  21. Nézzük az adatbázist! • Az adatbázis szerkezete tehát:

  22. A kapcsolatok(kulcsok és külső kulcsok, kettős kulcs)

  23. Az adatok tárolása

  24. A feladatok (SQL)1 • Írassuk ki azoknak az anyagoknak az azonosítóját, amelyek 2-vel kezdődnek! • Készítsünk listát a ‘cm’-ben és a ‘m’-ben mért anyagok azonosítójáról! • Keressük azokat a 2000. január 1.-re és 2.-ra vállalt rendeléseket, amelyekben ‘A’ betűvel kezdődő kódú terméket rendeltek meg. Írassuk ki a feltételnek megfelelő rendelések minden adatát a rendelés táblából!

  25. A feladatok (SQL)2 • Azon termékek kódját, darabszámát és megrendelésszámát keressük, amelyeket a mai naptól számítva 1 héten belül kell elkészíteni és még nincs kész! • Egyszerű lekérdezések 1 táblából • Véletlen szám (FROM nélküli SELECT) • A mértékegységek listája • Tábla sorainak száma • Hány anyag neve kezdődik az egyes betükkel?

  26. A feladatok (SQL)3 • Csak azokat a betűket írassuk ki, amelyikkel legalább 2 anyag neve kezdődik! • Számoljuk össze, hogy az anyagok közül melyikből áll rendelkezésre 15-nél több, 15, vagy kevesebb! • Paraméteres lekérdezésKeressük meg, hogy egy a lekérdezés idején definiált karaktersorozattal kezdődő nevű termék van-e az adatbázisban?

  27. A feladatok (SQL)4 • Táblák összekapcsolása Határozzuk meg, hogy az egyes termékek mely anyagokból épülnek fel! (direktszorzat) • Egymásba ágyazott SELECT Keressük meg azokat a termékeket, amelyekhez kell a 113-as kódú anyag!

  28. SELECT Rnd() AS véletlen; • SELECT mért_egys • FROM anyag; • SELECT DISTINCT mért_egys • FROM anyag; • SELECT mért_egys • FROM anyag • GROUP BY mért_egys;

  29. SELECT COUNT(DISTINCT mért_egys) • FROM anyag; • SELECT Left(neve, 1) AS első • FROM anyag • GROUP BY Left(neve,1) • HAVING COUNT(*)>=2;

More Related