SQL
- Alemannisch
- l`rby@
- Asturianu
- Az@rbaycanca
- Bahasa Indonesia
- Bahasa Melayu
- B'lgarski
- Min Nan Yu / Ban-lam-gi
- Belaruskaia
- Belaruskaia (tarashkevitsa)
- baaNlaa
- Boarisch
- Bosanski
- Brezhoneg
- Catala
- Cymraeg
- Cestina
- Dansk
- Deutsch
- Eesti
- Ellenika
- English
- Espanol
- Esperanto
- Euskara
- frsy
- Francais
- Gaeilge
- Galego
- Ke Jia Yu / Hak-ka-ngi
- `bryt
- hindii
- Hrvatski
- Hayeren
- Interlingua
- Islenska
- Italiano
- Ri Ben Yu
- k`art`uli
- K'azak'sha
- Kyrgyzcha
- hangugeo
- Kurdi
- Latina
- Latviesu
- Lietuviu
- Lombard
- Magyar
- Makedonski
- Min Dong Yu / Ming-deng-ngu
- mlyaallN
- mnmaabhaasaa
- Nederlands
- Norsk bokmal
- Norsk nynorsk
- Olyk marii
- O`zbekcha / uzbekcha
- pNjaabii
- Piemonteis
- pnjby
- Polski
- Portugues
- Romana
- Runa Simi
- Russkii
- Shqip
- Simple English
- Slovencina
- Slovenscina
- Srpskohrvatski / srpskokhrvatski
- Suomi
- Svenska
- tmilll
- Tagalog
- Tatarcha / tatarca
- Tetun
- aithy
- Tieng Viet
- Toch'iki
- Turkce
- Ukrayins'ka
- rdw
- Wu Yu
- Yoruba
- Zhong Wen
- Yue Yu
| Strukturni upitni jezik | |
|---|---|
| Originalni naziv | Structured Query Language |
| Dizajner(i) | Donald Camberlin Rejmond Bojs |
| Implementacije | Mnoge |
| Dijalekti | |
| Uticaji | Datalog |
| Uticao na | CQL, LINQ, SPARQL, SOQL, PowerShell,[1] JPQL, jOOQ, N1QL |
| Operativni sistemi | Multiplatformski |
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:
[DEFAULT <vrednost>]
[[CONSTRAINT <naziv ogranicenja>] CHECK (<ogranicenje>)] ..
- Definicija domena se menja naredbom
ALTER:
SET DEFAULT <vrednost> |
DROP DEFAULT |
ADD [CONSTRAINT <naziv ogranicenja>] CHECK (<ogranicenje>) |
DROP CONSTRAINT <naziv ogranicenja>
- Domen se unistava naredbom:
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.
ON (<naziv tabele> ( <naziv kolone1> [, <naziv kolone2>, ..]) ;
Izbacivanje se vrsi naredbom:
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
[uredi | uredi izvor]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:
Izbacivanje seme moze biti CASCADE - izbacuje semu i objekte iz nje ili RESTRICT - brisanje seme koja je prazna i ostvaruje se naredbom:
Pun naziv objekta specificira se u obliku:
Tipovi podataka
[uredi | uredi izvor]| Numericki tipovi |
|
Tekstualni tipovi |
|
Binarni tipovi |
|
Datumski tipovi |
|
Intervalni tipovi |
|
|---|
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
(<naziv kolone1> <tip podatka> NOT NULL],
<naziv kolone> <tip podatka> [NOT NULL], ..)
Globalna privremena tabela
(<naziv kolone1> <tip podatka> [ NOT NULL],
<naziv kolone> <tip podatka> [ NOT NULL], . .) ;
Kreirana lokalna privremena tabela
(<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.
- Tabela pogleda - predstavlja rezultat poziva imenovanog upita(pogleda).
Izmena definicije tabele
[uredi | uredi izvor]- Dodavanje nove kolone
[ADD COLUMN] <definicija kolone> ;
- Izmena postojece kolone
[ALTER COLUMN] <naziv kolone>
SET DEFAULT <vrednost> |
DROP DEFAULT;
- Izbacivanje kolone iz tabele
DROP [COLUMN] <naziv kolone> ;
- Dodavanje ili izbacivanje ogranicenja na vrednosti
ADD [CONSTRAINT <naziv ogranicenja> ] <ogranicenje tabele> |
DROP CONSTRAINT <naziv ogranicenja> ;
Izbacivanje tabele
[uredi | uredi izvor]- Brisanje sadrzaja tabele
- Brisanje tabele i njenog sadrzaja
Vidi jos
[uredi | uredi izvor]Reference
[uredi | uredi izvor]- ^ Paul, Ryan (24. 10. 2005). ,,A guided tour of the Microsoft Command Shell". Ars Technica. Pristupljeno 10. 4. 2011. CS1 odrzhavanje: Format datuma (veza)
- ^ 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)
- ^ ,,SQL". Britannica.com. Pristupljeno 2. 4. 2013.
- ^ ,,SQL". Oxforddictionaries.com. Arkhivirano iz originala 03. 08. 2016. g. Pristupljeno 16. 1. 2017.
- ^ ,,Structured Query Language (SQL)". Msdn.microsoft.com. 28. 2. 2023. Pristupljeno 16. 1. 2017. CS1 odrzhavanje: Format datuma (veza)
- ^ ,,Shta je baza podataka". 27. 3. 2021. CS1 odrzhavanje: Format datuma (veza)
- ^ 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]- Blagojevic V. (2006). Relacione baze podataka. ICNT Beograd. ISBN 978-86-86531-07-0.
- Gordana Pavlovitsh-Lazhetitsh, Uvod u relatsione baze podataka.
- Codd, Edgar F. (jun 1970). ,,A Relational Model of Data for Large Shared Data Banks". Communications of the ACM. 13 (6): 377--87. doi:10.1145/362384.362685. Arkhivirano iz originala 12. 6. 2007. g.
- Discussion on alleged SQL flaws (C2 wiki)
- C. J. Date with Hugh Darwen: A Guide to the SQL standard : a users guide to the standard database language SQL, 4th ed. 1997. ISBN 978-0-201-96426-4. . Addison Wesley, USA .
- SQL -- Part 1: Framework (SQL/Framework)
- ,,SQL:2011 draft". Arkhivirano na veb-sajtu Wayback Machine (31. januar 2020)
- SQL-92 draft
- Feuerstein, Steven; Pribyl, Bill (2014). Oracle PL/SQL Programming (6th izd.). O'Reilly & Associates. ISBN 978-1449324452.
- Naude, Frank (9. 6. 2005). ,,Oracle PL/SQL FAQ rev 2.08". CS1 odrzhavanje: Format datuma (veza)
- Serge Rielau (srielau@ca.ibm.com), SQL Architect, STSM, IBM. ,,DB2 10: Run Oracle applications on DB2 10 for Linux, UNIX, and Windows". Ibm.com. Pristupljeno 2012-07-26. CS1 odrzhavanje: Vishestruka imena: spisak autora (veza)
- ,,Oracle Compliance with SQL/PSM".
- ,,Oracle Server Features". Oracle. Pristupljeno 2020-09-21.
- ,,PL/SQL Anonymous Blocks". Oracle. Pristupljeno 2020-09-21.
- Nanda, Arup; Feuerstein, Steven (2005). Oracle PL/SQL for DBAs. O'Reilly Series. O'Reilly Media, Inc. str. 122,429. ISBN 978-0-596-00587-0. Pristupljeno 11. 01. 2011. ,,A pipelined table function [...] returns a result set as a collection [...] iteratively. [... A]s each row is ready to be assigned to the collection, it is 'piped out' of the function."
- Gupta, Saurabh K. (2012). ,,5: Using Advanced Interface Methods". Advanced Oracle PL/SQL Developer's Guide. Professional experience distilled (2 izd.). Birmingham: Packt Publishing Ltd (objavljeno 2016). str. 143. ISBN 9781785282522. Pristupljeno 08. 06. 2017.
- Dedic, Nedim; Stanier, Clare (2016). Hammoudi, Slimane; Maciaszek, Leszek; Missikoff, Michele M. Missikoff; Camp, Olivier; Cordeiro, Jose, ur. An Evaluation of the Challenges of Multilingualism in Data Warehouse Development. International Conference on Enterprise Information Systems, 25-28 April 2016, Rome, Italy (PDF). Proceedings of the 18th International Conference on Enterprise Information Systems (ICEIS 2016). 1. SciTePress. str. 196--206. ISBN 978-989-758-187-8. doi:10.5220/0005858401960206 . Arkhivirano (PDF) iz originala 22. 05. 2018. g.
- ,,9 Reasons Data Warehouse Projects Fail". blog.rjmetrics.com. 4. 12. 2014. Pristupljeno 2017-04-30.
- ,,Exploring Data Warehouses and Data Quality". spotlessdata.com. Arkhivirano iz originala 2018-07-26. g. Pristupljeno 2017-04-30.
- ,,What is a Data Warehouse? | Key Concepts | Amazon Web Services". Amazon Web Services, Inc. (na jeziku: engleski). Pristupljeno 13. 02. 2023.
- Davenport, Thomas H. and Harris, Jeanne G (2007). Competing on Analytics: The New Science of Winning. Harvard Business School Press. ISBN 978-1-4221-0332-6. CS1 odrzhavanje: Vishestruka imena: spisak autora (veza).
- Ganczarski, Joe (2009). Data Warehouse Implementations: Critical Implementation Factors Study. ISBN 978-3-639-18589-8. . VDM Verlag
- Kimball, Ralph and Ross, Margy (2013). The Data Warehouse Toolkit. ISBN 978-1-118-53080-1. CS1 odrzhavanje: Vishestruka imena: spisak autora (veza). Third Edition Wiley.
- Linstedt, Graziano, Hultgren (2010). The Business of Data Vault Modeling. ISBN 978-1-4357-1914-9. CS1 odrzhavanje: Vishestruka imena: spisak autora (veza). Second Edition Dan linstedt.
- William Inmon (2005). Building the Data Warehouse. New York: John Wiley & Sons. ISBN 978-81-265-0645-3. .
Spoljasnje veze
[uredi | uredi izvor]Mediji vezani za chlanak SQL na Vikimedijinoj ostavi
- w3schools tutorijali
- SQL za pocetnike
- SQL zvanicni sajt
- SQL Server Microsoft
- Oracle SQL Developer
- SQL vezbe
- MySQL upitni jezik
- 1995 SQL Reunion: People, Projects, and Politics, by Paul McJones (ed.): transcript of a reunion meeting devoted to the personal history of relational databases and SQL.
- American National Standards Institute. X3H2 Records, 1978-1995 Charles Babbage Institute Collection documents the H2 committee's development of the NDL and SQL standards.
- Oral history interview with Donald D. Chamberlin Charles Babbage Institute In this oral history Chamberlin recounts his early life, his education at Harvey Mudd College and Stanford University, and his work on relational database technology. Chamberlin was a member of the System R research team and, with Raymond F. Boyce, developed the SQL database language. Chamberlin also briefly discusses his more recent research on XML query languages.
- Comparison of Different SQL Implementations This comparison of various SQL implementations is intended to serve as a guide to those interested in porting SQL code between various RDBMS products, and includes comparisons between SQL:2008, PostgreSQL, DB2, MS SQL Server, MySQL, Oracle, and Informix.
- ,,Event stream processing with SQL". Arkhivirano iz originala 6. 7. 2014. g. CS1 odrzhavanje: Format datuma (veza) - An introduction to real-time processing of streaming data with continuous SQL queries
- BNF Grammar for ISO/IEC 9075:2003, part 2 SQL/Framework