Missä (SQL) - Where (SQL)
WHERE Lauseke SQL määrätään, että SQL Data Manipulation Language (DML) selvitys olisi vain vaikuttaa rivit tietyt kriteerit täyttäviä. Kriteerit ilmaistaan predikaattien muodossa. WHERE lausekkeet eivät ole pakollisia lausekkeita SQL DML -lausekkeista, mutta niitä voidaan käyttää rajoittamaan rivien määrää, joihin SQL DML -käsky vaikuttaa tai kyselyn palauttama. Lyhyesti sanottuna SQL WHERE -lauseketta käytetään vain niiden tulosten poimimiseen SQL-käskystä, kuten: SELECT, INSERT, UPDATE tai DELETE.
Yleiskatsaus
WHERE on SQL- varattu sana.
WHERE Lauseketta käytetään yhdessä SQL DML lausunnot, ja ottaa seuraava yleinen muoto:
SQL-DML-Statement
FROM table_name
WHERE predicate
WHERE SQL DML -käsky tai -kysely vaikuttaa (tai palauttaa) kaikkiin riveihin, joiden lausekkeen predikaatti on tosi. DML-käsky tai kysely ei vaikuta riveihin, joiden predikaatti arvioi arvon False tai Unknown ( NULL ).
Seuraava kysely palauttaa vain taulukon mytable rivit, joissa sarakkeen mycol arvo on suurempi kuin 100.
SELECT *
FROM mytable
WHERE mycol > 100
Seuraava DELETE lause poistaa taulukon mytable- taulukosta vain ne rivit, joissa sarake mycol on joko NULL tai sen arvo on 100.
DELETE
FROM mytable
WHERE mycol IS NULL OR mycol = 100
Predikaatit
Yksinkertainen predikaatteja käyttää yhden operaattorin = , <> , > , >= , < , <= , IN , BETWEEN , LIKE , IS NULL tai IS NOT NULL .
Predikaatit voidaan haluttaessa sulkea sulkeisiin. Avainsanat AND ja OR niitä voidaan käyttää yhdistämään kaksi predikaattia uuteen. Jos käytetään useita yhdistelmiä, sulkeita voidaan käyttää yhdistelmien ryhmittelemiseen osoittamaan arvioinnin järjestys. Ilman sulkeita AND operaattorilla on vahvempi sidonta kuin OR .
Seuraavassa esimerkissä poistetaan rivejä Oma Tauluni , joiden arvo Mycol on suurempi kuin 100, ja arvo tuote on sama kuin merkkijono kirjaimellisesti 'Hammer':
DELETE
FROM mytable
WHERE mycol > 100 AND item = 'Hammer'
SISÄÄN
IN löytää joukon ehdokkaiden arvoja.
SELECT ename WHERE ename IN ('Montreal', 'Quebec')
Kaikki rivit vastaavat predikaattia, jos niiden arvo on yksi ehdokasarvoista. Tämä on sama käytös kuin
SELECT ename WHERE ename='value1' OR ename='value2'
paitsi että jälkimmäinen voisi sallia useiden sarakkeiden vertailun, mitä kukin IN lauseke ei tee. Suuremmalle joukolle ehdokkaita IN on vähemmän sanallinen.
VÄLILLÄ
BETWEEN löytää kaikki arvot alueelta.
SELECT ename WHERE ename BETWEEN 'value1' AND 'value2'
SELECT salary from emp WHERE salary BETWEEN 5000 AND 10000
Kaikki rivit vastaavat predikaattia, jos niiden arvo on arvojen1 ja2 välillä.
KUTEN
LIKE löytää merkkijonon, joka sopii tiettyyn kuvaukseen.
- päättyy wildcard
- Etsi mikä tahansa merkkijono, joka alkaa S-kirjaimella
SELECT ename FROM emp WHERE ename LIKE 'S%';
- Etsi mikä tahansa merkkijono, joka alkaa S-kirjaimella
- Johtava yleismerkki
- Etsi mikä tahansa merkkijono, joka päättyy S-kirjaimella
SELECT ename FROM emp WHERE ename LIKE '%S';
- Etsi mikä tahansa merkkijono, joka päättyy S-kirjaimella
- Useita yleismerkkejä
- Etsi mikä tahansa merkkijono, joka sisältää missä tahansa S-kirjaimen
SELECT ename FROM emp WHERE ename LIKE '%S%';
- Etsi mikä tahansa merkkijono, joka sisältää missä tahansa S-kirjaimen
- Yksimerkkinen jokerimerkki
- Etsi mikä tahansa merkkijono, joka sisältää A-kirjaimen ja minkä tahansa yksittäisen merkin, jota seuraa E-kirjain
SELECT ename FROM emp WHERE ename LIKE '%A_E%';
- Etsi mikä tahansa merkkijono, joka sisältää A-kirjaimen ja minkä tahansa yksittäisen merkin, jota seuraa E-kirjain
- Hahmoluokat
- Etsi mikä tahansa merkkijono, joka alkaa kirjaimella tai numerolla tai symbolilla '_'
SELECT ename FROM emp WHERE ename LIKE '[a-zA-Z0-9_]%';
- Etsi mikä tahansa merkkijono, joka alkaa kirjaimella tai numerolla tai symbolilla '_'
LIKE-predikaatti suorittaa tyypillisesti haun ilman indeksien normaalia suorituskykyetua. '=', '<>' Jne. Käyttäminen sen sijaan lisää suorituskykyä. Kirjainkoko (esim. 'S' vs. 's') voi olla erilainen tietokantatuotteen tai kokoonpanon mukaan.
Viitteet
- ^ "SQL WHERE -lauseke - aloittelijoiden on tiedettävä" .
- ^ Microsoft Technet Haettu 21. marraskuuta 2013.
Ulkoiset linkit
- PSOUG Home Puget Sound Oracle -käyttäjäryhmä antaa useita esimerkkejä SELECT-lauseista WHERE-lausekkeilla.