Uvod u SELECT u MySQL-u
U ovoj ćemo temi naučiti o SELECT-u u MySQL-u i uglavnom u DQL-u koji je "Jezik upita podataka". To se događa kada pokušamo dohvatiti zapise iz baze podataka, a ono započinje naredbom "SELECT". Ova se naredba može koristiti s mnogim SQL rečenicama, kao i drugim funkcijama za dobivanje željenih zapisa.
Postoji mnogo vrsta SQL naredbi koje se mogu svrstati u sljedeće:
- DDL (jezik definiranja podataka)
- DML (jezik za obradu podataka)
- DQL (jezik upita podataka)
- DCL (jezik kontrole podataka)
- TCL (jezik kontrole transakcije)
Sintaksa:
1. Osnovna sintaksa naredbe SELECT:
SELECT * FROM table_name;
Ovo će preuzeti sve zapise sa svim atributima iz tablice.
SELECT column1, column2, …. FROM table_name;
Ovo će preuzeti određene stupce iz tablice koja se prosljeđuje putem upita.
2. Ova naredba SELECT može se koristiti i sa naredbom INSERT koja se koristi za dodavanje zapisa u postojeću tablicu.
INSERT INTO table_name1 SELECT * FROM table_name2;
Ovdje će upit dohvatiti sve zapise iz table_name2 i umetnuti ih u table_name1.
Primjeri za implementaciju SELECT-a u MySQL
Razmotrimo da postoji tablica kupaca sa sljedećim atributima.
Cust_id | Ime | Prezime | Kontakt | Grad | Iznos | |
1001 | Rohit | Sharma | 9876736587 | Mumbai | 10000 | |
1002 | Virat | Kohli | 8752877855 | Delhi | 60000 | |
1003 | Sachin | Tendulkar | 9867868678 | Mumbai | 15000 | |
1004 | Virendra | Shewag | 9087788988 | Delhi | 20000 |
Vidjet ćemo neke osnovne SELECT upite koristeći neke klauzule za osnovno razumijevanje kako ova naredba radi.
Primjer 1
SELECT * FROM customer;
(Ovo će preuzeti sve zapise sa svim atributima iz tablice.)
Izlaz:
Cust_id | Ime | Prezime | Kontakt | Grad | Iznos | |
1001 | Rohit | Sharma | 9876736587 | Mumbai | 10000 | |
1002 | Virat | Kohli | 8752877855 | Delhi | 60000 | |
1003 | Sachin | Tendulkar | 9867868678 | Mumbai | 15000 | |
1004 | Virendra | Shewag | 9087788988 | Delhi | 20000 |
Primjer 2
SELECT cust_id, first_name, last_name, email, city
FROM customer;
(Ovo će preuzeti određene stupce iz tablice koja je proslijeđena upitom)
Izlaz:
Cust_id | Ime | Prezime | Grad | |
1001 | Rohit | Sharma | Mumbai | |
1002 | Virat | Kohli | Delhi | |
1003 | Sachin | Tendulkar | Mumbai | |
1004 | Virendra | Shewag | Delhi |
Primjer 3
SELECT cust_id, first_name, last_name, email, city FROM customer
WHERE city = 'Delhi';
(GDJE će naredba preuzeti samo te zapise, gdje će grad biti "Delhi")
Izlaz:
Cust_id | Ime | Prezime | Grad | |
1002 | Virat | Kohli | Delhi | |
1004 | Virendra | Shewag | Delhi |
Primjer 4
SELECT cust_id, first_name, last_name, city, amount FROM customer
WHERE amount BETWEEN 5000 AND 25000;
(IZMEĐU klauzule vratit će se zapisi koji udovoljavaju danom rasponu uvjeta prenesenih u upitu)
Izlaz:
Cust_id | Ime | Prezime | Grad | Iznos |
1001 | Rohit | Sharma | Mumbai | 10000 |
1003 | Sachin | Tendulkar | Mumbai | 15000 |
1004 | Virendra | Shewag | Delhi | 20000 |
Primjer 5
SELECT * FROM customer
ORDER BY amount DESC;
(Koristi se za sortiranje i brojčanih i nizskih vrijednosti bilo u uzlaznom ili silaznom obliku. Ali prema zadanom se sortira uzlazno. Ako želimo u silaznom stanju, moramo to odrediti nakon klauzule ORDER BY)
Izlaz:
Cust_id | Ime | Prezime | Kontakt | Grad | Iznos | |
1002 | Virat | Kohli | 8752877855 | Delhi | 60000 | |
1004 | Virendra | Shewag | 9087788988 | Delhi | 20000 | |
1003 | Sachin | Tendulkar | 9867868678 | Mumbai | 15000 | |
1001 | Rohit | Sharma | 9876736587 | Mumbai | 10000 |
Odredbe s naredbom SELECT
Ostale rečenice s naredbom SELECT:
1. SELECT: Koristi se za preuzimanje svih zapisa iz tablice.
SELECT * FROM table;
2. DISTINCT: Koristi se za dohvaćanje svih jedinstvenih vrijednosti iz tablice.
SELECT DISTINCT col_name FROM table;
3. GDJE: Koristili su se opraštajući uvjeti za preuzimanje zapisa.
SELECT employee_id FROM employee
WHERE name = 'stella';
4. COUNT: koristi se za dobivanje broja zapisa koji su prisutni u tablici.
SELECT COUNT(*) FROM employee;
5. NALOG PO: Koristi se za sortiranje i brojčanih i nizskih vrijednosti bilo u uzlaznom ili silaznom obliku. No prema zadanom se razvrstava uzlazno. Ako se želimo spustiti, moramo ga specificirati nakon upotrebe rečenice ORDER BY.
SELECT first_name FROM student
ORDER BY marks desc;
6. OGRANIČENJE: koristi se za određivanje broja zapisa koji želimo nakon izvršenja upita. Ako želimo prvih 5 učenika u razredu, nakon razvrstavanja rezultata, možemo ih iskoristiti tako što ćemo odrediti 5. Tako da će donijeti samo prvih 5 zapisa.
SELECT first_name FROM student
ORDER BY marks desc
LIMIT 5;
(** NARUDŽBA korištena ovdje za sortiranje vrijednosti u silaznom redoslijedu)
7. I: Ako su postavljena dva uvjeta i oba su ispunjena za zapis, tada će taj upit dohvatiti samo upit.
SELECT employee_id FROM employee
WHERE name = 'stella' AND city = 'Bangalore';
8. ILI: Ako su postavljena dva uvjeta i jedan je ispunjen za zapis, tada će se taj zapis preuzeti.
SELECT employee_id FROM employee
WHERE department = 'IT' OR city = 'Bangalore';
9. NE: Koristi se s uvjetima. Ako odredimo NE prije bilo kakvih uvjeta, dohvatit će se zapisi koji ne zadovoljavaju te uvjete.
SELECT employee_id FROM employee
WHERE NOT BETWEEN 1 AND 10;
10. IZMEĐU: Ovaj operator odabire zapise unutar određenog raspona. To uglavnom koristimo tamo gdje želimo odrediti raspon datuma.
SELECT emp_id FROM employee
WHERE emp_id BETWEEN 1 AND 10;
SELECT * FROM employee
WHERE join_date BETWEEN '2007-01-01' AND '2008-01-01';
11. IN: Ovaj operater omogućava nam odrediti više vrijednosti u WHERE rečenici.
SELECT * FROM employee
WHERE employee_id IN (1001, 1004, 1008, 1012);
12. kao što su: Ovaj operator se koristi s WHERE u potrazi za određeni uzorak u koloni koja sadrži niz.
- 'A%' - niz započinje s A
- '& A' - završava s A
- '% A%' - A će biti između niza
- '_A%' - Ovdje će drugo slovo biti A
- '% A_' - Drugo iz posljednjeg slova bit će A
SELECT first_name FROM table
WHERE first_name LIKE 'A%';
13. SUBSTRING: Koristi se za odabir određenog znaka iz niza određivanjem položaja.
SELECT SUBSTRING(customer_name, 1, 5) FROM customer_table;
(Donijet će lik s 1. na 5. mjesto niza)
14. INSTR: Vraća položaj niza u drugom nizu.
SELECT INSTR('independence', 'pen');
(pronaći će položaj olovke u riječi "neovisnost")
15. GRUPI PO: To se koristi za segregiranje zapisa na temelju nekih danih uvjeta.
SELECT employee_id FROM employee GROUP BY department HAVING salary > 100000;
(Ovdje se grupira po segregiranim zaposlenicima na temelju njihovog odjela i čija je plaća veća od 100k.
Uvjet uvijek dolazi s HAVING izjavom u GROUP BY klauzuli.)
Zbirne funkcije
Ispod je različita funkcija agregata:
1. SUM: Izračunava zbroj vrijednosti.
SELECT SUM(salary) FROM employee;
2. AVG: Izračunava prosječni skup vrijednosti.
SELECT AVG(salary) FROM employee;
3. MIN: Postavlja minimalnu vrijednost u skupu vrijednosti.
SELECT MIN(salary) FROM employee;
4. MAX: Postavlja maksimalnu vrijednost u skupu vrijednosti.
SELECT MAX(salary) FROM employee;
Pridružuje se SELECT-u u MySQL-u
1. INNER JOIN: Vraća zapise koji imaju obje podudarajuće vrijednosti u obje tablice.
SELECT * FROM order
INNER JOIN customer
ON order.cust_id = customer.cust_id;
2. LEVO JOIN: Vraća sve zapise iz lijeve tablice i podudarne zapise iz desne tablice.
SELECT * FROM order
LEFT JOIN customer
ON order.cust_id = customer.cust_id;
3. PRAVO JOIN: Vraća sve zapise s desne tablice i podudarnog zapisi iz lijeve tablice.
SELECT * FROM order
RIGHT JOIN customer
ON order.cust_id = customer.cust_id;
4. PUNI OUTER JOIN: Vraća sve zapise ako postoji podudaranje s lijeve ili desne tablice.
SELECT * FROM order
FULL OUTER JOIN customer
ON order.cust_id = customer.cust_id;
Zaključak - ODABIR u MySQL-u
Ove naredbe i odredbe o kojima smo gore raspravljali vrlo su korisni u scenarijima u stvarnom vremenu jer pružaju osnovne koncepte kako koristiti SQL upite za dohvaćanje i manipuliranje podacima u bazi podataka. Uz to, dok koristite unaprijed i analitičke upite poput funkcije prozora itd., Ove su odredbe vrlo važne.
Preporučeni članci
Ovo je vodič za SELECT u MySQL-u. Ovdje smo raspravljali o primjeru implementacije SELECT-a u MySQL s klauzulama, agregiranim funkcijama i pridruživanjima. Možete i proći naše druge predložene članke da biste saznali više -
- Zamjenski znakovi u MySQL-u
- Što je MySQL shema?
- Kako spojiti bazu podataka na MySQL?
- MySQL upiti
- ULAZITE u Oracle | Primjeri
- Primjeri DISTINCT u Oracleu