Osnovni upiti
SELECT [{ALL | DISTINCT}] select_item [AS alias] [,...]
FROM { table_name [[AS] alias] | view_name [[AS] alias]} [,...]
[ [join_type] JOIN join_condition ]
[WHERE search_condition] [ {AND | OR | NOT} search_condition [...] ]
[GROUP BY group_by_expression{group_by_columns}
[HAVING search_condition] ]
[ORDER BY {order_expression [ASC | DESC]} [,...] ]SELECT column_name,column_name as 'alias'
FROM table_name;
use STUDIJEselect *
from studentiselect Imes, indeks, upisan, mesto
from studentiselect Imes, indeks, upisan, mesto, Datr as 'Datum rodjenja'
from studentiSELECT DISTINCT column_name,column_name
FROM table_name;select distinct mesto, NULL
from studentiSELECT column_name,column_name
FROM table_name
WHERE predikat;select *
from studenti
where upisan = 2000SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;select *
from studenti
where upisan between 2000 and 2005SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...);select *
from studenti
where mesto in ('Kragujevac', 'Kraljevo')select *
from studenti
where mesto not in ('Kragujevac', 'Kraljevo')SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern;select *
from studenti
where mesto like 'K%'select *
from studenti
where datr is nullSELECT column_name, column_name
FROM table_name
ORDER BY column_name ASC|DESC, column_name ASC|DESC;select *
from studenti
where mesto not in ('Kragujevac', 'Kraljevo')
order by Imes descSELECT CAST(column_name as TYPE)
FROM table_name
SELECT CONCAT(column_name, value, column_name, ...)
FROM table_nameI način
select Imes, CONCAT(Indeks, '/', Upisan) as Indeks
from StudentiII način
select Imes, CAST(Indeks as varchar(5)) + '/' + CAST(Upisan as varchar(5))
from StudentiI) Simple CASE expression:
CASE input_expression
WHEN when_expression THEN result_expression [ ...n ]
[ ELSE else_result_expression ]
ENDII) Searched CASE expression:
CASE
WHEN Boolean_expression THEN result_expression [ ...n ]
[ ELSE else_result_expression ]
ENDselect Imes,
case Mesto
when 'Kragujevac' then 'LOKALNO'
else 'POTREBAN SMESTAJ'
end as 'Smestaj'
from Studentiselect Indeks, Upisan, Spred,
case
when Ocena > 5 and Ocena < 7 then 'Ispod proseka'
when Ocena >= 7 and Ocena < 9 then 'Proseck'
when Ocena = 9 then 'Odlicana'
else 'Izuzetana'
end as Status
from PrijaveDATEDIFF ( datepart , startdate , enddate )
DATENAME ( datepart , date )
DATEPART ( datepart , date )
GETDATE ( )select Imes, Indeks, Upisan, DATEPART(year, datr) as 'Godina', DATEDIFF(year, datr, GETDATE()) as Starost
from Studenti
where DATEDIFF(year, datr, GETDATE()) > 25COUNT, MIN, MAX, SUM, AVGselect COUNT(*)
from Studentiselect COUNT(datr)
from Studentiselect MAX(ocena) as minimalna, MIN(ocena) as maksimalna, AVG(cast(ocena as real)) as prosecna
from Prijave
where Spred = 23
select MAX(ocena) as minimalna, MIN(ocena) as maksimalna, AVG(ocena * 1.0) as prosecna
from Prijave
where Spred = 23SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;select Mesto,count(*) as 'broj studenata'
from Studenti
group by Mestoselect datepart(year, Datr) godiste, COUNT(*) as 'broj studenata'
from studenti
group by datepart(year, Datr)select Indeks, Upisan, count(*) 'broj polozenih', Avg(cast(Ocena as real)) as Prosek
from Prijave
group by Indeks, Upisan