MySQL baza podatkov

MySQL baza podatkov je najbolj priljubljen sistem baz podatkov, ki se uporablja skupaj s PHP. MySQL je odprtokodni sistem za upravljanje relacijskih baz podatkov (RDBMS). Tako kot druge relacijske baze podatkov tudi MySQL uporablja osnovne tabele, omejitve, sprožilce, vloge, shranjene postopke in poglede kot glavne komponente, s katerimi delamo. Tabela je sestavljena iz vrstic, in vsaka vrstica vsebuje podatke za vsak stolpec. MySQL uporablja primarne ključe za enolično identifikacijo vsake vrstice (zapis) v tabeli, in tipk za zagotovitev referenčne celovitosti med dvema povezanima tabelama.
MySQL baza podatkov

Kaj sploh MySQL je?




Preden lahko dostopamo do baze podatkov, se moramo povezato na strežnik

        
<?php
$servername = "če uporabljate lokalno vpišite "localhost", če se povezujete na strežnik, vpišite IP (v cPanel ga najdete pod Remote MySQL);
$username = "v cPanel uporabniško ime (če ga ne vemo) najdemo pod MySQL Databases";
$password = "vpišemo geslo za dostop do vaše baze";

// vzpostavi povezavo
$conn = mysqli_connect($servername, $username, $password);

// preveri povezavo
if (!$conn) {
    die("Povezava ni uspela: " . mysqli_connect_error());
}
echo "Povezava uspešna";
?>
        
    

Povezava se prekine samodejno, ko se skript konča, če želimo prej zapreti povezavo uporabimo:

        
            mysqli_close($conn);
        
    

Baza podatkov je sestavljena iz ene ali več tabel. Za ustvarjenja tabel potrebujemo posebne CREATE privilegije. V naslednjem primeru bomo ustvarili tabelo, z uporabo MySQLi.

                    
<?php
$servername = "ip strežnika";
$username = "uporabniško ime";
$password = "geslo";
$dbname = "ime baze podatkov (ang. Database)";

// vzpostavi povezavo
$conn = mysqli_connect($servername, $username, $password, $dbname);

// preveri povezavo
if (!$conn) {
    die("Povezava ni uspela: " . mysqli_connect_error());
}

// izdelava tabele
$sql = "CREATE TABLE mojaTabela (
    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    firstname VARCHAR(30) NOT NULL,
    lastname VARCHAR(30) NOT NULL,
    email VARCHAR(50),
    reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
    )";

if (mysqli_query($conn, $sql)) {
    echo "Tabela je narejena!";
}   else {
    echo "Žal nisi uspel izdelati tabele! " . mysqli_connect_error($conn);
}

mysqli_close($conn);
?>
                    
                

Z uporabo MySQLi bomo v obstoječo tabelo (ki smo jo izdelali), sedaj vstavili še podatke. Sedaj namesto CREATE uporabimo INSERT.

    
<?php
$servername = "212.44.113.15";
$username = "mojblo90_oporabnik47";
$password = "HL.I,J68S_gq[597*jk}";
$dbname = "mojblo90_domsqlbaza";

// vzpostavi povezavo
$conn = mysqli_connect($servername, $username, $password, $dbname);

// preveri povezavo
if (!$conn) {
    die("Povezava ni uspela: " . mysqli_connect_error());
}

$sql = "insert into novaTabela (firstname, lastname, email)
    values ('Janez', 'Kranjski', 'kolibri@ficnik.info')";

if ($conn->query($sql) === TRUE) {
    echo "Pravilno si zapisal nov podatek";
}   else {
    echo "Napaka: " .$sql . "<br>" . $conn->error;
}

mysqli_close($conn)
?>
    

Indeks podatkovnih baz

Indeksi izboljšujejo delovanje baze podatkov, saj omogočajo strežniku baz podatkov, da najde in naloži določene vrstice veliko hitreje kot brez indeksa. Toda indeksi dodajo določeno režijo celotnemu sistemu baze podatkov, zato jih je treba smiselno uporabljati. Brez indeksa mora strežnik baze podatkov začeti s prvo vrstico in nato prebrati celotno tabelo, da bi našel ustrezne vrstice. MySQL baza podpira tudi hash indekse, in InnoDB uporablja kot sezname za indekse FULLTEXT.