Načrtovanje in razvoj spletnih aplikacij

Uvod v MySQL

SQL je kratica za Structured Query Language, kar pomeni strukturirani poizvedovalni jezik. Uporabljamo ga za delo z relacijskimi podatkovnimi bazami, kjer so podatki shranjeni v tabelah.

Z jezikom SQL lahko ustvarjamo podatkovne baze in tabele, vstavljamo nove podatke, spreminjamo obstoječe zapise, brišemo podatke ter iz podatkovne baze pridobivamo izbrane informacije.

Pomni: SQL ni splošen programski jezik, temveč jezik za delo s podatki v podatkovnih bazah. Namenjen je predvsem poizvedovanju, urejanju in upravljanju podatkov.

Osnovni ukazi SQL so pri različnih sistemih podatkovnih baz zelo podobni. Posamezni sistemi, kot so MySQL, MariaDB, PostgreSQL ali SQLite, pa imajo lahko tudi svoje posebnosti.

Vsebina strani

Osnovna pravila

Pri pisanju ukazov SQL je pomembno, da ločimo med ukazi, imeni tabel, imeni stolpcev in vrednostmi. Ukazi povedo, kaj želimo narediti, tabele in stolpci pa povedo, s katerimi podatki delamo.

  • Ukazi SQL so pogosto zapisani z velikimi črkami, na primer SELECT, INSERT in CREATE TABLE.
  • Imena tabel in stolpcev naj bodo kratka, razumljiva in brez presledkov.
  • Besedilne vrednosti zapišemo med enojne narekovaje, na primer 'ana'.
  • Vsak ukaz se običajno konča s podpičjem ;.
  • Pri ukazih za spreminjanje in brisanje podatkov moramo paziti na pogoj WHERE.

Pozor: V SQL stavkih ni pomembna samo izbira ukaza, ampak tudi natančen zapis imen tabel, stolpcev, vrednosti in pogojev.

Deli jezika SQL

SQL običajno razdelimo na več vsebinskih delov. Vsak del je namenjen drugi nalogi pri delu s podatkovno bazo.

  • DDL (Data Definition Language) je namenjen ustvarjanju in spreminjanju strukture podatkovne baze. Značilni ukazi so CREATE, ALTER in DROP.
  • DML (Data Manipulation Language) je namenjen delu s podatki v tabelah. Sem spadajo ukazi SELECT, INSERT, UPDATE in DELETE.
  • DCL (Data Control Language) je povezan s pravicami dostopa do podatkovne baze. Tipična ukaza sta GRANT in REVOKE.
  • TCL (Transaction Control Language) je namenjen upravljanju transakcij. Pogosti ukazi so COMMIT, ROLLBACK in START TRANSACTION.

Pomni: Za začetno delo so najpomembnejši ukazi iz skupin DDL in DML. Z DDL določimo zgradbo podatkov, z DML pa podatke vstavljamo, beremo, spreminjamo in brišemo.

Primerjava skupin ukazov

Skupine ukazov SQL se razlikujejo po tem, ali vplivajo na zgradbo podatkovne baze, na podatke ali na pravice uporabnikov.

Skupina Namen Primeri ukazov
DDL Ustvarjanje in spreminjanje zgradbe podatkovne baze. CREATE, ALTER, DROP
DML Delo s podatki v tabelah. SELECT, INSERT, UPDATE, DELETE
DCL Upravljanje pravic uporabnikov. GRANT, REVOKE
TCL Upravljanje transakcij. COMMIT, ROLLBACK, START TRANSACTION

Najpogostejše operacije v SQL

Pri začetnem delu se najpogosteje srečamo z osnovnimi postopki, ki jih potrebujemo pri skoraj vsaki podatkovni bazi.

  • ustvarjanje podatkovnih baz in tabel,
  • vstavljanje novih zapisov,
  • iskanje in izpis podatkov,
  • razvrščanje in filtriranje podatkov,
  • spreminjanje obstoječih zapisov,
  • brisanje zapisov,
  • določanje uporabniških pravic,
  • upravljanje transakcij.

Primeri osnovnih ukazov SQL

Primer ukaza DDL

Z ukazom CREATE TABLE ustvarimo novo tabelo. V naslednjem primeru ustvarimo tabelo uporabniki s stolpci id, uporabnisko_ime in email:

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

Primer ukaza DML za vstavljanje podatkov

Z ukazom INSERT vstavimo nov zapis v tabelo uporabniki:

INSERT INTO uporabniki (uporabnisko_ime, email)
VALUES ('ana', 'ana@example.com');

Primer poizvedbe

Z ukazom SELECT pridobimo podatke iz tabele. Znak * pomeni, da želimo izpisati vse stolpce:

SELECT * FROM uporabniki;

Pogosto je pregledneje izbrati samo tiste stolpce, ki jih potrebujemo:

SELECT uporabnisko_ime, email
FROM uporabniki;

Primer spreminjanja podatkov

Z ukazom UPDATE spremenimo obstoječe podatke. Pogoj WHERE določi, kateri zapis bo spremenjen:

UPDATE uporabniki
SET email = 'novi.email@example.com'
WHERE id = 1;

Primer brisanja podatkov

Z ukazom DELETE izbrišemo zapis iz tabele. Tudi pri brisanju je pogoj WHERE zelo pomemben:

DELETE FROM uporabniki
WHERE id = 1;

Pri ukazih UPDATE in DELETE lahko manjkajoč pogoj WHERE povzroči spremembo ali izbris vseh zapisov v tabeli.

Priporočila

  • Ukaze SQL piši pregledno in jih razdeli v več vrstic, kadar so daljši.
  • Za imena tabel in stolpcev uporabljaj jasna in dosledna poimenovanja.
  • Pri poizvedbah izberi samo tiste stolpce, ki jih potrebuješ.
  • Pred izvajanjem ukazov UPDATE in DELETE vedno preveri pogoj WHERE.
  • Za vaje uporabljaj testne podatke, da se izogneš izgubi pomembnih zapisov.
  • Pri učenju najprej razumi namen ukaza, nato pa njegovo natančno sintakso.

Pogoste napake

  • Manjkajoče podpičje na koncu SQL stavka.
  • Zamenjava vrstnega reda delov stavka, na primer pri ukazu SELECT.
  • Nepravilno zapisano ime tabele ali stolpca.
  • Manjkajoči enojni narekovaji pri besedilnih vrednostih.
  • Uporaba ukaza UPDATE ali DELETE brez pogoja WHERE.
  • Neustrezna uporaba znaka *, kadar potrebujemo samo nekaj stolpcev.

Pozor: Pred izvajanjem ukazov, ki spreminjajo ali brišejo podatke, je smiselno najprej preveriti, katere zapise bi izbral enak pogoj z ukazom SELECT.