MySQL MariaDB

MySQL-alikyselyt

MySQL-alikyselyt
Alakysely on SQL-kysely suuremmassa, rekursiivisessa kyselyssä, tai alikyselyä pidetään sisäisenä kyselynä. Sitä vastoin ulompaa kyselyä kutsutaan kyselyksi, joka sisältää alikyselyn. MySQL-kysely voidaan upottaa kyselyihin, mukaan lukien SELECT, INSERT, UPDATE tai DELETE. Lisäksi toisessa alakyselyssä alikysely voidaan sijoittaa. Lausekkeen alikysely tulisi sulkea suluissa kaikkialla, missä sitä käytetään. Opetamme sinulle, miten ja milloin käyttää MySQL-alikyselyä monimutkaisten kyselyjen kirjoittamiseen ja siihen liittyvän alikyselyn ajatuksen kuvaamiseen. Avaa komentorivin kuori työpöydältäsi ja kirjoita salasanasi aloittaaksesi sen käytön. Paina Enter ja jatka.

Alipyyntö yhden taulukon tietueissa:

Luo taulukko nimeltä 'eläimet' tietokannan tietoihin.'Lisää seuraava seuraava tieto erilaisista eläimistä, joilla on erilaiset ominaisuudet. Hae tämä tietue käyttämällä SELECT-kyselyä seuraavasti:

>> VALITSE * FROM-tiedoista.eläimet;

Esimerkki 01:

Haetaan tämän taulukon rajoitetut tietueet alikyselyjen avulla. Alla olevan kyselyn avulla tiedämme, että alikysely suoritetaan ensin, ja sen lähtöä käytetään pääkyselyssä syötteenä. Alakysely yksinkertaisesti hakee ikää, jossa eläimen hinta on 2500. Eläimen ikä, jonka hinta on 2500, on taulukossa 4. Pääkysely valitsee kaikki taulukkotietueet, joissa ikä on yli 4, ja tulos on annettu alla.

>> VALITSE * FROM-tiedoista.eläimet WHERE Age> (SELECT Age FROM data.eläimet WHERE Hinta = '2500');

Esimerkki 02:

Käytetään samaa taulukkoa eri tilanteissa. Tässä esimerkissä käytämme alikyselyssä jotakin toimintoa WHERE-lausekkeen sijaan. Olemme ottaneet kaikkien eläimille annettujen hintojen keskiarvon. Keskihinta on 3189. Pääkysely valitsee kaikki tietueet eläimistä, joiden hinta on yli 3189. Saat alla olevan tuotoksen.

>> VALITSE * FROM-tiedoista.eläimet WHERE Price> (VALITSE AVG (Price) FROM tiedoista.eläimet);

Esimerkki 03:

Käytetään IN-lauseketta SELECT-pääkyselyssä. Ensinnäkin alikysely hakee yli 2500 hinnat. Sen jälkeen pääkysely valitsee kaikki taulukon '' eläimet '' tietueet, joissa hinta on alikyselytuloksessa.

>> VALITSE * FROM-tiedoista.eläimet WHERE Price IN (VALITSE HINTA - tiedoista.eläimet WHERE Hinta> 2500);

Esimerkki 04:

Olemme käyttäneet alakyselyä hakemaan eläimen nimen, jonka hinta on 7000. Koska kyseinen eläin on lehmä, siksi nimi 'lehmä' palautetaan pääkyselyyn. Pääkyselyssä kaikki tietueet haetaan taulukosta, jossa eläimen nimi on 'lehmä.'Koska meillä on vain kaksi ennätystä eläimen' lehmästä ', siksi meillä on alla oleva tuotos.

>> VALITSE * FROM-tiedoista.eläimet WHERE Nimi = (VALITSE Nimi FROM-tiedoista.eläimet WHERE Hinta = '7000');

Useiden taulukoiden tietueiden alipyyntö:

Oletetaan, että tietokannassasi on kaksi alla olevaa taulukkoa, 'opiskelija' ja 'opettaja'. Kokeillaan joitain esimerkkejä alakyselyistä näiden kahden taulukon avulla.

>> VALITSE * FROM-tiedoista.opiskelija;
>> VALITSE * FROM-tiedoista.opettaja;

Esimerkki 01:

Haemme tietoja yhdestä taulukosta alikyselyn avulla ja käytämme sitä syötteenä pääkyselyssä. Tämä tarkoittaa, että nämä kaksi taulukkoa voivat liittyä toisiinsa jollakin tavalla. Alla olevassa esimerkissä olemme käyttäneet alakyselyä hakemaan opiskelijan nimen taulukosta 'opiskelija', jossa opettajan nimi on 'Samina.'Tämä kysely palauttaa' Samina 'pääkyselytaulukon opettajalle.'Pääkysely valitsee sitten kaikki opettajan nimeen liittyvät tietueet' Samina.'Koska meillä on kaksi ennätystä tälle nimelle, olemme saaneet tämän tuloksen.

>> VALITSE * FROM-tiedoista.opettaja WHERE TeachName = (VALITSE TeachName FROM tiedoista.opiskelija WHERE TeachName = 'Samina');

Esimerkki 02:

Kokeile tätä esimerkkiä tarkentaaksesi alakyselyn eri taulukoiden tapauksessa. Meillä on alikysely, joka hakee opettajan nimen pöytäopiskelijalta. Nimen tulisi olla 'i' missä tahansa sen arvon kohdassa. Tämä tarkoittaa, että kaikki sarakkeen TeachName nimet, joiden arvossa on 'i', valitaan ja palautetaan pääkyselyyn. Pääkysely valitsee kaikki tietueet opettaja-taulukosta, jossa opettajan nimi on alikyselyn palauttamassa lähdössä. Koska alikysely palautti 4 opettajien nimeä, siksi meillä on kirjaa kaikista näistä nimistä, jotka asuvat taulukossa 'opettaja.'

>> VALITSE * FROM-tiedoista.opettaja WHERE TeachName IN (VALITSE TeachName FROM tiedoista.opiskelija WHERE TeachName LIKE '% i%');

Esimerkki 03:

Harkitse kahta alla olevaa taulukkoa, 'tilaus' ja 'tilaus1'.

>> VALITSE * FROM-tiedoista.Tilaus;
>> VALITSE * FROM-tiedoista.järjestys1;

Kokeillaan MITÄÄN tässä lausekkeessa olevaa lauseketta alikyselyn laatimiseksi. Alakysely valitsee id: n taulukosta 'order1', missä sarakkeella 'Status' on arvo 'Unpaid'.'Id' voi olla suurempi kuin 1. Tämä tarkoittaa, että useampi kuin yksi arvo palautettaisiin pääkyselyyn, jotta saat taulukon tilauksen tulokset. Tässä tapauksessa mitä tahansa tunnusta voidaan käyttää. Meillä on alla oleva kyselylähtö.

>> VALITSE Tuote, Myynti, tunnus FROM-tiedoista.järjestys WHERE id = KAIKKI (VALITSE ID FROM tiedoista.tilaus1 WHERE Status = 'Maksamaton');

Esimerkki 04:

Oletetaan, että sinulla on alla olevat tiedot taulukossa 'order1' ennen minkään kyselyn käyttämistä.

>> VALITSE * FROM-tiedoista.järjestys1;

Sovelletaan kyselyä kyselyssä poistamaan tietueita taulukosta 'order1'. Ensinnäkin alikysely valitsee 'Tila' -arvon taulukosta 'järjestys', jossa Kohde on 'Kirja.'Alakysely palauttaa arvoksi' Maksettu '. Nyt pääkysely poistaa rivit taulukosta 'order1', jossa 'Status' -sarakkeen arvo on 'Paid.'

>> POISTA tiedoista.tilaus1 WHERE Status = (VALITSE Status FROM -data.tilaus WHERE Tuote = 'Kirja');

Tarkastuksen jälkeen alla olevat tietueet ovat nyt jäljellä taulukossa 'order1' kyselyn suorittamisen jälkeen.

>> VALITSE * FROM-tiedoista.järjestys1;

Päätelmä:

Olet työskennellyt tehokkaasti monien alakyselyjen kanssa kaikissa yllä olevissa esimerkeissä. Toivomme, että kaikki on nyt selvää ja puhdasta.

How to download and Play Sid Meier's Civilization VI on Linux
Introduction to the game Civilization 6 is a modern take on the classic concept introduced in the series of the Age of Empires games. The idea was fai...
How to Install and Play Doom on Linux
Introduction to Doom The Doom Series originated in the 90s after the release of the original Doom. It was an instant hit and from that time onwards th...
Vulkan for Linux Users
With each new generation of graphics cards, we see game developers push the limits of graphical fidelity and come one step closer to photorealism. But...