Kas ir SELECT vaicājums MySQL?
SELECT QUERY tiek izmantots, lai ielādētu datus no MySQL datu bāzes. Datu bāzes glabā datus vēlākai iegūšanai. MySQL Select mērķis ir atgriezties no datu bāzes tabulām vienā vai vairākās rindās, kas atbilst noteiktiem kritērijiem. Atlasīt vaicājumu var izmantot skriptu valodā, piemēram, PHP, Ruby, vai arī to varat izpildīt, izmantojot komandu uzvedni.
SQL SELECT priekšraksta sintakse
Tā ir visbiežāk izmantotā SQL komanda, un tai ir šāda vispārīgā sintakse
SELECT [DISTINCT|ALL ] { * | [fieldExpression [AS newName]} FROM tableName [alias] [WHERE condition][GROUP BY fieldName(s)] [HAVING condition] ORDER BY fieldName(s)ŠEIT
- SELECT ir SQL atslēgvārds, kas ļauj datu bāzei zināt, ka vēlaties izgūt datus.
- [ATŠĶIRT | ALL] ir izvēles atslēgvārdi, kurus var izmantot, lai precīzi pielāgotu SQL SELECT priekšraksta atgrieztos rezultātus. Ja nekas nav norādīts, par noklusējumu tiek pieņemts VISS.
- {* | [fieldExpression [AS newName]} ir jānorāda vismaz viena daļa, "*" atlasot visus laukus no norādītā tabulas nosaukuma, fieldExpression veic dažus aprēķinus norādītajos laukos, piemēram, skaitļu pievienošanu vai divu virkņu lauku salikšanu vienā.
- FROM tableName ir obligāts, un tajā jābūt vismaz vienai tabulai, vairākas tabulas jāatdala, izmantojot komatus, vai jāapvieno, izmantojot JOIN atslēgvārdu.
- Nosacījums WHERE nav obligāts, to var izmantot, lai norādītu kritērijus rezultātu komplektā, kas atgriezts no vaicājuma.
- GROUP BY tiek izmantots, lai apkopotu ierakstus, kuriem ir vienādas lauka vērtības.
- Nosacījums HAVING tiek izmantots, lai norādītu kritērijus, strādājot, izmantojot atslēgvārdu GROUP BY.
- ORDER BY tiek izmantots, lai norādītu rezultātu kopas kārtošanas secību.
*
Zvaigznīte Zvaigzne tiek izmantota, lai atlasītu visas tabulas kolonnas. Vienkārša SELECT priekšraksta piemērs izskatās kā parādīts zemāk.
SELECT * FROM `members`;
Iepriekš minētajā paziņojumā tiek atlasīti visi lauki no dalībnieku tabulas. Semikols ir paziņojums izbeigt. Tas nav obligāti, bet tiek uzskatīts par labu praksi šādi izbeigt savus paziņojumus.
Praktiski piemēri
Noklikšķiniet, lai lejupielādētu myflix DB, kas izmantots praktiskiem piemēriem.
Jūs varat iemācīties importēt .sql failu MySQL WorkBench
Piemēri tiek veikti šādās divās tabulās
1. tabula: dalībnieku tabula
dalībnieka numurs | pilni_nosaukumi | dzimums | dzimšanas datums | fizikālā adrese | pasta adrese | cont_ numurs | e-pasts |
---|---|---|---|---|---|---|---|
1 | Dženeta Džonsa | Sieviete | 21-07-1980 | Pirmās ielas zemes gabals Nr. 4 | Privātā soma | 0759 253 542 | Šī e-pasta adrese ir aizsargāta no mēstuļu robotiem. Lai to apskatītu, jums jābūt aktivizētam Javascript. |
2 | Dženeta Smita Džonsa | Sieviete | 23.06.1980 | Melroze 123 | NULL | NULL | Šī e-pasta adrese ir aizsargāta no mēstuļu robotiem. Lai to apskatītu, jums jābūt aktivizētam Javascript. |
3 | Roberts Fils | Vīrietis | 12-07-1989 | 3. iela 34 | NULL | 12345 | Šī e-pasta adrese ir aizsargāta no mēstuļu robotiem. Lai to apskatītu, jums jābūt aktivizētam Javascript. |
4 | Glorija Viljamsa | Sieviete | 14-02-1984 | 2. iela 23 | NULL | NULL | NULL |
2. tabula: filmu tabula
movie_id | nosaukums | direktors | gads_izlaists | category_id |
---|---|---|---|---|
1 | Karību jūras pirāti 4 | Robs Māršals | 2011. gads | 1 |
2 | Aizmirstot Sāru Maršalu | Nikolass Štollers | 2008. gads | 2 |
3 | X-Men | NULL | 2008. gads | NULL |
4 | Kods Melns | Edgars Džimzs | 2010. gads | NULL |
5 | Tēta mazās meitenes | NULL | 2007. gads | 8 |
6 | Eņģeļi un dēmoni | NULL | 2007. gads | 6 |
7 | Davinci kods | NULL | 2007. gads | 6 |
9 | Medus mooners | Džons Šulcs | 2005. gads | 8 |
16 | 67% vainīgs | NULL | 2012. gads | NULL |
Notiek dalībnieku iekļaušana sarakstā
Pieņemsim, ka mēs vēlamies no mūsu datu bāzes iegūt visu reģistrēto bibliotēkas dalībnieku sarakstu, lai to izdarītu, mēs izmantotu zemāk redzamo skriptu.
SELECT * FROM `members`;
Izpildot iepriekš minēto skriptu MySQL darbagaldā, tiek iegūti šādi rezultāti.
dalībnieka numurs | pilni_nosaukumi | dzimums | dzimšanas datums | fizikālā adrese | pasta adrese | cont_ numurs | e-pasts |
---|---|---|---|---|---|---|---|
1 | Dženeta Džonsa | Sieviete | 21-07-1980 | Pirmās ielas zemes gabals Nr. 4 | Privātā soma | 0759 253 542 | Šī e-pasta adrese ir aizsargāta no mēstuļu robotiem. Lai to apskatītu, jums jābūt aktivizētam Javascript. |
2 | Dženeta Smita Džonsa | Sieviete | 23.06.1980 | Melroze 123 | NULL | NULL | Šī e-pasta adrese ir aizsargāta no mēstuļu robotiem. Lai to apskatītu, jums jābūt aktivizētam Javascript. |
3 | Roberts Fils | Vīrietis | 12-07-1989 | 3. iela 34 | NULL | 12345 | Šī e-pasta adrese ir aizsargāta no mēstuļu robotiem. Lai to apskatītu, jums jābūt aktivizētam Javascript. |
4 | Glorija Viljamsa | Sieviete | 14-02-1984 | 2. iela 23 | NULL | NULL | NULL |
Mūsu iepriekšējais vaicājums ir atgriezis visas rindas un kolonnas no dalībnieku tabulas.
Pieņemsim, ka mūs interesē tikai lauki pilni_nosaukumi, dzimums, fiziskā adrese un e-pasts. Šis raksts mums palīdzētu to sasniegt.
SELECT `full_names`,`gender`,`physical_address`, `email` FROM `members`;
Izpildot iepriekš minēto skriptu MySQL darbagaldā, tiek iegūti šādi rezultāti.
pilni_nosaukumi | dzimums | fizikālā adrese | e-pasts |
---|---|---|---|
Dženeta Džonsa | Sieviete | Pirmās ielas zemes gabals Nr. 4 | Šī e-pasta adrese ir aizsargāta no mēstuļu robotiem. Lai to apskatītu, jums jābūt aktivizētam Javascript. |
Dženeta Smita Džonsa | Sieviete | Melroze 123 | Šī e-pasta adrese ir aizsargāta no mēstuļu robotiem. Lai to apskatītu, jums jābūt aktivizētam Javascript. |
Roberts Fils | Vīrietis | 3. iela 34 | Šī e-pasta adrese ir aizsargāta no mēstuļu robotiem. Lai to apskatītu, jums jābūt aktivizētam Javascript. |
Glorija Viljamsa | Sieviete | 2. iela 23 | NULL |
Tiek iegūts filmu saraksts
Iepriekšējā diskusijā atcerieties, ka mēs pieminam izteicienus, kas izmantoti SELECT paziņojumos. Pieņemsim, ka mēs vēlamies no mūsu datu bāzes iegūt filmu sarakstu. Mēs vēlamies, lai filmas nosaukums un filmas režisora vārds būtu vienā laukā. Filmas režisora vārdam jābūt iekavās. Mēs arī vēlamies iegūt gadu, kad filma tika izlaista. Šis skripts mums palīdz to izdarīt.
SELECT Concat(`title`, ' (', `director`, ')') , `year_released` FROM `movies`;
ŠEIT
- Funkcija Concat () MySQL tiek izmantota kolonnu vērtību savienošanai.
- Rinda "Concat (" nosaukums "," ("," direktors ",") ") iegūst nosaukumu, pievieno sākuma kronšteinu, kam seko režisora vārds, pēc tam pievieno beigu kronšteinu.
Stīgu daļas tiek atdalītas, izmantojot komatus funkcijā Concat ().
Izpildot iepriekš minēto skriptu MySQL darbagaldā, tiek iegūta šāda rezultātu kopa.
Concat ("nosaukums", "(", "režisors", ")") | gads_izlaists |
---|---|
Karību jūras pirāti 4 (Robs Māršals) | 2011. gads |
Aizmirstot Sāru Maršalu (Nikolass Štollers) | 2008. gads |
NULL | 2008. gads |
Kods Melns (Edgars Džimzs) | 2010. gads |
NULL | 2007. gads |
NULL | 2007. gads |
NULL | 2007. gads |
Medus mēness (Džons Šulcs) | 2005. gads |
NULL | 2012. gads |
Pseidonīmu lauku nosaukumi
Iepriekš minētais piemērs atgrieza savienošanas kodu kā lauka nosaukumu mūsu rezultātiem. Pieņemsim, ka mēs savu rezultātu kopā vēlamies izmantot aprakstošāku lauka nosaukumu. Lai to panāktu, mēs izmantosim slejas aizstājvārdu. Šī ir kolonnu aizstājvārda pamata sintakse
SELECT `column_name|value|expression` [AS] `alias_name`;
ŠEIT
- "SELECT" kolonnas_nosaukums | vērtība | izteiksme " ir parasts SELECT priekšraksts, kas var būt kolonnas nosaukums, vērtība vai izteiksme.
- "[AS]" ir izvēles atslēgvārds, pirms aizstājvārda nosaukums, kas apzīmē izteiksmi, vērtību vai lauka nosaukumu, tiks atgriezts kā.
- "" alias_name "" ir aizstājvārds, kuru mēs vēlamies atgriezt savā rezultātu komplektā kā lauka nosaukumu.
Iepriekš minētais vaicājums ar nozīmīgāku kolonnas nosaukumu
SELECT Concat(`title`, ' (', `director`, ')') AS 'Concat', `year_released` FROM `movies`;
Mēs iegūstam šādu rezultātu
Concat | gads_izlaists |
---|---|
Karību jūras pirāti 4 (Robs Māršals) | 2011. gads |
Aizmirstot Sāru Maršalu (Nikolass Štollers) | 2008. gads |
NULL | 2008. gads |
Kods Melns (Edgars Džimzs) | 2010. gads |
NULL | 2007. gads |
NULL | 2007. gads |
NULL | 2007. gads |
Medus mēness (Džons Šulcs) | 2005. gads |
NULL | 2012. gads |
Notiek biedru saraksti ar dzimšanas gadu
Pieņemsim, ka mēs vēlamies iegūt visu dalībnieku sarakstu, kurā norādīts dalības numurs, pilni vārdi un dzimšanas gads, mēs varam izmantot virkni LEFT, lai no dzimšanas datuma lauka iegūtu dzimšanas gadu. Zemāk redzamais skripts mums to palīdz.
SELECT `membership_number`,`full_names`,LEFT(`date_of_birth`,4) AS `year_of_birth` FROM members;
ŠEIT
- "LEFT (` date_of_birth`, 4) " kreiso string funkcija akceptē dzimšanas datumu kā parametru un atgriež vienīgi 4 rakstzīmes no kreisās puses.
- "AS" year_of_birth "" ir kolonnu aizstājvārds, kas tiks atgriezts mūsu rezultātos. Ņemiet vērā, ka AS atslēgvārds nav obligāts , varat to atstāt ārpusē, un vaicājums joprojām darbosies.
Izpildot iepriekš minēto vaicājumu MySQL darbagaldā pret myflixdb, tiek iegūti zemāk redzamie rezultāti.
dalībnieka numurs | pilni_nosaukumi | dzimšanas gads |
---|---|---|
1 | Dženeta Džonsa | 1980. gads |
2 | Dženeta Smita Džonsa | 1980. gads |
3 | Roberts Fils | 1989. gads |
4 | Glorija Viljamsa | 1984. gads |
SQL, izmantojot MySQL Workbench
Tagad mēs izmantosim MySQL darbagaldu, lai ģenerētu skriptu, kurā tiks parādīti visi lauku nosaukumi no mūsu kategoriju tabulas.
1. Ar peles labo pogu noklikšķiniet uz tabulas Kategorijas. Noklikšķiniet uz "Atlasīt rindas - ierobežot 1000"
2. MySQL darbagalds automātiski izveidos SQL vaicājumu un ielīmēs to redaktorā.
3. Vaicājumu rezultāti tiks parādīti
Ievērojiet, ka mēs paši nerakstījām SELECT paziņojumu. MySQL darbagalds to mums radīja.
Kāpēc izmantot komandu SELECT SQL, ja mums ir MySQL Workbench?
Tagad jūs domājat, kāpēc iemācīties SQL SELECT komandu vaicāt datus no datu bāzes, kad varat vienkārši izmantot tādu rīku kā MySQL darbagalds, lai iegūtu tādus pašus rezultātus, nezinot SQL valodu. Protams, tas ir iespējams, bet iemācīšanās izmantot komandu SELECT dod lielāku elastību un kontroli pār SQL SELECT priekšrakstiem .
MySQL darbagalds ietilpst QBE rīku kategorijā “ Vaicājums pēc piemēra ”. Tas ir paredzēts, lai palīdzētu ātrāk ģenerēt SQL priekšrakstus, lai palielinātu lietotāju produktivitāti.
Apgūstot komandu SQL SELECT, varat izveidot sarežģītus vaicājumus , kurus nevar viegli izveidot, izmantojot pakalpojumu Query by utilītas, piemēram, MySQL darbagaldu.
Lai uzlabotu produktivitāti, jūs varat ģenerēt kodu, izmantojot MySQL darbagaldu tad pielāgot tā, lai atbilstu Jūsu prasībām . Tas var notikt tikai tad, ja saprotat, kā darbojas SQL priekšraksti!
Kopsavilkums
- SQL SELECT atslēgvārds tiek izmantots, lai vaicātu datus no datu bāzes, un tā ir visbiežāk izmantotā komanda.
- Vienkāršākajā formā ir sintakse "SELECT * FROM tableName;"
- Izteiksmes var izmantot arī izvēlētajā paziņojumā. Piemērs "Atlasīt daudzumu + cenu no pārdošanas"
- SQL SELECT komandai var būt arī citi izvēles parametri, piemēram, WHERE, GROUP BY, HAVING, ORDER BY. Tie tiks apspriesti vēlāk.
- MySQL darbagalds var palīdzēt izstrādāt SQL priekšrakstus, tos izpildīt un izveidot izejas rezultātu tajā pašā logā.