MySQL SELECT Lauseke esimerkkeineen
⚡ Älykäs yhteenveto
MySQL SELECT-lauseke noutaa rivejä yhdestä tai useammasta taulukosta, ja jokainen alla oleva esimerkki suoritetaan myflix-esimerkkitietokantaa vasten siirtyen tavallisesta tähtikyselystä lausekkeisiin, sarakealiaksiin ja merkkijonofunktioihin.

Mikä on SELECT-kysely? MySQL?
SELECT-kysely käytetään tiedon hakemiseen MySQL tietokanta. Tietokannat tallentavat tiedot myöhempää hakua varten. Tarkoitus MySQL SELECT-kyselyn tarkoituksena on palauttaa tietokannasta yksi tai useampi rivi, jotka vastaavat annettuja ehtoja. SELECT-kyselyä voidaan käyttää skriptikielillä, kuten PHP tai Ruby, tai voit suorittaa sen komentokehotteesta.
Koska SELECT on komento, jota käytät useimmin, kannattaa opetella sen syntaksi ennen esimerkkidataan koskemista.
SQL SELECT -lausekkeen syntaksi
SELECT on useimmin käytetty SQL-komento, ja sillä on seuraava yleinen syntaksi:
SELECT [DISTINCT|ALL] { * | [fieldExpression [AS newName]} FROM tableName [alias] [WHERE condition] [GROUP BY fieldName(s)] [HAVING condition] [ORDER BY fieldName(s)];
TÄÄLTÄ
- VALITSE on SQL-avainsana, jonka avulla tietokanta tietää, että haluat hakea tietoja.
- [DISTINCT | KAIKKI] ovat valinnaisia avainsanoja, jotka hienosäätävät SQL SELECT -lausekkeen palauttamia tuloksia. Jos mitään ei määritetä, oletusarvoksi oletetaan ALL.
- {*| [fieldExpression [AS newName]} Ainakin yksi osa on määritettävä. ”*” valitsee kaikki kentät määritetystä taulukon nimestä; fieldExpression suorittaa laskutoimituksia määritetyille kentille, kuten laskee yhteen numeroita tai yhdistää kaksi merkkijonokenttää yhdeksi.
- FROM tableName on pakollinen ja sen on sisällettävä vähintään yksi taulukko. Useat taulukot on erotettava pilkuilla tai yhdistettävä JOIN-avainsanalla.
- MISTÄ ehto on valinnainen. Se määrittää kriteerit kyselyn palauttamassa tulosjoukossa.
- GROUP BY käytetään koota tietueita, joilla on samat kenttäarvot.
- oTTAA ehtoa käytetään ehtojen määrittämiseen GROUP BY -avainsanaa käytettäessä.
- TILAUS käytetään määrittämään tulosjoukon lajittelujärjestys.
*
Tähti-symboli valitsee kaikki taulukon sarakkeet. Yksinkertainen SELECT-lauseke näyttää alla olevalta.
SELECT * FROM `members`;
Yllä oleva lauseke valitsee kaikki kentät jäsentaulukosta. Puolipiste on lausekkeen päättävä merkki. Se ei ole pakollinen, mutta lausekkeiden lopettaminen tällä tavalla pidetään hyvänä käytäntönä.
VALITSE DISTINCT ja LIMIT sisään MySQL
Kaksi valinnaista avainsanaa syntaksissa ansaitsevat tarkemman tarkastelun, koska aloittelijat kohtaavat ne heti taulukon kasvaessa.
DISTINCT poistaa tulosjoukosta kaksoisrivit. Elokuvat-taulukko sisältää useita vuonna 2007 julkaistuja elokuvia, joten tavallinen kysely toistaa kyseisen vuoden. DISTINCT palauttaa jokaisen arvon kerran.
SELECT DISTINCT `year_released` FROM `movies`;
RAJOITA rajoittaa palautettavien rivien määrän, mikä suojaa asiakasta kyselyltä, joka muutoin noutaisi miljoonia tietueita.
SELECT * FROM `movies` LIMIT 5;
| avainsana | Mitä se tekee | Milloin sitä käytetään |
|---|---|---|
| KAIKKI (oletus) | Palauttaa kaikki vastaavat rivit, mukaan lukien kaksoiskappaleet | Raakadatietueiden laskeminen tai listaaminen |
| DISTINCT | Yhdistää kaksoisrivit yhdeksi | Ainutlaatuisten arvojen luettelon rakentaminen |
| RAJOITA | Palauttaa vain ensimmäiset N riviä | Tietojen tai sivutustulosten esikatselu |
Kun syntaksi on vakiintunut, esimerkkitietokanta herättää nämä lausekkeet eloon.
SELECT-lausekkeen käytännön esimerkkejä
Lataa napsauttamalla tätä käytännön esimerkeissä käytetty myflix-tietokanta.
Voit oppia tuomaan .sql-tiedoston MySQL Työpöytä.
Esimerkit suoritetaan seuraavilla kahdella taulukolla.
Taulukko 1: jäseniä taulukko
| jäsennumero | full_names | sukupuoli | syntymäaika | fyysinen osoite | postiosoite | yhteystieto_ numero | |
|---|---|---|---|---|---|---|---|
| 1 | Janet Jones | Nainen | 21-07-1980 | First Street -tontti nro 4 | Yksityinen laukku | 0759 253 542 | janetjones@yagoo.cm |
| 2 | Janet Smith Jones | Nainen | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
| 3 | Robert Phil | Mies | 12-07-1989 | 3rd Street 34 | NULL | 12345 | rm@tstreet.com |
| 4 | Gloria Williams | Nainen | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
Taulukko 2: Elokuvat taulukko
| elokuvan_tunnus | otsikko | johtaja | vuosi_vapautettu | kategorian_tunnus |
|---|---|---|---|---|
| 1 | Pirates of the Caribbean 4 | Rob Marshall | 2011 | 1 |
| 2 | Sarah Marshal unohdetaan | Nicholas Stoller | 2008 | 2 |
| 3 | X-Men | NULL | 2008 | NULL |
| 4 | Code Nimi Musta | Edgar Jimz | 2010 | NULL |
| 5 | Isän pienet tytöt | NULL | 2007 | 8 |
| 6 | enkelit ja demonit | NULL | 2007 | 6 |
| 7 | DaVinci Code | NULL | 2007 | 6 |
| 9 | Honey mooners | John Schultz | 2005 | 8 |
| 16 | 67% syyllinen | NULL | 2012 | NULL |
Jäsenlistauksen saaminen
Oletetaan, että haluamme listan kaikista rekisteröidyistä kirjaston jäsenistä tietokannassamme. Käyttäisimme siihen alla olevaa skriptiä.
SELECT * FROM `members`;
Skriptin suorittaminen kohdassa MySQL Työpöytä tuottaa seuraavat tulokset.
| jäsennumero | full_names | sukupuoli | syntymäaika | fyysinen osoite | postiosoite | yhteystieto_ numero | |
|---|---|---|---|---|---|---|---|
| 1 | Janet Jones | Nainen | 21-07-1980 | First Street -tontti nro 4 | Yksityinen laukku | 0759 253 542 | janetjones@yagoo.cm |
| 2 | Janet Smith Jones | Nainen | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
| 3 | Robert Phil | Mies | 12-07-1989 | 3rd Street 34 | NULL | 12345 | rm@tstreet.com |
| 4 | Gloria Williams | Nainen | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
Kysely palautti kaikki rivit ja sarakkeet jäsentaulukosta.
Tiettyjen sarakkeiden valitseminen
Oletetaan, että olemme kiinnostuneita vain kentistä full_names (koko nimi), gender (sukupuoli), physical_address (fyysinen_osoite) ja email (sähköpostiosoite). Seuraava skripti tekee tämän.
SELECT `full_names`,`gender`,`physical_address`, `email` FROM `members`;
Skriptin suorittaminen kohdassa MySQL Työpöytä tuottaa seuraavat tulokset.
| full_names | sukupuoli | fyysinen osoite | |
|---|---|---|---|
| Janet Jones | Nainen | First Street -tontti nro 4 | janetjones@yagoo.cm |
| Janet Smith Jones | Nainen | Melrose 123 | jj@fstreet.com |
| Robert Phil | Mies | 3rd Street 34 | rm@tstreet.com |
| Gloria Williams | Nainen | 2nd Street 23 | NULL |
Elokuvalistauksen saaminen ilmaisuilla
Lausekkeita voidaan käyttää myös SELECT-lausekkeissa. Oletetaan, että haluamme listan elokuvista, joissa on nimi ja ohjaajan nimi yhdessä kentässä, ohjaaja suluissa sekä elokuvan julkaisuvuosi. Seuraava skripti tekee tämän.
SELECT Concat(`title`, ' (', `director`, ')') , `year_released` FROM `movies`;
TÄÄLTÄ
- Concat() MySQL funktio yhdistää sarakkeiden arvot.
- Rivi ”Concat(`title`, ' (', `director`, ')')” hakee otsikon, lisää aloittavan hakasulkeen, jota seuraa ohjaajan nimi, ja lopuksi lisää lopettavan hakasulkeen.
- Merkkijonojen osat erotetaan toisistaan pilkuilla Concat()-funktion sisällä.
Skriptin suorittaminen kohdassa MySQL Workbench tuottaa seuraavan tulosjoukon.
| Concat(`title`, '(', `ohjaaja', ')') | vuosi_vapautettu |
|---|---|
| Pirates of the Caribean 4 (Rob Marshall) | 2011 |
| Sarah Marshalin unohtaminen (Nicholas Stoller) | 2008 |
| NULL | 2008 |
| Code Nimi Black (Edgar Jimz) | 2010 |
| NULL | 2007 |
| NULL | 2007 |
| NULL | 2007 |
| Honey mooners (John Schultz) | 2005 |
| NULL | 2012 |
Huomautus: Concat() palauttaa NULL-arvon, kun jokin argumentti on NULL, minkä vuoksi elokuvat, joissa ei ole ohjaajaa, näyttävät yllä NULL-arvon.
Alias-kenttien nimet
Yllä oleva esimerkki palautti kentän nimenä ketjutuskoodin. Jos haluat käyttää kuvaavampaa kentän nimeä tulosjoukossa, käytä sarakealiasta. Perussyntaksi on seuraava.
SELECT `column_name|value|expression` [AS] `alias_name`;
TÄÄLTÄ
- “SELECT `sarakkeen_nimi|arvo|lauseke`” on tavallinen SELECT-lauseke, joka voi olla sarakkeen nimi, arvo tai lauseke.
- "[KUTEN]" on valinnainen avainsana ennen alias-nimeä.
- "alias_name" on alias, joka palautetaan tulosjoukossa kentän nimenä.
Sama kysely merkityksellisemmällä sarakkeen nimellä:
SELECT Concat(`title`, ' (', `director`, ')') AS `Concat`, `year_released` FROM `movies`;
Saamme seuraavan tuloksen.
| Concat | vuosi_vapautettu |
|---|---|
| Pirates of the Caribean 4 (Rob Marshall) | 2011 |
| Sarah Marshalin unohtaminen (Nicholas Stoller) | 2008 |
| NULL | 2008 |
| Code Nimi Black (Edgar Jimz) | 2010 |
| NULL | 2007 |
| NULL | 2007 |
| NULL | 2007 |
| Honey mooners (John Schultz) | 2005 |
| NULL | 2012 |
Jäsenlistauksen saaminen syntymävuoden näyttämiseksi
Oletetaan, että haluamme listan kaikista jäsenistä, joissa näkyy jäsennumero, koko nimi ja syntymävuosi. Voimme käyttää LEFT-merkkijonofunktiota saadaksesi tulokseksitract syntymävuosi syntymäaikakentästä.
SELECT `membership_number`,`full_names`,LEFT(`date_of_birth`,4) AS `year_of_birth` FROM members;
TÄÄLTÄ
- "LEFT(`syntymäpäivä`,4)" Ishayoiden opettaman LEFT merkkijonofunktio hyväksyy syntymäajan parametrina ja palauttaa vain neljä merkkiä vasemmalta.
- "AS `syntymävuosi" on sarakkeen aliaksen nimi palasi tuloksiimme. AS-avainsana on valinnainen; voit jättää sen pois ja kysely toimii silti.
Kyselyn suorittaminen kohdassa MySQL Workbenchin ja myflixdb:n vertailu antaa meille alla näkyvät tulokset.
| jäsennumero | full_names | syntymävuosi |
|---|---|---|
| 1 | Janet Jones | 1980 |
| 2 | Janet Smith Jones | 1980 |
| 3 | Robert Phil | 1989 |
| 4 | Gloria Williams | 1984 |
Käsin kirjoitetut kyselyt ovat vain yksi reitti tulosjoukkoon. Workbench voi myös rakentaa lausekkeen puolestasi.
SQL:n käyttö MySQL Työpöytä
Aiomme nyt käyttää MySQL Työpöytä, jolla luodaan komentosarja, joka näyttää kaikki kategoriataulukon kenttien nimet.
1. Napsauta hiiren kakkospainikkeella Luokat-taulukkoa. Valitse ”Valitse rivit – Rajoita 1000”.
2. MySQL Workbench luo automaattisesti SQL-kyselyn ja liittää sen editoriin.
3. Kyselyn tulokset näkyvät editorin alapuolella olevassa ruudukossa.
Kuten kuvakaappaus osoittaa, emme kirjoittaneet SELECT-lauseketta itse. MySQL Workbench loi sen meille.
Miksi käyttää SELECT SQL -komentoa, kun meillä on MySQL Työpöytä?
Saatat miettiä, miksi sinun pitäisi opetella SQL SELECT -komento, kun työkalu, kuten MySQL Workbench palauttaa samat tulokset ilman SQL-kielen tuntemusta. Tuo oikotie on mahdollinen, mutta SELECT-komennon oppiminen antaa sinulle enemmän joustavuus ja ohjaus yli sinun SQL SELECT -lauseet.
MySQL Työpöytä kuuluu luokkaan ”Kysely esimerkin mukaan”(QBE) -työkalut. Sen tarkoituksena on luoda SQL-lauseita nopeammin ja lisätä käyttäjien tuottavuutta.
SQL SELECT -komennon oppiminen antaa sinulle mahdollisuuden luoda monimutkaiset kyselyt joita ei voida helposti luoda Query by Example -apuohjelmilla, kuten MySQL Työpöytä.
Tuottavuuden parantamiseksi voit luo koodi sisään MySQL Työpöytä, sitten räätälöidä se täyttää vaatimuksetSe on mahdollista vasta, kun ymmärrät, miten SQL-lausekkeet toimivat.



