Sissejuhatus valimisse MySQL-is

Selles teemas õpime tundma valimist MySQLis ja enamasti DQL-is, mis on “Data Query Language”. See tuleb mängu siis, kui proovime andmebaasist kirjeid tuua ja see algab käsuga SELECT. Seda käsku saab soovitud kirjete saamiseks kasutada paljude SQL-klauslite ja muude funktsioonidega.

SQL-käske on palju erinevaid, mida saab liigitada järgmiselt:

  • DDL (andmete määratluse keel)
  • DML (andmete manipuleerimise keel)
  • DQL (andmepäringu keel)
  • DCL (andmejuhtimiskeel)
  • TCL (tehingu juhtimise keel)

Süntaks:

1. Käsu SELECT põhiline süntaks:

SELECT * FROM table_name;

See tõmbab kõik kirjed koos kõigi atribuutidega tabelist.

SELECT column1, column2, …. FROM table_name;

Sellega tuuakse päringust läbi viidud tabelist täpsustatud veerud.

2. Seda käsku SELECT saab kasutada ka koos käsuga INSERT, mida kasutatakse olemasolevale tabelile kirjete lisamiseks.

INSERT INTO table_name1 SELECT * FROM table_name2;

Siit päring tõmbab kõik kirjed tabelist_nimi2 ja lisab need tabelisse_nimi1.

Näited valiku SELECT rakendamiseks MySQL-is

Vaatleme, et olemas on klientide tabel järgmiste atribuutidega.

Cust_idEesnimiPerekonnanimiVõtke ühendustE-postLinnSumma
1001RohitSharma9876736587Mumbai10000
1002ViratKohli8752877855Delhi60000
1003SachinTendulkar9867868678Mumbai15000
1004VirendraShewag9087788988Delhi20000

Selle käsu toimimise mõistmiseks näeme mõnda põhivalikut SELECT, kasutades mõnda sätet.

Näide nr 1

SELECT * FROM customer;

(See tõmbab kõik kirjed koos kõigi atribuutidega tabelist.)

Väljund:

Cust_idEesnimiPerekonnanimiVõtke ühendustE-postLinnSumma
1001Rohitsharma9876736587Mumbai10000
1002ViratKohli8752877855Delhi60000
1003SachinTendulkar9867868678Mumbai15000
1004VirendraShewag9087788988Delhi20000

Näide 2

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

(See tõmbab tabelist määratletud veerud, mis edastatakse päringu kaudu)

Väljund:

Cust_idEesnimiPerekonnanimiE-postLinn
1001RohitsharmaMumbai
1002ViratKohliDelhi
1003SachinTendulkarMumbai
1004VirendraShewagDelhi

Näide 3

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

(Kus käsk hangib ainult need kirjed, kus linn saab olema Delhi)

Väljund:

Cust_idEesnimiPerekonnanimiE-postLinn
1002ViratKohliDelhi
1004VirendraShewagDelhi

Näide 4

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

(BETWEEN klausel tagastab kirjed, mis vastavad päringus esitatud tingimuste vahemikule)

Väljund:

Cust_idEesnimiPerekonnanimiLinnSumma
1001RohitsharmaMumbai10000
1003SachinTendulkarMumbai15000
1004VirendraShewagDelhi20000

Näide 5

SELECT * FROM customer
ORDER BY amount DESC;

(Kasutatakse nii numbriliste kui ka stringi väärtuste sorteerimiseks kas kasvavalt või kahanevalt. Vaikimisi sorteerib see aga kasvavalt. Kui me tahame laskuvalt, siis peame seda täpsustama pärast klausli ORDER BY kasutamist)

Väljund:

Cust_idEesnimiPerekonnanimiVõtke ühendustE-postLinnSumma
1002ViratKohli8752877855Delhi60000
1004VirendraShewag9087788988Delhi20000
1003SachinTendulkar9867868678Mumbai15000
1001Rohitsharma9876736587Mumbai10000

Klahvid nupuga SELECT

Muud käsud SELECT:

1. VALI: kasutatakse kõigi kirjete tabelist toomiseks.

SELECT * FROM table;

2. DISTINCT: kõigi tabelist unikaalsete väärtuste toomiseks.

SELECT DISTINCT col_name FROM table;

3. KUS: kasutatud andestustingimused dokumentide hankimisel.

SELECT employee_id FROM employee
WHERE name = 'stella';

4. COUNT: kasutatakse tabelis olevate kirjete arvu saamiseks.

SELECT COUNT(*) FROM employee;

5. ORDER BY: kasutatakse nii arvuliste kui ka stringi väärtuste sortimiseks kas kasvavalt või kahanevalt. Kuid vaikimisi sorteerib see kasvavalt. Kui tahame laskuda, peame selle täpsustama pärast klausli ORDER BY kasutamist.

SELECT first_name FROM student
ORDER BY marks desc;

6. LIMIT: seda kasutatakse kirjete arvu täpsustamiseks, mida me pärast päringu täitmist tahame. Kui soovime klassi 5 parimat õpilast, siis saame tulemuste sorteerimise järel seda Limiiti kasutada, täpsustades 5. Nii et see tooks ainult 5 parimat kirjet.

SELECT first_name FROM student
ORDER BY marks desc
LIMIT 5;

(** ORDER BY kasutatakse siin väärtuse sortimiseks kahanevas järjekorras)

7. JA: Kui on antud 2 tingimust ja mõlemad on kirje jaoks täidetud, tõmbab selle kirje ainult päring.

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

8. VÕI: Kui antakse 2 tingimust ja üks neist on kirje jaoks täidetud, siis see kirje tuuakse.

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

9. MITTE: kasutatakse tingimustes. Kui täpsustame enne tingimusi MITT, siis tuuakse need tingimused mittevastavad kirjed.

SELECT employee_id FROM employee
WHERE NOT BETWEEN 1 AND 10;

10. VAHEL: See operaator valib kirjed antud vahemikus. Enamasti kasutame seda seal, kus soovime täpsustada kuupäevavahemikku.

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: see operaator võimaldab meil WHERE-klauslis määratleda mitu väärtust.

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

12. LIKE: seda operaatorit kasutatakse koos WHERE-klausliga stringi sisaldavas veerus määratud mustri otsimiseks.

  • 'A%' - string algab tähega A
  • '& A' - lõpeb tähega A
  • '% A%' - A jääb stringi vahele
  • '_A%' - siin on teine ​​täht A
  • '% A_' - viimasest tähest teine ​​on A

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

13. SUBSTRING: kasutatakse stringi hulgast konkreetse tähe valimiseks, täpsustades asukoha.

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

(see tõmbub stringi 1.-5. positsioonile)

14. INSTR: See tagastab stringi asukoha teises stringi.

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

(see leiab sõna "sõltumatus" positsiooni "pastakas")

15. GROUP BY: Seda kasutatakse dokumentide eraldamiseks teatud tingimuste alusel.

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

(Siin rühmitatakse eraldatud töötajate kaupa nende osakonna alusel ja kelle palk on üle 100k.
Tingimus on alati kaasas avaldusega grupis BY BY.)

Agregeeritud funktsioonid

Allpool on erinevad liitfunktsioonid:

1. SUM: arvutab väärtuste summa.

SELECT SUM(salary) FROM employee;

2. AVG: arvutab keskmise väärtuste kogumi.

SELECT AVG(salary) FROM employee;

3. MIN: saab minimaalse väärtuse väärtuste kogumis.

SELECT MIN(salary) FROM employee;

4. MAX: saab maksimaalse väärtuse väärtuste kogumis.

SELECT MAX(salary) FROM employee;

Liitub MySQL-is SELECT-iga

1. INNER JOIN: tagastab kirjed, millel on mõlemas tabelis vastav väärtus.

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

2. VASAK LIITUMINE: Tagastab kõik kirjed vasakult tabelilt ja vastavad kirjed paremalt tabelilt.

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

3. PAREM LIITUMINE: Tagastab kõik kirjed paremalt tabelilt ja vastavad kirjed vasakult tabelilt.

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

4. TÄIELIK VÄLISLIITUMINE: Tagastab kõik kirjed, kui vasakul või paremal on vasted.

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

Järeldus - vali MySQL-is

Need käsud ja klauslid, millest me eespool arutlesime, on reaalajas stsenaariumides väga kasulikud, kuna need pakuvad põhimõisteid, kuidas kasutada SQL-i päringuid andmebaasi andmete toomiseks ja nendega manipuleerimiseks. Lisaks eelnevate ja analüütiliste päringute (nt aknafunktsioon jne) kasutamisel on need klauslid väga olulised.

Soovitatavad artiklid

See on juhend valimiseks MySQL-is MySQL-is Siin käsitleme näidet SELECTi rakendamiseks MySQL-is koos klauslite, liitfunktsioonide ja liitumistega. Lisateavet leiate ka meie muudest soovitatud artiklitest -

  1. Rahatähed MySQL-is
  2. Mis on MySQL skeem?
  3. Kuidas ühendada andmebaas MySQL-iga?
  4. MySQL päringud
  5. INSERT Oracle'is | Näited
  6. DISTINCTi näited Oracle'is