Ko imamo podatkovno zbirko že pripravljeno, v njej ustvarimo tabele,
v katere bomo shranjevali podatke. Tabele ustvarimo s SQL ukazom
CREATE TABLE.
Kreiranje tabel v podatkovni zbirki
Pri ustvarjanju tabele določimo ime tabele in njena polja.
Za vsako polje moramo navesti ime stolpca, podatkovni tip
ter po potrebi dodatne omejitve, na primer NOT NULL,
AUTO_INCREMENT ali PRIMARY KEY.
Osnovna sintaksa za kreiranje tabele je:
CREATE TABLE imeTabele (
stolpec1 podatkovniTip,
stolpec2 podatkovniTip,
...
);
Če želimo preprečiti napako, kadar tabela že obstaja, uporabimo:
CREATE TABLE IF NOT EXISTS imeTabele (
stolpec1 podatkovniTip,
stolpec2 podatkovniTip,
...
);
Pri ustvarjanju tabele moramo biti povezani na točno določeno podatkovno zbirko, saj tabela vedno nastane znotraj izbrane baze.
Osnovni primer z mysqli
Spodnji zgled ustvari tabelo knjige v izbrani
podatkovni zbirki, če ta še ne obstaja.
<?php
define('DB_SERVER', 'localhost');
define('DB_USER', 'uporabnik');
define('DB_PASS', 'skritoGeslo');
define('DB_NAME', 'knjiznica');
// Povezava do podatkovne zbirke
$connection = mysqli_connect(DB_SERVER, DB_USER, DB_PASS, DB_NAME);
// Preverjanje povezave
if (!$connection) {
die(
'Povezava s podatkovno zbirko ni vzpostavljena: ' .
mysqli_connect_error() .
' (' . mysqli_connect_errno() . ')'
);
}
// SQL ukaz za kreiranje tabele
$sql = "CREATE TABLE IF NOT EXISTS knjige (
ID_knjige INT NOT NULL AUTO_INCREMENT,
Priimek_avtorja VARCHAR(50) NOT NULL,
Ime_avtorja VARCHAR(50) NOT NULL,
Naslov VARCHAR(150) NOT NULL,
Strani INT NOT NULL,
Cena DECIMAL(10,2) NOT NULL,
Leto YEAR NOT NULL,
PRIMARY KEY (ID_knjige)
)";
// Izvedba ukaza
if (mysqli_query($connection, $sql)) {
echo 'Tabela knjige je pripravljena.';
} else {
echo 'Napaka pri kreiranju tabele: ' . mysqli_error($connection);
}
// Zapiranje povezave
mysqli_close($connection);
?>
Osnovni primer s PDO
Enako nalogo lahko izvedemo tudi z vmesnikom PDO.
Tudi tu uporabimo ukaz CREATE TABLE IF NOT EXISTS.
<?php
$streznik = 'localhost';
$baza = 'knjiznica';
$uporabnik = 'uporabnik';
$geslo = 'skritoGeslo';
try {
// Povezava do podatkovne zbirke
$pdo = new PDO("mysql:host=$streznik;dbname=$baza;charset=utf8mb4", $uporabnik, $geslo);
// Vklop izjem pri napakah
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// SQL ukaz za kreiranje tabele
$sql = "CREATE TABLE IF NOT EXISTS knjige (
ID_knjige INT NOT NULL AUTO_INCREMENT,
Priimek_avtorja VARCHAR(50) NOT NULL,
Ime_avtorja VARCHAR(50) NOT NULL,
Naslov VARCHAR(150) NOT NULL,
Strani INT NOT NULL,
Cena DECIMAL(10,2) NOT NULL,
Leto YEAR NOT NULL,
PRIMARY KEY (ID_knjige)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci";
// Izvedba SQL ukaza
$pdo->exec($sql);
echo 'Tabela knjige je pripravljena.';
}
catch (PDOException $e) {
echo 'Napaka pri kreiranju tabele: ' . $e->getMessage();
}
?>
Pomembnosti pri definiranju tabele
- ime tabele naj bo jasno in smiselno,
- za vsak stolpec določimo ustrezen podatkovni tip,
- ključni stolpec pogosto določimo kot PRIMARY KEY,
- za samodejno številčenje pogosto uporabimo AUTO_INCREMENT,
- za sodobne aplikacije je priporočljiva uporaba kodiranja utf8mb4.
📘Aplikacija Knjige
V priloženi aplikaciji Knjige je v datoteki 03_kreiranjeTB.php prikazano kreiranje tabele knjige. Uporablja se obstoječa PDO povezava iz konfiguracije aplikacije, tabela pa se ustvari le, če še ne obstaja. :contentReference[oaicite:1]{index=1}
Stran nato ločeno prikaže še uspešnost povezave s podatkovno zbirko ter stanje tabele, kar je dober zgled pregledne namestitvene strani. :contentReference[oaicite:2]{index=2}
Navodila za izdelavo aplikacije Knjige
- Najprej ustvarimo ali izberemo podatkovno zbirko.
- Nato vzpostavimo povezavo na izbrano bazo.
- Pripravimo SQL ukaz CREATE TABLE IF NOT EXISTS.
- Določimo stolpce, podatkovne tipe in primarni ključ.
- Ukaz izvedemo in preverimo, ali je tabela uspešno pripravljena.
- V aplikaciji Knjige je to izvedeno z uporabo obstoječe PDO povezave iz konfiguracije. :contentReference[oaicite:3]{index=3}
Pri učenju je smiselno poznati oba pristopa:
- mysqli kot klasičen pristop za MySQL oziroma MariaDB,
- PDO kot bolj prenosljiv pristop,
- aplikacijski pristop, kjer je priprava tabele del ločenega namestitvenega koraka.