Mikä on SELECT-kysely MySQL: ssä?
SELECT QUERY -toimintoa käytetään tietojen hakemiseen MySQL-tietokannasta. Tietokannat tallentavat tietoja myöhempää hakua varten. MySQL Selectin tarkoituksena on palauttaa tietokantataulukoista yksi tai useampi tiettyä kriteeriä vastaava rivi. Valitse kyselyä voidaan käyttää komentosarjakielellä, kuten PHP, Ruby, tai voit suorittaa sen komentokehotteella.
SQL SELECT-lauseen syntakse
Se on yleisimmin käytetty SQL-komento, ja sillä on seuraava yleinen syntakse
SELECT [DISTINCT|ALL ] { * | [fieldExpression [AS newName]} FROM tableName [alias] [WHERE condition][GROUP BY fieldName(s)] [HAVING condition] ORDER BY fieldName(s)TÄSSÄ
- SELECT on SQL-avainsana, joka ilmoittaa tietokannalle, että haluat hakea tietoja.
- [Eristää | ALL] ovat valinnaisia avainsanoja, joiden avulla voidaan hienosäätää SQL SELECT -käskystä palautettuja tuloksia. Jos mitään ei määritetä, oletetaan KAIKKI oletukseksi.
- {* | [fieldExpression [AS newName]} vähintään yksi osa on määritettävä, "*" on valinnut kaikki kentät määritetystä taulukon nimestä, fieldExpression suorittaa joitain laskelmia määritetyille kentille, kuten lisäämällä numeroita tai yhdistämällä kaksi merkkikenttää yhteen.
- FROM tableName on pakollinen ja sen on sisällettävä vähintään yksi taulukko, useita taulukoita on erotettava pilkuilla tai liitettävä JOIN-avainsanalla.
- WHERE ehto on valinnainen, sitä voidaan käyttää määrittämään ehdot kyselystä palautetusta tulosjoukosta.
- GROUP BY: tä käytetään sellaisten tietueiden kokoamiseen, joilla on samat kenttäarvot.
- HAVING- ehtoa käytetään määrittämään ehdot, kun työskentelet käyttämällä GROUP BY -avainsanaa.
- ORDER BY -toimintoa käytetään määrittämään tulosjoukon lajittelujärjestys.
*
Tähtisymbolia käytetään kaikkien taulukon sarakkeiden valitsemiseen. Esimerkki yksinkertaisesta SELECT-lauseesta näyttää alla olevalta.
SELECT * FROM `members`;
Yllä oleva lause valitsee kaikki kentät jäsentaulukosta. Puolipiste on lauseke, joka päättyy. Se ei ole pakollista, mutta sitä pidetään hyvänä tapana lopettaa lausuntosi tuolla tavalla.
Käytännön esimerkkejä
Napsauta ladataksesi käytännön esimerkkeihin käytetty myflix DB.
Voit oppia tuomaan .sql-tiedoston MySQL WorkBenchiin
Esimerkit suoritetaan seuraavissa kahdessa taulukossa
Taulukko 1: Jäsenten taulukko
jäsennumero | koko_nimet | sukupuoli | syntymäaika | fyysinen osoite | postiosoite | cont_ numero | sähköposti |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Nainen | 21-07-1980 | Ensimmäisen kadun tontti nro 4 | Yksityinen laukku | 0759 253542 | Tämä sähköpostiosoite on suojattu spamboteilta. Tarvitset JavaScriptin käyttääksesi sitä. |
2 | Janet Smith Jones | Nainen | 23-06-1980 | Melrose 123 | TYHJÄ | TYHJÄ | Tämä sähköpostiosoite on suojattu spamboteilta. Tarvitset JavaScriptin käyttääksesi sitä. |
3 | Robert Phil | Uros | 12-07-1989 | 3. katu 34 | TYHJÄ | 12345 | Tämä sähköpostiosoite on suojattu spamboteilta. Tarvitset JavaScriptin käyttääksesi sitä. |
4 | Gloria Williams | Nainen | 14-02-1984 | 2. katu 23 | TYHJÄ | TYHJÄ | TYHJÄ |
Taulukko 2: elokuvia pöytä
movie_id | otsikko | johtaja | vuosi_julkaistu | category_id |
---|---|---|---|---|
1 | Karibian merirosvot 4 | Rob Marshall | 2011 | 1 |
2 | Unohdetaan Sarah marsalkka | Nicholas Stoller | 2008 | 2 |
3 | X mies | TYHJÄ | 2008 | TYHJÄ |
4 | Koodinimi Musta | Edgar Jimz | 2010 | TYHJÄ |
5 | Isän pienet tytöt | TYHJÄ | 2007 | 8 |
6 | enkelit ja demonit | TYHJÄ | 2007 | 6 |
7 | Davinci-koodi | TYHJÄ | 2007 | 6 |
9 | Honey mooners | John Schultz | 2005 | 8 |
16 | 67% syyllinen | TYHJÄ | 2012 | TYHJÄ |
Haetaan jäsenten luetteloa
Oletetaan, että haluamme saada luettelon kaikista rekisteröidyistä kirjaston jäsenistä tietokannastamme, käytämme siihen alla esitettyä komentosarjaa.
SELECT * FROM `members`;
Yllä olevan komentosarjan suorittaminen MySQL-työpöydällä tuottaa seuraavat tulokset.
jäsennumero | koko_nimet | sukupuoli | syntymäaika | fyysinen osoite | postiosoite | cont_ numero | sähköposti |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Nainen | 21-07-1980 | Ensimmäisen kadun tontti nro 4 | Yksityinen laukku | 0759 253542 | Tämä sähköpostiosoite on suojattu spamboteilta. Tarvitset JavaScriptin käyttääksesi sitä. |
2 | Janet Smith Jones | Nainen | 23-06-1980 | Melrose 123 | TYHJÄ | TYHJÄ | Tämä sähköpostiosoite on suojattu spamboteilta. Tarvitset JavaScriptin käyttääksesi sitä. |
3 | Robert Phil | Uros | 12-07-1989 | 3. katu 34 | TYHJÄ | 12345 | Tämä sähköpostiosoite on suojattu spamboteilta. Tarvitset JavaScriptin käyttääksesi sitä. |
4 | Gloria Williams | Nainen | 14-02-1984 | 2. katu 23 | TYHJÄ | TYHJÄ | TYHJÄ |
Yllä oleva kysely on palauttanut kaikki jäsentaulukon rivit ja sarakkeet.
Oletetaan, että olemme kiinnostuneita saamaan vain täydelliset_nimet, sukupuoli, fyysinen_osoite ja sähköposti-kentät. Seuraava kirjoitus auttaisi meitä saavuttamaan tämän.
SELECT `full_names`,`gender`,`physical_address`, `email` FROM `members`;
Yllä olevan komentosarjan suorittaminen MySQL-työpöydällä tuottaa seuraavat tulokset.
koko_nimet | sukupuoli | fyysinen osoite | sähköposti |
---|---|---|---|
Janet Jones | Nainen | Ensimmäisen kadun tontti nro 4 | Tämä sähköpostiosoite on suojattu spamboteilta. Tarvitset JavaScriptin käyttääksesi sitä. |
Janet Smith Jones | Nainen | Melrose 123 | Tämä sähköpostiosoite on suojattu spamboteilta. Tarvitset JavaScriptin käyttääksesi sitä. |
Robert Phil | Uros | 3. katu 34 | Tämä sähköpostiosoite on suojattu spamboteilta. Tarvitset JavaScriptin käyttääksesi sitä. |
Gloria Williams | Nainen | 2. katu 23 | TYHJÄ |
Haetaan elokuvalistausta
Muista yllä olevassa keskustelussamme, että mainitsemme SELECT-lauseissa käytettyjä lausekkeita. Oletetaan, että haluamme saada luettelon elokuvista tietokannastamme. Haluamme, että elokuvan nimi ja ohjaajan nimi ovat yhdessä kentässä. Elokuvan ohjaajan nimen tulee olla sulkeissa. Haluamme myös saada vuoden, jolloin elokuva julkaistiin. Seuraava komentosarja auttaa meitä tekemään sen.
SELECT Concat(`title`, ' (', `director`, ')') , `year_released` FROM `movies`;
TÄSSÄ
- Concat () MySQL -funktiota käytetään yhdistämään sarakkeiden arvot.
- Rivi "Concat (" otsikko "," ("," ohjaaja ",") ") saa otsikon, lisää alkuhakemiston, jota seuraa ohjaajan nimi, ja lisää sitten sulku.
Merkkijono-osat erotetaan pilkulla Concat () -toiminnossa.
Yllä olevan komentosarjan suorittaminen MySQL-työpöydällä tuottaa seuraavan tulosjoukon.
Concat (`` otsikko '', '(', `ohjaaja`, ')') | vuosi_julkaistu |
---|---|
Karibian merirosvot 4 (Rob Marshall) | 2011 |
Sarah Marshalin (Nicholas Stoller) unohtaminen | 2008 |
TYHJÄ | 2008 |
Koodinimi Musta (Edgar Jimz) | 2010 |
TYHJÄ | 2007 |
TYHJÄ | 2007 |
TYHJÄ | 2007 |
Honey mooners (John Schultz) | 2005 |
TYHJÄ | 2012 |
Alias-kenttien nimet
Yllä oleva esimerkki palautti ketjutuskoodin tulosten kentän nimeksi. Oletetaan, että haluamme käyttää kuvaavampaa kentän nimeä tulosjoukossa. Tätä varten käytämme sarakkeen aliaksenimeä. Seuraava on sarakkeen aliaksen nimen perussyntaksi
SELECT `column_name|value|expression` [AS] `alias_name`;
TÄSSÄ
- "SELECT" sarakkeen_nimi | arvo | lauseke " on säännöllinen SELECT-käsky, joka voi olla sarakkeen nimi, arvo tai lauseke.
- "[AS]" on valinnainen avainsana, ennen kuin lauseketta, arvoa tai kentän nimeä osoittava aliaksen nimi palautetaan muodossa.
- "alias_name" on aliaksen nimi, jonka haluamme palauttaa tulosjoukossa kentän nimellä.
Yllä oleva kysely, jolla on merkityksellisempi sarakkeen nimi
SELECT Concat(`title`, ' (', `director`, ')') AS 'Concat', `year_released` FROM `movies`;
Saamme seuraavan tuloksen
Concat | vuosi_julkaistu |
---|---|
Karibian merirosvot 4 (Rob Marshall) | 2011 |
Sarah Marshalin (Nicholas Stoller) unohtaminen | 2008 |
TYHJÄ | 2008 |
Koodinimi Musta (Edgar Jimz) | 2010 |
TYHJÄ | 2007 |
TYHJÄ | 2007 |
TYHJÄ | 2007 |
Honey mooners (John Schultz) | 2005 |
TYHJÄ | 2012 |
Haetaan jäseniä, jotka näyttävät syntymävuoden
Oletetaan, että haluamme saada luettelon kaikista jäsenistä, joissa näkyy jäsenmäärä, täydelliset nimet ja syntymävuosi. Voimme käyttää VASEN merkkijonofunktiota poimimaan syntymävuosi syntymäpäivä-kentästä. Alla esitetty komentosarja auttaa meitä tekemään sen.
SELECT `membership_number`,`full_names`,LEFT(`date_of_birth`,4) AS `year_of_birth` FROM members;
TÄSSÄ
- "LEFT (` date_of_birth`, 4)" LEFT merkkijono hyväksyy syntymäaika parametrin ja palauttaa vain 4 merkkiä vasemmalta.
- "AS" year_of_birth "" on sarakkeen aliaksen nimi , joka palautetaan tuloksissamme. Huomaa, että AS-avainsana on valinnainen , voit jättää sen pois ja kysely toimii edelleen.
Yllä olevan kyselyn suorittaminen MySQL-työpöydällä myflixdb: tä vastaan antaa meille alla esitetyt tulokset.
jäsennumero | koko_nimet | syntymävuosi |
---|---|---|
1 | Janet Jones | 1980 |
2 | Janet Smith Jones | 1980 |
3 | Robert Phil | 1989 |
4 | Gloria Williams | 1984 |
SQL käyttäen MySQL Workbenchiä
Aiomme nyt käyttää MySQL-työpöytää luomaan komentosarjan, joka näyttää kaikki kenttänimet luokkataulukostamme.
1. Napsauta hiiren kakkospainikkeella Luokat-taulukkoa. Napsauta "Valitse rivit - raja 1000"
2. MySQL-työpöytä luo automaattisesti SQL-kyselyn ja liittää sen editoriin.
3. Kyselytulokset näytetään
Huomaa, että emme kirjoittaneet SELECT-lauseketta itse. MySQL-työpöytä loi sen meille.
Miksi kannattaa käyttää SELECT SQL -komentoa, kun meillä on MySQL Workbench?
Nyt saatat ajatella, miksi opit SQL SELECT -komennon kyselemään tietoja tietokannasta, kun voit yksinkertaisesti käyttää MySQL-työpöydän kaltaista työkalua saadaksesi samat tulokset tietämättä SQL-kieltä. Se on tietysti mahdollista, mutta oppia käyttämään SELECT komento antaa enemmän joustavuutta ja valvontaa yli SQL SELECT .
MySQL-työpöytä kuuluu QBE-työkalujen " Kysely esimerkillä " luokkaan . Sen tarkoituksena on auttaa luomaan SQL-käskyjä nopeammin käyttäjän tuottavuuden lisäämiseksi.
SQL SELECT -komennon oppiminen voi auttaa luomaan monimutkaisia kyselyjä , joita ei voi helposti luoda käyttämällä Query by Example -apuohjelmia, kuten MySQL-työpöytä.
Tuottavuuden parantamiseksi voit luoda koodin MySQL-työpöydällä ja mukauttaa sen sitten vastaamaan tarpeitasi . Tämä voi tapahtua vain, jos ymmärrät SQL-lauseiden toiminnan!
Yhteenveto
- SQL SELECT-avainsanaa käytetään tietojen kyselyyn tietokannasta ja se on yleisimmin käytetty komento.
- Yksinkertaisimmalla lomakkeella on syntaksin "SELECT * FROM tableName;"
- Lausekkeita voidaan käyttää myös select-lauseessa. Esimerkki "Valitse määrä + hinta myynnistä"
- SQL SELECT -komennolla voi olla myös muita valinnaisia parametreja, kuten WHERE, GROUP BY, HAVING, ORDER BY. Niistä keskustellaan myöhemmin.
- MySQL-työpöytä voi auttaa kehittämään SQL-käskyjä, suorittamaan ne ja tuottamaan tuloksen samassa ikkunassa.