WHERE
De FFAWiki
La revisió el 12:32, 13 gen 2021 per Mayola (discussió | contribucions)
- 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%');