SQL parancsok

12. osztály 12.évf_sql SQL

Amire szükség lesz: Xampp. Ez egy webszerver MySql támogatással. Letölthető az oktatas.hu oldalról az érettségin is használt verziója.

A Xampp control panelen az Apache-ot és a MySql-t kell elindítani. Az Apache egy webszerver, a MySql pedig az adatbázis szerver. Ha elindultak, utána a böngészőbe írd be: //localhost, vagy //127.0.0.1

Az SQL gyakorlásához a telepített MySql-t fogjuk használni a phpMyAdmin felületen keresztül. Bal oldalt látjuk az adatbázisokat, jobb oldalt pl. a tábla rekordjait, vagy SQL parancsokat tudunk kiadni. Szakmai érettségin a kiadott sql parancsokat kell elmenteni egy szöveges fájlba. Az érettségi feladatok az adatbázis létrehozásával szokott kezdődni.

Az adatbázis alapértelmezett karakterkódolása UTF-8 lesz, a rendezési sorrendje a magyar szabályok szerinti lesz.

Fontosabb SQL parancsok

  • SELECT – adatok lekérdezése az adatbázisból
  • UPDATE – adatok frissítése
  • DELETE – adatok törlése
  • INSERT INTO – új adatok bevitele az adatbázisba
  • CREATE DATABASE – új adatbázis létrehozása
  • CREATE TABLE – új tábla létrehozása
  • ALTER DATABASE – adatbázis módosítása
  • ALTER TABLE – tábla módosítása
  • DROP DATABASE – adatbázis törlése
  • DROP TABLE – tábla törlése
  • CREATE INDEX – index létrehozása
  • DROP INDEX – index törlése

Lekérdezések szintaxisa tömören

Legtöbbször a választó lekérdezést fogjuk használni, amikor valameilyen feltétel alapján szűrünk, sorba rendezünk rekodrokat.

SELECT mezőnevek FROM táblanév WHERE feltétel(ek)

Ha egy tábla minen rekordját szeretnénk kiíratni használhatju a *-ot
SELECT * FROM tábla

Rendezés: ORDER BY DESC (csökkenő )vagy ORDER BY ASC (növekvő sorrend)

Mennyi adatot írjunk ki: LIMIT 1,1 Az első paraméter a kezdőérték (mettől) 0-tól kezdődik, a második paraméter a mennyit írjon ki.

Csoportosítás után a feltételeket a having után adjuk meg!

Álnevek használata: SELECT mezőnév AS álnév FROM táblanév WHERE feltételek

Számított mezők: mezőnevekkel műveleteket is végezhetünk, pl. összeadhatjuk, kivonhatjuk őket egymásból. Lent pl. a népsűrűség kiszámításánál láthatsz ilyet.

Ismétlődő adatok kizárása: DISTINCT
SELECT DISTINCT mezőnevek FROM tábla …

WHERE után a feltételek megadása: használhatjuk a relációs jeleket, a LIKE, NOT LIKE parancsot, több feltétel összekapcsolásához az AND és OR operátorokat, a BETWEEN-t

Helyettesítő karakterek (ha nem tudjuk pontosan mit keresünk)

  • * vagy % Nulla vagy több karaktert helyettesít. pl: fovaros LIKE „B*” az összes B-vel kezdődő fővárost kiírja
  • ? egy karaktert helyettesít
  • [] A zárójelbe írt karaktereket helyettesíti be pl: Eg[a,é]r meg fogja találni az Egér, Egar szavakat
  • ! tagadás pl: valtopenz != 100
  • – intervallum megadása pl: a-c
  • # numerikus karakter helyettesítése

Tábla létrehozása

CREATE TABLE táblanév (mezők neve, típusa, feltételek)

Adatok beszúrása táblába

Az érettségi feladatoknál kapunk egy sql fájlt, amit vagy importálunk, vagy beillesztünk, így nem nekünk kell létrehozni a táblákat, és egyesével az adatokat felvinni. Ettől függetlenül szokott lenni ilyen feladat.

INSERT INTO tábla VALUES (konkrét értékek felsorolása) Nézzünk egy példát:

Módosító lekérdezések: frissítő, törlő, hozzáfűző, tábla készítő

Frissítő lekérdezés

UPDATE tábla SET mezőnév = érték WHERE feltétel

Törlő lekérdezés

DELETE FROM táblanév WHERE feltétel

Függvények:

GROUP BY – csoportosítás

COUNT – megadja a tábla sorainak számát. (megszámlálás)

SUM – megadja a paraméterében szereplő oszlop adatainak az összegét az összes sorra. Csak numerikus attribútumra alkalmazható.

AVG – megadja a paraméterében szereplő oszlop adatainak az átlagát az összes sorra. Csak numerikus attribútumra alkalmazható.

MIN – megadja a paraméterében szereplő oszlop adatainak a minimumát az összes sorra. Csak numerikus attribútumra alkalmazható.

MAX – megadja a paraméterében szereplő oszlop adatainak a maximumát az összes sorra. Csak numerikus attribútumra alkalmazható.

Példák: Forrás adatbázis

Mennyi a váltószáma az aprópénznek azokban az országokban, ahol nem 100? Ez egy viszonylag egyszerű lekérdezés, 1db feltétellel: valtopenz != 100

Hány ország területe kisebb Magyarországénál? A count(*) segítségével megszámoljuk hány rekord felel meg a feltételnek. A feltételnél egy második lekérdezéssel tudjuk meghatározni MO. területét! Feltétel orszag=’Magyarország’ vagy orszag LIKE ‘Magyarország’

Melyik a legnagyobb területű ország, és mennyi a területe? Hasonlóan az előzőhöz, itt is egy második lekérdezést használva határozzuk meg a legnagyobb ország területét. Lehetne sorba rendezéssel és limit-tel is!

Melyik a legkisebb területű ország, és mennyi a területe?

Melyik a legnépesebb ország, és hány lakosa van?

Melyik a legkisebb népességű ország, és hány lakosa van?

Melyik a legritkábban lakott ország, és mennyi a népsűrűsége? Ennél a feladatnál látunk egy számított mezőt, a nepsuruseget.

Melyik a legnagyobb afrikai ország és mekkora?

Melyik a legkisebb amerikai ország és hányan lakják?

Melyik az első három legsűrűbben lakott „országméretű” ország (tehát nem város- vagy törpeállam)?

Melyik a világ hat legnépesebb fővárosa?

Melyik 10 ország GDP-je a legnagyobb?

Melyik 10 ország össz GDP-je a legnagyobb? (szorozzuk össze a GDP-t a népességgel)

Melyik országban a legszegényebbek az emberek? (LIMIT 0 mert 0 az első rekord sorszáma)

Melyik a 40. legkisebb területű ország? (LIMIT kezdő intervalluma 39 mert 0-tól számoz, 1 mert pont csak a 40. érték kell)