SQL Tutorial

18
1. Osnove SQL-a SQL je standardni jezik za pristupanje bazama podataka.Naš SQL tutorial će vas naučiti kako koristiti SQL pristup i manipulirati podacima u:MySQL, SQL Server, Access, Oracle, Sybase, DB2 i druge baze podataka. SQL Syntax SELECT Company, Country FROM Customers WHERE Country <> 'USA' SQL Result Company Country Island Trading UK Galería del gastrónomo Spain Laughing Bacchus Wine Cellars Canada Paris spécialités France Simons bistro Denmark Wolski Zajazd Poland 1.1. Uvod u SQL Šta je SQL ? SQL je kratica za strukturirani jezik upita SQL omogućuje pristup i manipulaciju bazama podataka SQL je ANSI (American National Standards Institute ) standard Što mogu učiniti SQL ? Može izvršiti SQL upite nad bazom podataka SQL može dohvatiti podatke iz baze podataka SQL možete umetnuti zapise u bazi podataka SQL možete ažurirati zapise u bazi podataka SQL možete izbrisati zapise iz baze podataka SQL možete kreirati nove baze podataka

Transcript of SQL Tutorial

Page 1: SQL Tutorial

1.Osnove SQL-aSQL je standardni jezik za pristupanje bazama podataka.Naš SQL tutorial će vas naučiti kako koristiti SQL pristup i manipulirati podacima u:MySQL, SQL Server, Access, Oracle, Sybase, DB2 i druge baze podataka.

SQL SyntaxSELECT Company, Country FROM Customers WHERE Country <> 'USA'

SQL Result

Company CountryIsland Trading UKGalería del gastrónomo SpainLaughing Bacchus Wine Cellars CanadaParis spécialités FranceSimons bistro DenmarkWolski Zajazd Poland

1.1. Uvod u SQLŠta je   SQL ?

SQL je kratica za strukturirani jezik upitaSQL omogućuje pristup i manipulaciju bazama podatakaSQL je ANSI (American National Standards Institute) standard

Što mogu   učiniti   SQL ?

Može izvršiti SQL upite nad bazom podatakaSQL može dohvatiti podatke iz baze podatakaSQL možete umetnuti zapise u bazi podatakaSQL možete ažurirati zapise u bazi podatakaSQL možete izbrisati zapise iz baze podatakaSQL možete kreirati nove baze podatakaSQL može stvoriti nove tablice u bazi podatakaSQL može stvoriti pohranjene procedure u bazu podatakaSQL možete stvoriti pogled u bazu podatakaSQL možete postaviti dozvole na stolovima, procedura i pogleda

SQL je   standard -   ALI   ....

Page 2: SQL Tutorial

Iako SQL je ANSI (American National Standards Institute) standardu, postoje mnoge različite verzije SQL jeziku.Međutim, da bi u skladu s ANSI standardu, oni podržavaju barem glavne naredbe(kao što je SELECT, ažuriranje, brisanje, INSERT, gdje) na sličan način.Napomena: Većina SQL baze podataka programa također svoje vlastitevlasničke ekstenzije u Osim SQL standardu!

Korištenje   SQL   u vašoj   web stranici

Za izgradnju web stranicu koja prikazuje neke podatke iz baze podataka, trebat će vam sljedeće:

-Program RDBMS baze podataka (npr. MS Access, SQL Server, MySQL)- Server-side skriptni jezik, kao što su PHP ili ASP- SQL- HTML / CSS

RDBMS

RDBMS Relational zalaže za sustav upravljanja bazom podataka.RDBMS je osnova za SQL, i za sve moderne baze podataka kao što su MS SQL Server, IBM DB2, Oracle, MySQL, i Microsoft Access.Podaci u RDBMS su pohranjeni u objekte baze podataka pod nazivom  tablice.Tablica je skup povezanih unosa podataka  i sastoji se od stupaca i redaka.

1.2. Sintaksa SQL

Baza podataka najčešće sadrži jednu ili više tablica. Svaka tablica je identificirana po imenu (npr. "Kupci" ili "Narudžbe"). Tablice sadrže zapise (retke) s podacima.

Ispod je primjer stol pod nazivom "Persons":

P_Id LastName FirstName Address City1 Hansen Ola Timoteivn 10 Sandnes2 Svendson Tove Borgvn 23 Sandnes3 Pettersen Kari Storgt 20 Stavanger

Gornja tabela sadrži tri zapisa (po jedan za svaku osobu) i pet stupaca (P_Id, Prezime, Ime, Adresa i Grad).

Page 3: SQL Tutorial

SQL izrazi

Većina radnji koje je potrebno izvršiti na bazi podataka su učinili s SQL.Sledeći SQL odabrat će sve zapise u tablici "Osobe":

SELECT * FROM Persons

U ovom tutorialu ćemo naučiti sve o različitim SQL naredbi.

Imajte na umu da ...SQL nije velika i mala slova

Točka-zarez nakon SQL?

Neki sustavi baza podataka zahtijeva zarez na kraju svakog SQL naredbe.Točka-zarez je standardni način za odvajanje svaki SQL baze podataka u sustavima koji omogućuju više od jednog SQL treba izvršiti u istom pozivu na poslužitelju.Mi koristimo MS Access i SQL Server 2000, a mi ne moramo staviti zarez nakon svakog SQL, ali neki programi baze podataka prisiljavaju nas da ga koristimo.

SQL DML i DDL

SQL može biti podijeljen u dva dijela: jezik za upravljanje podatcima (DML) i jezik definiranja podataka (DDL).Upiti i ažuriranje DML naredbe sa SQL:SELECT - dohvaća podatke iz baze podatakaUPDATE - ažurira podatke u bazi podatakaDELETE - briše podatke iz baze podatakaINSERT INTO - umetanje novih podataka u bazu podataka

DDL dio SQL dozvoljava tablica baze podataka kako bi se stvorio ili izbrisao.Također definira pokazatelje (tipke), navodi veze između tablica, te nameće ograničenja između tablica. 

Najvažniji DDL izvješća u SQL su:CREATE DATABASE - stvara novu bazu podatakaALTER DATABASE - modificira bazu podatakaCREATE TABLE - stvara novu tablicuALTER TABLE - modificira tablicuDROP TABLE - briše stolCREATE INDEX - stvara indeks (traži ključ)DROP INDEX - briše index

1.3. SQL SELECT

Page 4: SQL Tutorial

Naredba SELECT se koristi za odabir podataka iz baze podataka.Rezultat se pohranjuje u tablicu rezultata, zove rezultat-set.

Sintaksa SQL SELECT

SELECT column_name(s)FROM table_name

I

SELECT * FROM table_name

Napomena: SQL nema velika i mala slova. SELECT je isti kao i odabir.

Primjer   SQL SELECT

Sada želimo da odabrati sve stupce iz tablice "Persons".Mi koristimo sljedeće SELECT izjavu

LastName FirstNameHansen OlaSvendson TovePettersen Kari

Sada želimo odabrati sadržaj stupaca pod nazivom "Prezime" i "Ime" iz gornje tablice.Mi koristimo sljedeće SELECT izjavu:

SELECT LastName,FirstName FROM Persons

Rezultat-set će izgledati ovako:

LastName FirstNameHansen OlaSvendson TovePettersen Kari

SELECT   *   Primjer

Sada želimo da biste odabrali sve stupce iz tablice "Persons".Mi koristimo sljedeće SELECT izjavu:SELECT * FROM Persons

Savjet: Zvjezdica (*) je brz način odabira stupaca sve!

Page 5: SQL Tutorial

Rezultat-set će izgledati ovako:

P_Id LastName FirstName Address City1 Hansen Ola Timoteivn 10 Sandnes2 Svendson Tove Borgvn 23 Sandnes3 Pettersen Kari Storgt 20 Stavanger

Orjentacija u rezultat-set-u

Većini softvera za baze podataka sustavi omogućuju plovidbu u rezultat-set s programskim funkcijama, kao što su: Move-na-prvi-Zapisnik, Get-Zapis-sadržaja, pokreta-to-Next-Record, itd.

1.4. SQL SELECT DISTINCT

U tablici, neki od stupaca mogu sadržavati duplicirane vrijednosti. To nije problem,međutim, ponekad ćete želiti popis samo drugačijih(različita) vrijednosti u tablici.Distinct ključna riječ se može koristiti da se vrati samo različita (različit)vrijednosti.

SQL SELECT DISTINCT Sintaksa

SELECT DISTINCT column_name(s)FROM table_name

SELECT DISTINCT Primjer

Tabela”Persons”:

P_Id LastName FirstName Address City1 Hansen Ola Timoteivn 10 Sandnes2 Svendson Tove Borgvn 23 Sandnes3 Pettersen Kari Storgt 20 Stavanger

Sada želimo odabrati samo različite vrijednosti iz kolone pod nazivom "City" iz gornje tablice.

Mi koristimo sljedeću SELECT izjavu:

SELECT DISTINCT City FROM Persons

Page 6: SQL Tutorial

Rezultat-set će izgledati ovako:

1.5. SQL WHERE Clause

WHERE se koristi za izdvajanje samo onih zapisa koji zadovoljavaju određeni kriterijum.

Sintaksa SQL WHERE

SELECT column_name(s)FROM table_nameWHERE column_name operator value

WHERE Primjer

Tabela"Persons":

P_Id LastName FirstName Address City1 Hansen Ola Timoteivn 10 Sandnes2 Svendson Tove Borgvn 23 Sandnes3 Pettersen Kari Storgt 20 Stavanger

Sada želimo odabrati samo one osobe koje žive u gradu "Sandnes" iz gornje tablice.

Mi koristimo sljedeće SELECT izjavu:

SELECT * FROM PersonsWHERE City='Sandnes'

Rezultat-set će izgledati ovako:

P_Id LastName FirstName Address City

CitySandnesStavanger

Page 7: SQL Tutorial

1 Hansen Ola Timoteivn 10 Sandnes2 Svendson Tove Borgvn 23 Sandnes

Citati   oko   tekstualnih polja

SQL  koristi jednostruke navodnike oko tekstualne vrijednosti (većina baza podataka također će prihvatiti dvostruke navodnike).Međutim, numeričke vrijednosti ne bi trebale biti zatvorene u navodnike.Za tekstualne vrijednosti:

This is correct:SELECT * FROM Persons WHERE FirstName='Tove'This is wrong:SELECT * FROM Persons WHERE FirstName=Tove

Za numeričke vrijednosti:

This is correct:SELECT * FROM Persons WHERE Year=1965This is wrong:SELECT * FROM Persons WHERE Year='1965'

Dozvoljeni operateri   u   WHERE Uz WHERE, mogu se koristiti sljedeći operatora :

Operator Description= Equal<> Not equal> Greater than< Less than>= Greater than or equal<= Less than or equalBETWEEN Between an inclusive rangeLIKE Search for a patternIN To specify multiple possible values for a column

Napomena: U nekim verzijama SQL <> Operator može biti napisan kao !=

1.6. SQL AND & OR Operators

Page 8: SQL Tutorial

AND & OR operatori se koriste za filtriranje zapisa temelji se na više od jednog  uvjeta.

AND & OR operatori

Operator AND prikazuje rekord ako i prvi uvjet, a drugi je uvjet true.Operator OR prikazuje evidenciju ako je bilo prvi uvjet ili drugi uvjet istinit.

AND   primjer operatera:  

Tabela "Persons":

P_Id LastName FirstName Address City1 Hansen Ola Timoteivn 10 Sandnes2 Svendson Tove Borgvn 23 Sandnes3 Pettersen Kari Storgt 20 Stavanger

Sada želimo odabrati samo one osobe s imenom jednakim "Tove" i prezime jednak im"Svendson":Mi koristimo sljedeće SELECT izjavu:

SELECT * FROM PersonsWHERE FirstName='Tove'AND LastName='Svendson'

Rezultat-set će izgledati ovako:

P_Id LastName FirstName Address City2 Svendson Tove Borgvn 23 Sandnes

Primjer OR   Operatora

Sada želimo odabrati samo one osobe s imenom jednakim "Tove" ili imenom jednakim"Ola":Mi koristimo sljedeće SELECT izjavu:

SELECT * FROM PersonsWHERE FirstName='Tove'OR FirstName='Ola'

Rezultat-set će izgledati ovako:

Page 9: SQL Tutorial

P_Id LastName FirstName Address City1 Hansen Ola Timoteivn 10 Sandnes2 Svendson Tove Borgvn 23 Sandnes

Kombinovanje AND & OR  

Također možete kombinirati AND i OR (koristite zagrade za formiranje složenih izraza).Sada želimo odabrati samo one osobe s prezimenom jednakim "Svendson" i prvi naziv jednak "Tove" ili "Ola":Mi koristimo sljedeće SELECT izjavu:

SELECT * FROM Persons WHERELastName='Svendson'AND (FirstName='Tove' OR FirstName='Ola')

Rezultat-set će izgledati ovako:

P_Id LastName FirstName Address City2 Svendson Tove Borgvn 23 Sandnes

1.7. SQL ORDER BY Keyword

ORDER BY ključnu riječ se koristi za sortiranje rezultat-set.

ORDER BY   ključna riječ

ORDER BY ključnu riječ se koristi za sortiranje rezultat-set po određenom stupcu.ORDER BY ključnih riječi vrste zapisa sortira u rastućem redoslijedu po defaultu.Ako želite sortirati zapise u silaznom redu, možete koristiti ključnu riječ DESC.

SQL   ORDER BY   Sintaksa

SELECT column_name(s)FROM table_nameORDER BY column_name(s) ASC|DESC

ORDER BY primjer:

Page 10: SQL Tutorial

Tabela”Persons”:

P_Id LastName FirstName Address City1 Hansen Ola Timoteivn 10 Sandnes4 Nilsen Tom Vingvn 23 Stavanger3 Pettersen Kari Storgt 20 Stavanger2 Svendson Tove Borgvn 23 Sandnes

ORDER BY DESC primjer:

Sada želimo odabrati sve osobe iz gornje tablice, međutim, želimo sortirati osobe silazno po svojim prezimenima.

Mi koristimo sljedeće SELECT izjavu:

SELECT * FROM PersonsORDER BY LastName DESC

Rezultat-set će izgledati ovako:

P_Id LastName FirstName Address City2 Svendson Tove Borgvn 23 Sandnes3 Pettersen Kari Storgt 20 Stavanger4 Nilsen Tom Vingvn 23 Stavanger1 Hansen Ola Timoteivn 10 Sandnes

1.8. SQL INSERT INTO

INSERT INTO iskaz se koristi za unos novih zapisa u tabeli..

INSERT INTO   izjave

INSERT INTO iskaz se koristi da biste umetnuli novi redak u tablici.

SQL   INSERT INTO   Syntax

Page 11: SQL Tutorial

Moguće je napisati INSERT INTO izjave u dva oblika.Prvi oblik ne određuje nazive stupaca u kojima će se podaci uneseni, samo njihove vrijednosti:

INSERT INTO table_nameVALUES (value1, value2, value3,...)

Drugi oblik navodi u oba stupca imena i vrijednosti koja se unosi:

INSERT INTO table_name (column1, column2, column3,...)VALUES (value1, value2, value3,...)

SQL INSERT INTO primjer

P_Id LastName FirstName Address City1 Hansen Ola Timoteivn 10 Sandnes2 Svendson Tove Borgvn 23 Sandnes3 Pettersen Kari Storgt 20 Stavanger

Sada želimo umetnuti novi redak u tabelu "Persons".Mi koristimo sljedeći SQL izraz:

INSERT INTO PersonsVALUES (4,'Nilsen', 'Johan', 'Bakken 2', 'Stavanger')

Persons" tablica će sada izgledati ovako:

P_Id LastName FirstName Address City1 Hansen Ola Timoteivn 10 Sandnes2 Svendson Tove Borgvn 23 Sandnes3 Pettersen Kari Storgt 20 Stavanger4 Nilsen Johan Bakken 2 Stavanger

Umetanje   podataka samo   u određenim   stupcima

Također je moguće samo dodavanje podataka u određenim stupcima.Sljedeći SQL će dodati novi redak, ali samo dodati podatke u "P_Id", "Prezime" i "Ime" Stupci:

INSERT INTO Persons (P_Id, LastName, FirstName)VALUES (5, 'Tjessem', 'Jakob')

"Persons" tablica će sada izgledati ovako:

Page 12: SQL Tutorial

P_Id LastName FirstName Address City1 Hansen Ola Timoteivn 10 Sandnes2 Svendson Tove Borgvn 23 Sandnes3 Pettersen Kari Storgt 20 Stavanger4 Nilsen Johan Bakken 2 Stavanger5 Tjessem Jakob  

1.9. SQL UPDATE

UPDATE izjava se koristi za ažuriranje zapisa u tablici.

UPDATE   izjava

UPDATE izjava se koristi za ažuriranje postojeće zapise u tablici.

SQL sintaksi UPDATE

UPDATE table_nameSET column1=value, column2=value2,...WHERE some_column=some_value

Napomena: Obavijest WHERE u sintaksi UPDATE.WHERE određuje koji zapis ili zapisi koji bi trebali biti ažurirani. Ako izostavite WHERE, svi podaci će biti ažurirani!

Primjer   SQL   UPDATE

P_Id LastName FirstName Address City1 Hansen Ola Timoteivn 10 Sandnes2 Svendson Tove Borgvn 23 Sandnes3 Pettersen Kari Storgt 20 Stavanger4 Nilsen Johan Bakken 2 Stavanger5 Tjessem Jakob  

Sada želimo obnoviti osoba "Tjessem, Jakob" u tabelu"Persons".

Mi koristimo sljedeći SQL izraz:

Page 13: SQL Tutorial

UPDATE PersonsSET Address='Nissestien 67', City='Sandnes'WHERE LastName='Tjessem' AND FirstName='Jakob'

“Persons" tablica će sada izgledati ovako:

P_Id LastName FirstName Address City1 Hansen Ola Timoteivn 10 Sandnes2 Svendson Tove Borgvn 23 Sandnes3 Pettersen Kari Storgt 20 Stavanger4 Nilsen Johan Bakken 2 Stavanger5 Tjessem Jakob Nissestien 67 Sandnes

SQL   UPDATE   Upozorenje

Budite oprezni prilikom ažuriranja zapisa. Ako je izostavljen uvjetu WHERE u gornjem primjeru, izgledaće ovako:

UPDATE PersonsSET Address='Nissestien 67', City='Sandnes'

Tabela će izgledati:

P_Id LastName FirstName Address City1 Hansen Ola Nissestien 67 Sandnes2 Svendson Tove Nissestien 67 Sandnes3 Pettersen Kari Nissestien 67 Sandnes4 Nilsen Johan Nissestien 67 Sandnes5 Tjessem Jakob Nissestien 67 Sandnes

1.10.SQL DELETE

Page 14: SQL Tutorial

DELETE iskaz koristi se za brisanje slogova u tablici.

Izjava   DELETE

DELETE iskaz koristi se za brisanje redaka u tablici.

SQL sintaksa DELETE

DELETE FROM table_nameWHERE some_column=some_value

Napomena: Obavijest WHERE u sintaksi DELETE.WHERE određuje koji zapis ilizapisi koji bi trebao biti izbrisane. Ako izostavite WHERE, svi podaci će biti izbrisani!

Primjer   SQL   DELETE

P_Id LastName FirstName Address City1 Hansen Ola Timoteivn 10 Sandnes2 Svendson Tove Borgvn 23 Sandnes3 Pettersen Kari Storgt 20 Stavanger4 Nilsen Johan Bakken 2 Stavanger5 Tjessem Jakob Nissestien 67 Sandnes

Sada želimo izbrisati osoba "Tjessem, Jakob" u tabelu"Persons".

Mi koristimo sljedeći SQL izraz:

DELETE FROM PersonsWHERE LastName='Tjessem' AND FirstName='Jakob'

P_Id LastName FirstName Address City1 Hansen Ola Timoteivn 10 Sandnes2 Svendson Tove Borgvn 23 Sandnes3 Pettersen Kari Storgt 20 Stavanger4 Nilsen Johan Bakken 2 Stavanger

Brisanje svih redova

Moguće je izbrisati sve redove u tablici bez brisanja tablice. To znači da će struktura tabela, svojstva, I indeksi će biti netaknuti:

Page 15: SQL Tutorial

DELETE FROM table_name

or

DELETE * FROM table_name

Napomena: Budite vrlo oprezni pri brisanju zapisa. Vi ne možete poništiti ovu izjavu!