Download as pdf or txt
Download as pdf or txt
You are on page 1of 45

OSNOVE SQL

Literatura: Learning SQL.


https://www.w3schools.com/sql/default.asp
http://www.sqlcourse.com/intro.html

POSLOVNO-TEHNIŠKA FAKULTETA, UNIVERZA V NOVI GORICI


Pregled predavanja

• Podatkovne baze

• SQL (Structured Query Language)

2
Podatkovne baze

• Podatkovna baza – organizirana zbirka podatkov.


• Sistem za upravljanje s podatkovnimi bazami (Data Management
System) – programska aplikacija, ki upravlja podatkovne baze in
omogoča uporabnikom dostop do podatkov.
• Primeri: MySQL, PostgreSQL, MongoDB, Microsoft SQL Server, Oracle,…

3
Podatkovne baze

• Obstajajo različne arhitekture podatkovnih baz


• Najbolj popularne – relacijske podatkovne baze

• Enostavno shranjevanje podatkov – v eni veliki tabeli


• Slabosti – velikost tabele, redundantnost

• Relacijske podatkovne baze – več povezanih tabel, relacije med


tabelami
• Omogočajo veliko fleksibilnost pri delu
• Če število tabel zelo naraste, lahko postanejo zelo kompleksne  čas poizvedbe
in dostopa se podaljša

4
Podatkovne baze:
Hierarhija podatkov
Tabela o zaposlenih

Podatkovna baza Tabela o plačah (Podatkovna baza v podjetju)

Tabela o storitvah

Novak, Janez, 1-01-1979, Novo mesto (Tabela z osebnimi podatki zaposlenih


Tabela Oblak, Manca, 13-05-1970, Ljubljana v podjetju)
Knez, Rok, 29-09-1967, Maribor

(Zapis, ki vsebuje osebne podatke:


Zapis Novak, Janez, 1-01-1979, Novo mesto
priimek, ime, datum rojstva, mesto rojstva)

Polje Novak (Polje, ki vsebuje priimek)

Znak (byte) 1000100 (Znak F v ASCII)

5
Podatkovne baze

Terminologija:

E-R model  Podatkovna baza

• Entiteta  • Tabela
• Atribut  • Stolpec v tabeli
• Primerek  • Vrstica tabele = zapis
• Identifikacijski atribut  • Primarni ključ

6
Pregled predavanja

• Podatkovne baze

• SQL (Structured Query Language)

7
SQL:
Osnove
• SQL = Structured Query Language
• ANSI (American National Standards Institute) standard
• Standardni jezik za dostopanje in delo s podatkovnimi bazami

• Osnova relacijskih sistemov za upravljanje s podatkovnimi bazami


(Relational Database Management Systems)

• SQL je ANSI standard, vendar obstajajo različne različice SQL


• Kakorkoli, vse podpirajo glavne ukaze (kot so SELECT, UPDATE, DELETE, INSERT, itd.)
na podoben način.

8
SQL:
Osnove
• Kaj SQL lahko dela:

• Poizveduje v bazi podatkov


• Pridobiva podatke iz baze
• Vnaša podatke v bazo
• Posodablja podatke v bazi
• Briše podatke iz baze
• Ustvarja nove baze
• Ustvarja nove tabele v bazi
• Briše tabele iz baze
• …

9
SQL:
Sintaksa
• Najbolj pomembni SQL ukazi:
• SELECT - izbira podatke iz baze
• UPDATE – posodablja podatke v bazi
• DELETE – briše podatke iz baze
• INSERT INTO – vnaša nove podatke v bazo
• CREATE DATABASE – kreira novo bazo
• ALTER DATABASE – posodablja bazo
• CREATE TABLE – kreira novo tabelo
• ALTER TABLE – posodablja tabelo
• DROP TABLE – briše tabelo

10
SQL:
Sintaksa
• Pomembno:

• SQL ni občutljiv na velike ali majhne črke!

• Običajno pišemo SQL besede z velikimi črkami!

• Na koncu vsakega ukaza je ; !

11
SQL:
Sintaksa
• Primer tabele „Customers“:

12
SQL:
Sintaksa - SELECT
• SELECT - poizvedovanje v bazi

• Rezultat – tabela z zahtevanimi podatki

• Sintaksa:
SELECT stopec1, stolpec2, …
FROM ime_tabele;

SELECT DISTINCT stopec1, stolpec2, …


FROM ime_tabele;

• Če želimo izbrati vse stolpce v tabeli, uporabimo *


SELECT * FROM ime_tabele;
13
SQL:
Sintaksa - SELECT
• Primer: Izberite stoplce „CustomerName“ in „City“ iz tabele
„Customers“
SELECT CustomerName, City FROM Customers;  rezultat
SELECT * FROM Customers;  rezultat

14
SQL:
Sintaksa - WHERE

• WHERE – uporablja se za filtriranje podatkov  izbrani so samo podatki,


ki izpolnjujejo določene pogoje

• Sintaksa:
SELECT stopec1, stolpec2, …
FROM ime_tabele
WHERE pogoj;

15
SQL:
Sintaksa - WHERE
• Primer 1: Izberite vse podatke o strankah iz tabele Customers, ki so iz Mehike
SELECT * FROM Customers
WHERE Country = ‘Mexico’;  rezultat
• Primer 2: Izberite vse podatke o stranki, ki ima CustomerID =1, iz tabele Customers
SELECT * FROM Customers
WHERE CustomerID = 1;  rezultat

16
SQL:
Sintaksa - WHERE
• Operatorji v izrazu „pogoj“:
• =, <>, <, >, <=, >=, BETWEEN, LIKE, IN

• Logični operatorji: AND, OR, NOT.


SELECT stopec1, stolpec2, …
FROM ime_tabele
WHERE pogoj1 AND pogoj2 AND pogoj3 …;

SELECT stopec1, stolpec2, …


FROM ime_tabele
WHERE pogoj1 OR pogoj2 OR pogoj3 …;

SELECT stopec1, stolpec2, …


FROM ime_tabele
WHERE NOT pogoj;
17
SQL:
Sintaksa - WHERE
• Primer 1:
SELECT * FROM Customers
WHERE Country = ‘Germany’ AND City = ‘Berlin’;  rezultat
• Primer 2:
SELECT * FROM Customers
WHERE City = ‘Berlin’ OR City = ‘Munchen’;  rezultat
• Primer 3:
SELECT * FROM Customers
WHERE NOT Country = ‘Germany’;
 rezultat

18
SQL:
VAJE

• https://www.w3resource.com/sql-exercises/sql-retrieve-from-table.php

• https://www.w3resource.com/sql-exercises/sql-boolean-operators.php

19
SQL:
Sintaksa – ORDER BY
• ORDER BY – razvrščanje podatkov v naraščajočem ali padajočem
vrstnem redu
• Privzeta opcija je razvrščanje podatkov v naraščajočem vrstnem redu
• Če jih želimo razvrstiti v padajočem vrstnem redu, uporabimo besedo DESC

• Sintaksa:
SELECT stopec1, stolpec2, …
FROM ime_tabele
ORDER BY stopec1, stolpec2, … ASC|DESC;

20
SQL:
Sintaksa – ORDER BY

• Primer 1:
SELECT * FROM Customers
ORDER BY Country;  rezultat
• Primer 2:
SELECT * FROM Customers
ORDER BY Country DESC;  rezultat
• Primer 3:
SELECT * FROM Customers
ORDER BY Country, CustomerName;  rezultat
• Primer 4:
SELECT * FROM Customers
ORDER BY Country ASC, CustomerName DESC;  rezultat

21
SQL:
Sintaksa – vrednost NULL
• NULL - podatek ni vnesen v tabelo (manjkajoč podatek)
• NULL ni enako 0!
• Ne uporabljajo se operatorji za primerjanje: <, >, =, <>
• Izraz: IS NULL ali IS NOT NULL
• Sintaksa:
SELECT stopec1, stolpec2, …
FROM ime_tabele
WHERE stolpec IS NULL;

SELECT stopec1, stolpec2, …


FROM ime_tabele
WHERE stolpec IS NOT NULL;

22
SQL:
Sintaksa – vrednost NULL
• Tabela „Persons“

• Primer 1:
SELECT LastName, FirstName, Address FROM Persons
WHERE Address IS NULL;

• Primer 2:
SELECT LastName, FirstName, Address FROM Persons
WHERE Address IS NOT NULL;

23
SQL:
Sintaksa – specialni znaki
• Uporabljajo se kot zamenjava za katerikoli znak v besedi

• Uporabljajo se z SQL ukazom LIKE

• Sintaksa:
• % - predstavlja nič, eden, ali več znakov
• _ - predstavlja točno en znak
• [niz_znakov] – množica znakov iz katere se izbira
• [!niz_znakov] – množica znakov iz katere se NE izbira

• Specialni znaki se lahko tudi kombinirajo

24
SQL:
Sintaksa – specialni znaki
• Primeri:
Operator LIKE Opis

WHERE CustomerName LIKE ‘a%’ Najde vrednosti atributa, ki se začnejo z „a“

WHERE CustomerName LIKE ‘%a’ Najde vrednosti atributa, ki se končajo z „a“

WHERE CustomerName LIKE ‘%or%’ Najde vrednosti atributa, ki vsebujejo „or“ na kateremkoli mestu

WHERE CustomerName LIKE ‘_r%’ Najde vrednosti atributa, ki vsebujejo „r“ na drugem mestu

WHERE CustomerName LIKE ‘a_%_%’ Najde vrednosti atributa, ki se začnejo z „a“ in so dolge vsaj 3
znake

WHERE CustomerName LIKE ‘a%o’ Najde vrednosti atributa, ki se začnejo z „a“ in se končajo z „o“

25
SQL:
Sintaksa – specialni znaki
• Primer 1:
SELECT * FROM Customers
WHERE City LIKE ‘ber%’;  rezultat
• Primer 2:
SELECT * FROM Customers
WHERE City LIKE ‘%es%’;  rezultat
• Primer 3:
SELECT * FROM Customers
WHERE City LIKE ‘_erlin’;  rezultat
• Primer 4:
SELECT * FROM Customers
WHERE City LIKE ‘L_n_on’;  rezultat

26
SQL:
Sintaksa – specialni znaki
• Primer 4:
SELECT * FROM Customers
WHERE City LIKE ‘[bsp]%’;  rezultat
• Primer 5:
SELECT * FROM Customers
WHERE City LIKE ‘[a-c]%’;  rezultat
• Primer 6:
SELECT * FROM Customers
WHERE City LIKE ‘[!bsp]%’;  rezultat
• Primer 7:
SELECT * FROM Customers
WHERE City NOT LIKE ‘[bsp]%’;  rezultat

27
SQL:
VAJE

https://www.w3resource.com/sql-exercises/sql-wildcard-special-
operators.php

28
SQL:
Sintaksa – agregacijske funkcije

• Omogočajo izpis vrednosti, ki je izračunana iz cele tabele


• Agregacijske funkcije:
• MIN() in MAX() – najmanjša in največja vrednost v danem stolpcu
• SUM() in AVG() – vsota in povprečna vrednost v danem stolpcu
• COUNT() – število vrednosti v danem stolpcu, ki izpolnjujejo kriterij
• Sintaksa:
SELECT MIN(ime_stolpca) SELECT SUM(ime_stolpca) SELECT COUNT(ime_stolpca)
FROM ime_tabele FROM ime_tabele FROM ime_tabele
WHERE pogoj; WHERE pogoj; WHERE pogoj;

SELECT MAX(ime_stolpca) SELECT AVG(ime_stolpca)


FROM ime_tabele FROM ime_tabele
WHERE pogoj; WHERE pogoj;
29
SQL:
Sintaksa – agregacijske funkcije
• Tabela „Products“

• Primer 1: • Primer 3:
SELECT MIN(Price) AS SmallestPrice SELECT AVG(Price)
FROM Products;  rezultat FROM Products;  rezultat
• Primer 2: • Primer 4:
SELECT MAX(Price) AS LargestPrice SELECT COUNT(ProductID)
FROM Products;  rezultat FROM Products;  rezultat
30
SQL:
Sintaksa – agregacijske funkcije
• Tabela „OrderDetails“

• Primer 5:
SELECT SUM(Quantity)
FROM OrderDetails;  rezultat
31
SQL:
VAJE

https://www.w3resource.com/sql-exercises/sql-aggregate-
functions.php

32
SQL:
Sintaksa – INSERT INTO
• INSERT INTO – dodajanje novih zapisov (vrstic) v tabelo

• Sintaksa:
INSERT INTO ime_tabele (stolpec1, stolpec2, stolpe3, …)
VALUES (vrednost1, vrednost2, vrednost3, …);

INSERT INTO ime_tabele


VALUES (vrednost1, vrednost2, vrednost3, …);

33
SQL:
Sintaksa – INSERT INTO
• Tabela „Customers“

• Primer 1:
INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country)
VALUES (‘Cardinal’, ‘Tom B. Erichsen’, ‘Skagen 21’, ‘Stavanger’, ‘4006’, ‘Norway’);
• Primer 2:
INSERT INTO Customers (CustomerName, City, Country)
VALUES (‘Cardinal’, ‘Stavanger’, ‘Norway’);
34
SQL:
Sintaksa – UPDATE
• UPDATE – urejanje obstoječega zapisa v tabeli

• Sintaksa:
UPDATE ime_tabele
SET stolpec1=vrednost1, stolpec2=vrednost2, …
WHERE pogoj;

• S pogojem v izrazu WHERE določimo kateri zapis se bo spremenil


• Če izpustimo pogoj, vsi zapisi v tabeli se bodo spremenili

35
SQL:
Sintaksa – UPDATE
• Tabela „Customers“

• Primer 1:
UPDATE Customers
SET ContactName = ‘Alfred Schmidt’, City = ‘Frankfurt’
WHERE CustomerID = 1;

36
SQL:
Sintaksa – UPDATE
• Tabela „Customers“

• Primer 2:
UPDATE Customers
SET ContactName = ‘Juan’
WHERE Country = ‘Mexico’;
37
SQL:
Sintaksa – UPDATE
• Tabela „Customers“

• Primer 3:
UPDATE Customers
SET ContactName = ‘Juan’;

38
SQL:
Sintaksa – DELETE
• DELETE – brisanje zapisov iz tabele

• Sintaksa:
DELETE FROM ime_tabele
WHERE pogoj;

• S pogojem v izrazu WHERE določimo kateri zapis bomo izbrisali


• Če izpustimo pogoj, bodo vsi zapisi v tabeli izbrisani

39
SQL:
Sintaksa – DELETE
• Tabela „Customers“

• Primer 1:
DELETE FROM Customers
WHERE CustomerName = ‘Alfreds Futterkiste’;
• Primer 2:
DELETE FROM Customers;
• Primer 3:
DELETE * FROM Customers;
40
SQL:
Sintaksa – poizvedovanje iz več tabel

• Sintaksa:
SELECT tabela1.ime_stolpca, tabela2.ime_stolpca, …
FROM tabela1, tabela2, …
WHERE pogoj;

41
SQL:
Sintaksa – CREATE
• CREATE – kreiranje nove tabele
• Sintaksa:
CREATE TABLE ime_tabele (
stolpec1 podatkovni_tip,
stolpec2 podatkovni_tip,
….
);
• Primer:
CREATE TABLE Persons (
PersonID int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);
42
SQL:
Sintaksa – DROP, ALTER
• DROP – brisanje tabele
• Sintaksa:
DROP TABLE ime_tabele;
• ALTER – dodajanje, brisanje, ali spreminjanje stolpcev v tabeli
• Sintaksa:
ALTER TABLE ime_tabele
ADD ime_stolpca podatkovni_tip;

ALTER TABLE ime_tabele


DROP COLUMN ime_stolpca;

ALTER TABLE ime_tabele


ALTER COLUMN ime_stolpca podatkovni_tip;
43
SQL:
VAJE

https://www.w3resource.com/sql-exercises/sql-exercises-quering-on-
multiple-table.php

44
Zaključek

• Podatkovne baze

• SQL (Structured Query Language)

45

You might also like