sql >> Databáze >  >> RDS >> Mysql

Nejčastější dotazy MySQL

Dotazy MySQL jsou obvykle zapsány jednou a poté zabaleny do funkcí třídy, aby se minimalizovalo opakování kódu. Tento článek uvádí 10 nejčastěji používaných dotazů v MySQL.

Dotaz je v podstatě požadavek na informace, které mají být načteny z databázové tabulky nebo kombinace tabulek. Existuje mnoho dotazovacích jazyků, které lze napsat pro provádění řady jednoduchých až složitých dotazů. Dotazy budou filtrovat určitá kritéria na základě konkrétních dat, která mají být nalezena. Může také automatizovat úlohy správy dat a zapojit se do výpočtů. Tato příručka popisuje 10 nejčastějších dotazů MySQL.

Využijme tyto ukázkové databáze, které nám pomohou dále porozumět tomu, jak jednotlivé dotazy fungují.

ID zaměstnance Jméno Název
1002 Webster W. Ředitel
1003 Lizzy S. Správce
1004 Oliver T. Softwarový inženýr
ID zaměstnance Oddělení Věk
1002 HR 36
1003 Prodej 21
1004 IT 39

VYBRAT vše 

K načtení a odeslání všech dat, která jsou z databáze, se používá jednoduchý dotaz SELECT. Jeho syntaxi lze zapsat jako takovou;

Kód:

SELECT *
FROM Employees;

Výsledek:

1002       Webster W.     Executive
1003       Lizzy S.       Manager
1004       Oliver T.      Software Engineer

Chcete-li vybrat všechny dostupné sloupce v tabulce, musíte použít „*“ k označení, že potřebujete vrátit všechny možné informace. Za druhé zadejte klíčové slovo FROM, abyste získali data z databázové tabulky. Nakonec vždy nezapomeňte ukončit své prohlášení středníkem „;“ správně dokončit požadavek.

VYBRAT sloupec

Chcete-li získat data z konkrétních sloupců a ne ze všech, stačí pouze uvést název pole namísto použití hvězdičky (*).

Kód:

SELECT Title
FROM Employees;

Výsledek:

Title
Executive
Manager
Software Engineer

Při výběru více sloupců z databáze by měly být odděleny čárkou. Asi tak;

SELECT Title, Name
FROM Employees;

Klauzule WHERE

Při použití klauzule WHERE v dotazu SELECT budou datové záznamy filtrovány a poté extrahovány záznamy, které odpovídají podmínkám jako výsledek.

Kód: 

SELECT *
FROM Employees
WHERE EmployeeID = 1004 ;

Výsledky: 

1004       Oliver T.          Software Engineer 

Klauzule WHERE může mít více než jednu podmínku, kterou lze oddělit pomocí klíčového slova AND.

VYTVOŘIT tabulku 

Tento dotaz lze použít ke generování nové tabulky s preferovaným výběrem sloupců. Při přidávání názvů sloupců nezapomeňte zadat jejich datový typ.

Kód:

CREATE TABLE EmployeeInfo (

EmployeeId INT,
Department VARCHAR(25),
Age NUMBER

);

Očekávané výsledky tabulky:

EmployeeID
Department
Department
NULL
NULL
NULL

Jakmile spustíte příkaz CREATE TABLE a naplníte jej názvy sloupců, výše uvedený dotaz vytvoří v databázi tabulku „EmployeeInfo“. V podstatě každý sloupec vrátí NULL, protože jsme nevložili žádnou konkrétní hodnotu. To nás vede k našemu dalšímu dotazu INSERT INTO.

INSERT INTO Query 

Toto je nejběžnější dotaz pro vložení hodnot do jednoho nebo více řádků nových záznamů v tabulce. Jsme schopni naplnit tabulku EmployeeInfo některými ukázkovými daty;

Kód: 

INSERT INTO EmployeeInfo (EmployeeID,Department,Age)
VALUES 
(1002, HR , 46),
(1003, Finance , 28),
(1004, IT , 39);

Výsledky tabulky:

Informace o zaměstnanci

EmployeeID
Department
Age
1002
HR
46
1003
Finance
28
1004
IT
39

Při psaní dotazu INSERT INTO musí být příkaz VALUES součástí celého příkazu.

AKTUALIZOVAT dotaz

Toto klíčové slovo se používá ke změně jednoho nebo více existujících sloupců v tabulce. Použití tohoto dotazu aktualizuje záznamy tabulky novými daty na základě určité podmínky.

Informace o zaměstnanci

EmployeeID
Department
Age
1002
HR
36
1003
Sales
21
1004
IT
39

Kód: 

UPDATE EmployeeInfo
SET Age = 22
WHERE EmployeeID = 1003;

Výsledky tabulky: 

Informace o zaměstnanci

EmployeeID
Department
Age
1002
HR
36
1003
Sales
22
1004
IT
39

Po příkazu UPDATE použijte klíčové slovo SET, abyste vždy určili, které sloupce se rozhodnete upravit, a poté přesně uveďte, KDE potřebujete aktualizovaná data použít.

SMAZAT Z dotazu

Chcete-li odstranit záznamy z tabulky na základě jedné nebo více podmínek, budete muset použít příkaz DELETE FROM. Při použití podmínek omezuje počet řádků ovlivněných dotazem.

Kód: 

DELETE FROM Employees
WHERE Name = ‘Lizzy’;

Výsledky tabulky:

Zaměstnanci

EmployeeID
Name
Title
1002
Webster W.
Executive 
1004
Oliver T.
Software Engineer 

Jak již bylo uvedeno v článku; pomocí podmínky WHERE přesně určíte, kde požadujete data odfiltrovat a provést. Tento dotaz má odstranit každý záznam z tabulky Zaměstnanci, který odpovídá jménu  „Lizzy“.

Pomocí klauzule GROUP BY, HAVING 

Klauzule GROUP BY se většinou vždy používá s agregačními funkcemi. Pomocí tohoto klíčového slova seskupíte sadu výsledků podle jednoho nebo více sloupců.

Klíčové slovo HAVING se používá k filtrování této sady výsledků. V ideálním případě byste si mysleli, že místo toho bude zavedena klauzule WHERE, avšak klauzule HAVING zavádí podmínku agregací.

Informace o zaměstnanci

EmployeeID
Department
Age
1002
HR
36
1003
Sales
21
1004
IT
39

Kód:

SELECT COUNT(Age), EmployeeID
FROM EmployeeInfo
GROUP BY EmployeeID
HAVING COUNT(Age) > 21;

Výsledky:

COUNT(Age)  EmployeeID
39   1004
36   1002  

Agregační funkce (SUM, AVG &COUNT)

Existují tři extrémně běžné agregační funkce, které umožňují interpretovat data z tabulky nebo spouštět výpočty.

  • POČET:Vrátí počet řádků, které odpovídají zadanému sloupci.
  • AVG:  vrací průměrnou hodnotu sloupce
  • SUM:Vrátí součet všech hodnot ve vybraném sloupci.

Informace o zaměstnanci

ID zaměstnance Oddělení Věk
1002 HR 36
1003 Prodej 21
1004 IT 39

Kód pro COUNT:

SELECT 
COUNT(Department)
FROM EmployeeInfo;

Výsledky:

COUNT(Department):
3

Kód pro AVG:

SELECT AVG(Age)
FROM EmployeeInfo;

Výsledky:

AVG(Age):
32

Kód pro SUM

SELECT SUM(Age)
FROM EmployeeInfo;

Výsledky:

SUM(Age):
96

PŘIPOJÍ SE

Spojení se používají ke spojení řádků z alespoň dvou tabulek na základě souvisejícího sloupce mezi tabulkami. Nejběžnější cvičná spojení jsou INNER, FULL a LEFT.

  • INNER Join – kombinuje řádky z různých tabulek, pokud je podmínka spojení pravdivá.
  • FULL Join –  vrátí všechny řádky, pokud je nalezena shoda v levém nebo pravém záznamu tabulky.
  • LEFT Join – načte všechny řádky z levé tabulky a odpovídající záznamy z pravé tabulky.

Zaměstnanci – Tabulka č. 1 (vlevo)

ID zaměstnance Jméno Název
1002 Webster W. Výkonný pracovník 
1003 Lizzy S. Manažer
1004 Oliver T. Softwarový inženýr 

EmployeeInfo – Tabulka č. 2 (vpravo)

ID zaměstnance Oddělení Věk
1002 HR 36
1003 Prodej 21
1004 IT 39

Kód INNER JOIN: 

SELECT Employees.Title, EmployeeInfo.Department
FROM Employees 
INNER JOIN EmployeeInfo 
ON Employees.EmployeeID = Employees.EmployeeID;

Výsledky:

Title          Department
Executive      HR     
Manager        Sales     
Software       Engineer  IT

FULL JOIN Code:

SELECT * 
FROM Employees  
FULL JOIN EmployeeInfo  
ON Employees.EmployeeID = Employees.EmployeeID;

Výsledky:

Vezme všechny řádky a sloupce z obou tabulek, včetně duplikátů, a spojí je do jedné celé tabulky.

LEFT JOIN Code:

SELECT Employees.Name, EmployeeInfo.Age
FROM Employees  
LEFT JOIN EmployeeInfo  
ON Employees.EmployeeID = Employees.EmployeeID;

Výsledky:

Name              Age
Webster W.        36    
Lizzy S.          21   
Oliver T.         39

Sloupec „ID zaměstnance“ v tabulce „Zaměstnanec“ odkazuje na „ID zaměstnance“ v tabulce „Info o zaměstnanci“ a v podstatě uvádí, že sloupec ID zaměstnance je vztah mezi oběma tabulkami. Spojení se mohou stát ošemetnou, ale zároveň velmi užitečnou při třídění ve větší databázi.

Uživatel a databáze jsou schopni úspěšně vyměňovat informace tím, že v podstatě mluví stejným jazykem. Výše uvedené dotazy jsou nejčastěji používané začátečníky i odborníky. Psaní MySQL dotazů je považováno za nejčastější funkci v oblasti správy databází.

Tento článek byl zkontrolován a aktualizován v dubnu 2022 Kelsey Perkins.


  1. Jaké je nejlepší grafické uživatelské rozhraní PostgreSQL? Srovnání 2021

  2. Jak vytisknout VARCHAR(MAX) pomocí Print Statement?

  3. 'IF' v příkazu 'SELECT' - zvolte výstupní hodnotu na základě hodnot sloupců

  4. Funkce JSON jsou nyní v SQLite ve výchozím nastavení povoleny