Műveletekkel táblákkal
Az SQL parancsok bemutatása táblázatokkal való műveletekhez
- Főoldal
/
- Kurzusok
/
- SQL
/
- SQL kezdőknek
Műveletekkel táblákkal
Mivel az adatbázisokon belül az adatok rendszerezve vannak táblázatok formájában, így a legelső és legfontosabb műveletek közé tartozik, hogy felépítsük a táblázatainkat egy adatbázison belül.
Ezeket a táblázatokat pontosan úgy kell elképzelni, mint akármelyik másik táblázatot amelyet leírtunk lapra valaha, vagy táblázat szerkesztőben megszerkesztettünk.
Így lehet elképzelni őket:
Táblázatok létrehozása
A táblázat létrehozása előtt el kell döntenünk, hogy milyen adatokat is szeretnénk elmenteni, és aszerint felépíteni a struktúrát. Természetesen ez utólag bármikor módosítható, nehéz egyből mindenre gondolni.
A táblázatok struktúrájának felépítésénél néhány alapszabályt érdemes betartani, hogy a későbbiekben könnyebb legyen dolgozni velük:
- Főoszlopnak érdemes mindig egy ID oszlopot tenni, amely egyedi és automatikusan kap egy növekvő értéket
- Egy oszlopba, mindig csak egy értéket tároljunk
- Amennyire lehet ne mentsük el ugyanazt az adatot többszőr
- A táblázatnak olyan nevet adjunk, amiből rögtön tudjuk, hogy mit tartalmaz
- A mi javaslatunk: érdemes menteni a beszúrás és a módosítás dátumát
- A mi javaslatunk: érdemes menteni a felhasználót aki mentette vagy módosította az adatokat
Egy táblázat létrehozását a CREATE TABLE paranccsal lehet végrehajtani, amely után jön a táblázatunk neve, majd az oszlopok típusokkal és karakter kódolással.
A parancs így nézne ki:
CREATE TABLE `m_settings` (
`oszlop1` típus NOT NULL AUTO_INCREMENT,
`oszlop2` típus NOT NULL DEFAULT '0',
`oszlop3` típus COLLATE utf8_unicode_ci NOT NULL DEFAULT 'text',
PRIMARY KEY (`oszlop1`), // Fő oszlop beállítása
// Itt még be lehet állítani az INDEX-eket, ezekről majd később
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Itt még lehet egy lehetőség, hogy csak akkor hozzuk létre a táblát ha nem létezik:
CREATE TABLE IF NOT EXISTS `m_settings` (
`oszlop1` típus NOT NULL AUTO_INCREMENT,
`oszlop2` típus NOT NULL DEFAULT '0',
`oszlop3` típus COLLATE utf8_unicode_ci NOT NULL DEFAULT 'text',
PRIMARY KEY (`oszlop1`), // Fő oszlop beállítása
// Itt még be lehet állítani az INDEX-eket, ezekről majd később
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Az oszlopok és a táblázat nevét ` (aposztróf) karakterekkel kell megjelölnünk, az értékeket rendszerint ' (egyes idézőjel) segítségével.
Az oszlopok típusai nagyon sok félék lehetnek: szám, szöveg, dátum, logikai, stb.
A típustól függően bizonyos esetekben meg kell határozni egyéb információt is, pl. a szöveg típusnál hogy milyen hosszú lehet a szöveg amit elmentünk. Kivételt képez a text típus, ami szintén szöveg, de ezzel a típussal akármekkora szöveget elmenthetünk.
Feltételezzük, hogy Személyekkel teli táblázatot szeretnénk készíteni. Első lépésben vegyük az adatokat amiket szeretnénk elmenteni: családnév (szöveg), keresztnév (szöveg), nem (szöveg), életkor (szám), beszúrás dátuma (dátum).
Ennek a táblázatnak a létrehozásához szükséges SQL parancs:
CREATE TABLE `peoples` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`last_name` varchar(150) COLLATE utf8_unicode_ci NOT NULL,
`first_name` varchar(150) COLLATE utf8_unicode_ci NOT NULL,
`gender` varchar(10) COLLATE utf8_unicode_ci NOT NULL,
`insert_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`id`), // Fő oszlop beállítása
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Táblázatok módosítása
Ha a későbbiekben eszünkbe jut, vagy észrevesszük, hogy nem teljes a tábla, esetleg van benne fölösleges oszlop, nincs semmi gond, bármikor módosíthatjuk a táblázatot, az ALTER TABLE parancs segítségével.
A parancs használata a következő képpen néz ki:
ALTER TABLE `peoples` 'módosító parancs' 'oszlop neve' 'tulajdonságok'
A módosító parancs lehet: CHANGE, DROP COLUMN, ADD COLUMN, ADD INDEX, DROP INDEX
A tulajdonságok a módosító parancstól függően változnak:
// Oszlop módosítása: Rájövünk, hogy családnévnek elég 100 karakter
ALTER TABLE `peoples` CHANGE `last_name` `last_name` varchar(100) COLLATE utf8_unicode_ci NOT NULL;
// Oszlop hozzáadása: Módosítási dátum
ALTER TABLE `peoples` ADD COLUMN `modify_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' AFTER `insert_date`;
// Oszlop törlése: Módosítási dátum
ALTER TABLE `peoples` DROP COLUMN `modify_date`;
// Az INDEX-ekről egy későbbi leckében fogunk beszélni
Az ADD COLUMN parancs esetében azt is meg kell mondjuk, hogy melyik oszlop után szeretnénk beszúrni az új oszlopot.
Egyszerre akár több műveletet is elvégezhetünk a táblázatokkal, több 'módosító parancs' 'oszlop neve' 'tulajdonságok' -t felsorolva egymás után vesszővel elválasztva, ahogy az alábbi példa is mutatja:
// Oszlop módosítása: Rájövünk, hogy családnévnek elég 100 karakter
ALTER TABLE `peoples` CHANGE `last_name` `last_name` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
ADD COLUMN `modify_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' AFTER `insert_date`;
Táblázatok törlése
// Táblázat tőrlése
DROP TABLE `peoples`;
Ezzel a paranccsal a teljes táblázatot és a tartalmát töröljük véglegesen
Táblázatok ürítése
// Táblázat ürítése
TRUNCATE TABLE `peoples`;
Ezzel a paranccsal a táblázat teljes tartalmát töröljük véglegesen, és a számláló előről kezdődik
- Következő lecke: Táblázatok módosítása
Részletek
- Megtekintve: 217
- Haszontalannak jelölve: 0
- Hasznosnak jelölve: 0
- Értékelés: