Tanítás, webfejlesztés, programozás, informatika, rock zene

Adatok értékeinek lekérdezése több táblából

Amikor az adatokat több táblából kell összeszedni, akkor gondolni kell arra az esetre, hogy különböző táblákban lehetnek ugyanolyan nevű mezők, ezért ilyen esetekben az oszlopok megkülönböztetésére használjuk a táblanevet előtagként.

Általában egy lekérdezésben nem minden rekord adataira vagyunk kíváncsiak. Nem is célszerű minden rekord adatát lekérdezni a kliens oldalon, mivel az eredmény rekordszetet átadja a szerver a kliensnek és ez esetenként rengeteg adat utaztatását jelentené, ami leterheli a hálózatot és a szervert. Az eredményhalmaz szűkítéséhez tudjuk használni a WHERE feltételt

WHERE

A szelekció művelet megvalósítása esetén a SELECT utasítást egy feltétellel egészítjük ki:

A lekérdező nyelv egyetlen utasításból áll, mely számos alparancsot tartalmazhat, és a lekérdező utasítások több-szörös mélységben egymásba ágyazhatók. A SELECT utasítás általános alakjának megadása helyett részletesen áttekintjük az egyes tipikus lekérdezési utasításokat, az egyszerűektől a komplikáltakig.  
Először tekintsük át az egy táblára vonatkozó lekérdezéseket. A projekció műveletét a következő utasítással valósíthatjuk meg:

A nézettáblázat az adatbázisban létező táblán vagy táblákon végrehajtott művelet eredményét tartalmazó olyan új táblázat, amely mögött a valóságban nem áll megfelelő táblázat. Akkor használunk nézettáblákat, hogyha az eredeti tábláknak egy lekérdezésben nem minden mezőjét szeretnénk használni egy összetett lekérdezésben és erre a lekérdezésre gyakran szükségünk van.A nézettáblával nem tudunk új rekordokat felvinni, vagy meglévőket módosítani

VIEW létrehozása

Nézettáblát a;

INSERT - Új sorok beszúrása

Az SQL adatmanipulációs része biztosítja a táblák feltöltését, az mezők módosítását és a sorok törlését. A táblak feltöltésére az INSERT SQL parancs szolgál, melynek általános alakja a következő:

INSERT INTO táblanév [(mezőnév_1, mezőnév_2,  ...)]
VALUES (érték, érték, ...);

Aaz alábbi szabályokra figyelni kell

INDEXEK az adatbázisokban

Már a korábbi programozási tanulmányaitokban is megismerhettétek, hogy a nagy adathalmazokban való keresésnek a hatékonysága a keresési módszerektől függően változik, gyakran egész drasztikusan.

Lineáris keresés - Ha egy rendezetlen tömbben keresünk, akkor egy N elemű tömbben a programoknak átlagosan N / 2 összehasonlítást kell végezni, hogy a keresett értéket megtalálják. 1 millió adat esetén ez 500 000 összehasonlítás.

Táblák módosítása

A tábla újabb mezővel való bővítésére az alábbi parancs szolgál:

ALTER TABLE tábla_név    
ADD mező_név adattípus [(szélesség)];

Az új mező a tábla utolsó oszlopa lesz. Ebben az esetben a NOT NULL módosító nem adható meg.
Az mező értéke a már meglevő sorokban NULL (definiálatlan) lesz. Az SQL nyelv megkülönbözteti a nulla numerikus értéket és a NULL, még nem definiált értéket. Például a diákok adatai közé a születési évet felvehetjük a következő paranccsal:

A relációk létrehozására a CREATE TABLE SQL utasítás szolgál, melynek általános alakja a következő:

CREATE TABLE tábla_név    
  (mező_név adattípus [(szélesség)] [NOT NULL]. 
  (mező_név adattípus [(szélesség)] [NOT NULL]. 
... );

A szélesség megadása el is maradhat. A táblák és általában a nevek megadására a következő szabályok érvényesek:

A különböző SQL nyszerverekben általában ugyanazokat az adat típusokat használhatjuk, de az elnevezésekben és az adattípusok méreteiben vannak különbségek. Jelen esetben a MYSQL adattípusait vesszük át. az alábbiakban jelölöm a leggyakrabban használt típusokat

Numerikus típusok

Oszlop típus

Tárolási hossz

Leírás

Feladat: Autókölcsönző tervezése

Olyan adatbázist tervezzünk, amely egy autókölcsönzőt ki tud szolgálni. Az autókölcsönzőben korlátos számú autó van. Az autókkal események történhetnek: beállítják az autót, kölcsönzik, visszahozzák, leselejtezik. Természetesen ezen kívül még lehet bármennyi egyéb esemény is.

Modellezés

Autókölcsönző feladat szükséges halmazai: