Úvod do SELECTu v MySQL

V tejto téme sa dozvieme o SELECTe v MySQL a hlavne do DQL, čo je „Data Query Language“. Toto sa hrá, keď sa snažíme načítať záznamy z databázy a začína sa príkazom „VYBRAŤ“. Tento príkaz je možné použiť s mnohými klauzulami SQL, ako aj s ďalšími funkciami na získanie požadovaných záznamov.

Existuje mnoho druhov príkazov SQL, ktoré možno rozdeliť do nasledujúcich kategórií:

  • DDL (jazyk na definovanie údajov)
  • DML (jazyk manipulácie s údajmi)
  • DQL (jazyk dopytov s údajmi)
  • DCL (jazyk kontroly dát)
  • TCL (Jazyk kontroly transakcií)

syntaxe:

1. Základná syntax príkazu SELECT:

SELECT * FROM table_name;

Tým sa z tabuľky načítajú všetky záznamy so všetkými atribútmi.

SELECT column1, column2, …. FROM table_name;

Týmto sa načíta zadaný stĺpec z tabuľky, ktorá sa odovzdá dotazu.

2. Tento príkaz SELECT sa dá použiť aj s príkazom INSERT, ktorý sa používa na pridávanie záznamov do existujúcej tabuľky.

INSERT INTO table_name1 SELECT * FROM table_name2;

Tento dotaz načíta všetky záznamy z tabuľky názov_tabulky2 a vloží ich do tabuľky názov_tabulky1.

Príklady implementácie SELECT v MySQL

Uvažujme, či existuje tabuľka zákazníkov s nasledujúcimi atribútmi.

Cust_idKrstné menoPriezviskoKontakte-mailveľkomestočiastka
1001RohitSharma9876736587Mumbai10000
1002ViratKohli8752877855Delhi60000
1003SachinTendulkar9867868678Mumbai15000
1004VirendraShewag9087788988Delhi20000

Uvidíme niekoľko základných SELECT dotazov pomocou niektorých klauzúl pre základné pochopenie toho, ako tento príkaz funguje.

Príklad č. 1

SELECT * FROM customer;

(Týmto sa načítajú všetky záznamy so všetkými atribútmi z tabuľky.)

Výkon:

Cust_idKrstné menoPriezviskoKontakte-mailveľkomestočiastka
1001RohitSharma9876736587Mumbai10000
1002ViratKohli8752877855Delhi60000
1003SachinTendulkar9867868678Mumbai15000
1004VirendraShewag9087788988Delhi20000

Príklad č. 2

SELECT cust_id, first_name, last_name, email, city
FROM customer;

(Týmto sa načíta zadaný stĺpec z tabuľky, ktorá prechádza dotazom.)

Výkon:

Cust_idKrstné menoPriezviskoe-mailveľkomesto
1001RohitSharmaMumbai
1002ViratKohliDelhi
1003SachinTendulkarMumbai
1004VirendraShewagDelhi

Príklad č. 3

SELECT cust_id, first_name, last_name, email, city FROM customer
WHERE city = 'Delhi';

(KDE príkaz načíta iba tie záznamy, v ktorých bude mesto „Dillí“).

Výkon:

Cust_idKrstné menoPriezviskoe-mailveľkomesto
1002ViratKohliDelhi
1004VirendraShewagDelhi

Príklad č. 4

SELECT cust_id, first_name, last_name, city, amount FROM customer
WHERE amount BETWEEN 5000 AND 25000;

(Klauzula BETWEEN vráti záznamy, ktoré spĺňajú daný rozsah podmienok odovzdaných v dotaze)

Výkon:

Cust_idKrstné menoPriezviskoveľkomestočiastka
1001RohitSharmaMumbai10000
1003SachinTendulkarMumbai15000
1004VirendraShewagDelhi20000

Príklad č. 5

SELECT * FROM customer
ORDER BY amount DESC;

(Používa sa na zoradenie číselných aj reťazcových hodnôt buď vzostupne alebo zostupne. V predvolenom nastavení sa však triedi vzostupne. Ak chceme zostupne, musíme ich špecifikovať po použití klauzuly ORDER BY)

Výkon:

Cust_idKrstné menoPriezviskoKontakte-mailveľkomestočiastka
1002ViratKohli8752877855Delhi60000
1004VirendraShewag9087788988Delhi20000
1003SachinTendulkar9867868678Mumbai15000
1001RohitSharma9876736587Mumbai10000

Klauzuly s príkazom SELECT

Ostatné klauzuly s príkazom SELECT:

1. VYBRAŤ: Používa sa na načítanie všetkých záznamov z tabuľky.

SELECT * FROM table;

2. DISTINCT: Používa sa na načítanie všetkých jedinečných hodnôt z tabuľky.

SELECT DISTINCT col_name FROM table;

3. KDE: Použité podmienky odpustenia pri vyhľadávaní záznamov.

SELECT employee_id FROM employee
WHERE name = 'stella';

4. COUNT: Používa sa na získanie počtu záznamov v tabuľke.

SELECT COUNT(*) FROM employee;

5. OBJEDNÁVKA PODĽA: Používa sa na triedenie číselných aj reťazcových hodnôt vzostupne alebo zostupne. Ale v predvolenom nastavení je usporiadané vzostupne. Ak chceme zostúpiť, musíme to špecifikovať po použití klauzuly ORDER BY.

SELECT first_name FROM student
ORDER BY marks desc;

6. LIMIT: Používa sa na určenie počtu záznamov, ktoré chceme po vykonaní dotazu. Ak chceme päť najlepších študentov triedy, potom po triedení výsledkov, môžeme použiť tento LIMIT zadaním 5. Aby sa načítalo iba 5 najlepších záznamov.

SELECT first_name FROM student
ORDER BY marks desc
LIMIT 5;

(** tu sa používa OBJEDNÁVKA na triedenie hodnoty v zostupnom poradí)

7. AND: Ak sú pre záznam zadané 2 podmienky a obidve podmienky sú splnené, načíta tieto záznamy iba dopyt.

SELECT employee_id FROM employee
WHERE name = 'stella' AND city = 'Bangalore';

8. ALEBO: Ak sú pre záznam zadané 2 podmienky a jedna z nich je splnená, tento záznam sa načíta.

SELECT employee_id FROM employee
WHERE department = 'IT' OR city = 'Bangalore';

9. NOT: Používa sa s podmienkami. Ak zadáme NIE pred akýmikoľvek podmienkami, budú načítané záznamy, ktoré nespĺňajú dané podmienky.

SELECT employee_id FROM employee
WHERE NOT BETWEEN 1 AND 10;

10. MEDZI: Tento operátor vyberá záznamy v danom rozsahu. Väčšinou to využívame tam, kde chceme špecifikovať rozsah dátumov.

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: Tento operátor nám umožňuje zadať viac hodnôt v klauzuli WHERE.

SELECT * FROM employee
WHERE employee_id IN (1001, 1004, 1008, 1012);

12. LIKE: Tento operátor sa používa s klauzuliou WHERE na vyhľadávanie špecifikovaného vzoru v stĺpci obsahujúcom reťazec.

  • 'A%' - reťazec začína písmenom A
  • '& A' - končí A
  • '% A%' - A bude medzi reťazcom
  • '_A%' - tu bude druhé písmeno A
  • '% A_' - Druhé od posledného písmena bude A

SELECT first_name FROM table
WHERE first_name LIKE 'A%';

13. SUBSTRING: Používa sa na výber konkrétneho znaku z reťazca zadaním polohy.

SELECT SUBSTRING(customer_name, 1, 5) FROM customer_table;

(načíta znak z 1. až 5. miesta v reťazci)

14. INSTR: Vracia pozíciu reťazca v inom reťazci.

SELECT INSTR('independence', 'pen');

(nájde pozíciu „pero“ v slove „nezávislosť“)

15. GROUP BY: Používa sa na oddelenie záznamov na základe niektorých daných podmienok.

SELECT employee_id FROM employee GROUP BY department HAVING salary > 100000;

(Tu zoskupte podľa segregovaných zamestnancov na základe ich oddelenia a ktorých plat je vyšší ako 100 000.
Podmienka vždy prichádza s príkazom HAVING v klauzuli GROUP BY.)

Agregované funkcie

Nižšie sú uvedené rôzne agregované funkcie:

1. SUM: Vypočíta súčet hodnôt.

SELECT SUM(salary) FROM employee;

2. AVG: Vypočíta priemernú množinu hodnôt.

SELECT AVG(salary) FROM employee;

3. MIN: Získa minimálnu hodnotu zo súboru hodnôt.

SELECT MIN(salary) FROM employee;

4. MAX: Získa maximálnu hodnotu zo súboru hodnôt.

SELECT MAX(salary) FROM employee;

Pripojí sa k SELECT v MySQL

1. INNER JOIN: Vracia záznamy, ktoré majú zhodnú hodnotu v oboch tabuľkách.

SELECT * FROM order
INNER JOIN customer
ON order.cust_id = customer.cust_id;

2. ĽAVÉ PRIPOJENIE: Vracia všetky záznamy z ľavej tabuľky a priradené záznamy z pravej tabuľky.

SELECT * FROM order
LEFT JOIN customer
ON order.cust_id = customer.cust_id;

3. PRAVÝ PRIPOJENÝ: Vracia všetky záznamy z pravej tabuľky a priradené záznamy z ľavej tabuľky.

SELECT * FROM order
RIGHT JOIN customer
ON order.cust_id = customer.cust_id;

4. FULL OUTER JOIN: Vráti všetky záznamy, ak existuje zhoda na ľavej alebo pravej tabuľke.

SELECT * FROM order
FULL OUTER JOIN customer
ON order.cust_id = customer.cust_id;

Záver - VÝBER v MySQL

Tieto príkazy a klauzuly, o ktorých sme hovorili vyššie, sú veľmi užitočné v scenároch v reálnom čase, pretože poskytujú základné pojmy o tom, ako používať SQL dotazy na načítanie a manipuláciu s údajmi v databáze. Okrem toho, pri použití predbežných a analytických dotazov, ako je funkcia okna atď., Sú tieto doložky veľmi dôležité.

Odporúčané články

Toto je príručka pre SELECT v MySQL. Tu diskutujeme príklad implementácie SELECTu v MySQL s klauzulami, agregovanými funkciami a pripojením. Viac informácií nájdete aj v ďalších navrhovaných článkoch -

  1. Zástupné znaky v MySQL
  2. Čo je schéma MySQL?
  3. Ako sa pripojiť k databáze MySQL?
  4. MySQL dotazy
  5. VLOŽIŤ do Oracle Príklady
  6. Príklady DISTINCT v Oracle