31
Baze podataka

Sql osnova

Embed Size (px)

Citation preview

Page 1: Sql   osnova

Baze podataka

Page 2: Sql   osnova

Select

Select Dinstict

Where

And – Or

Order by

Insert Into

Update

Delete

Sajt http://www.w3school.com

Page 3: Sql   osnova

CustomerID Customer

Name

Contact

Name

Address City Postal

Code

Country

1 Alfreds Futterkiste Maria Anders

Obere Str. 57 Berlin 12209 Germany

2 Ana Trujillo Emparedados y helados

Ana Trujillo Avda. de la Constitución

2222

México D.F. 05021 Mexico

3 Antonio Moreno Taquería Antonio Moreno

Mataderos 2312 México D.F. 05023 Mexico

4 Around the Horn Thomas Hardy

120 Hanover Sq. London WA1 1DP UK

5 Berglunds snabbköp Christina Berglund

Berguvsvägen 8 Luleå S-958 22 Sweden

Customers

Page 4: Sql   osnova

SELECT column_name,column_nameFROM table_name;

Ili

SELECT * FROM table_name;

PRIMERI SELECT CustomerName,City FROM Customers;

SELECT * FROM Customers;

Page 5: Sql   osnova

SELECT DISTINCT column_name,column_nameFROM table_name;

PRIMERSELECT DISTINCT City FROM Customers;

Page 6: Sql   osnova

SELECT column_name,column_nameFROM table_nameWHERE column_name operator value;

PRIMERI SELECT * FROM Customers WHERE Country='Mexico';

SELECT * FROM Customers WHERE CustomerID=1;

Operator Description

= JEDNAKO

<> RAZLIČITO. Note: U NEKIM VERZIJAMA MOŽE

DA SE PIŠE I KAO !=

> VEĆE

< MANJE

>= VEĆE ILI JEDNAKO

<= MANJE ILI JEDNAKO

BETWEE

N

IZMEĐU UJ OPSEGU VREDNOSTI

LIKE PRETRAGA PO OBRASCU

IN VIŠE MOGUĆIH VREDNOSTI ZA KOLONU

Page 7: Sql   osnova

And i Or koriste se filtriranje unosa koji imaju više od jednoguslova

PRIMERI SELECT * FROM Customers WHERE Country='Germany' AND

City='Berlin';

SELECT * FROM Customers WHERE City='Berlin' ORCity='München';

SELECT * FROM Customers WHERE Country='Germany' AND(City='Berlin' OR City='München');

Page 8: Sql   osnova

SELECT column_name,column_nameFROM table_nameORDER BY column_name,column_name ASC|DESC;

PRIMERI SELECT * FROM Customers ORDER BY Country;

SELECT * FROM Customers ORDER BY Country DESC;

SELECT * FROM Customers ORDER BY Country,CustomerName;

Page 9: Sql   osnova

Unos novih vrednosti u tabelu

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

ILI

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

PRIMERI INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode,

Country)VALUES ('Cardinal','Tom B. Erichsen','Skagen 21','Stavanger','4006','Norway');

INSERT INTO Customers (CustomerName, City, Country)VALUES ('Cardinal', 'Stavanger', 'Norway');

PAŽNJA: Vrednosti koje nisu određene unosom generišu u ćelijama NULL

Page 10: Sql   osnova

Koristi se za ažuriranje već postojećih vrednosti

UPDATE table_nameSET column1=value1,column2=value2,...WHERE some_column=some_value;

PRIMERI UPDATE Customers

SET ContactName='Alfred Schmidt', City='Hamburg' WHERE CustomerName='Alfreds Futterkiste';

UPDATE Customers SET ContactName='Alfred Schmidt', City='Hamburg';

PAŽNJA: Ako se izostavi WHERE svi zapisi će biti ažurirani

Page 11: Sql   osnova

DELETE FROM table_nameWHERE some_column=some_value;

PRIMERI DELETE FROM Customers

WHERE CustomerName='Alfreds Futterkiste' AND ContactName='Maria Anders';

DELETE FROM table_name;ILI

DELETE * FROM table_name;

PAŽNJA: Ako se izostavi WHERE briše celu tabelu (pažljivo nema vraćanja sa UNDO)

Page 12: Sql   osnova

Select Top

Like

In

Between

Aliases

Joins Inner Join

Right Join

Left Join

Full Join

Union

Sajt http://www.w3school.com

Page 13: Sql   osnova

SELECT TOP 2 * FROM Customers;

SELECT TOP 50 PERCENT * FROM Customers;

CustomerID Customer

Name

Contact

Name

Address City Postal

Code

Country

1 Alfreds Futterkiste Maria

Anders

Obere Str. 57 Berlin 12209 Germany

2 Ana Trujillo

Emparedados y helados

Ana Trujillo Avda. de la

Constitución

2222

México D.F. 05021 Mexico

3 Antonio Moreno

Taquería

Antonio

Moreno

Mataderos 2312 México D.F. 05023 Mexico

4 Around the Horn Thomas

Hardy

120 Hanover Sq. London WA1 1DP UK

5 Berglunds snabbköp Christina

Berglund

Berguvsvägen 8 Luleå S-958 22 Sweden

Customers

Page 14: Sql   osnova

Koristi kombinaciju redova iz dve ili više tabela

SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDateFROM OrdersINNER JOIN CustomersON Orders.CustomerID=Customers.CustomerID;

OrderID CustomerID OrderDate

10308 2 1996-09-18

10309 37 1996-09-19

10310 77 1996-09-20

CustomerID CustomerName ContactName Country

1 Alfreds Futterkiste Maria Anders Germany

2 Ana Trujillo Emparedados y helados

Ana Trujillo Mexico

3 Antonio Moreno Taquería

Antonio Moreno Mexico

Orders

Customers

Page 15: Sql   osnova

INNER JOIN – vraće sve redove iz obe tabele gde pripadaju redovima obe tabele

LEFT JOIN – vraća sve redove iz leve tabele sa uparenim redovima iz desne tabele

RIGHT JOIN – vraća sve redove iz desne tabele sa uparenim redovima iz leve tabele

FULL JOIN - vraća sve redove iz leve i iz desne tabele

Page 16: Sql   osnova

SELECT column_name(s)FROM table1INNER JOIN table2ON table1.column_name=table2.column_name;

SELECT Customers.CustomerName, Orders.OrderIDFROM CustomersINNER JOIN OrdersON Customers.CustomerID=Orders.CustomerIDORDER BY Customers.CustomerName;

Page 17: Sql   osnova

SELECT column_name(s)FROM table1LEFT JOIN table2ON table1.column_name=table2.column_name;

PRIMER

SELECT Customers.CustomerName, Orders.OrderIDFROM CustomersLEFT JOIN OrdersON Customers.CustomerID=Orders.CustomerIDORDER BY Customers.CustomerName;

Page 18: Sql   osnova

SELECT column_name(s)FROM table1RIGHT JOIN table2ON table1.column_name=table2.column_name;

PRIMER

SELECT Orders.OrderID, Employees.FirstNameFROM OrdersRIGHT JOIN EmployeesON Orders.EmployeeID=Employees.EmployeeIDORDER BY Orders.OrderID;

Page 19: Sql   osnova

SELECT column_name(s)FROM table1FULL OUTER JOIN table2ON table1.column_name=table2.column_name;

PRIMER

SELECT Customers.CustomerName, Orders.OrderIDFROM CustomersFULL OUTER JOIN OrdersON Customers.CustomerID=Orders.CustomerIDORDER BY Customers.CustomerName;

Page 20: Sql   osnova

AVG() – Vraća prosečne vrednosti

COUNT() – Vraća broj redova

FIRST() – Vraća prvu vrednost

LAST() – Vraća poslednju vrednost

MAX() – Vraća najveću vrednost

MIN() – Vraća minimalnu vrednost

SUM() – Vraća ukupnu (sumu) vrednost

Page 21: Sql   osnova

Vraća prosečne vrednosti određene kolone (numerička vrednost)

SELECT AVG(column_name) FROM table_name

PRIMER

SELECT AVG(Price) AS PriceAverage FROM Products;

SELECT ProductName, Price FROM Products WHERE Price>(SELECT AVG(Price) FROM Products);

Page 22: Sql   osnova

Vraća broj kolona po određenom kriterijumu

SELECT COUNT(column_name) FROM table_name;

PRIMER

SELECT COUNT(*) FROM table_name;

SELECT COUNT(CustomerID) AS OrdersFromCustomerID7 FROM Orders WHERE CustomerID=7;

SELECT COUNT(*) AS NumberOfOrders FROM Orders;

SELECT COUNT(DISTINCT CustomerID) AS NumberOfCustomers FROM Orders;

Page 23: Sql   osnova

Vraća prvu vrednost selektovane kolone

SELECT FIRST(column_name) FROM table_name;

PRIMER

SELECT FIRST(CustomerName) AS FirstCustomer FROM Customers;

Page 24: Sql   osnova

Vraća poslednju vrednost selektovane kolone

SELECT LAST(column_name) FROM table_name;

PRIMER

SELECT LAST(CustomerName) AS LastCustomer FROM Customers;

Page 25: Sql   osnova

Vraća maksimalnu vrednost selektovane kolone

SELECT MAX(column_name) FROM table_name;

PRIMER

SELECT MAX(Price) AS HighestPrice FROM Products;

Page 26: Sql   osnova

Vraća najmanju vrednost selektovane kolone

SELECT MIN(column_name) FROM table_name;

PRIMER

SELECT MIN(Price) AS SmallestOrderPrice FROM Products;

Page 27: Sql   osnova

Vraća ukupnu vrednost numeričke kolone

SELECT SUM(column_name) FROM table_name;

PRIMER

SELECT SUM(Quantity) AS TotalItemsOrdered FROM OrderDetails;

Page 28: Sql   osnova

Omogućava grupisanje vrsta na osnovu zajedničkih vrednosti

SELECT column_name, aggregate_function(column_name)FROM table_nameWHERE column_name operator valueGROUP BY column_name;

PRIMER

SELECT Shippers.ShipperName,COUNT(Orders.OrderID) AS NumberOfOrdersFROM OrdersLEFT JOIN ShippersON Orders.ShipperID=Shippers.ShipperIDGROUP BY ShipperName;

Page 29: Sql   osnova

Koristi se kada ključna reč ne može sa agregatnom funkcijom

SELECT column_name, aggregate_function(column_name)FROM table_nameWHERE column_name operator valueGROUP BY column_nameHAVING aggregate_function(column_name) operator value;

Primer1:

SELECT Employees.LastName, COUNT(Orders.OrderID) AS NumberOfOrdersFROM (OrdersINNER JOIN EmployeesON Orders.EmployeeID=Employees.EmployeeID)GROUP BY LastNameHAVING COUNT(Orders.OrderID) > 10;

Page 30: Sql   osnova

Primer2:

SELECT Employees.LastName, COUNT(Orders.OrderID) AS NumberOfOrdersFROM OrdersINNER JOIN EmployeesON Orders.EmployeeID=Employees.EmployeeIDWHERE LastName='Davolio' OR LastName='Fuller'GROUP BY LastNameHAVING COUNT(Orders.OrderID) > 25;

Page 31: Sql   osnova

Baze podataka