SQL

From Wikipedia, the free encyclopedia

(engl. ) je relacioni upitni jezik ( i standard).[2][3][4][5] Relacije se kreiraju jednom naredbom i odmah su dostupne, što ga čini jednostavnim za korišćenje. Uniforman je, jer se svi podaci i rezultati operacija prikazuju u vidu tabele i omogućava interaktivno i klasično programiranje. Sve do verzije ovaj jezik je bio neproceduralan, odnosno njime se specificiralo ŠTA, a ne i KAKO nešto treba uraditi.[6]

Укратко Strukturni upitni jezik, Originalni naziv ...
Strukturni upitni jezik
Thumb
Originalni naziv
Dizajner(i)Donald Čamberlin
Rejmond Bojs
ImplementacijeMnoge
Dijalekti
Uticaji
Uticao na
Operativni sistemiMultiplatformski
Затвори

Istorijat

Tvorac -a je Donald Čamberlin, a nastao je u -ovoj istraživačkoj laboratoriji (енгл. ) u San Hozeu, Kalifornija 1974. godine, dakle na istom mestu gde je E. F. Kod 1970. definisao osnovne koncepte relacionog modela podataka. Jezik se u početku zvao (engl. ) i predstavljao je programski interfejs () za , prototipski sistem za upravljanje bazom podataka () koji se razvijao kao deo istraživačkog projekta pod istim nazivom.

Pojava komercijalnih relacionih sistema uvećala je značaj i ubrzala proces standardizacije relacionog upitnog jezika. Prva etapa tog procesa završila se 1986. godine usvajanjem -a kao standardnog relacionog upitnog jezika. Ta prva verzija standarda je poznata pod nazivom . Njom su standardizovane osnovne karakteristike -a kao deklarativnog relacionog upitnog jezika. Međutim, mnoge bitne karakteristike jezika ostale su nestandardizovane. To je dovelo do revizija standarda, koji je usvojen 1989. godine i kojom su standardizovane karakteristike koje se odnose na očuvanje integriteta baze podataka i povezivanje sa klasičnim programskim jezicima. Ta verzija standarda poznata je pod nazivom . 1992. godine usvojena je sledeća bitna revizija standarda, poznata pod nazivom ili , kojom je zaokružen kao programski jezik, a obim standarda uvećan šest puta u odnosu na polaznu verziju. Naredna verzija standarda usvojena je . godine.[7]

Iako su početne verzije -a bile prilično jednostavne, bliske korisniku i u velikoj meri deklarativne za se može reći da je kompleksan, proceduralno/deklarativan jezik. U njega su uključeni koncepti objektne tehnologije, mehanizam trigera, rekurzija i proceduralna proširenja. Da bi se povećala funkcionalnost jezika, u standardu uvedena je proceduralna nadgradnja -a, koju uglavnom čine upravljačke strukture slične upravljačkim strukturama klasičnih programskih jezika. standard definiše više načina korišćenja -a. Dva osnovna načina su direktno (interaktivno) korišćenje -a i povezivanje -a sa klasičnim programskim jezicima („ugrađeni“ ).[7]

naredbe

standard razvrstava naredbe u sledećih 7 kategorija:

  • Naredbe za šemu baze podataka (енгл. ) - za kreiranje, izmenu i izbacivanje šema i objekata šema ()
  • Naredbe za podatke (енгл. ) - za prikaz i ažuriranje podataka baze ()
  • Naredbe za transakcije (енгл. ) - za startovanje, završavanje i postavljanje parametara za transakcije ()
  • Naredbe za kontrolu (енгл. ), koje se koriste za kontrolu izvršavanja sekvence naredbi ()
  • Naredbe za konekcije (енгл. ) - za uspostavljanje i prekidanje konekcije ()
  • Naredbe za sesije (енгл. ) - za postavljanje default vrednosti i drugih parametara sesije ()
  • Naredbe za dijagnostiku (енгл. ) - signalizuju izuzetke u rutinama ()

Struktura

Domeni

Domen je u -u prost, korisnički definisan imenovan objekat koji se može koristiti kao alternativa za predefinisan tip podatka nad kojim se definiše. Može imati vrednost i jedno ili više ograničenja.

  • Domen se kreira naredbom:
CREATE DOMAIN <naziv domena> [AS] <predefinisani tip>
[DEFAULT <vrednost>]
[[CONSTRAINT <naziv ograničenja>] CHECK (<ograničenje>)] ..
  • Definicija domena se menja naredbom ALTER :
ALTER DOMAIN <naziv domena>
SET DEFAULT <vrednost> |
DROP DEFAULT |
ADD [CONSTRAINT <naziv ograničenja>] CHECK (<ograničenje>) |
DROP CONSTRAINT <naziv ograničenja>
  • Domen se uništava naredbom:
 DROP DOMAIN <naziv domena>

Indeksi

Indeksi su strukture podataka koje olakšavaju i čine efikasnijim pristup podacima baze. Vrednosti indeksiranih kolona mogu biti jedinstvene (primarni ključ) ukoliko se pri kreiranju izabere varijanta .

CREATE [UNIQUE] INDEX <naziv indeksa>
 ON  (<naziv tabele> ( <naziv kolone1> [, <naziv kolone2>, ..]) ;

Izbacivanje se vrši naredbom:

DROP INDEX <naziv indeksa>

Katalog

Katalog je imenovana kolekcija šema baze podataka u . Svaki katalog sadrži šemu rečnika podataka sa nazivom INFORMATION SCHEMA. U –u ne postoji mogućnost kreiranja i brisanja kataloga.

Šema

Šema predstavlja kolekciju svih objekata koji dele isti prostor imenovanja. Šema može sadržati jednu ili više tabela, a svaka tabela može pripadati logički tačno jednoj šemi. Šema se kreira naredbom:

 CREATE SHEMA <naziv šeme>

Izbacivanje šeme može biti CASCADE - izbacuje šemu i objekte iz nje ili RESTRICT - brisanje šeme koja je prazna i ostvaruje se naredbom:

DROP SHEMA <naziv šeme> CASCADE | RESTRICT

Pun naziv objekta specificira se u obliku:

<naziv kataloga>, <naziv šeme>, <naziv objekta>

Tipovi podataka

Више информација Numerički tipovi, Tekstualni tipovi ...
Numerički tipovi
Tačni
INTEGER (INT)
SMALLINT
NUMERIC
DECIMAL (DEC)
Približni
REAL
DOUBLE PRECISION
FLOAT
Tekstualni tipovi
CHARACTER (CHAR)
CHARACTER VARYING
(CHAR VARING, VARCHAR)

CHARACTER LARGE OBJECT(CHAR LARGE OBJECT, CLOB)
Binarni tipovi
BIT
BIT VARYING
BINARY LARGE OBJECT
(BLOB)
Datumski tipovi
DATE
TIME
TIMESTAMP
TIME WITH TIMEZONE
TIMESTAMP WITH TIME ZONE
Intervalni tipovi
Godina-mesec
INTERVAL YEAR
INTERVAL MONTH
INTERVAL YEAR TO MONTH
Dan-vreme(neki iz grupe)
INTERVAL DAY
INTERVAL DAY TO HOUR
INTERVAL HOUR TO MINUTE
Затвори

Tabele

Kreiranje tabela

Podaci se u čuvaju se i prikazuju u obliku tabela. Svaka kolona tabele ima ime i tip podatka ili domen. Red je najmanja jedinica podatka koja se može uneti u tabelu ili izbrisati iz nje.

U koriste se:

  • Bazna tabela - vrsta tabele za čuvanje svih podataka. Može biti:

Perzistentna tabela

CREATE TABLE <naziv tabele>
(<naziv kolone1> <tip podatka> NOT NULL],
<naziv kolone> <tip podatka> [NOT NULL], ..)

Globalna privremena tabela

 CREATE GLOBAL TEMPORARY TABLE  <naziv tabele>
(<naziv kolone1> <tip podatka> [ NOT NULL],
<naziv kolone> <tip podatka> [ NOT NULL], . .) ;

Kreirana lokalna privremena tabela

 CREATE LOCAL TEMPORARY TABLE  <naziv tabele>
(<naziv kolone1> <tip podatka> [ NOT NULL],
<naziv kolone> <tip podatka> [ NOT NULL], . .) ;

Deklarisana lokalna privremena tabela

 
 DECLARE LOCAL TEMPORARY TABLE MODULE  <naziv tabele>
(<naziv kolone1> <tip podatka> [NOT NULL],
<naziv kolone> <tip podatka> [ NOT NULL], . .) ;
  • Izvedena tabela - predstavlja rezultat izvršavanja upita.
  • Tabela pogleda – predstavlja rezultat poziva imenovanog upita(pogleda).
Izmena definicije tabele
  • Dodavanje nove kolone
ALTER TABLE <naziv tabele>
[ADD COLUMN] <definicija kolone> ;
  • Izmena postojeće kolone
ALTER TABLE <naziv tabele>
[ALTER COLUMN] <naziv kolone>
SET DEFAULT <vrednost> |
DROP DEFAULT;
  • Izbacivanje kolone iz tabele
ALTER TABLE <naziv tabele>
DROP [COLUMN] <naziv kolone> ;
  • Dodavanje ili izbacivanje ograničenja na vrednosti
ALTER TABLE <naziv tabele>
ADD [CONSTRAINT <naziv ograničenja> ] <ograničenje tabele> |
DROP CONSTRAINT <naziv ograničenja> ;
Izbacivanje tabele
  • Brisanje sadržaja tabele
DELETE TABLE <naziv tabele>;
  • Brisanje tabele i njenog sadržaja
DROP TABLE <naziv tabele>;

Vidi još

Reference

Literatura

Spoljašnje veze

Wikiwand - on

Seamless Wikipedia browsing. On steroids.