Az adatbázis szerkezetének létrehozásához és módosításához szükséges utasítások.
Új adatbázis létrehozása.
CREATE DATABASE iskola;
Új tábla létrehozása.
CREATE TABLE diak (
id INT PRIMARY KEY,
nev VARCHAR(100),
eletkor INT
);
Új adatbázis létrehozása magyar nyelvű adatok számára.
CREATE DATABASE iskola
CHARACTER SET utf8mb4
COLLATE utf8mb4_hungarian_ci;
Meglévő tábla szerkezetének módosítása (pl. új oszlop hozzáadása).
ALTER TABLE diak ADD email VARCHAR(100);
Tábla végleges törlése.
DROP TABLE diak;
Tábla nevének megváltoztatása.
RENAME TABLE diak TO tanulo;
Az adatbázisban tárolt adatokkal való munka (beszúrás, módosítás, törlés, lekérdezés).
Új rekord (sor) hozzáadása a táblához.
INSERT INTO diak (id, nev, eletkor) VALUES (1, 'Kovács Anna', 17);
Adatok lekérdezése a táblából.
SELECT * FROM diak;
Meglévő rekord(ok) adatainak módosítása.
UPDATE diak SET eletkor = 18 WHERE id = 1;
Rekord(ok) törlése a táblából.
DELETE FROM diak WHERE id = 1;
A teljes tábla összes sorának gyors törlésére szolgál, de a tábla szerkezete megmarad.
TRUNCATE TABLE tabla_nev;
Kizárólag egyedi (ismétlésmentes) értékek lekérdezése egy oszlopból.
SELECT DISTINCT eletkor FROM diak;
Feltétel megadása a lekérdezések szűréséhez.
SELECT * FROM diak WHERE eletkor > 16;
Az eredmények rendezése egy vagy több oszlop alapján.
SELECT * FROM diak ORDER BY nev ASC;
Rekordok csoportosítása azonos mezőértékek alapján.
SELECT eletkor, COUNT(*) FROM diak GROUP BY eletkor;
GROUP BY utáni feltétel (pl. csak azokat a csoportokat listázza, ahol több sor van).
SELECT eletkor, COUNT(*) FROM diak
GROUP BY eletkor
HAVING COUNT(*) > 1;
Két vagy több tábla összekapcsolása közös mező alapján.
SELECT diak.nev, osztaly.nev
FROM diak
JOIN osztaly ON diak.osztaly_id = osztaly.id;
Megszámolja a rekordok számát egy lekérdezés eredményében.
SELECT COUNT(*) FROM diak;
Összegzi egy numerikus oszlop értékeit.
SELECT SUM(eletkor) FROM diak;
Kiszámítja egy numerikus oszlop átlagát.
SELECT AVG(eletkor) FROM diak;
Adatbázis kiválasztása az aktuális munkamenethez.
USE iskola;
Tábla szerkezetének (oszlopnevek, típusok) megjelenítése.
DESCRIBE diak;
Adatbázisok, táblák vagy oszlopok listázása.
SHOW DATABASES;
SHOW TABLES;
SHOW COLUMNS FROM diak;
Az index egy speciális adatstruktúra, amely gyorsabb keresést és lekérdezést tesz lehetővé a táblában.
Olyan, mint egy könyv tartalomjegyzéke: segít gyorsan megtalálni, amit keresel, anélkül hogy végig kellene nézni az egészet.
Alapértelmezett index létrehozása egy mezőre a gyors keresés érdekében.
CREATE INDEX index_nev ON tabla_nev (mezo_nev);
Olyan index, amely megakadályozza a duplikált értékek tárolását az adott oszlopban.
CREATE UNIQUE INDEX egyedi_index ON tabla_nev (email);
Olyan index, amely egyszerre több mező kombinációjára épül.
CREATE INDEX osszetett_index ON tabla_nev (vezeteknev, keresztnev);
Az index létrehozható közvetlenül a `CREATE TABLE` utasítás részeként is.
CREATE TABLE diak (
id INT PRIMARY KEY,
nev VARCHAR(100),
email VARCHAR(100),
INDEX (email)
);
Meglévő index eltávolítása a tábláról.
DROP INDEX index_nev ON tabla_nev;
Egy tábla indexeinek megtekintése.
SHOW INDEX FROM tabla_nev;
Indexek gyorsítják a lekérdezéseket, de lassíthatják a beszúrást és frissítést, mert az indexet is karban kell tartani.
Az idegen kulcs (foreign key) egy olyan mező (vagy mezők), amely másik tábla elsődleges kulcsára hivatkozik. Segít kapcsolatot létrehozni két tábla között és biztosítja az adatok konzisztenciáját.
Az idegen kulcs deklarálható a `CREATE TABLE` utasításon belül.
CREATE TABLE rendeles (
id INT PRIMARY KEY,
ugyfel_id INT,
FOREIGN KEY (ugyfel_id) REFERENCES ugyfel(id)
);
Ha a tábla már létezik, utólag is hozzáadható idegen kulcs az `ALTER TABLE` utasítással.
ALTER TABLE rendeles
ADD CONSTRAINT fk_ugyfel
FOREIGN KEY (ugyfel_id) REFERENCES ugyfel(id);
Az idegen kulcs viselkedését szabályozhatjuk, ha a hivatkozott rekord módosul vagy törlődik.
CASCADE: A hivatkozott rekord törlésekor a kapcsolódó rekordok is törlődnek.SET NULL: A kapcsolódó idegen kulcs értéke null lesz.RESTRICT / NO ACTION: Megakadályozza a törlést, ha van kapcsolódó rekord.FOREIGN KEY (ugyfel_id) REFERENCES ugyfel(id) ON DELETE CASCADE
Egy idegen kulcs törléséhez előbb ismerni kell a nevét (pl. `fk_ugyfel`).
ALTER TABLE rendeles DROP FOREIGN KEY fk_ugyfel;
A tábla összes kulcsának listázása (beleértve az idegen kulcsokat).
SHOW CREATE TABLE rendeles;
Vagy a `INFORMATION_SCHEMA` használata:
SELECT * FROM information_schema.KEY_COLUMN_USAGE
WHERE TABLE_NAME = 'rendeles';