Načrtovanje in razvoj spletnih aplikacij

Jezik za definiranje podatkov (DDL - Data Definition Language)

DDL je kratica za Data Definition Language, kar pomeni jezik za definicijo podatkov. Ukaze DDL uporabljamo za ustvarjanje, spreminjanje in brisanje zgradbe podatkovne baze.

Z ukazi DDL ne delamo neposredno z zapisi v tabelah, temveč določamo, kako bo podatkovna baza zgrajena. Z njimi ustvarimo podatkovno bazo, tabele, stolpce, podatkovne tipe, ključe in druge objekte podatkovne baze.

Pomni: DDL določa zgradbo podatkovne baze. Z njim ustvarjamo in spreminjamo tabele, stolpce in druge objekte, ne pa posameznih zapisov v tabelah.

Pri načrtovanju podatkovne baze je najprej treba določiti, katere podatke bomo hranili, v katere tabele jih bomo razdelili in katere podatkovne tipe bodo imeli posamezni stolpci.

Vsebina strani

Osnovna pravila

Pri ukazih DDL je pomembna natančnost, saj z njimi določamo osnovno zgradbo podatkovne baze. Napačno izbran podatkovni tip ali nepremišljeno brisanje tabele lahko povzroči težave pri nadaljnjem delu.

  • Ukaz CREATE uporabljamo za ustvarjanje novih objektov, na primer podatkovne baze ali tabele.
  • Ukaz ALTER uporabljamo za spreminjanje zgradbe obstoječe tabele.
  • Ukaz DROP uporabljamo za brisanje objektov, na primer tabele ali podatkovne baze.
  • Pri ustvarjanju tabele za vsak stolpec določimo ime in podatkovni tip.
  • Za enolično prepoznavanje zapisov v tabeli običajno določimo glavni ključ.

Pozor: Ukazi DDL lahko trajno spremenijo zgradbo podatkovne baze. Pred brisanjem podatkovne baze ali tabele je treba preveriti, ali podatkov res ne potrebujemo več.

Izdelava, uporaba in brisanje podatkovne baze

Podatkovno bazo ustvarimo z ukazom CREATE DATABASE. V naslednjem primeru ustvarimo podatkovno bazo z imenom sola:

CREATE DATABASE sola;

Če želimo videti seznam vseh podatkovnih baz, uporabimo ukaz SHOW DATABASES:

SHOW DATABASES;

Pred ustvarjanjem tabel moramo izbrati podatkovno bazo, v kateri bomo delali. To naredimo z ukazom USE:

USE sola;

Ko podatkovne baze ne potrebujemo več, jo lahko izbrišemo z ukazom DROP DATABASE:

DROP DATABASE sola;

Ukaz USE ne ustvari nove podatkovne baze. Z njim samo določimo, katera podatkovna baza je trenutno izbrana za izvajanje naslednjih ukazov.

Izdelava tabel – CREATE TABLE

Podatkovna baza običajno vsebuje eno ali več tabel. Tabelo ustvarimo z ukazom CREATE TABLE. Pri ustvarjanju tabele določimo ime tabele, imena stolpcev in podatkovne tipe.

CREATE TABLE uporabniki
(
   id INT,
   uporabnisko_ime VARCHAR(50),
   email VARCHAR(100)
);

V tem primeru ustvarimo tabelo uporabniki s tremi stolpci:

  • id je celoštevilski stolpec,
  • uporabnisko_ime je besedilni stolpec dolžine do 50 znakov,
  • email je besedilni stolpec dolžine do 100 znakov.

Pomni: Imena tabel in stolpcev naj bodo razumljiva, kratka in dosledno zapisana. Priporočljivo je, da ne vsebujejo presledkov, šumnikov ali posebnih znakov.

Glavni ključ in samodejno številčenje

V tabeli pogosto potrebujemo stolpec, ki enolično določa vsak zapis. Takemu stolpcu pravimo glavni ključ. V MySQL lahko za samodejno povečevanje števil uporabimo AUTO_INCREMENT.

CREATE TABLE uporabniki
(
   id INT PRIMARY KEY AUTO_INCREMENT,
   uporabnisko_ime VARCHAR(50),
   email VARCHAR(100)
);

V tem primeru je stolpec id glavni ključ. Vrednost se pri vsakem novem zapisu samodejno poveča, zato je vsak zapis enolično označen.

Primer z obveznimi podatki

Če želimo določiti, da mora imeti stolpec vedno vrednost, uporabimo določilo NOT NULL:

CREATE TABLE uporabniki
(
   id INT PRIMARY KEY AUTO_INCREMENT,
   uporabnisko_ime VARCHAR(50) NOT NULL,
   email VARCHAR(100) NOT NULL
);

Pozor: Podatkovni tip in omejitve stolpca je najbolje določiti že pri načrtovanju tabele. Kasnejše spreminjanje je sicer mogoče, vendar lahko vpliva na že obstoječe podatke.

Spreminjanje tabel – ALTER TABLE

Z ukazom ALTER TABLE spreminjamo zgradbo obstoječe tabele. Z njim lahko dodamo stolpec, izbrišemo stolpec ali spremenimo ime oziroma podatkovni tip stolpca.

Dodajanje stolpca

Nov stolpec dodamo z določilom ADD:

ALTER TABLE uporabniki
ADD telefon VARCHAR(20);

Brisanje stolpca

Stolpec izbrišemo z določilom DROP COLUMN:

ALTER TABLE uporabniki
DROP COLUMN telefon;

Preimenovanje oziroma spreminjanje stolpca

V MySQL lahko stolpec preimenujemo in mu hkrati določimo podatkovni tip z določilom CHANGE COLUMN:

ALTER TABLE uporabniki
CHANGE COLUMN uporabnisko_ime ime VARCHAR(50);

V tem primeru se stolpec uporabnisko_ime preimenuje v ime, hkrati pa ostane besedilni stolpec z dolžino do 50 znakov.

Brisanje tabel – DROP TABLE

Če tabele ne potrebujemo več, jo izbrišemo z ukazom DROP TABLE. S tem izbrišemo zgradbo tabele in vse podatke v njej.

DROP TABLE uporabniki;

Ukaza DROP DATABASE in DROP TABLE trajno izbrišeta podatkovno bazo oziroma tabelo. Pred uporabo teh ukazov je priporočljivo narediti varnostno kopijo podatkov.

Primerjava ukazov DDL

Ukazi DDL imajo različne naloge. Nekateri ustvarjajo nove objekte, drugi spreminjajo obstoječe, tretji pa jih brišejo.

Ukaz Namen Primer uporabe
CREATE DATABASE Ustvari novo podatkovno bazo. CREATE DATABASE sola;
CREATE TABLE Ustvari novo tabelo. CREATE TABLE uporabniki (...);
ALTER TABLE Spremeni zgradbo obstoječe tabele. ALTER TABLE uporabniki ADD telefon VARCHAR(20);
DROP TABLE Izbriše tabelo in podatke v njej. DROP TABLE uporabniki;
DROP DATABASE Izbriše celotno podatkovno bazo. DROP DATABASE sola;

Priporočila

  • Pred ustvarjanjem tabel najprej načrtuj, katere podatke bo podatkovna baza hranila.
  • Za vsako tabelo določi jasen namen in razumljivo ime.
  • Za enolično prepoznavanje zapisov uporabi glavni ključ, na primer stolpec id.
  • Za besedilne podatke izberi ustrezno dolžino, na primer VARCHAR(50) ali VARCHAR(100).
  • Pri pomembnih stolpcih uporabi NOT NULL, kadar podatek ne sme manjkati.
  • Pred uporabo ukazov DROP TABLE ali DROP DATABASE preveri, ali obstaja varnostna kopija.

Pogoste napake

  • Ustvarjanje tabele brez jasnega glavnega ključa.
  • Neustrezno izbran podatkovni tip stolpca.
  • Uporaba nejasnih imen tabel ali stolpcev.
  • Manjkajoči oklepaji pri ukazu CREATE TABLE.
  • Manjkajoča vejica med definicijami stolpcev.
  • Brisanje tabele ali podatkovne baze brez predhodnega preverjanja vsebine.
  • Spreminjanje zgradbe tabele brez razmisleka o obstoječih podatkih.

Pozor: Ukazi DDL vplivajo na zgradbo podatkovne baze. Pri učenju jih je najbolje preizkušati na testni podatkovni bazi, kjer morebitna napaka ne povzroči izgube pomembnih podatkov.