Salta el contingut

Consultes senzilles - DESCRIBE - CONCAT - DISTINCT

DESCRIBE

La comanda DESCRIBE s’usa per a conèixer l’estructura d’una taula de la base de dades.

La seva sintaxis és:

DESCRIBE < nom_de_la_taula > ;

Retorna el nom de la taula, els tipus de dades, les claus primàries, foranes, les columnes que admeten valors NULs i altres dades.

Exemple de DESCRIBE
DESCRIBE LOCATIONS;
+----------------+-------------+------+-----+---------+-------+
| Field          | Type        | Null | Key | Default | Extra |
+----------------+-------------+------+-----+---------+-------+
| LOCATION_ID    | int(4)      | NO   | PRI | NULL    |       |
| STREET_ADDRESS | varchar(40) | YES  |     | NULL    |       |
| POSTAL_CODE    | varchar(12) | YES  |     | NULL    |       |
| CITY           | varchar(30) | NO   |     | NULL    |       |
| STATE_PROVINCE | varchar(25) | YES  |     | NULL    |       |
| COUNTRY_ID     | char(2)     | YES  | MUL | NULL    |       |
+----------------+-------------+------+-----+---------+-------+

CONCAT i CONCAT_WS

En mysql i MariaDB, per a concatenar varis strings tenim dues funcions, CONCAT i CONCAT_WS:

  • CONCAT(<str1>, <str2>, <str3>, ...)

  • CONCAT_WS(<separador>, <str1>, <str2>, ...)

SELECT  CONCAT(first_name, ' ', last_name) CONCAT,
        CONCAT_WS(' ', first_name, last_name) CONCAT_WS
FROM EMPLOYEES;
CONCAT CONCAT_WS
Steven King Steven King
Neena Kochhar Neena Kochhar
Bruce Ernst Bruce Ernst
Peter Vargas Peter Vargas
Kimberely Grant Kimberely Grant

Valors literals

Un valor literal és un valor fixe de dades, un string, número o data.

Amb la concatenació de literals i camps podem arribar a formar frases:

SELECT  CONCAT_WS(' ',
        'El sou de', FIRST_NAME, LAST_NAME,
        'és de', SALARY, 'dolars') as "Frase"
FROM EMPLOYEES;
Frase
El sou de Steven King és de 24000.00 dolars
El sou de Neena Kochhar és de 17000.00 dolars
El sou de Bruce Ernst és de 6000.00 dolars
El sou de Peter Vargas és de 2500.00 dolars
El sou de Kimberely Grant és de 7000.00 dolars

DISTINCT

La clàusula DISTINCT just després de la paraula SELECT elimina les files repetides.

Així, si només volem una ocurrència de cada fila, utilitzarem la clàusula DISTINCT.

Com exemples podem buscar els diferents departaments on hi treballen empleats o els diferents tipus de feina dels empleats, on només voldrem que cadascun d’ells aparegui una sola vegada.

Exemple de DISTINCT

SELECT JOB_ID      SELECT DISTINCT JOB_ID  
FROM EMPLOYEES;    FROM EMPLOYEES;
+------------+     +------------+  
| JOB_ID     |     | JOB_ID     |  
+------------+     +------------+  
| AC_ACCOUNT |     | AC_ACCOUNT |  
| AC_MGR     |     | AC_MGR     |  
| AD_ASST    |     | AD_ASST    |  
| AD_PRES    |     | AD_PRES    |  
| AD_VP      |     | AD_VP      |  
| AD_VP      |     | IT_PROG    |  
| IT_PROG    |     | MK_MAN     |  
| IT_PROG    |     | MK_REP     |  
| IT_PROG    |     | SA_MAN     |  
| MK_MAN     |     | SA_REP     |  
| MK_REP     |     | ST_CLERK   |  
| SA_MAN     |     | ST_MAN     |  
| SA_REP     |     +------------+  
| SA_REP     |   
| SA_REP     |   
| ST_CLERK   |   
| ST_CLERK   |   
| ST_CLERK   |   
| ST_CLERK   |   
| ST_MAN     |   
+------------+