Unde (SQL) - Where (SQL)

O WHERE clauză din SQL specifică faptul că o instrucțiune SQL Data Manipulation Language (DML) ar trebui să afecteze numai rândurile care îndeplinesc criteriile specificate. Criteriile sunt exprimate sub formă de predicate. WHERE clauzele nu sunt clauze obligatorii ale instrucțiunilor SQL DML, dar pot fi utilizate pentru a limita numărul de rânduri afectate de o instrucțiune SQL DML sau returnate de o interogare. Pe scurt, clauza SQL WHERE este utilizată pentru a extrage numai acele rezultate dintr-o instrucțiune SQL, cum ar fi: SELECT, INSERT, UPDATE sau DELETE.

Prezentare generală

WHERE este un cuvânt rezervat SQL .

WHERE Clauza este utilizat în conjuncție cu instrucțiuni SQL DML, și ia următoarea formă generală:

SQL-DML-Statement
FROM table_name 
WHERE predicate

toate rândurile pentru care predicatul din WHERE clauză este True sunt afectate (sau returnate) de instrucțiunea sau interogarea SQL DML. Rândurile pentru care predicatul evaluează Fals sau Necunoscut ( NULL ) nu sunt afectate de declarația sau interogarea DML.

Următoarea interogare returnează numai acele rânduri din tabelul mytable unde valoarea din coloana mycol este mai mare de 100.

SELECT *
FROM   mytable
WHERE  mycol > 100

Următoarea DELETE declarație înlătură numai acele rânduri din tabelul MyTable în cazul în care coloana mycol este fie nul sau are o valoare care este egală cu 100.

DELETE
FROM   mytable
WHERE  mycol IS NULL OR mycol = 100

Predicati

Predicate simple folosesc unul dintre operatorii = , <> , > , >= , < , <= , IN , BETWEEN , LIKE , IS NULL sau IS NOT NULL .

Dacă se dorește, predicatorii pot fi încadrați între paranteze. Cuvintele cheie AND și OR pot fi utilizate pentru a combina două predicate într-unul nou. Dacă se aplică mai multe combinații, parantezele pot fi folosite pentru a grupa combinații pentru a indica ordinea evaluării. Fără paranteze, AND operatorul are o legătură mai puternică decât OR .

Următorul exemplu șterge rândurile din tabelul meu, unde valoarea micolului este mai mare de 100, iar valoarea elementului este egală cu șirul literal „Ciocan”:

DELETE
FROM   mytable
WHERE  mycol > 100 AND item = 'Hammer'

ÎN

IN va găsi orice valori existente într-un set de candidați.

SELECT ename WHERE ename IN ('Montreal', 'Quebec')

Toate rândurile se potrivesc cu predicatul dacă valoarea lor este una dintre seturile de valori candidate. Acesta este același comportament ca

SELECT ename WHERE ename='value1' OR ename='value2'

cu excepția faptului că acesta din urmă ar putea permite compararea mai multor coloane, ceea IN ce nu face fiecare clauză. Pentru un număr mai mare de candidați, IN este mai puțin detaliat.

ÎNTRE

BETWEEN va găsi orice valori într-un interval.

SELECT ename WHERE ename BETWEEN 'value1' AND 'value2'
SELECT salary from emp WHERE salary BETWEEN 5000 AND 10000

Toate rândurile se potrivesc cu predicatul dacă valoarea lor este între „valoare1” și „valoare2”, inclusiv.

CA

LIKE va găsi un șir care corespunde unei anumite descrieri.

  • Se încheie cu wildcard
    • Găsiți orice șir care începe cu litera „S”
      SELECT ename FROM emp WHERE ename LIKE 'S%';
      
  • Comodul principal
    • Găsiți orice șir care se termină cu litera „S”
      SELECT ename FROM emp WHERE ename LIKE '%S';
      
  • Mai multe metacaractere
    • Găsiți orice șir care conține, oriunde, litera „S”
      SELECT ename FROM emp WHERE ename LIKE '%S%';
      
  • Comodul cu un singur caracter
    • Găsiți orice șir care conține litera „A” urmată de un singur caracter urmat de litera „E”
      SELECT ename FROM emp WHERE ename LIKE '%A_E%';
      
  • Clase de personaje
    • Găsiți orice șir care începe cu o literă sau număr sau simbolul „_”
      SELECT ename FROM emp WHERE ename LIKE '[a-zA-Z0-9_]%';
      

Predicatul LIKE efectuează de obicei o căutare fără beneficiul normal al performanței indexurilor. Folosind „=”, „<>” etc., în schimb, veți crește performanța. Sensibilitatea la majuscule (de exemplu, „S” versus „s”) poate fi diferită în funcție de produsul sau configurația bazei de date.

Referințe

  1. ^ "Clauza SQL WHERE - Lucrurile pe care trebuie să le cunoască începătorii" .
  2. ^ Microsoft Technet Accesat la 21 noiembrie 2013.

linkuri externe