WHERE

De FFAWiki
Definició:
Condicions que han de complir les files per a que les mostri per pantalla
Exemple: (Base de dades empresa)
Mostra els cognoms i el salari de aquella gent que el seu salari es superior a 200.000
SELECT cognom,salari FROM emp WHERE salari>200000;

Eines que es poden utilitzar:

Subconsultes

Definició:
Es pot utilitzar una consulta per tal de fer un filtre o condicio amb dades d'alguna altre taula relacionada o de la propia
Exemple:
Subconsulta taula relacionada (Base de dades toctag)
Mostra tots aquells dni i noms d'alumnes de la taula algumnes que coincideixen amb els dni de la taula d'expulsions.
SELECT dni,alumne FROM alumnes WHERE dni IN(SELECT DISTINCT(dni) FROM expulsions);
Subconsulta en la mateixa taula (Base de dades empresa)
Mostra els treballadors que el seu numero d'empleat de la taula emp coincideix amb la llista de numeros de empleats que son caps.
SELECT cognom FROM emp WHERE emp_no IN(SELECT distinct(cap) FROM emp);

AND

Definició:
El seu us es unir varies conducions o filtres.
Exemple: (Base de dades empresa)
Mostra aquells salaris que son mes grans de 200.000 i mes petits a 300.000
SELECT cognom,salari FROM emp WHERE salari>200000 AND salari<300000;

IN/NOT IN

Definició:
Comproba si esta dins de la llista que se li especifiqui entre parèntesi IN(), on esta la nagreta es on va la llista.
Exemple: (Base de dades toctag)
IN
Exemple amb subcunsulta
Mostra tots aquells dni i noms d'alumnes de la taula algumnes que coincideixen amb els dni de la taula d'expulsions.
SELECT dni,alumne FROM alumnes WHERE dni IN(SELECT DISTINCT(dni) FROM expulsions);


Exemple amb la mateixa taula
Mostra tots aquells treballadors que tenen la categoria empleat i venedor
SELECT cognom,ofici FROM emp WHERE ofici IN('empleat','venedor');
NOT IN
Exemple amb la mateixa taula
Mostra tots aquells treballadors que no tenen la categoria empleat i venedor
SELECT cognom,ofici FROM emp WHERE ofici NOT IN('empleat','venedor');

EXISTS/NOT EXISTS

Definició:
Fa una subconsulta i l'exists segons si troba algo o no, torna true o false i en el cas que dongui true imprimeix. (S'utilitza en subconsultes)
Exemple:
Mostra totes les columnes de la taula expulsions, pero nomes mostra les dades quan el dni de la taula alumnes el qual esta fent quart de l'ESO i si auqest mateix dni coincideix amb el dni de la taula d'expulsions.
SELECT * FROM expulsions WHERE EXISTS (SELECT dni FROM alumnes WHERE estudis like 'ESO4%' and dni=expulsions.dni);

Operadors

Definició:
És una funció que realitza algun tipus d'operació en un nombre, variable o funció
+
+
Definició:
suma
-
-
Definició:
resta
=
=
Definició:
igual
<
<
Definició:
Més petit que
>
>
Definició:
Més gran que
!=
!=
Definició:
No igual
LIKE / NOT LIKE
LIKE / NOT LIKE
Definició:
Compara un camp o un valor amb un patro.
Exemple:
Mostra els alumnes que estan cursant l'ESO.
SELECT dni,alumne FROM alumnes WHERE estudis LIKE 'ESO%';
Eines: _ / %
_ / %
_ : S'utilitza per calcular quin caracter exacte del parametre vols que sigui igual
% : S'ho traga tot, per exemple si vols bucar una parula que conte una x seria '%x%'

ALL

Definició:
L'ordre retorna true si tots els valors de la subqueria compleixen la condició. Necessita sempre un comarador devant.
Exemple: (Base de dades empresa)
Mostra cognom d'aquella persona que te el salari mes alt de tots.
SELECT cognom FROM EMP WHERE salari >= ALL(SELECT salari FROM emp);

ANY/SOME

Definició:
ANY: qualsevol
SOME: algun
Si (qualsevol/algun) coincideix amb la llista s'imprimeix. ANY() SOME(), en la nagreta es on es posa la llista.
Exemple:
Mostra els alumnes amb estudis DAM
SELECT alumne,estudis FROM alumnes WHERE estudis = SOME(SELECT estudis FROM alumnes WHERE estudis like 'DAM%');
SELECT alumne,estudis FROM alumnes WHERE estudis = ANY(SELECT estudis FROM alumnes WHERE estudis like 'DAM%');