1. DDL - naredbe za definisanje podataka

DDL ( Data Definition Language) - ovde spadaju naredbe za definisanje resursa relacione baze podataka. Pod resursima baze podataka se najčešće podrazumevaju:

  • struktura baze podataka,
  • tabele,
  • atributi,
  • tipovi podataka,
  • ograničenja,
  • itd

Shvatite to u smislu da se sve što je potrebno - kreiranje baza, kreiranje tabela, izmene izgleda i pojedinih delova, brisanje nečega ... - kreira pomoću DDL naredbi.

Definicija neke baze podataka podrazumeva i mogućnost naknadne izmene ili uklanjanja te definicije.

U standardnom SQL-u se sve to postiže sa svega tri naredbe:

  • CREATE - služi za kreiranje nekog objekta (baze, tabele, itd)
  • DROP - služi za uklanjanje definicije nekog objekta,
  • ALTER - služi za izmenu definicije nekog objekta

2. Kreiranje baze podataka ( i izbor iste )

Kreiranje baze podataka se odnosi na kreiranje nove prazne baze podataka sa svim potrebnim elementima tako da je posle toga moguć rad sa njom. Kreiranje baze podataka se u SQL jeziku vrši naredbom CREATE DATABASE

CREATE  {DATABASE | SCHEMA}  [ IF NOT EXISTS]  db_name;

Rezervisane reči DATABASE ili SCHEMA su alijasi - odnose se na isto. Ako se koristi IF NOT EXISTS, to znači da novu bazu podataka server treba da napravi samo ako već ne postoji baza sa tim imenom.

Da bi se kreirala baza podataka u skladu sa strukturom naredbe, potrebno je ukucati sledeće:

    CREATE DATABASE biblioteka;

Ovom naredbom je kreirana nova prazna baza podataka pod imenom biblioteka. Sada je moguće koristiti ovu bazu za dalji rad. Sve što je potrebno jeste izabrati bazu sa kojom se radi. Samim kreiranjem baze ne podrazumeva se da je ona automatski izabrana, pa je zbog toga potrebno ukucati sledeću naredbu:

   USE biblioteka;

Ovom naredbom je izabrana baza podataka pod imenom biblioteka sa kojom će se raditi. ( Ovo je kao kada se u nekom programu izabere opcija Open, a zatim se izabere određeni fajl za otvaranje )

!!!! ::::: U toku vežbi, da biste mogli da radite da svojom bazom podataka, ne zaboravite da ukucate

               USE ime_vaše_baze !!! 

(Ako je sve ok, izvrši se naredba, postoji baza, ispisuje se poruka o uspešnom pristupu bazi, ali ako na serveru ne postoji baza sa datim imenom, ispisuje se poruka o grešci ).


Malo detaljnije i precizije:

Još se mogu prilikom kreiranja baze postaviti i dodatna ograničenja, pa je u nastavku data sintaksa naredbe CREATE DATABASE ako se želi postaviti npr. koji se set karaktera koristi:

        CREATE {DATABASE | SCHEMA } [ IF NOT EXISTS ] ime_baze 
        [ DEFAULT ] { CHARACTER SET [=] ime_cheracter_seta | COLLATE [=] collation_name }

Primer:

CREATE DATABASE razred CHARACTER SET utf8 COLLATE utf8_unicode_ci;

U ovom primeru, za grupu karaktera koju će baza da koristi odabrana je kodna šema UTF-8, a za poravnanje vrednosti je odabrana unikodna kolacija UTF-8 kodne šeme koja nije osetljiva na velika i mala slova ( _ci znači case insensitive ).


3. Kreiranje tabele u bazi podataka

Prilikom treiranja tabele, odnosno definisanja njene strukture i osobina, neophodno je navesti sledeće:

  • ime tabele, koje mora biti jeduinstveno u bazi podataka,
  • ime svake kolone, koje mora biti jedinstveno unutar tabele,
  • tip svake kolone
  • jedno ili više ograničenja za kolone koje ih imaju
  • jedno ili više ograničenja za celu tabelu, ako postoje.

Obratite pažnju: kreiranje nove tabele u bazi podataka odnosi se na kreiranje nove prazne tabele u bazi podataka. Kreiranje nove tabele u bazi podataka se u SQL jeziku vrši pomoću naredbe CREATE TABLE.

   
CREATE TABLE [ IF NOT EXISTS] ime_tabele    
    ( ime_kolone  tip_podataka [ ograničenja ] [ DEFAULT podrazumevana_vrednost] [ AUTO_INCREMENT ] [ [PRIMARY ] KEY ], ... );

Ovo gore je na skraćen način opisano kako se kreira nova tabela:

Prvo se piše CREATE TABLE, zatim (može a ne mora) IF NOT EXISTS - ako već postoji kreirana tabela sa tim imenom u bazi, onda je neće kreirati ponovo, a nakon toga ime tabele.

Nakon imena tabele, u nastavku se unutar malih zagrada navode opisi kolona koje će da budu u njoj, i to tako da se kolone opisuju jedna iza druge, razdvojene zarezima.

Za svaku od kolona se, redom, navodi: ime_kolone, tip podataka koji je u njoj, zatim mogu (a ne moraju) ograničenja. U ograničenja spadaju npr. NULL, NOT NULL. Ako je kolona primarni ključ onda ide PRIMARY KEY, ako je spoljnji ključ FOREIGN KEY, ako ne sme da se ponovi ista vrednost više od jednom onda je UNIQUE. Za svaku kolonu se mogu navesti ograničenja pojedinačno, ali se može i na kraju tabele, nakon reči CONSTRAINT navesti ograničenja koja će da važe za celu tabelu.

U nastavku je naredba za kreiranje jedne tabele:

CREATE TABLE IF NOT EXISTS ucenik (
   redni_broj INT NOT NULL AUTO_INCREMENT, 
   Ime  VARCHAR(25) NULL, 
   Adresa VARCHAR(25) NOT NULL,
   Email VARCHAR(45) NULL,
   PRIMARY KEY (redni_broj) );


SQL ograničenja
Ograničenje Opis
PRIMARY KEY
primarni ključ u tabeli koji je jedinstven, tj. bez ponavljanja
FOREIGN KEY
spoljni ključ u tabeli koji služi za povezivanje sa drugom tabelom
NOT NULL
vrednost se prilikom unosa naredbom INSERT ne može preskočiti
UNIQUE
vrednost se ne može ponavljati, ne dozvoljava duplikate
DEFAULT
ukoliko se prilikom unosa naredbom INSERT ne unese podatak za kolonu, automatski će se uneti default vrednost
CHECK
vrste provere ( broj veći od 0, broj unetih slova, znak za email...)


U toku kreiranja tabele u bazi podataka mogu se koristiti ograničenja (gore navedena). Svrha ovih ograničenja jeste da se za određene atribute podese neka svojstva. Na primer, primarni i spoljni ključ za povezivanje tabela, default vrednost za polje, not null i unique atributi za polje i check ograničenje za proveru validnocti unosa podataka u polje

Bitno je napomenuti da se određena ograničenja mogu postaviti isključivo na nivou tabele, neka isključivo na nivou kolone, a neka na oba načina po izboru.

primer:

CREATE TABLE ucenici
  ( jmbg    VARCHAR(13) PRIMARY KEY,
    ime   VARCHAR(25) NOT NULL,
    prezime VARCHAR(25) NOT NULL,
   adresa  VARCHAR(25)   );

Da biste potvrdili kreiranje tabele :

DESCRIBE ucenici;


4. SQL naredba za brisanje tabele - DROP TABLE

Jednom naredbom je moguće izvršiti brisanje više od jedne tabele, kada se njihova imena navedu razdvojena zarezom. Deo naredbe IF EXISTS će obezbediti da tabela bude obrisana ako postoji, a ako ne postoji, da izvršavanje ove naredbe ne izazove poruku o grešci.

DROP TABLE [ IF EXISTS ] ime_tabele [, ime_tabele2] ...

Primer naredbe za brisanje tabele ucenik koja je pravljena ranije je:

  DROP TABLE ucenik;



5. Uklanjanje baze podataka

Funkcija uklanjanja baze podataka odnosi se na uklanjanje kompletne baze podataka koja je prethodno kreirana.

Ovom naredbom uklanjamo čitavu bazu podataka i sve njene resurse (tabele, atribute, tipove podataka, ograničenja, itd).

Uklanjanje baze podataka se u SQL jeziku vrši naredbom DROP DATABASE.

DROP DATABASE [ IF EXISTS ]  ime_baze;

Korišćenjem ove naredbe obrisaćemo čitavu bazu podataka koju smo na početku kreirali.

PAŽNJA: Posle izvršenja ove naredbe, baza će biti uništena i dalji rad neće biti moguć.

Ako bismo želeli da izbrišemo bazu biblioteka, potrebno je ukucati:

DROP DATABASE biblioteka;

Last modified: Thursday, 10 September 2020, 11:17 AM