Uvod v SELECT v MySQL
V tej temi bomo spoznali SELECT v MySQL in večinoma DQL, ki je "jezik poizvedbenih podatkov". To se začne igrati, ko poskušamo pridobiti zapise iz baze podatkov in se začne z ukazom "SELECT". Ta ukaz lahko uporabite z mnogimi SQL klavzulami in drugimi funkcijami za pridobivanje želenih zapisov.
Obstaja veliko vrst ukazov SQL, ki jih lahko razvrstimo v naslednje:
- DDL (jezik opredelitve podatkov)
- DML (jezik za obdelavo podatkov)
- DQL (jezik poizvedbe)
- DCL (jezik nadzora podatkov)
- TCL (jezik nadzora transakcij)
Sintaksa:
1. Osnovna skladnja ukaza SELECT:
SELECT * FROM table_name;
Tako bodo vsi zapisi z vsemi atributi iz tabele.
SELECT column1, column2, …. FROM table_name;
To bo odneslo določene stolpce iz tabele, ki jih posredujemo poizvedbi.
2. Ta ukaz SELECT lahko uporabite tudi z ukazom INSERT, ki se uporablja za dodajanje zapisov v obstoječo tabelo.
INSERT INTO table_name1 SELECT * FROM table_name2;
Tu bo poizvedba pobrala vse zapise iz table_name2 in jih vstavila v table_name1.
Primeri za izvajanje SELECT v MySQL
Upoštevajmo, da obstaja tabela kupcev z naslednjimi atributi.
Cust_id | Ime | Priimek | Kontakt | E-naslov | Mesto | Znesek |
1001 | Rohit | Šarma | 9876736587 | Bombaj | 10000 | |
1002 | Virat | Kohli | 8752877855 | Delhi | 60000 | |
1003 | Sachin | Tendulkar | 9867868678 | Bombaj | 15000 | |
1004 | Virendra | Shewag | 9087788988 | Delhi | 20000 |
Ogledali si bomo nekaj osnovnih poizvedb SELECT z uporabo nekaterih klavzul za osnovno razumevanje, kako deluje ta ukaz.
Primer # 1
SELECT * FROM customer;
(To bo vse zapise z vsemi atributi iz tabele.)
Izhod:
Cust_id | Ime | Priimek | Kontakt | E-naslov | Mesto | Znesek |
1001 | Rohit | šarma | 9876736587 | Bombaj | 10000 | |
1002 | Virat | Kohli | 8752877855 | Delhi | 60000 | |
1003 | Sachin | Tendulkar | 9867868678 | Bombaj | 15000 | |
1004 | Virendra | Shewag | 9087788988 | Delhi | 20000 |
Primer # 2
SELECT cust_id, first_name, last_name, email, city
FROM customer;
(To bo preneslo določene stolpce iz tabele, ki jih posreduje poizvedba)
Izhod:
Cust_id | Ime | Priimek | E-naslov | Mesto |
1001 | Rohit | šarma | Bombaj | |
1002 | Virat | Kohli | Delhi | |
1003 | Sachin | Tendulkar | Bombaj | |
1004 | Virendra | Shewag | Delhi |
Primer # 3
SELECT cust_id, first_name, last_name, email, city FROM customer
WHERE city = 'Delhi';
(KJE bo ukaz dobil samo te zapise, kjer bo mesto „Delhi“)
Izhod:
Cust_id | Ime | Priimek | E-naslov | Mesto |
1002 | Virat | Kohli | Delhi | |
1004 | Virendra | Shewag | Delhi |
Primer št. 4
SELECT cust_id, first_name, last_name, city, amount FROM customer
WHERE amount BETWEEN 5000 AND 25000;
(Klavzula BETWEEN bo vrnila zapise, ki izpolnjujejo dani razpon pogojev, poslanih v poizvedbi)
Izhod:
Cust_id | Ime | Priimek | Mesto | Znesek |
1001 | Rohit | šarma | Bombaj | 10000 |
1003 | Sachin | Tendulkar | Bombaj | 15000 |
1004 | Virendra | Shewag | Delhi | 20000 |
Primer št. 5
SELECT * FROM customer
ORDER BY amount DESC;
(Uporablja se za razvrščanje tako številčnih kot nizskih vrednosti v naraščajočem ali padajočem. Toda privzeto se razvršča po naraščajočem. Če želimo v padajočem, potem ga moramo določiti po določbi ORDER BY)
Izhod:
Cust_id | Ime | Priimek | Kontakt | E-naslov | Mesto | Znesek |
1002 | Virat | Kohli | 8752877855 | Delhi | 60000 | |
1004 | Virendra | Shewag | 9087788988 | Delhi | 20000 | |
1003 | Sachin | Tendulkar | 9867868678 | Bombaj | 15000 | |
1001 | Rohit | šarma | 9876736587 | Bombaj | 10000 |
Stavki z ukazom SELECT
Druge določbe z ukazom SELECT:
1. IZBERI: Uporablja se za pridobivanje vseh zapisov iz tabele.
SELECT * FROM table;
2. DISTINCT: Uporablja se za pridobivanje vseh edinstvenih vrednosti iz tabele.
SELECT DISTINCT col_name FROM table;
3. KJE: Uporabljeni odpuščalni pogoji pri pridobivanju zapisov.
SELECT employee_id FROM employee
WHERE name = 'stella';
4. COUNT: Uporablja se za pridobivanje števila zapisov v tabeli.
SELECT COUNT(*) FROM employee;
5. NAROČI PO: Uporablja se za razvrščanje številskih in vrsticnih vrednosti bodisi v naraščajočem ali padajočem. Toda privzeto se razvršča po naraščajočem. Če se želimo spustiti, ga moramo določiti po uporabi stavka ORDER BY.
SELECT first_name FROM student
ORDER BY marks desc;
6. OMEJITEV: Uporablja se za določitev želenega števila zapisov po izvedbi poizvedbe. Če želimo najboljših 5 učencev v razredu, potem lahko po razvrščanju rezultatov uporabimo to OMEJITEV tako, da določimo 5. Tako, da bo le dobil prvih 5 zapisov.
SELECT first_name FROM student
ORDER BY marks desc
LIMIT 5;
(** NAROČILO, uporabljeno tukaj za razvrščanje vrednosti v padajočem vrstnem redu)
7. IN: Če sta podana dva pogoja in sta za zapis izpolnjena oba, potem bo ta poizvedba dobila samo poizvedbo.
SELECT employee_id FROM employee
WHERE name = 'stella' AND city = 'Bangalore';
8. ALI: Če sta podana dva pogoja in eden od njiju izpolnjen za zapis, se bo ta zapis prejel.
SELECT employee_id FROM employee
WHERE department = 'IT' OR city = 'Bangalore';
9. NE: Uporablja se pri pogojih. Če pred nobenimi pogoji določimo NE, se bodo prejeli zapisi, ki ne izpolnjujejo teh pogojev.
SELECT employee_id FROM employee
WHERE NOT BETWEEN 1 AND 10;
10. MED: Ta operater izbere zapise v določenem obsegu. Večinoma to uporabljamo tam, kjer želimo določiti razpon datumov.
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: Ta operater nam omogoča, da v stavku WHERE določimo več vrednosti.
SELECT * FROM employee
WHERE employee_id IN (1001, 1004, 1008, 1012);
12. LIKE: Ta operater se uporablja s klavzulo WHERE za iskanje določenega vzorca v stolpcu, ki vsebuje niz.
- 'A%' - niz se začne z A
- '& A' - konča se z A
- '% A%' - A bo v nizu
- '_A%' - Tukaj bo druga črka A
- '% A_' - druga od zadnje črke bo A
SELECT first_name FROM table
WHERE first_name LIKE 'A%';
13. PODROČJE: Uporablja se za izbiro določenega znaka iz niza z navedbo položaja.
SELECT SUBSTRING(customer_name, 1, 5) FROM customer_table;
(Dobil bo znak od 1. do 5. mesta niza)
14. INSTR: To vrne položaj niza v drugem nizu.
SELECT INSTR('independence', 'pen');
(v besedi „neodvisnost“ bo našel položaj „peresa“)
15. SKUPINA PO: To se uporablja za ločevanje zapisov na podlagi nekaterih danih pogojev.
SELECT employee_id FROM employee GROUP BY department HAVING salary > 100000;
(Tu se združujejo ločeno zaposleni na podlagi njihovega oddelka in katerih plača presega 100k.
Pogoj je vedno v stavku HAVING v oddelku GROUP BY.)
Združene funkcije
Spodaj je različna funkcija agregata:
1. SUM: Izračuna vsoto vrednosti.
SELECT SUM(salary) FROM employee;
2. AVG: Izračuna povprečni niz vrednosti.
SELECT AVG(salary) FROM employee;
3. MIN: Dobi najnižjo vrednost v naboru vrednosti.
SELECT MIN(salary) FROM employee;
4. MAX: Določi največjo vrednost v naboru vrednosti.
SELECT MAX(salary) FROM employee;
Pridružuje se SELECT-u v MySQL
1. INNER JOIN: Vrne zapise z ustreznimi vrednostmi v obeh tabelah.
SELECT * FROM order
INNER JOIN customer
ON order.cust_id = customer.cust_id;
2. LEVO JOIN: Vrne vse zapise iz leve tabele in izravnane zapise iz desne tabele.
SELECT * FROM order
LEFT JOIN customer
ON order.cust_id = customer.cust_id;
3. DESNO PRIDRUŽI SE: Vrne vse zapise iz desne tabele in izravnane zapise iz leve tabele.
SELECT * FROM order
RIGHT JOIN customer
ON order.cust_id = customer.cust_id;
4. FULL OUTER JOIN: Vrne vse zapise, če obstaja ujemanje na levi ali desni tabeli.
SELECT * FROM order
FULL OUTER JOIN customer
ON order.cust_id = customer.cust_id;
Zaključek - SELECT v MySQL
Ti ukazi in določbe, o katerih smo govorili zgoraj, so zelo uporabni v scenarijih v realnem času, saj zagotavljajo osnovne pojme, kako uporabiti poizvedbe SQL za pridobivanje in manipuliranje s podatki v bazi. Poleg tega so te klavzule med uporabo predhodnih in analitičnih poizvedb, kot so funkcija oken itd., Zelo pomembne.
Priporočeni članki
To je vodnik za SELECT v MySQL Tu smo razpravljali o primeru za izvajanje SELECT v MySQL s Clause, Aggregate Functions in Joins. Če želite izvedeti več, lahko preberete tudi druge naše predlagane članke -
- Zelene kartice v MySQL
- Kaj je shema MySQL?
- Kako povezati bazo podatkov z MySQL?
- Poizvedbe MySQL
- VSTAVITE v Oracle | Primeri
- Primeri DISTINCT v Oracleu