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.

Slides:



Advertisements
Hasonló előadás
Az Oracle SQL 1. Az első lépések.
Advertisements

10. gyakorlat SQL SELECT.
Tananyag: konzultáció
2012. tavaszi félév Véső Tamás. A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát képezik. Ismeretük szükséges,
Lekérdezések SQL-ben Relációs algebra A SELECT utasítás
Adatbázis gyakorlat 1. Szerző: Varga Zsuzsanna ELTE-IK (2004) Budapest
© Kozsik Tamás Adatbáziskezelés •Relációs adatbáziskezelők •Noha a Java objektum-elvű, egyelőre nem az objektum-elvű adatbáziskezelőket támogatja.
Adatbázis rendszerek I
Anyagadatbank c. tárgy gyakorlat
Adatbázisok SQL. TARTALOM Szijártó M.2 Témakörök  Az SQL tulajdonságai  A műveletek fajtái  Objektum-műveletek  Lekérdezések Tulajdonságok és műveletek.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Adatbázisok gyakorlat 8. gyakorlat SQL alapok.
Elmaradás.  0 Számjegy. Ebben a pozícióban egyetlen számjegyet kell megadnia.  9 Számjegy. Ebben a pozícióban egyetlen számjegyet lehet megadni, nem.
Microsoft Access Lekérdezések.
Delphi programozás alapjai
Adatbázis kezelés. Hierarchikus modell Legrégebbi modell, ma már nem használatos. Az adatokat fákban tároljuk, ahol minden pont a szegmens adatokat, és.
5. GYAKORLAT SQL CREATE TABLE, aktualizálás. S QL Structured Query Language A relációs adatbáziskezelés szabványos nyelve Nem algoritmikus, de beépíthető.
– SQL 2: Adatok kezelése – Tarcsi Ádám, január 30. Adatbázis gyakorlat.
Adatbázis gyakorlat – SUBSELECT – Tarcsi Ádám március.
– Adattáblák & adatok kezelése – Tarcsi Ádám január Adatbázis gyakorlat.
Adatbázisok / SQL v 2.1 Viczián Gergely (eredeti: Török János 2004)
SQL – DQL (Data Query Language ) adat lekérdezések
INSERT INTO Egy vagy több rekordot ad hozzá a táblához. Egyetlen rekordot hozzáfűző kifejezés: INSERT INTO cél_tábla (mező1,mező2,…) VALUES (érték1, érték2,
SQL Táblák összekapcsolása lekérdezéskor Aliasok Allekérdezések
Adatbázis rendszerek II.
Adatbázisok-SQL Dr. Viczián Gergely (Dr. Török János V2.0)
Adatbázis-kezelés.
Adatbázis-kezelés ACCESS program:
Delphi programozás alapjai Nagyváradi Anett PTE PMMK MIT.
Adattáblák létrehozása, módosítása, tranzakciók, megszorítások Rózsa Győző.
Adatbázis kezelés SQL. Történeti áttekintés 1976IBM:SEQUEL,SQL 1976IBM:SEQUEL,SQL 1983ORACLE 1983ORACLE 1984INFORMIX 1984INFORMIX 1986SQL – szabvány :
SQL, Relációs adatmodell
1 Informatikai Szakképzési Portál Adatbázis kezelés DML – Adat manipuláló nyelv.
- adatbázisséma definiálása (DDL) Data Definition Languages, - adatok aktualizálása (DML),Data Maniputaion Language - lekérdezési lehetőségek (DML) Data.
SQL. SQL = Structured Query Language (= struktúrált lekérdező nyelv). A relációs adatbázis-kezelés szabványos nyelve. Nem algoritmikus nyelv, de algoritmikus.
SQL.
Az SQL nyelv alapjai.
Adatbázis adminisztrátori ismeretek
Adattáblák létrehozása, módosítása, tranzakciók, megszorítások Rózsa Győző.
A diasor ismerete nem helyettesíti a tankönyvet, és a példatárat. A diasor ismerete szükséges, de nem elégséges feltétele a minimum elégséges érdemjegynek!
Adatbázis-kezelés SQL-lel. SQL SQL = Structured Query Language – Strukturált Lekérdezőnyelv Relációs adatbázis-kezelők lekérdezési nyelve. Alapjait az.
Adatbázis-kezelés SQL-lel
SQL DDL DATA DEFINITION LANGUAGE. Táblák létrehozása CREATE TABLE táblanév ( oszlopnév1 típus(méret) /DEFAULT érték/ /NOT NULL/, oszlopnév2 típus(méret)
Készítette: Tóth Ervin
Az SQL nyelv. SQL Az SQL utasításait két fő csoportba szokták sorolni: DDL (= Data Definition Language): adatstuktúra definiáló utasítások. DML (= Data.
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.
SQL-Structured Query Language. Parancs(utasítás) csoportok CREATE - táblák létrehozása ALTER – táblák módosítása DROP – táblák törlése DDL –Data Definition.
SQL.
1 Sramó András Adatbázis-technológia V. előadás Adatbázis-technológia 5. előadás Az SQL.
– SQL 3: SELECT - 1. – Tarcsi Ádám, január 31. Adatbázis gyakorlat.
– SELECT - 2. – Tarcsi Ádám március Adatbázis gyakorlat.
Tarcsi Ádám, Adatbázis gyakorlat – Adattáblák – Tarcsi Ádám, január.
– SELECT - 2. – Tarcsi Ádám március Adatbázis gyakorlat.
SQL SELECT parancsok Kottyán László. A bemutató mintatáblái.
Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai
Adatbázisok gyakorlat
Ma az un. Relációs adatmodelleket használjuk.
5. gyakorlat Fleiner Rita.
Többtáblás lekérdezések, hierarchikus lekérdezések, allekérdezések
Webprogramozó tanfolyam
SQL. SQL jellemzői Nem algoritmikus (nem tartalmaz algoritmikus szerkezeteket: ciklus, eljárás, elágazás) Nem rekurzív (önmagát nem hívhatja) Halmazorientált.
Adatbázis rendszerek I
Adatbázis-kezelés 3-4. Adatok lekérdezése utasítás általános formája SELECT [ALL/DISTINCT] {*/, …, } FROM [ ], …, [ ] [WHERE GROUP BY, …, HAVING ORDER.
Adatbázis-kezelés. Középszint: –1-2 tábla –SQL-nyelv és lekérdező-rács használata –Űrlap és jelentés készítés Emelt szint: –több tábla (kapcsolatok) –több.
– SELECT - 1. – Tarcsi Ádám január Adatbázis gyakorlat.
Adatbázis-kezelés 1-2. adatbázis-kezelő rendszer 1.új adatbázisokat hozhassanak (adat definició 2.lekérdezések és módosítások (adat manipuláció) 3.Támogassa.
Bevezetés Adatbázisok használata. Mi is az adatbázis? Az adatbázisok ma már az élet számos területén alapvető fontossággal bírnak (Google, Amazon, Flickr,
SQL aggregálás, csoportosítás és összekapcsolás Adatbázisok 1.
Adatbázis rendszerek II.
Adatbázisok SQL.
Logisztikai projekt - gyakorlat Adatbázis-elmélet
Előadás másolata:

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…)

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.

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) );...

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

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

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

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, Kezeles WHERE Beteg.ID = Kezeles.BetegID Feltételben AND, OR, BETWEEN…

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Ő;

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

GROUP BY3 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.

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.

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;

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', ' ', 'N'); UPDATE Módosítást hajt végre az adatokon. UPDATE Szamla SET Allapot = 'D' WHERE Szamlaszam = ; DELETE Adatokat töröl egy táblából. DELETE FROM Beteg WHERE TAJ = ' ';

Feladatok az alkalmazáshoz

A problémakör

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

Az adatok csoportosítása Egy bizonylaton csak egyszer fordulhat elő Rendelés rend_számkódnévdarabárdátum Egy bizonylaton többször is előfordulhat Rendelésfej névcímadószámrend_dátumrend_szám 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}

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}

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 : SZERKEZET1:N SZERKEZET : ANYAGN:1

TERMÉK : SZERKEZET : ANYAG

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

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

Az adatok tárolása mezőnévtípus, szabály árHosszú egész, 2 tizedesjegy azonosító3 jegyű egész dátumDátum egys_árPénznem készletHosszú egész, 2 tizedesjegy kód2 nagybetű+1 szám, LL0 mennyiségHosszú egész, 2 tizedesjegy mért_egys3 karakteres szöveg név30 karakteres (indexelt, nem lehet azonos) partner_kód3 karakteres szám, 000 rend_dátumDátum rend_szám1nagybetű+1 kisbetű+’-’+4 számjegy

A feladatok (SQL)1 1.Írassuk ki azoknak az anyagoknak az azonosítóját, amelyek 2-vel kezdődnek! 2.Készítsünk listát a ‘cm’-ben és a ‘m’-ben mért anyagok azonosítójáról! 3.Keressük azokat a 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!

A feladatok (SQL)2 4.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! 5.Egyszerű lekérdezések 1 táblából a.Véletlen szám (FROM nélküli SELECT) b.A mértékegységek listája c.Tábla sorainak száma d.Hány anyag neve kezdődik az egyes betükkel?

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

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

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;

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