Consultes Postgres: diferència entre les revisions

De FFAWiki
Línia 154: Línia 154:
[[Fitxer:Case-ex.jpeg|esquerra|1200px|]]
[[Fitxer:Case-ex.jpeg|esquerra|1200px|]]


<br>
<br>
<br>
<br>
<br>
<br>

Revisió del 13:24, 12 gen 2021

Composició d'una consulta:
SELECT camp1/expressió, camp2/expressió, camp3/expressió, ..,campn/expressió FROM taula WHERE condició_cerca GROUP BY camp1, camp2 , ..., campn HAVING condicio_sobre_grups ORDER BY camp1 [ASC|DESC], camp2 [ASC|DESC], ..., campm [ASC|DESC] LIMIT n

Links de descarga de les bases de dades en les que es fan els exemples

Descargar base de dades sanitat

Descargar base de dades videoclub

Descargar base de dades toctag

Descargar base de dades empresa

Importar Base de Dades

SELECT

Definició:
Mostra els camps que volem que ens tregui per pantalla, s'utilitza per seleccionar dades d'una base de dades. Les dades retornades s’emmagatzemen en una taula de resultats, anomenada conjunt de resultats o result-set en anlges.
Exemple: (Base de dades sanitat)
SELECT * FROM doctor;
En aquest cas no tenim filtre en el SELECT per lo que mostra tots els camps de la taula doctor

Eines que es poden utilitzar:

COUNT(*)

Definició:
Compta les files que s’imprimeixen, en general la funció COUNT() retorna el nombre de files que coincideix amb un criteri especificat.
Exemple: (Base de dades sanitat)
SELECT count(especialitat) FROM doctor WHERE especialitat='Pediatria';
Conta totes aquelles especialitats dels doctors les quals son Pediatria.


DISTINCT

Definició:
Agrupa el camp que s’especifiqui traient els que estan repetits (si s’han de mostrar més d’un camp no es molt recomanat, millor GROUP BY)
Exemple: (Base de dades sanitat)
SELECT DISTINCT(especialitat) FROM doctor;
Mostra les especialitats de la taula doctors que son diferents (Per dir d'alguna manera les agrupa).


DATE_PART(,)

Definició:
Extreu de tot aquell camp o valor de tipus (datetime, date, time...).
Maneres de fer-lo servir:
date_part('field', source)
field = microseconds | milliseconds | second | minute | hour | day | week | month | quarter (Quart d'un any) | year | decade (Decada, cada 10) | century (secle, cada 100) | millennium (mileni, cada 1000)
SELECT date_part('day', TIMESTAMP '2001-02-16 20:38:40'); -> Retorna: 16 (Quan no li fiques un camp de la base de dades s'ha d'especificar que és el valor que li poses en aquest cas un temps)
SELECT date_part('hour', INTERVAL '4 hours 3 minutes'); -> Retorna: 4 (Quan no li fiques un camp de la base de dades s'ha d'especificar que és el valor que li poses en aquest cas un interval)
SELECT DATE_PART('YEAR',com_data) FROM comanda; -> Retorna: tots els anys de la columne com_data de la taula comanda (En aquest cas s'utilitzen dades d'una taula)
Exemple: (Base de dades empresa)
SELECT DATE_PART('YEAR',com_data) FROM comanda;

COALESCE

Definició:
Mostra el primer valor de la llista (COALESCE(comissio,0), el que esta en nagreta) es la llista separats per coma que no sigui null
Exemple: (base de dades empresa)
Coalesce-ex.jpeg















En aquest cas volem sumar el salari mes la comisio, pero no tots tenen comisio (son camps nulls) per tan utilitzarem COALESCE que el que fa es agafar el pimer valor que no sigui null de la llista COALESCE(comissio,0), el que esta en nagreta es la llista.
SELECT cognom,salari+COALESCE(comissio,0) as sou FROM emp;

UPPER()

Definició:
Passa tot el text entre parèntesis a majúscules, també poden ser camps d’una taula
Exemple:
Exemple amb un text qualsevol:
SELECT UPPER('hola, estas a ffawiki') as TEXT; -> Resultat: HOLA, ESTAS A FFAWIKI
Exemple amb un camp d'una taula: (base de dades empresa)
SELECT UPPER(cognom) as COGNOM FROM emp;

LOWER()

Definició:
Passa tot el text entre parèntesis a minúscules, també poden ser camps d’una taula
Exemple:
Exemple amb un text qualsevol:
SELECT UPPER('HOLA, ESTAS A FFAWIKI') as TEXT; -> Resultat: hola, estas a ffawiki
Exemple amb un camp d'una taula: (base de dades empresa)
SELECT LOWER(cognom) as COGNOM FROM emp;

CASE (CASE camp1 WHEN valor1 THEN mostra1 WHEN valor2 THEN mostra2 END)

Definició:
Si cambia un valor del camp especificat si surt entre els valors especificats (when valor) per el que se li digui (then valor) , per acabar s’ha de posar END i tancar parèntesis
Exemple: (Base de dades videoclub)
SELECT codipeli,titol,(case codigenere when 1 then 'Brus Lee' when 2 then 'Stalone' when 3 then 'Al pacino' END) from pelicula;
Enves de dirte un numero et diu el nom d'un actor
Case-ex.jpeg










SUM()

Definició:
Suma tots els camps o valors entre parèntesis separats per comes
Exemple:
Falta exemple


AVG()

Definició:
Fa la mitjana dels camps o valors entre parèntesis separats per comes
Exemple:
Falta exemple


AS

Definició:
A l’hora de mostrar camps que tinguin alguna funció d’agregació si es posa (camp as alies) quan mostri les files el nom de la fila serà l’alies especificat
Exemple:
Falta exemple

FROM

Definició:
Taula a on bucar els camps
Exemple:
Falta posar exemple

WHERE

Definició:
Condicions que han de complir les files per a que les mostri per pantalla
Exemple:
Falta posar exemple

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:
Falta exemple

AND

Definició:
El seu us es unir varies conducions o filtres
Exemple:
Falta exemple

IN/NOT IN

Definició:
Falta Descripció
Exemple:
Falta exemple

EXISTS/NOT EXISTS

Definició:
Falta Descripció
Exemple:
Falta exemple

Operadors

Definició:
Falta Descripció
+
+
Definició:
Falta Descripció
Exemple:
Falta exemple
-
-
Definició:
Falta Descripció
Exemple:
Falta exemple

Comparadors

Definició:
Falta Descripció
Definició:
Falta Descripció
=
=
Definició:
Falta Descripció
Exemple:
Falta exemple
<
<
Definició:
Falta Descripció
Exemple:
Falta exemple
>
>
Definició:
Falta Descripció
Exemple:
Falta exemple
!=
!=
Definició:
Falta Descripció
Exemple:
Falta exemple
LIKE / NOT LIKE
LIKE / NOT LIKE
Definició:
Falta Descripció
Exemple:
Falta exemple
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ó:
Falta Descripció
Exemple:
Falta exemple

ANY/SOME

Definició:
Falta Descripció
Exemple:
Falta exemple

GROUP BY

Definició:
Agrupar resultat del camps que tinguin un un valor igual
Exemple:
Falta exemple

HAVING

Definició:
Condició que s’aplica un cop agrupats els camps
Exemple:
Falta exemple

ORDER BY

Definició:
Mostra les files ordenades per els camps que s’hi posin
Exemple:
Falta exemple

DESC

Definició:
Fa que l’ordre sigui descendent
Exemple:
Falta exemple

LIMIT

Definició:
Mostra les files fins a arribar al número de files que hi especifiquem
Exemple:
Falta exemple