Dark Mode

Predji na sadrzhaj

SQL

S Vikipedije, slobodne entsiklopedije


Strukturni upitni jezik
Originalni nazivStructured Query Language
Dizajner(i)Donald Camberlin
Rejmond Bojs
ImplementacijeMnoge
Dijalekti
UticajiDatalog
Uticao naCQL, LINQ, SPARQL, SOQL, PowerShell,[1] JPQL, jOOQ, N1QL
Operativni sistemiMultiplatformski

SQL (engl. Structured Query Language) je relacioni upitni jezik (ANSI i ISO standard).[2][3][4][5] Relacije se kreiraju jednom naredbom i odmah su dostupne, sto ga cini jednostavnim za koriscenje. Uniforman je, jer se svi podaci i rezultati operacija prikazuju u vidu tabele i omogucava interaktivno i klasicno programiranje. Sve do verzije SQL:1999 ovaj jezik je bio neproceduralan, odnosno njime se specificiralo STA, a ne i KAKO nesto treba uraditi.[6]

Istorijat

[uredi | uredi izvor]

Tvorac SQL-a je Donald Camberlin, a nastao je u IBM-ovoj istrazivackoj laboratoriji (engl. IBM Research Laboratory) 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 pocetku zvao SEQUEL (engl. Structured English Query Language) i predstavljao je programski interfejs (API) za System R, prototipski sistem za upravljanje bazom podataka (SUBP) koji se razvijao kao deo istrazivackog projekta pod istim nazivom.

Pojava komercijalnih relacionih sistema uvecala je znacaj i ubrzala proces standardizacije relacionog upitnog jezika. Prva etapa tog procesa zavrsila se 1986. godine usvajanjem SQL-a kao standardnog relacionog upitnog jezika. Ta prva verzija SQL standarda je poznata pod nazivom SQL-86. Njom su standardizovane osnovne karakteristike SQL-a kao deklarativnog relacionog upitnog jezika. Medutim, 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 ocuvanje integriteta baze podataka i povezivanje sa klasicnim programskim jezicima. Ta verzija SQL standarda poznata je pod nazivom SQL-89. 1992. godine usvojena je sledeca bitna revizija standarda, poznata pod nazivom SQL-92 ili SQL-2, kojom je SQL zaokruzen kao programski jezik, a obim standarda uvecan sest puta u odnosu na polaznu verziju. Naredna verzija SQL standarda usvojena je 1999. godine.[7]

SQL:1999

[uredi | uredi izvor]

Iako su pocetne verzije SQL-a bile prilicno jednostavne, bliske korisniku i u velikoj meri deklarativne za SQL:1999 se moze reci da je kompleksan, proceduralno/deklarativan jezik. U njega su ukljuceni koncepti objektne tehnologije, mehanizam trigera, rekurzija i proceduralna prosirenja. Da bi se povecala funkcionalnost jezika, u SQL:1999 standardu uvedena je proceduralna nadgradnja SQL-a, koju uglavnom cine upravljacke strukture slicne upravljackim strukturama klasicnih programskih jezika. SQL-1999 standard definise vise nacina koriscenja SQL-a. Dva osnovna nacina su direktno (interaktivno) koriscenje SQL-a i povezivanje SQL-a sa klasicnim programskim jezicima (,,ugradeni" SQL).[7]

SQL naredbe

[uredi | uredi izvor]

SQL-1999 standard razvrstava SQL naredbe u sledecih 7 kategorija:

  • Naredbe za semu baze podataka (engl. SQL-schema statements) - za kreiranje, izmenu i izbacivanje sema i objekata sema (CREATE, ALTER, DROP)
  • Naredbe za podatke (engl. SQL-data statements) - za prikaz i azuriranje podataka baze (SELECT, INSERT, UPDATE, DELETE)
  • Naredbe za transakcije (engl. SQL-transaction statements) - za startovanje, zavrsavanje i postavljanje parametara za transakcije (COMMIT, ROLLBACK)
  • Naredbe za kontrolu (engl. SQL-contol statements), koje se koriste za kontrolu izvrsavanja sekvence SQL naredbi (CALL, RETURN)
  • Naredbe za konekcije (engl. SQL-connection statements) - za uspostavljanje i prekidanje SQL konekcije (CONNECT, DISCONNECT)
  • Naredbe za sesije (engl. SQL-session statements) - za postavljanje default vrednosti i drugih parametara SQL sesije (SET)
  • Naredbe za dijagnostiku (engl. SQL-diagnostic statements) - signalizuju izuzetke u SQL rutinama (GET DIAGNOSTIC)

Struktura SQL

[uredi | uredi izvor]

Domeni

[uredi | uredi izvor]

Domen je u SQL-u prost, korisnicki definisan imenovan objekat koji se moze koristiti kao alternativa za predefinisan tip podatka nad kojim se definise. Moze imati default vrednost i jedno ili vise ogranicenja.

  • Domen se kreira naredbom:
CREATE DOMAIN <naziv domena> [AS] <predefinisani tip>
[DEFAULT <vrednost>]
[[CONSTRAINT <naziv ogranicenja>] CHECK (<ogranicenje>)] ..
  • Definicija domena se menja naredbom ALTER :
ALTER DOMAIN <naziv domena>
SET DEFAULT <vrednost> |
DROP DEFAULT |
ADD [CONSTRAINT <naziv ogranicenja>] CHECK (<ogranicenje>) |
DROP CONSTRAINT <naziv ogranicenja>
  • Domen se unistava naredbom:
DROP DOMAIN <naziv domena>

Indeksi

[uredi | uredi izvor]

Indeksi su strukture podataka koje olaksavaju i cine efikasnijim pristup podacima baze. Vrednosti indeksiranih kolona mogu biti jedinstvene (primarni kljuc) ukoliko se pri kreiranju izabere varijanta UNIQUE.

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

Izbacivanje se vrsi naredbom:

DROP INDEX <naziv indeksa>

Katalog

[uredi | uredi izvor]

Katalog je imenovana kolekcija sema baze podataka u SQL-u. Svaki katalog sadrzi semu recnika podataka sa nazivom INFORMATION SCHEMA. U SQL-u ne postoji mogucnost kreiranja i brisanja kataloga.

Sema predstavlja kolekciju svih objekata koji dele isti prostor imenovanja. Sema moze sadrzati jednu ili vise tabela, a svaka tabela moze pripadati logicki tacno jednoj semi. Sema se kreira naredbom:

CREATE SHEMA <naziv seme>

Izbacivanje seme moze biti CASCADE - izbacuje semu i objekte iz nje ili RESTRICT - brisanje seme koja je prazna i ostvaruje se naredbom:

DROP SHEMA <naziv seme> CASCADE | RESTRICT

Pun naziv objekta specificira se u obliku:

<naziv kataloga>, <naziv seme>, <naziv objekta>

Tipovi podataka

[uredi | uredi izvor]
Numericki tipovi
Tacni
INTEGER (INT)
SMALLINT
NUMERIC
DECIMAL (DEC)
Priblizni
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

[uredi | uredi izvor]
Kreiranje tabela
[uredi | uredi izvor]

Podaci se u SQL-u cuvaju se i prikazuju u obliku tabela. Svaka kolona tabele ima ime i tip podatka ili domen. Red je najmanja jedinica podatka koja se moze uneti u tabelu ili izbrisati iz nje.

U SQL-u koriste se:

  • Bazna tabela - vrsta tabele za cuvanje svih SQL podataka. Moze 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 izvrsavanja upita.
Izmena definicije tabele
[uredi | uredi izvor]
  • Dodavanje nove kolone
ALTER TABLE <naziv tabele>
[ADD COLUMN] <definicija kolone> ;
  • Izmena postojece 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 ogranicenja na vrednosti
ALTER TABLE <naziv tabele>
ADD [CONSTRAINT <naziv ogranicenja> ] <ogranicenje tabele> |
DROP CONSTRAINT <naziv ogranicenja> ;
Izbacivanje tabele
[uredi | uredi izvor]
  • Brisanje sadrzaja tabele
DELETE TABLE <naziv tabele>;
  • Brisanje tabele i njenog sadrzaja
DROP TABLE <naziv tabele>;

Vidi jos

[uredi | uredi izvor]

Reference

[uredi | uredi izvor]
  1. ^ Paul, Ryan (24. 10. 2005). ,,A guided tour of the Microsoft Command Shell". Ars Technica. Pristupljeno 10. 4. 2011. CS1 odrzhavanje: Format datuma (veza)
  2. ^ Beaulieu, Alan (april 2009). Mary E. Treseler, ur. Learning SQL (2nd izd.). Sebastapol, CA, USA: O'Reilly. ISBN 978-0-596-52083-0. CS1 odrzhavanje: Format datuma (veza)
  3. ^ ,,SQL". Britannica.com. Pristupljeno 2. 4. 2013.
  4. ^ ,,SQL". Oxforddictionaries.com. Arkhivirano iz originala 03. 08. 2016. g. Pristupljeno 16. 1. 2017.
  5. ^ ,,Structured Query Language (SQL)". Msdn.microsoft.com. 28. 2. 2023. Pristupljeno 16. 1. 2017. CS1 odrzhavanje: Format datuma (veza)
  6. ^ ,,Shta je baza podataka". 27. 3. 2021. CS1 odrzhavanje: Format datuma (veza)
  7. ^ a b Lazarevic B., Marjanovic Z., Ancic N., Babarogic S., Baze podataka. 2010. ISBN 978-86-7680-144-2. . Fakultet organizacionih nauka, Beograd.

Literatura

[uredi | uredi izvor]

Spoljasnje veze

[uredi | uredi izvor]

Mediji vezani za chlanak SQL na Vikimedijinoj ostavi

SQL na srodnim projektima Vikipedije:
Mediji na Ostavi
Podaci na Vikipodacima