Úvod do SELECTu v MySQL

V tomto tématu se budeme učit o SELECTu v MySQL a hlavně do DQL, což je „Data Query Language“. To se spustí, když se pokusíme načíst záznamy z databáze a začíná to příkazem „VYBRAT“. Tento příkaz lze použít s mnoha klauzulami SQL a dalšími funkcemi k získání požadovaných záznamů.

Existuje mnoho druhů příkazů SQL, které lze rozdělit do následujících kategorií:

  • DDL (jazyk pro definici dat)
  • DML (jazyk pro manipulaci s daty)
  • DQL (jazyk datového dotazu)
  • DCL (jazyk pro kontrolu dat)
  • TCL (Transaction control language)

Syntax:

1. Základní syntaxe příkazu SELECT:

SELECT * FROM table_name;

Tím se z tabulky načtou všechny záznamy se všemi atributy.

SELECT column1, column2, …. FROM table_name;

Tím se načtou zadané sloupce z tabulky, které jsou předány dotazem.

2. Tento příkaz SELECT lze také použít s příkazem INSERT, který se používá pro přidání záznamů do stávající tabulky.

INSERT INTO table_name1 SELECT * FROM table_name2;

Dotaz zde načte všechny záznamy z tabulky název_tabulky2 a vloží je do tabulky název_tabulky1.

Příklady implementace SELECT v MySQL

Uvažujme, že existuje zákaznická tabulka s následujícími atributy.

Cust_idJménoPříjmeníKontaktE-mailemMěstoMnožství
1001RohitSharma9876736587Bombaj10000
1002ViratKohli8752877855Dillí60000
1003SachinTendulkar9867868678Bombaj15000
1004VirendraShewag9087788988Dillí20000

Uvidíme některé základní SELECT dotazy pomocí některých klauzí pro základní pochopení toho, jak tento příkaz funguje.

Příklad č. 1

SELECT * FROM customer;

(Tím se načtou všechny záznamy se všemi atributy z tabulky.)

Výstup:

Cust_idJménoPříjmeníKontaktE-mailemMěstoMnožství
1001RohitSharma9876736587Bombaj10000
1002ViratKohli8752877855Dillí60000
1003SachinTendulkar9867868678Bombaj15000
1004VirendraShewag9087788988Dillí20000

Příklad č. 2

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

(Tím se načtou určené sloupce z tabulky, které jsou předány dotazem)

Výstup:

Cust_idJménoPříjmeníE-mailemMěsto
1001RohitSharmaBombaj
1002ViratKohliDillí
1003SachinTendulkarBombaj
1004VirendraShewagDillí

Příklad č. 3

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

(KDE příkaz načte pouze ty záznamy, kde bude město 'Delhi')

Výstup:

Cust_idJménoPříjmeníE-mailemMěsto
1002ViratKohliDillí
1004VirendraShewagDillí

Příklad č. 4

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

(BETWEEN klauzule vrátí záznamy, které splňují daný rozsah podmínek předaných v dotazu)

Výstup:

Cust_idJménoPříjmeníMěstoMnožství
1001RohitSharmaBombaj10000
1003SachinTendulkarBombaj15000
1004VirendraShewagDillí20000

Příklad č. 5

SELECT * FROM customer
ORDER BY amount DESC;

(Používá se k třídění číselných i řetězcových hodnot buď vzestupně nebo sestupně. Ve výchozím nastavení se však třídí vzestupně. Pokud chceme sestupně, musíme je specifikovat po použití klauzule ORDER BY)

Výstup:

Cust_idJménoPříjmeníKontaktE-mailemMěstoMnožství
1002ViratKohli8752877855Dillí60000
1004VirendraShewag9087788988Dillí20000
1003SachinTendulkar9867868678Bombaj15000
1001RohitSharma9876736587Bombaj10000

Klauzule s příkazem SELECT

Další klauzule s příkazem SELECT:

1. VÝBĚR: Slouží k načtení všech záznamů z tabulky.

SELECT * FROM table;

2. DISTINCT: Slouží k načtení všech jedinečných hodnot z tabulky.

SELECT DISTINCT col_name FROM table;

3. KDE: Použité podmínky odpuštění při získávání záznamů.

SELECT employee_id FROM employee
WHERE name = 'stella';

4. COUNT: Slouží k získání počtu záznamů přítomných v tabulce.

SELECT COUNT(*) FROM employee;

5. OBJEDNÁVKA: Používá se k třídění číselných i řetězcových hodnot vzestupně nebo sestupně. Ve výchozím nastavení se však třídí vzestupně. Pokud chceme sestoupit, musíme to určit po použití klauzule ORDER BY.

SELECT first_name FROM student
ORDER BY marks desc;

6. LIMIT: Slouží ke stanovení počtu záznamů, které chceme po provedení dotazu. Pokud chceme pět nejlepších studentů ve třídě, pak po třídění výsledků můžeme použít tento LIMIT zadáním 5. Aby bylo možné načíst pouze 5 nejlepších záznamů.

SELECT first_name FROM student
ORDER BY marks desc
LIMIT 5;

(** zde se používá OBJEDNÁVKA pro třídění hodnot v sestupném pořadí)

7. AND: Jsou-li pro záznam zadány 2 podmínky a obě jsou splněny, pak tyto záznamy načte pouze dotaz.

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

8. NEBO: Jsou-li pro záznam zadány 2 podmínky a jedna z nich je splněna, bude tento záznam vyvolán.

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

9. NOT: Používá se s podmínkami. Pokud určíme NE před jakýmikoli podmínkami, budou načteny záznamy, které nesplňují dané podmínky.

SELECT employee_id FROM employee
WHERE NOT BETWEEN 1 AND 10;

10. MEZI: Tento operátor vybere záznamy v daném rozsahu. Většinou to používáme tam, kde chceme určit rozsah dat.

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 určit více hodnot v klauzuli WHERE.

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

12. LIKE: Tento operátor se používá s klauzulí WHERE k vyhledání zadaného vzoru ve sloupci obsahujícím řetězec.

  • 'A%' - řetězec začíná písmenem A
  • '& A' - končí A
  • '% A%' - A bude mezi řetězcem
  • '_A%' - Zde bude druhé písmeno A
  • '% A_' - Druhé z posledního písmene bude A

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

13. SUBSTRING: Slouží k výběru konkrétního znaku z řetězce zadáním pozice.

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

(načte znak z 1. až 5. pozice řetězce)

14. INSTR: Vrací pozici řetězce v jiném řetězci.

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

(najde slovo „pero“ ve slově „nezávislost“)

15. GROUP BY: Používá se k oddělení záznamů na základě určitých daných podmínek.

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

(Zde se seskupte podle segregovaných zaměstnanců na základě jejich oddělení a jejichž plat je vyšší než 100 tisíc.
Podmínka vždy přichází s příkazem HAVING v klauzuli GROUP BY.)

Souhrnné funkce

Níže je uvedena různá agregační funkce:

1. SUM: Vypočítá součet hodnot.

SELECT SUM(salary) FROM employee;

2. AVG: Vypočítá průměrnou sadu hodnot.

SELECT AVG(salary) FROM employee;

3. MIN: Získá minimální hodnotu v sadě hodnot.

SELECT MIN(salary) FROM employee;

4. MAX: Získá maximální hodnotu v sadě hodnot.

SELECT MAX(salary) FROM employee;

Připojuje se k SELECT v MySQL

1. VNITŘNÍ PŘIPOJENÍ: Vrací záznamy, které mají shodnou hodnotu v obou tabulkách.

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

2. LEFT JOIN: Vrací všechny záznamy z levé tabulky a odpovídající záznamy z pravé tabulky.

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

3. PRAVÝ PŘIPOJENÍ: Vrací všechny záznamy z pravé tabulky a odpovídající záznamy z levé tabulky.

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

4. FULL OUTER JOIN: Vrací všechny záznamy, pokud existuje shoda na levé nebo pravé tabulce.

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

Závěr - VÝBĚR v MySQL

Tyto příkazy a klauzule, o nichž jsme hovořili výše, jsou velmi užitečné v scénářích v reálném čase, protože poskytují základní pojmy o tom, jak používat SQL dotazy k načtení a manipulaci s daty v databázi. Kromě toho, při použití předem a analytických dotazů, jako je funkce okna atd., Jsou tyto doložky velmi důležité.

Doporučené články

Toto je průvodce SELECTem v MySQL. Zde diskutujeme příklad implementace SELECTu v MySQL s klauzulemi, agregačními funkcemi a připojením. Další informace naleznete také v dalších navrhovaných článcích -

  1. Zástupné znaky v MySQL
  2. Co je MySQL Schema?
  3. Jak připojit databázi k MySQL?
  4. MySQL dotazy
  5. VLOŽTE do Oracle | Příklady
  6. Příklady DISTINCT v Oracle