Upload
dejan-stancic
View
180
Download
8
Embed Size (px)
Citation preview
Baze podataka
Select
Select Dinstict
Where
And – Or
Order by
Insert Into
Update
Delete
Sajt http://www.w3school.com
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
SELECT column_name,column_nameFROM table_name;
Ili
SELECT * FROM table_name;
PRIMERI SELECT CustomerName,City FROM Customers;
SELECT * FROM Customers;
SELECT DISTINCT column_name,column_nameFROM table_name;
PRIMERSELECT DISTINCT City FROM Customers;
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
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');
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;
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
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
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)
Select Top
Like
In
Between
Aliases
Joins Inner Join
Right Join
Left Join
Full Join
Union
Sajt http://www.w3school.com
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
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
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
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;
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;
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;
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;
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
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);
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;
Vraća prvu vrednost selektovane kolone
SELECT FIRST(column_name) FROM table_name;
PRIMER
SELECT FIRST(CustomerName) AS FirstCustomer FROM Customers;
Vraća poslednju vrednost selektovane kolone
SELECT LAST(column_name) FROM table_name;
PRIMER
SELECT LAST(CustomerName) AS LastCustomer FROM Customers;
Vraća maksimalnu vrednost selektovane kolone
SELECT MAX(column_name) FROM table_name;
PRIMER
SELECT MAX(Price) AS HighestPrice FROM Products;
Vraća najmanju vrednost selektovane kolone
SELECT MIN(column_name) FROM table_name;
PRIMER
SELECT MIN(Price) AS SmallestOrderPrice FROM Products;
Vraća ukupnu vrednost numeričke kolone
SELECT SUM(column_name) FROM table_name;
PRIMER
SELECT SUM(Quantity) AS TotalItemsOrdered FROM OrderDetails;
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;
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;
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;
Baze podataka