Műveletekkel táblákkal

Sajnáljuk, az értékeléshez bejelentkezés szükséges
Sajnáljuk, az értékeléshez bejelentkezés szükséges
  • sql-category
    Táblázatok módosítása
Műveletekkel táblákkal

Az SQL parancsok bemutatása táblázatokkal való műveletekhez

Haszontalannak jelölve: 0
Hasznosnak jelölve: 0
Kulcsszavak: wannacode, kurzus, course, adatbázis műveletek táblázatokkal, database table operations
Elérhető: Nem érhető el

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:

tablazatok-kinezete

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

A táblázatok törlése hasonló az oszlopok törléséhez, csak a COLUMN helyett TABLE-t írunk.
    
    // 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

A táblázatok ürítése hasonló a táblázatok törléséhez, viszont itt a táblázat megmarad, csak a tartalma törlődik
    
    // 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

Hasonló leckék