MySQL je eden najpopularnejših odprto kodnih sistemov za upravljanje relacijskih podatkovnih baz (RDBMS - Relational Database Management System). Uporablja SQL (Structured Query Language) za upravljanje s podatki in je posebej priljubljen v kombinaciji s PHP pri razvoju spletnih aplikacij. MySQL je del znamenitega LAMP (Linux, Apache, MySQL, PHP) sklada in podpira vse pomembnejše operacijske sisteme.
Za razvoj z MySQL potrebujemo ustrezno razvojno okolje (IDE - Integrated Development Environment). Najbolj priljubljena orodja vključujejo:
V tej vadnici bomo uporabljali XAMPP, ki vključuje phpMyAdmin, lahko pa tudi delamo s PHPStorm Database orodjem. MySQL podpira dva načina komentiranja kode:
Enovrstični komentarji: začnejo se z dvema minusoma (--)Več vrstični komentarji: začnejo se z /* in končajo z */-- To je enovrstični komentar SELECT * FROM users; -- Prikaži vse uporabnike
/* To je več vrstični komentar Lahko se razteza čez več vrstic */ SELECT * FROM products;
Za učenje in preizkušanje vaših SQL poizvedb je v simulatorju že vnaprej pripravljena bogata zbirka testnih tabel. Spodaj si lahko ogledate seznam vseh razpoložljivih tabel, njihove stolpce in kratek opis, čemu so namenjene.
Kako začeti? Tabel ni treba nalagati ali ustvarjati. V simulator preprosto vpišite ukaz za
izpis (npr. SELECT * FROM prva; ali SELECT * FROM zaposleni LIMIT 5;) in si sami oglejte
strukturo ter podatke, ki se skrivajo v njih. Preizkusite različne kombinacije in se učite na praktičnih
primerih!
prva (Stolpci: id, ime, priimek, starost) Opis: Osnovna tabela z nekaj zaposlenimi za testiranje prvih korakov.
podvojena_tabela (Stolpci: id_tabele, ime, priimek, mesto, drzava) Opis: Idealna tabela za učenje odstranjevanja dvojnikov z uporabo DISTINCT ali GROUP BY.
razvrscanje (Stolpci: ime, priimek, oddelek, placa) Opis: Velika tabela z veliko podatki, namenjena vadbi stavkov ORDER BY, LIMIT in filtriranja oddelkov.
izdelki in izdelki_on_primer (Stolpci: naziv, cena) Opis: Seznam artiklov v trgovini, primeren za matematične operatorje (>, <, BETWEEN).
zaposleni (Stolpci: id, ime, priimek, oddelek, placa, leto_zaposlitve) Opis: Glavna tabela za vadbo združevalnih funkcij (COUNT, AVG, SUM) in grupiranja.
stranke (Stolpci: id, ime, priimek, email, telefon, mesto) Opis: Podatki o strankah iz različnih mest v Sloveniji.
novice (Stolpci: id, naslov, datum, vsebina) Opis: Primer baze za blog. Odlična za delo z datumi in iskanje tekstovnih vzorcev z LIKE.
narocila (Stolpci: id, narocilo, datum, izdelek, kolicina, cena_kos, cena_skupaj) Opis: Pregled transakcij. Primerna za kompleksne kalkulacije in filtriranje časovnih žigov (DATETIME).
ocene in student_ocene (Stolpci: id, predmet, ocena) Opis: Šolske ocene za preprosto računanje povprečij ali iskanje najvišjih/najnižjih ocen (MIN, MAX).
prodaja (Stolpci: id, prodajalec, mesecna_prodaja, mesecni_cilj, mesec) Opis: Primerjalna tabela za preverjanje uspešnosti (npr. kdor je presegel mesečni cilj).
zaloga (Stolpci: id, izdelek, kolicina_na_zalogi, povprecna_mesecna_prodaja, minimalna_zaloga, cena_kos) Opis: Logistična tabela za napredne pogoje (npr. kateri izdelki so padli pod minimalno zalogo).
ucinkovitost (Stolpci: id, zaposleni, opravljene_ure, zakljucene_naloge) Opis: Tabela za analitiko produktivnosti.
zadovoljstvo_strank (Stolpci: id, stranka, ocena_zadovoljstva, stevilo_nakupov, stevilo_pritozb) Opis: Tabela z decimalnimi ocenami zadovoljstva in celimi števili pritožb.
akcije (Stolpci: izdelek, cena, popust, zaloga, sezona, datum_akcije) Opis: Podatki o sezonskih znižanjih, idealni za filtriranje po sezonah ali izračun končnih cen s popusti.
studenti, predmeti, profesorji, fakultete Opis: Relacijski sklop tabel, ki je popolnoma pripravljen za učenje povezovanja tabel preko JOIN stavkov (INNER JOIN, LEFT JOIN).
prodaja_on_primer in narocila_on_primer Opis: Dodatni tabeli za učenje eksplicitnih ON pogojev pri združevanju podatkov.
dnevnik_sprememb (Stolpci: id, tabela, zapis_id, tip_spremembe, datum) Opis: Prazna tabela, pripravljena za demonstracijo beleženja sistemskih dogodkov ali INSERT/UPDATE logov.
pravice_dostopa (Stolpci: uporabnik_id, modul, tip_pravice, datum_dodelitve) Opis: Tabela za simulacijo varnostnih nastavitev uporabnikov.
besedila (Stolpci: id, besedilo) Opis: Tabela s presledki in zvezdicami, ustvarjena posebej za učenje tekstovnih funkcij, kot so TRIM(), REPLACE() in SUBSTRING().
produkti (Stolpci: id, ime, cena, kategorija) Opis: Klasičen šifrant artiklov razdeljen po kategorijah blaga.
datumi in dogodki Opis: Tabele namenjene testiranju funkcij za čas in datum (NOW(), DATE_FORMAT(), YEAR()).
racuni (Stolpci: id_racuna, opis, znesek, datum) Opis: Finančna tabela, ki vsebuje pozitivne in negativne zneske, idealna za funkcijo ABS() ali ločevanje prihodkov in odhodkov.
sqrt_tabela (Stolpci: id, stevilo, opis) Opis: Tabela s števili, pripravljena za testiranje matematične funkcije SQRT() (kvadratni koren) in ROUND().
null_tabela (Stolpci: id, ime, vrednost, opomba, status) Opis: Ključna tabela za učenje dela z NULL vrednostmi. Uporabniki tukaj vadijo operatorje IS NULL, IS NOT NULL in funkcijo COALESCE().