mysql mysql & sql server & sql server · kreiranje baze podataka nakon prijave na mysql...
TRANSCRIPT
MySQL MySQL & SQL server& SQL server
DDr r Nenad KojićNenad Kojić
VViisokasoka škola škola strukovnih studija strukovnih studija za za informacione i komunikacione tehnologijeinformacione i komunikacione tehnologije
BeogradBeograd
KreiranjeKreiranje baze podataka baze podataka
Kreiranje baze podatakaKreiranje baze podataka
Nakon prijave na MySQL server, u komandnoj Nakon prijave na MySQL server, u komandnoj
liniji treba kucati naredbu za kreiranje baze liniji treba kucati naredbu za kreiranje baze
podatakapodataka
CREATE DATABASE CREATE DATABASE IMEBAZE;IMEBAZE;
Ako se kreira baza "knjige"Ako se kreira baza "knjige"
Odgovor:
Query OK, 1 row affected
označava da je proces uspešno
obavljen.
Kreiranje tabele baze podatakaKreiranje tabele baze podataka
Nakon kreiranja baze treba kreirati njene Nakon kreiranja baze treba kreirati njene
tabele. Svaka tabela se posebno definiše. tabele. Svaka tabela se posebno definiše.
Sintaksa je:Sintaksa je:
CREATE TABLE CREATE TABLE imetabeleimetabele ((kolonekolone););
Ime tabele definiše svakIme tabele definiše svakuu od tabela, dok od tabela, dok
kolone koje ta tabela sadrži treba nabrajati kolone koje ta tabela sadrži treba nabrajati
jednu izjednu izaa druge i imena odvajati zarezima.druge i imena odvajati zarezima.
Svaka kolona treba da sadrži ime i tip Svaka kolona treba da sadrži ime i tip
podataka u njoj.podataka u njoj.
Primer kreiranja tabelePrimer kreiranja tabele
mysql> use knjigemysql> use knjige
create table kupci (create table kupci (
IDkupca int unIDkupca int unssigned not null autoigned not null auto_increment primary key,_increment primary key,
ime char(50) not null,ime char(50) not null,
grad char(30) not null,grad char(30) not null,
naslov char(100),naslov char(100),
iznos float(5,2), iznos float(5,2),
kolicina tinyint unsigned,kolicina tinyint unsigned,
opis text,opis text,
datum date not nulldatum date not null
));;Greska u kucanju
PrikazPrikaz informacija o baziinformacija o bazi
SHOW TABLES SHOW TABLES -- komanda prikazuje sve komanda prikazuje sve kreirane tabele u bazi podataka na koju je kreirane tabele u bazi podataka na koju je izvršena prijavaizvršena prijava
SHOW DATABASES SHOW DATABASES -- prikazuje spisak svih prikazuje spisak svih baza na serverubaza na serveru
PrikazPrikaz informacija o tabeliinformacija o tabeli
DESCRIBE imetabele DESCRIBE imetabele -- Precizno prikazuje sve Precizno prikazuje sve informacije za traženu tabelu u baziinformacije za traženu tabelu u bazi
Izrada indeksaIzrada indeksa
Ako se u toku rada zahteva veliki broj pretraga Ako se u toku rada zahteva veliki broj pretraga po koloni koja nije indeksirana, onda će se po koloni koja nije indeksirana, onda će se poboljšanje performansi poboljšati dodavanjem poboljšanje performansi poboljšati dodavanjem indeksa za tu kolonu.indeksa za tu kolonu.
CREATE CREATE [UNIQUE|FULLTEXT] INDEX [UNIQUE|FULLTEXT] INDEX imeindeksaimeindeksa
ONON imetabele imetabele ((imekolone imekolone [([(brojbroj)] [ASC|DESC], ... );)] [ASC|DESC], ... );
�� Broj je opcioni parametar i sluBroj je opcioni parametar i služi za indeksiranje samo prvih n ži za indeksiranje samo prvih n
znakova u polju.znakova u polju.
�� [ASC|DESC][ASC|DESC] definišu da li je indeksiranje izvršeno rastućim ili definišu da li je indeksiranje izvršeno rastućim ili
opadajućim redosledom. Inicijalno je rastući.opadajućim redosledom. Inicijalno je rastući.
Unošenje podataka u bazuUnošenje podataka u bazu 11
UnoUnošenje podataka vrši se naredbom INSERTšenje podataka vrši se naredbom INSERT
�� Sintaksa naredbe:Sintaksa naredbe:
INSERT INSERT [INTO] [INTO] tabelatabela [([(kolona1kolona1, , kolona2kolona2, , kolona3kolona3, ...)] , ...)] VALUES(VALUES(vrednost1vrednost1, , vrednost2vrednost2, , vrednost3vrednost3, ...);, ...);
Vrednosti kolona pisati pod znacima Vrednosti kolona pisati pod znacima '' ili ili "",, sem ako sem ako su brojevi ili datumi.su brojevi ili datumi.
�� Ako se upisuje ceo red (sve kolone) sinAko se upisuje ceo red (sve kolone) sinttaksa je:aksa je:
INSERT INSERT [INTO] [INTO] tabelatabela
VALUES(VALUES(vrednost1vrednost1, , vrednost2vrednost2, , vrednost3vrednost3, ...);, ...);Primer:
insert into kupci values (NULL, 'Pera Peric', 'Beograd', 'Svet oko nas', 2000, 1,
'knjiga za decu', 2007-03-01);
Unošenje podataka u bazuUnošenje podataka u bazu 22
Upis se moUpis se može vršiti i za pojedine kolone že vršiti i za pojedine kolone
proizvoljnim redosledomproizvoljnim redosledom
Isti efekat dobija se primenom setIsti efekat dobija se primenom set--a kaoa kao
Ako je kolona definisana kao auto_increment, tada Ako je kolona definisana kao auto_increment, tada je kod upisa,dovoljno samo prvi put, definisati njenu je kod upisa,dovoljno samo prvi put, definisati njenu vrednostvrednost
Primer:
insert into kupci (naslov, kolicina, grad) values ('Mali princ', 2, 'Vranje',);
Primer:
insert into kupciset naslov= 'Mali princ', kolicina= 2, grad= 'Vranje' ;
Unošenje podataka u bazuUnošenje podataka u bazu 33
U tabelu se moU tabelu se može uneti i više redova odjednomže uneti i više redova odjednom
Insert lowInsert low_priority _priority -- privremeno zaustavljanje privremeno zaustavljanje
sa umetanjem novog reda dok se nsa umetanjem novog reda dok se nee završe završe
tekuća čitanjatekuća čitanja
Insert delayed. lowInsert delayed. low_priority _priority -- smeštanje smeštanje
podataka za umetanje u keš, i zadrška dok se podataka za umetanje u keš, i zadrška dok se
server ne rastereti.server ne rastereti.
Primer:
insert into kupci values
(2, 'Pera Peric', 'Beograd', 'Svet oko nas', 2000, 1, 'knjiga za decu', '2007-03-01') ,(3, 'Mile Vasic', 'Sabac', 'Geografija', 2500, 2, 'knjiga za omladinu', '2007-03-05') ,(4, 'Ana Savic', 'Valjevo', 'Bukvar', 1500, 1, 'knjiga za decu', '2007-03-15') ;
Čitanje podataka iz bazeČitanje podataka iz baze
Naredba za čitanje je SELECT sa sintaksom:Naredba za čitanje je SELECT sa sintaksom:
SELECT SELECT podacipodaci FROM FROM tabeletabele
[WHERE [WHERE usloviuslovi] [GROUP BY ] [GROUP BY grupisanjegrupisanje]]
[HAVING [HAVING uslovgrupeuslovgrupe] [ORDER BY ] [ORDER BY redosledredosled] ]
[LIMIT [LIMIT ograniograničenjačenja] ]
[[PROCEDUREPROCEDURE imeprocedureimeprocedure((argumentiargumenti))] ]
[[načinzaključavanjanačinzaključavanja]];;
Čitanje pomoću select Čitanje pomoću select -- fromfrom
Čitanje sadržaja kolona ime i grad iz tabele Čitanje sadržaja kolona ime i grad iz tabele
kupcikupci
Čitanje svih kolona iz tabeleČitanje svih kolona iz tabele
Primer:
select ime, grad from kupci ;
Primer:
select * from kupci ;
Čitanje pomoću select Čitanje pomoću select -- wherewhere
Za izdvajanje dela podataka sa uslovom Za izdvajanje dela podataka sa uslovom
treba koristiti where pa uslov pretragetreba koristiti where pa uslov pretrage
Operatori za poreOperatori za poređenje su: đenje su: =,<,>,>=,<=, =,<,>,>=,<=,
!=, is not null, is null, between, in, not in, !=, is not null, is null, between, in, not in,
like, not like ...like, not like ...
Primer:
select * from kupciwhere grad = 'Vranje' ;
Kombinacija uslovaselect * from kupciwhere grad = 'Vranje'
or|and ime='Pera Peric';
Čitanje podataka iz više tabela istovremenoČitanje podataka iz više tabela istovremeno
Ukoliko se želi pročitati više podataka iz Ukoliko se želi pročitati više podataka iz
različitih tabela, a koji su na bilo koji način različitih tabela, a koji su na bilo koji način
povezani, potrebno je izvršiti spajanje tabela.povezani, potrebno je izvršiti spajanje tabela.
Za dve tabele naći sve porudžbine Pere PerićaZa dve tabele naći sve porudžbine Pere Perića
TabelaTabela KoloneKolone
KupciKupci ID kupcaID kupca ImeIme AdresaAdresa GradGrad
NarudNarudzzbinebine ID narudID narudzzibeibe ID kupcaID kupca IznosIznos DatumDatum
Primer:
select narudzbine.iznos, narudzbine.datum from kupci, narudzbinewhere kupci.ime = 'Pera Peric' and kupci.IDkupca = narudzbine.IDkupca;
Uslov spajanja je kupci.IDkupca = narudzbine.ID kupca, može biti i van baze npr
baza4.nesto1.IDnesto1 = baza2.nesto3.IDnesto3
Spajanje viSpajanje više od dve koloneše od dve kolone
Koji kupci su naručuli knjigu Baze (ISBN = 222333) Koji kupci su naručuli knjigu Baze (ISBN = 222333) TabelaTabela KoloneKolone
KupciKupci ID kupcaID kupca ImeIme AdresaAdresa GradGrad
NarudNarudzzbinebineID ID narudnarudzzibeneibene ID kupcaID kupca IznosIznos DatumDatum
ProizvodiProizvodiID ID narudnarudzzibeneibene ISBN brojISBN broj KoličinaKoličina
KnjigeKnjige ISBN brojISBN broj AutorAutor NaslovNaslov CenaCenaPrimer:
select kupci.ime from kupci, narudzbine, proizvodi, knjigewhere kupci. ID kupca = narudzbine. ID kupca and narudzbine. ID narudzibe =
proizvodi.IDnarudzbine and proizvodi.ISBN broj = knjige.ISBN broj and
knjige.naslov like ' %Baze% ' ;
Def: Broj uslova za spajanje tabela je za jedan manji od broja tabela, jer je za spajanje
dve tabele potreban jedan uslov.
Levi spojevi (Levi spojevi (left joinleft join))
NajNajčešće se koristi za slučajeve kada nema preklapanja češće se koristi za slučajeve kada nema preklapanja
između podataka (Naći klijente koji ništa nisu kupili !)između podataka (Naći klijente koji ništa nisu kupili !)
Def: Ako se prilikom spajanja redova dve tabele, u Def: Ako se prilikom spajanja redova dve tabele, u
desnoj tabeli ne nađe red, koji bi odgovarao redu u levoj desnoj tabeli ne nađe red, koji bi odgovarao redu u levoj
tabeli, skupu rezultata se dodaje red, koji umesto tabeli, skupu rezultata se dodaje red, koji umesto
vrednosti kolone na desnoj strani, sadrži vrednost NULL.vrednosti kolone na desnoj strani, sadrži vrednost NULL.
Sintaksa sadrSintaksa sadrži rezervisanu reč ži rezervisanu reč left joinleft join i i onon
Tabela sa desne
strane
Tabela sa leve
strane
Primer levog spajanja 1Primer levog spajanja 1
Za datu bazu napisati kod kojim se pretražuju korisnici u Za datu bazu napisati kod kojim se pretražuju korisnici u
odnosu na broj narudžbenica.odnosu na broj narudžbenica.KupciKupci
ID KupcID Kupcaa ImeIme AdresaAdresa GradGrad
11 Mile VasicMile Vasic Narodnih heroja 1Narodnih heroja 1
22 Milos PericMilos Peric Avijaticara 7Avijaticara 7 LeskovacLeskovac
33 Jovan JovicJovan Jovic Ovcasrska 55Ovcasrska 55 AriljeArilje
44 Ana SenicAna Senic Havajska 5Havajska 5 BorBor
55 Milena IlicMilena Ilic Nade Puric 4Nade Puric 4 ZajecarZajecar
NarudzbineNarudzbine
ID NarudzbineID Narudzbine ID KupcID Kupcaa IznosIznos DatumDatum
11 55 6500650020072007--0101--0505
22 33 4800480020072007--0101--1212
33 44 7300730020072007--0202--0707
44 55 2100210020072007--0202--1919
Primer:
select kupci.ID kupca, kupci.ime, narudzbine.ID narudzibefrom kupci left join narudzbine on kupci. ID kupca = narudzbine. ID kupca;
ID KupciID Kupci ImeIme ID NarudzbineID Narudzbine
11 Mile VasicMile Vasic NULLNULL
22 Milos PericMilos Peric NULLNULL
33 Jovan JovicJovan Jovic 22
44 Ana SenicAna Senic 33
55 Milena IlicMilena Ilic 11
55 Milena IlicMilena Ilic 44
Primer levog spajanja 2 Primer levog spajanja 2
Ako se traže korisnici koji ništa nisu kupili, tada treba Ako se traže korisnici koji ništa nisu kupili, tada treba
naći vrednosti NULL u novodobijenoj koloni, i dati naći vrednosti NULL u novodobijenoj koloni, i dati
odgovarajuće ime korisnikaodgovarajuće ime korisnika
ID KupciID Kupci ImeIme ID NarudzbineID Narudzbine
11 Mile VasicMile Vasic NULLNULL
22 Milos PericMilos Peric NULLNULL
33 Jovan JovicJovan Jovic 22
44 Ana SenicAna Senic 33
55 Milena IlicMilena Ilic 11
55 Milena IlicMilena Ilic 44
Primer:
select kupci.ID kupca, kupci.ime, from kupci left join narudzbine
using (ID kupca)
where narudzbine. IDnarudzbine is NULL;
ID KupciID Kupci ImeIme
11 Mile VasicMile Vasic
22 Milos PericMilos Peric
Upotrebom USING ne navodi se tabela iz koje dolazi
zajednička kolona. U tom slučaju mora postojati kolona
sa istim imenom u obe tabele.
Upotreba ALIJASAUpotreba ALIJASA
Alijasi su druga imena koja se dodeljuju Alijasi su druga imena koja se dodeljuju privremeno ili trajno postojećim kolonama. privremeno ili trajno postojećim kolonama. Najčešće se koriste kao skraćena imena.Najčešće se koriste kao skraćena imena.
Primer:
select k.ime, from kupci as k, narudzbine as n, proizvodi as p, knjige as knj where k.ID kupca = n.ID kupca and n.ID narudzbine= p.ID narudzbine and
n.ISBN = knj.ISBN and knj.naslov like ' %Baze% ";
Primer:
select kupci.ime from kupci, narudzbine, proizvodi, knjigewhere kupci. ID kupca = narudzbine. ID kupca and narudzbine. ID narudzibe =
proizvodi.IDnarudzbine and proizvodi.ISBN broj = knjige.ISBN broj and
knjige.naslov like ' %Baze% ' ;
Alijasi za sopstveno spajanjeAlijasi za sopstveno spajanje
Alijasi su obaveAlijasi su obavezzni kada treba spojiti tabelu ni kada treba spojiti tabelu samu sa sobom. Ovo je potresamu sa sobom. Ovo je potrebbno ako se trano ako se traže že redovi sa istim vrednostima u nekoj koloni.redovi sa istim vrednostima u nekoj koloni.
Naći sve kupce koji žive u istom graduNaći sve kupce koji žive u istom gradu
Primer:
select k1.ime, k1.grad, k2.ime, from kupci as k1, kupci as k2where k1.grad = k2.grad and k1.ime != k2.ime;
Ovim uslovom se definiše da isti kupac, koji je u
obe tabele, ne bude pronađen više puta.
Može postojati samo jedno ime za taj grad !!!
Učitavanje po redosleduUčitavanje po redosledu
Ako se redovi koje treba prikazati kao rezultat upita žele Ako se redovi koje treba prikazati kao rezultat upita žele
sortirati koristi se naredba ORDER BY.sortirati koristi se naredba ORDER BY.
Vrednosti se sortiraju od a ka z, i od 1 na više, dok se za Vrednosti se sortiraju od a ka z, i od 1 na više, dok se za
promenu koristi rezervisana reč DESC.promenu koristi rezervisana reč DESC.
Primer:
select ime, adresa, gradfrom kupciorder by ime;
ImeIme AdresaAdresa GradGrad
Ana SenicAna Senic Havajska 5Havajska 5 BorBor
Jovan JovicJovan Jovic Ovcasrska 55Ovcasrska 55 AriljeArilje
Mile VasicMile Vasic Narodnih heroja 1Narodnih heroja 1
Milena IlicMilena Ilic Nade Puric 4Nade Puric 4 ZajecarZajecar
Milos PericMilos Peric Avijaticara 7Avijaticara 7 LeskovacLeskovac
Primer:
select ime, adresa, gradfrom kupciorder by ime desc;
ImeIme AdresaAdresa GradGrad
Milos PericMilos Peric Avijaticara 7Avijaticara 7LeskovaLeskovacc
Milena IlicMilena Ilic Nade Puric 4Nade Puric 4 ZajecarZajecar
Mile VasicMile Vasic Narodnih heroja 1Narodnih heroja 1
Jovan JovicJovan Jovic Ovcasrska 55Ovcasrska 55 AriljeArilje
Ana SenicAna Senic Havajska 5Havajska 5 BorBor
Grupne funkcijeGrupne funkcije
Grupne funkcije se primenjuju na grupisane podatke Grupne funkcije se primenjuju na grupisane podatke
(više kolona ili redova u kolonama)(više kolona ili redova u kolonama)
Neke grupne funkcije su:Neke grupne funkcije su:
NazivNaziv OpisOpis
AVG (kolona)AVG (kolona) Prosečna vrednost koloneProsečna vrednost kolone
COUNT (stavke)COUNT (stavke)
Ako je navedena kolona daje broj elemenata u koloni bez NULL, a ako se Ako je navedena kolona daje broj elemenata u koloni bez NULL, a ako se
ispred naredbe doda DISTINCT dobije se broj jedinstvenih vrednosti u ispred naredbe doda DISTINCT dobije se broj jedinstvenih vrednosti u
koloni.koloni.
MIN (kolona)MIN (kolona) Minimalne vrednost koloneMinimalne vrednost kolone
MAX (kolona)MAX (kolona) Maksimalna vrednost koloneMaksimalna vrednost kolone
SUM (kolona)SUM (kolona) Zbir vrednosti u koloniZbir vrednosti u koloni
Primeri grupnih funkcijaPrimeri grupnih funkcijaIIzračunavanje srednje vrednosti porudžbinazračunavanje srednje vrednosti porudžbina
Primer:
select avg(iznos)from narudžbine;
avg (iznos)avg (iznos)
51755175
IIzračunavanje srednje vrednosti porudžbina po zračunavanje srednje vrednosti porudžbina po
određenim grupama dobija se grupisanjem po određenoj određenim grupama dobija se grupisanjem po određenoj
kategorijikategoriji
Primer:
select IDkupca, avg(iznos)from narudžbine;group by IDkupca
ID kupcaID kupca avg (iznos)avg (iznos)
11 48004800
22 73007300
33 43004300
Traženje porudžbina koje premašuju vrednost 4500Traženje porudžbina koje premašuju vrednost 4500
Primer:
select IDkupca, avg(iznos)from narudžbine;group by IDkupcahaving avg(iznos) > 4500;
ID kupcaID kupca avg (iznos)avg (iznos)
11 48004800
22 73007300
Izbor redova koje upit treba da vratiIzbor redova koje upit treba da vrati
Naredbom LIMIT definiNaredbom LIMIT definiše se koji redovi ( počev še se koji redovi ( počev od kog i koliko njih) treba da budu vraćeni na od kog i koliko njih) treba da budu vraćeni na zahtevani upit.zahtevani upit.
Prvi red ima redni broj 0Prvi red ima redni broj 0
Ako se želi prikaz prvih 10 imena, tada je kodAko se želi prikaz prvih 10 imena, tada je kod
Primer:
select namefrom kupci;limit 0, 10;
Prikaz 5,6,7,8 i 9Prikaz 5,6,7,8 i 9--og reda bi bioog reda bi bioPrimer:
select namefrom kupci;limit 4, 5;
Podupiti (subquery)Podupiti (subquery)
Podupit je upit unutar upitaPodupit je upit unutar upita
Koristi se kada se reKoristi se kada se rezultat jednog upita poredi u uslovu zultat jednog upita poredi u uslovu
drugog upita.drugog upita.
Operatori za podupiteOperatori za podupite
Primer:
select IDkupca, iznosfrom narudzbine;where iznos= (select max(iznos) from narudzbine);
Podupit koji traži
maksimalnu vrednost u
koloni iznos
ID kupca iznos
2 7300
Vraća se ID
kupca koji ima
najveći iznos
Podupiti koji vraćaju redovePodupiti koji vraćaju redove
Podupiti najčešće vraćaju neku logičku promenljivu True Podupiti najčešće vraćaju neku logičku promenljivu True
ili False, jer su rezultat nekog poređenja. ili False, jer su rezultat nekog poređenja.
Podupit može da vrati i ceo redPodupit može da vrati i ceo red
Ovo je najčešći slučaj kada treba naći sve redove jedne Ovo je najčešći slučaj kada treba naći sve redove jedne
tabele koji postoje i u drugojtabele koji postoje i u drugoj
Primer:
select k1, k2, k3from tabela1;where (k1, k2, k3) in (select k1, k2, k3 from tabela2);
Ažuriranje zapisa u baziAžuriranje zapisa u bazi
Često postoji potreba za promenom podataka u Često postoji potreba za promenom podataka u bazi (cena artikla, pdv, adresa...)bazi (cena artikla, pdv, adresa...)
Iskaz UPDATE i njegova sintaksa su:Iskaz UPDATE i njegova sintaksa su:Primer:
UPDATE imetabele
Set kolona1=izraz1, kolona2=izraz2, ...[Where uslovi][ORDER by redosled][Limit broj]
Primer povećanja cene knjiga za 10%:
update knjigeset cena=cena*1.1;
Primer promene adrese kupca:
update kupciset adresa = ' Bulevar mira 12'where IDkupca = 3;
Naknadne izmene strukture tabelaNaknadne izmene strukture tabela
Primer izmene strukture tabelaPrimer izmene strukture tabela
Primer:
•Promena tipa podatka u koloni tako da prihvata imena max dužine 90 karaktera
alter table kupci
modify ime char(90) not null;
•Dodavanje nove kolone (pdv) iza kolone iznos u tabeli porudžbine
alter table porudzbine
add pdv float (5,2) after iznos
•Brisanje kolone pdv
alter table porudzbine
drop pdv;
Izvršenja promene bez
obaveštenja
Ubrzavanje postupka
Odlaganje do rasterećenjaBrisanjeBrisanjeBrisanje zapisa (redova) Brisanje zapisa (redova) -- DeleteDelete
Brisanje tabela Brisanje tabela -- DropDrop
Brisanje cele baze podataka Brisanje cele baze podataka -- DropDropPrimer:
DROP DATABASE (naziv baze podataka koja se briše);
Primer:
DROP TABELE (naziv tabele koja se briše);
Sintaksa:
DELETE [low_priority] [quit] [ignore] from imetabele
[WHERE uslov]
[ORDER BY kolone]
[LIMIT broj]
Primer:
DELETE from kupci
WHERE ime='Pera';
Broj redova koji se brišu
Grupisanje kolona
Uslov pod kojim se briše
DDL i DMLDDL i DML
DDL DDL -- Data Definition Language je jezik za Data Definition Language je jezik za
definisanje podataka i odnosi se na definisanje podataka i odnosi se na
naredbu Create Table.naredbu Create Table.
DML DML -- Data Manipulation Language je Data Manipulation Language je
jezik za manipulisanje podacima, i odnosi jezik za manipulisanje podacima, i odnosi
se na naredbe Select, Update, Insert i se na naredbe Select, Update, Insert i
Delete.Delete.
QML QML -- Query Manipulation Language je Query Manipulation Language je
jezik za manipulisanje upitima i odnosi se jezik za manipulisanje upitima i odnosi se
na naredbu Selectna naredbu Select
MySQL MySQL & SQL server& SQL server
DDr r Nenad KojićNenad Kojić
VViisokasoka škola škola strukovnih studija strukovnih studija za za informacione i komunikacione tehnologijeinformacione i komunikacione tehnologije
BeogradBeograd
KreiranjeKreiranje baze podataka baze podataka