Gyakorlati alapok III.

SQL (adatbázis)

 

SQL - karakteres függvények

 

Folytatjuk az előző fejezetekben bemutatott SQL-függvények felhasználását egyre bonyolultabb lekérdezések és/vagy több tábla összevonása formájában. Néhány új SQL-függvény is fel fog merülni, ezek az előfordulásuk előtti bekezdésben kerülnek ismertetésre. Továbbra is kiindulópontunk az auto adatbázis, amely egy teljes, átfogó adatszerkezet egy autókereskedés és szervíz komplex, adatbázisos modellezésére.

 

Az auto adatbázis a következő további komponenesekből áll, ezen komponenseket táblák és a bennük definiált attribútumok (oszlopok) reprezentálják:

www.informatika-programozas.hu - Ezt most meg kell tanulni!

 

Erősen ajánlom, hogy az alábbi, néha rendkívül bonyolult SQL-lekérdezések előtt nagyon alaposan tanulmányozzuk át az auto adatbázis összes tábláját és rekordjait. Az eredményes SQL-lekérdezésekhez meg kell értenünk az autókereskedés összes modellezett munkakörülményét!

 

Függvény-előzmények:

További függvények:

LOWER

Kisbetűket nagybetűkké alakít, a nagybetűket változatlanul hagyja. Például listázzuk kisbetűkkel az alkalmazottak nevét és beosztásukat:

 

SELECT LOWER(alk_nev) AS alkalmazott, LOWER(beosztas) AS beosztasa FROM alkalmazott

 

Végeredmény:

www.informatika-programozas.hu - SQL

 

UPPER

Nagybetűket kisbetűkké alakít, a kisbetűket változatlanul hagyja.

 

LENGTH

A Javához hasonlóan ez a függvény visszaadja a paraméterben megadott String hosszát. Például listázzuk ki, hogy az autócsoportnevek hány karakterből állnak:

 

SELECT auto_csop_nev, LENGTH(auto_csop_nev) AS Hossz FROM auto_csop

 

Végeredmény:

www.informatika-programozas.hu - SQL

 

SUBSTR

A Javához hasonlóan ez a függvény a paraméterben megadott hosszban kivág egy alsztringet a megadott sztringből. Például listázzuk ki, hogy az alkalmazottak neveinek első 3 karakterét:

 

SELECT alk_nev, SUBSTR(alk_nev, 1, 3) AS KivagottString FROM alkalmazott

 

Végeredmény:

www.informatika-programozas.hu - SQL

 

RPAD

Ez a függvény a megadott rekord mellett jobbra a megadott karakterrel, a megadott hosszban tölti ki az eredeti sztringet (right padding). Például listázzuk az autótípusokat, de úgy, hogy 20 karakter hosszban a maradék helyet * karakterrel töltjük fel:

 

SELECT RPAD(tipus_nev,20,'*') AS tipus_nev_Feltoltve FROM tipusok

 

Végeredmény:

www.informatika-programozas.hu - SQL

 

LPAD

Ez a függvény a megadott rekord mellett balra a megadott karakterrel, a megadott hosszban tölti ki az eredeti sztringet (left padding). Például listázzuk az autótípusokat, de úgy, hogy 20 karakter hosszban a maradék helyet * karakterrel töltjük fel:

 

SELECT LPAD(tipus_nev,20,'*') AS tipus_nev_Feltoltve FROM tipusok

 

Végeredmény:

www.informatika-programozas.hu - SQL

 

RTRIM

Ez a függvény a megadott sztring mellett jobbra lévő szóköz-karaktereket vágja le (left trim):

 

SELECT LTRIM('Sok szokoz (volt) a jobb oldalon.        ')

 

Végeredmény:

Sok szokoz (volt) a jobb oldalon.

 

(Ha a fejezetből másoljuk be az SQL-utasítást, akkor a phpMyAdmin nem mindig szereti az onnan másolt szóköz-karaktereket és pirossal aláhúzott hibákat fog jelezni. Ez esetben töröljük a szóköz-karaktereket és közvetlenül billentyűzetből javítsuk ki.)

 

 

LTRIM

Ez a függvény a megadott sztring mellett balra lévő szóköz-karaktereket vágja le (left trim):

 

SELECT LTRIM('          Sok szokoz (volt) a bal oldalon.')

 

Végeredmény:

Sok szokoz (volt) a bal oldalon.

 

(Ha a fejezetből másoljuk be az SQL-utasítást, akkor a phpMyAdmin nem mindig szereti az onnan másolt szóköz-karaktereket és pirossal aláhúzott hibákat fog jelezni. Ez esetben töröljük a szóköz-karaktereket és közvetlenül billentyűzetből javítsuk ki.)

 

Feladatok

 

1 - Irassa ki az alkalmazottak nevét (alkalmazott nevű eredményoszlopba) és beosztásukat (beosztasa nevű eredményoszlopba) csupa kis betűvel!

2 - Irassa ki az AUTOK táblájának minden sorából a típusneveket és a rendszámokat úgy, hogy a típusneveket kisbetűssé konvertálja!

3 - Készítsen listát az összes készpénzzel fizető ügyfélről! Az ügyfél nevét, számát és a fizetési módját a következő szöveg után írja ki: 'ÜGYFÉL:'!

4 - Irassa ki az ügyfelek számát és nevét kisbetűvel, valamint megbízottját! Ha megbízott nincs kitöltve, helyén 10 db * szerepeljen!

5 - Alkalmazza a nagybetűssé átalakító függvényt a minden karakter nagybetuvel karaktersorozatra!

6 - Irassa ki az alkalmazottak beosztását kisbetűvel és azt, hogy az alkalmazott neve hány karakterből áll!

7 - Irassa ki a beosztásokat és a beosztások 4-6. karakterét kisbetűssé alakítva!

8 - Irassa ki az autók típusnevét jobbról a * karakterekkel 20 karakter hosszúra kiegészítve!

9 - Irassa ki az autók típusnevét balról a '-' karakterekkel 20 karakter hosszúra kiegészítve!

10 - Balról vágja le a felesleges szóköz-karaktereket a '   KAKAS' karaktersorozatról!

11 - Irassa ki az alkalmazottak beosztását jobbról a * karakterekkel 25 karakter hosszúra kiegészítve!

12 - Irassa ki az alkalmazottak beosztását balról a '-' karakterekkel 25 karakter hosszúra kiegészítve!