Operacije sa bazama podataka: Uvoz i izvoz u MySQL i MariaDB
Manipulacija podacima, odnosno unos i izdvajanje, predstavlja temeljne aktivnosti u radu sa bazama podataka. MySQL i MariaDB, dva široko rasprostranjena sistema za upravljanje bazama podataka, nude efikasne komande za obavljanje ovih operacija. Ovaj članak pruža detaljan uvid u proces uvoza i izvoza podataka u MySQL i MariaDB okruženju.
Unos podataka
Korišćenje INSERT komande
INSERT
komanda služi za dodavanje novih zapisa u tabelu unutar baze podataka. Njena sintaksa je sledeća:
sql
INSERT INTO naziv_tabele (kolona1, kolona2, ...) VALUES (vrednost1, vrednost2, ...);
Na primer, da bismo dodali informacije o novom zaposlenom u tabelu zaposleni
, možemo koristiti ovu naredbu:
sql
INSERT INTO zaposleni (ime, email, plata) VALUES ('Marko Marković', '[email protected]', 85000);
Masovni unos podataka
Za unos većeg broja redova istovremeno, koristimo INSERT ... SELECT
naredbu. Ova naredba omogućava da ubacimo podatke iz druge tabele ili rezultata upita u trenutnu tabelu. Sintaksa je:
sql
INSERT INTO naziv_tabele (kolona1, kolona2, ...) SELECT kolona1, kolona2, ... FROM druga_tabela;
Rešavanje duplikata
Po default-u, MySQL i MariaDB ne dozvoljavaju umetanje dupliranih zapisa u tabelu. Da bismo omogućili umetanje duplikata, koristimo ključnu reč IGNORE
. Sintaksa je sledeća:
sql
INSERT IGNORE INTO naziv_tabele (kolona1, kolona2, ...) VALUES (vrednost1, vrednost2, ...);
Izvlačenje podataka
Korišćenje SELECT komande
SELECT
komanda se koristi za preuzimanje podataka iz tabele u bazi podataka. Njena osnovna sintaksa je:
sql
SELECT kolona1, kolona2, ... FROM naziv_tabele;
Na primer, za preuzimanje podataka o zaposlenima sa platom većom od 80.000, možemo upotrebiti sledeći upit:
sql
SELECT ime, email, plata FROM zaposleni WHERE plata > 80000;
Filtriranje rezultata
Za dodatno filtriranje rezultata, možemo koristiti WHERE
i HAVING
klauzule. WHERE
se koristi za filtriranje redova pre izračunavanja agregatnih funkcija, dok HAVING
filtrira redove nakon izračunavanja.
Sortiranje i ograničavanje
Rezultate upita možemo sortirati i ograničiti korišćenjem ORDER BY
i LIMIT
klauzula. ORDER BY
se koristi za sortiranje redova po jednoj ili više kolona, dok LIMIT
klauzula ograničava broj vraćenih redova.
Spajanje tabela
Korišćenjem JOIN
naredbe, možemo kombinovati podatke iz više tabela u jedan rezultat. Postoji nekoliko tipova spajanja, svaki sa specifičnom funkcijom. Najčešći tipovi su:
* Unutrašnje spajanje: Vraća samo redove koji imaju podudaranja u obe tabele.
* Levo spajanje: Vraća sve redove iz leve tabele i samo podudarne redove iz desne tabele.
* Desno spajanje: Suprotno od levog spajanja, vraća sve redove iz desne tabele.
* Spoljašnje spajanje: Vraća sve redove iz obe tabele, bez obzira da li postoji podudaranje ili ne.
Zaključak
Unos i izvoz podataka u MySQL ili MariaDB su ključne operacije za efikasno korišćenje baze podataka. Korišćenjem INSERT
i SELECT
naredbi, lako možemo upravljati podacima i dobiti potrebne informacije. Pored toga, filtriranje, sortiranje i ograničavanje rezultata omogućavaju nam da precizno kontrolišemo naš upit. Poznavanje ovih tehnika je neophodno za uspešno upravljanje bazama podataka i dobijanje najboljih rezultata iz podataka.
Često postavljana pitanja
1. Koja je razlika između komandi INSERT
i INSERT ... SELECT
?
Komanda INSERT
ubacuje jedan red u tabelu, dok INSERT ... SELECT
ubacuje više redova na osnovu rezultata drugog upita ili tabele.
2. Kako sprečiti unos duplikata?
Možemo koristiti UNIQUE
ključnu reč prilikom kreiranja tabele ili koristiti INSERT IGNORE
naredbu.
3. Kako sortirati rezultate po koloni?
Koristimo ORDER BY
klauzulu nakon SELECT
naredbe. Na primer: SELECT * FROM zaposleni ORDER BY plata DESC;
će sortirati rezultate po plati u opadajućem redosledu.
4. Kako ograničiti broj vraćenih redova?
Koristimo LIMIT
klauzulu nakon SELECT
naredbe. Na primer: SELECT * FROM zaposleni LIMIT 10;
će vratiti samo prvih 10 redova.
5. Šta je spajanje tabela?
Spajanje je operacija kombinovanja podataka iz više tabela u jedinstven rezultat. Koristimo JOIN
naredbu da bismo spojili tabele.
6. Koji su različiti tipovi spajanja?
Postoji nekoliko tipova spajanja, uključujući unutrašnje, levo, desno i spoljašnje spajanje.
7. Kako uneti trenutni datum i vreme?
Da bismo uneli trenutni datum i vreme, možemo koristiti funkciju NOW()
. Na primer, INSERT INTO termini (datum_vreme) VALUES (NOW());
.
8. Kako izbeći SQL injekciju?
SQL injekcija je napad u kojem napadač unosi štetne SQL komande u upit. Da bismo je izbegli, trebalo bi koristiti parametrizovane upite i validirati ulazne podatke.