Salta el contingut
 

Consultes b脿siques

Joan Puigcerver Ib谩帽ez

j.puigcerveribanez@edu.gva.es

Llic猫ncia: CC BY-NC-SA 4.0

(Reconeixement - NoComercial - CompartirIgual) 馃叚

Introducci贸露

Una vegada s'ha definit un model de dades en una base de dades 茅s possible realitzar consultes per manipular les dades emmagatzemades, com consultar dades, insertar-ne de noves, modificar-les o eliminar-les.

Totes aquestes operacions es realitzen mitjan莽ant el Llenguatge de Manipulaci贸 de Dades (DML), un subllenguatge de SQL.

Aquest material es centrar脿 a estudiar com realitzar consultes sobre una base de dades.

DML露

El Llenguatge de Manipulaci贸 de Dades (DML o Data Definition Language) 茅s un subllenguatge de SQL que permet manipular les dades de una base de dades.

Les accions que es permeten s贸n:

  • SELECT: Permet consultar les dades de la base de dades.
  • INSERT: Permet inserir noves dades a la base de dades.
  • UPDATE: Permet modificar dades existents.
  • DELETE: Permet elmininar dades.

SELECT露

La sent猫ncia SELECT permet consultar dades existents en una base de dades.

T茅 el seg眉ent format:

SELECT 
  [ALL | DISTINCT | DISTINCTROW]
  column_expr [[AS] alias] [, column2_expr [[AS] alias2] ...]
  FROM table
    [WHERE condition]
    [ORDER BY {col_name} [ASC | DESC], ...]
    [GROUP BY {col_name} [ASC | DESC], ... [WITH ROLLUP]]
    [HAVING aggregate_condition]

  • SELECT: Indica que volem consultar les dades de una base de dades.
  • [ALL | DISTINCT | DISTINCTROW]: Par脿metre opcional.
  • ALL: Valor per defecte si no s'especifica. Retorna totes les files, incloses aquelles que siguen iguals.
  • DISTINCT: Retorna les files sense duplicats.
  • DISTINCTROW: Sin貌nim de DISTINCT.
  • column_expr [, column2_expr ...]: S'indiquen les columnes que es volen recuperar en la consulta. Si es volen recuperar totes les columnes d'una taula es pot utilitzar un asterisc *.

  • [[AS] alias]: Opcionalment, es pot indicar un 脿lies a una columna o expresi贸, que es mostrar脿 en el resultat. La paraula clau AS 茅s opcional.

  • FROM database.table: Indica la taula sobre la qual volem fer la consulta. El par脿metre database 茅s opcional si la base de dades s'ha especificat pr猫viament amb USE.

  • WHERE condition: S'utilitza per filtrar els resultats en base a una condici贸.

  • ORDER BY: S'utilitza per ordenar els registres obtinguts en la consulta.
  • ASC: Indica que s'ordenaran els valors de manera ascendent. Valor per defecte.
  • DESC: Indica que s'ordenaran els valors de manera descendent.
  • GROUP BY: S'utilitza per agrupar els registres obtinguts en la consulta.
  • HAVING aggregate_condition: S'utilitza per filtrar els resultats obtinguts a partir d'una conduci贸 que utilitza una funci贸 d'agregaci贸.

Documentaci贸

Documentaci贸 oficial sobre consultes:

L'ordre en el qual el SGBD realitza les consultes 茅s:

  • Es consulten les taules sobre les quals es realitza la consulta.
  • S'itera registre per registre per evaluar les condicions especificades, quedant-se amb els registres que compleixen la condici贸 i descartant la resta.

  • Ordena el resultat.

  • Selecciona les columnes o funcions d'agregaci贸 especificades.

FROM露

La paraula clau FROM especifica la taula o taules sobre les quals es recuperen les dades. De moment, sols s'utilitzar脿 una 煤nica taula.

Exemple

En aquest material s'utilitzar脿 la Base de Dades Institut en els exemples.

USE institut;

Consultem les dades dels cicles formatius:

SELECT nom, sigles, nivell
    FROM cicle_formatiu;
+------------------------------------------------+--------+----------+
| nom                                            | sigles | nivell   |
+------------------------------------------------+--------+----------+
| Sistemes Microinform脿tics en Xarxa             | SMX    | mitja    |
| Administraci贸 de Sistemes Inform脿tics en Xarxa | ASIX   | superior |
| Desenvolupament d'Aplicacions Multiplataforma  | DAM    | superior |
| Desenvolupament d'Aplicacions Web              | DAW    | superior |
+------------------------------------------------+--------+----------+

Consultem tots els registres i columnes de les fam铆lies professionals:

SELECT * FROM familia_professional;
+------------+-----------------------------+
| id_familia | nom                         |
+------------+-----------------------------+
|          1 | Inform脿tica i comunicacions |
+------------+-----------------------------+

WHERE露

La paraula clau WHERE s'utilitza especificar una condici贸 a les dades que es recuperen.

Les condicions poden incloure operacions num猫riques i alfab猫tiques, on es poden utilitzar constants o expressions aritm猫tiques, valors nuls, ...

!!! docs Documentaci贸 oficial sobre funcions:

  - MariaDB: https://mariadb.com/kb/en/built-in-functions/
  - MySQL 8.0: https://dev.mysql.com/doc/refman/8.0/en/built-in-function-reference.html

Comparadors露

Dins de la cl脿usula WHERE es poden definir condicions, les quals utilitzen operadors de comparaci贸.

Algunes dels operadors m茅s comuns s贸n:

  • A = B: Comprova si dos valors s贸n iguals.
  • A != B o A <> B: Comprova si dos valors s贸n diferents.
  • A < B: Comprova si un element 茅s m茅s xicotet que l'altre.
  • A <= B: Comprova si un element 茅s m茅s xicotet o igual que l'altre.
  • A > B: Comprova si un element 茅s m茅s gran que l'altre.
  • A >= B: Comprova si un element 茅s m茅s gran o igual que l'altre.
  • A IN (B, C, ...): Comprova si un element forma part d'un conjunt de valors.
  • A NOT IN (B, C, ...): Comprova si un element no forma part d'un conjunt de valors.
  • A BETWEEN B AND C: Comprova si un element est脿 entre dos valors.
  • A NOT BETWEEN B AND C: Comprova si un element no est脿 entre dos valors.

Documentaci贸

Documentaci贸 oficial sobre comparadors:

Exemple

  • Consultem els m貌duls professionals amb m茅s de 200 hores:

    SELECT *
    FROM modul_professional
    WHERE hores > 200;
    +----------+--------------------------------------------+--------+-------+------+
    | id_modul | nom                                        | sigles | hores | ects |
    +----------+--------------------------------------------+--------+-------+------+
    | 0221     | Muntatge i Manteniment d'Equips            | MME    |   224 |    5 |
    | 0223     | Aplicacions Ofim脿tiques                    | AOF    |   224 |    5 |
    | 0225     | Xarxes Locals                              | XAR    |   224 |    5 |
    | 0231     | Formaci贸 en Centres de Treball             | FCT    |   380 |   22 |
    | 0369     | Implantaci贸 de Sistemes Operatius en Xarxa | ISO    |   224 |   15 |
    | 0382     | Formaci贸 en Centres de Treball             | FCT    |   400 |   22 |
    | 0485     | Programaci贸                                | PRG    |   256 |   14 |
    | 0495     | Formaci贸 en Centres de Treball             | FCT    |   400 |   22 |
    | 0619     | Formaci贸 en Centres de Treball             | FCT    |   400 |   22 |
    +----------+--------------------------------------------+--------+-------+------+
    

  • Consultem els m貌duls professionals amb exactament 9 cr猫dits.

    SELECT *
    FROM modul_professional
    WHERE ects = 9;
    +----------+--------------------------------------+--------+-------+------+
    | id_modul | nom                                  | sigles | hores | ects |
    +----------+--------------------------------------+--------+-------+------+
    | 0486     | Acc茅s a Dades                        | ADB    |   120 |    9 |
    | 0488     | Desenvolupament d'Interf铆cies        | DIU    |   120 |    9 |
    | 0612     | Desenvolupament Web en Entorn Client | DFT    |   140 |    9 |
    | 0615     | Disseny d'Interf铆cies Web            | DIW    |   120 |    9 |
    +----------+--------------------------------------+--------+-------+------+
    

  • Consultem els m貌duls professionals amb cr猫dits entre 10 i 20.

    SELECT *
    FROM modul_professional
    WHERE ects BETWEEN 10 and 20;
    +----------+--------------------------------------------+--------+-------+------+
    | id_modul | nom                                        | sigles | hores | ects |
    +----------+--------------------------------------------+--------+-------+------+
    | 0369     | Implantaci贸 de Sistemes Operatius en Xarxa | ISO    |   224 |   15 |
    | 0370     | Planificaci贸 i administraci贸 de xarxes     | PAX    |   192 |   12 |
    | 0372     | Gesti贸 de Base de Dades                    | GBD    |   160 |   11 |
    | 0483     | Sistemes Inform脿tics                       | SI     |   160 |   10 |
    | 0484     | Bases de Dades                             | DBA    |   160 |   12 |
    | 0485     | Programaci贸                                | PRG    |   256 |   14 |
    | 0613     | Desenvolupament Web en Entorn Servidor     | DBK    |   160 |   12 |
    +----------+--------------------------------------------+--------+-------+------+
    

  • Consultem les persones el qual el seu nom 茅s Marta o Pau.

    SELECT dni, nom, cognoms
    FROM persona
    WHERE nom IN ("Marta", "Pau");
    +-----------+-------+---------+
    | dni       | nom   | cognoms |
    +-----------+-------+---------+
    | 32409818N | Marta | Sanchis |
    | 55739745G | Marta | Catal脿  |
    | 56294859J | Marta | Ferrer  |
    | 71299956W | Pau   | Mart铆   |
    | 92384756F | Pau   | Peris   |
    | 92743788Z | Pau   | Ivars   |
    +-----------+-------+---------+
    

Operacions i funcions aritm猫tiques露

Les operacions aritm猫tiques es poden utilitzar en qualsevol lloc dins de la sent猫ncia SELECT. Normalment s'utilitzen en la cl脿usula SELECT o WHERE.

Documentaci贸

Documentaci贸 oficial sobre operacions i funcions aritm猫tiques:

Les operacions aritm猫tiques m茅s utilitzades s贸n:

  • +: Suma
  • -: Resta
  • *: Multiplicaci贸
  • /: Divisi贸
  • DIV: Divisi贸 entera
  • % o MOD: M貌dul o residu

Tamb茅 es pot fer 煤s de funcions aritm猫tiques integrades en el SGBD.

Les m茅s comunes s贸n:

  • POW(A, B): Pot猫ncia (\(A^B\)) !!! example "Exemple"

    SELECT POW(10, 2); --> 100
    

  • LOG([A, ]B): Logartime (\(\log_A B\)). Si A no s'especifica, s'utilitza el logaritme natural (\(\ln{B}\)). !!! example "Exemple"

    SELECT LOG(10, 100); --> 2
    

  • PI(): Retorna el valor de el n煤mero pi (\(\pi\): 3,141593..). !!! example "Exemple"

    SELECT PI(); --> 3.141593
    

  • ABS(A): Valor absolut (sempre positiu). !!! example "Exemple"

    SELECT ABS(10); --> 10
    SELECT ABS(-10); --> 10
    

  • ROUND(A, D): Arredoneix el n煤mero A al nombre de decimals D especificat. !!! example "Exemple"

    SELECT ROUND(10.25, 1); --> 10.3
    SELECT ROUND(10.25, 0); --> 10
    

  • CEIL(A): Arredoneix el n煤mero A a l'al莽a. !!! example "Exemple"

    SELECT CEIL(10.25); --> 11
    

  • FLOOR(A): Arredoneix el n煤mero A a la baixa. !!! example "Exemple"

    SELECT FLOOR(10.25); --> 10
    

Exemple

  • Consultem la r脿tio d'hores que necessites per aconseguir un cr猫dit en els m貌duls professionals.

Nota

S'ha definit l'脿lias ratio a la columna del resultat hores / etcs.

L'脿lias sols pot ser utulitzar en les cl脿usules ORDER BY, GROUP BY i HAVING (https://stackoverflow.com/questions/942571/using-column-alias-in-where-clause-of-mysql-query-produces-an-error).

SELECT hores / ects AS ratio, sigles, nom
FROM modul_professional
WHERE (hores / ects) <= 12;
+---------+--------+-------------------------------------------------------------+
| ratio   | sigles | nom                                                         |
+---------+--------+-------------------------------------------------------------+
| 12.0000 | SGBD   | Administraci贸 de sistemes gestors de bases de dades         |
|  8.0000 | PRJ    | Projecte d'Administraci贸 de Sistemes Inform脿tics en Xarxa   |
| 12.0000 | PSP    | Programaci贸 de Serveis i Processos                          |
|  8.0000 | PRJ    | Projecte de Desenvolupament d'Aplicacions Multiplataforma   |
|  8.0000 | PRJ    | Projecte de Desenvolupament d'Aplicacions Web               |
+---------+--------+-------------------------------------------------------------+

Operacions i funcions amb cadenes de car脿cters露

De la mateixa manera que es poden realitzar operacions aritm猫tiques, tamb茅 es permeten operacions per processar i transformar les cadenes de car脿cters.

Documentaci贸

Documentaci贸 oficial sobre operacions amb cadenes de car脿cters:

Algunes de les funcions m茅s comuns s贸n:

  • LEFT(string, N): Retorna el prefix (part esquerra) de longitud N de la cadena de car脿cters.
  • RIGHT(string, N): Retorna el sufix (part dreta) de longitud N de la cadena de car脿cters.
  • CONCAT(string, ...): Retorna la concatenaci贸 de les cadenes de car脿cters especificades.
  • LOWER(string): Retorna la cadena de car脿cters en min煤scula.
  • UPPER(string): Retorna la cadena de car脿cters en maj煤scula.

Exemple

  • Consultem les inicials, el nom, el cognom i la data de naixement de les persones nascudes abans del 1990.
    SELECT CONCAT(LEFT(nom, 1), ".", LEFT(cognoms, 1), ".") AS inicials, nom, cognoms, data_naixement
    FROM persona
    WHERE data_naixement < "1990-01-01";
    +----------+--------+----------+----------------+
    | inicials | nom    | cognoms  | data_naixement |
    +----------+--------+----------+----------------+
    | M.S.     | Mar    | S谩nchez  | 1984-11-10     |
    | 脪.P.     | 脪scar  | Peris    | 1975-01-15     |
    | M.F.     | Maria  | Femenia  | 1974-12-04     |
    | P.P.     | Pau    | Peris    | 1982-03-19     |
    +----------+--------+----------+----------------+
    

A m茅s, existeix la comparaci贸 LIKE, que permet comprovar si una cadena de car脿cters segueix un patr贸 definit:

  • %: Representa qualsevol cadena de car脿cters, de longitud variable. Pot ser la cadena buida.
  • _: Representa un 煤nic car脿cter.

Exemple

  • Consultem les persones les quals el seu nom t茅 una "e" en segona posici贸.
    SELECT *
    FROM persona
    WHERE nom LIKE "_e%";
    +--------+------------+
    | nom    | cognoms    |
    +--------+------------+
    | Sergi  | Mart铆nez   |
    | Gemma  | Femenia    |
    | Teresa | Mas        |
    | Helena | Montserrat |
    | Helena | Benlloch   |
    | Teresa | Ginestar   |
    +--------+------------+
    

Operacions i funcions amb dates i hores露

Tamb茅 existeixen operacions i funcions per extraure informaci贸 o manipular les dates o el temps.

Documentaci贸

Documentaci贸 oficial sobre operacions sobre dates i hores:

Les operacions m茅s comunes s贸n:

  • NOW(): Retorna un object DATETIME amb el dia i l'hora actual.
  • YEAR(), MONTH() i DAY(): Extrau l'any, mes i dia d'una data respectivament. !!! example "Exemple"

    SELECT YEAR("1707-04-25"); --> 1707
    SELECT MONTH("1707-04-25"); --> 4
    SELECT DAY("1707-04-25"); --> 25
    

  • HOUR(), MINUTE() i SECOND(): Extrau l'hora, el minut i els segons d'una hora respectivament. !!! example "Exemple"

    SELECT HOUR("23:59:00"); --> 23
    SELECT MINUTE("23:59:00"); --> 59
    SELECT SECOND("23:59:00"); --> 0
    

  • DATE_FORMAT(D, format): Retorna la data en el format especificat. !!! info "Informaci贸" El tipus de dades DATE sempre t茅 el format YYYY-MM-DD. !!! docs "Documentaci贸"

    - MYSQL 8.0: https://dev.mysql.com/doc/refman/8.0/en/datetime.html
    

    Exemple

    SELECT DATE_FORMAT("1707-04-25", "%d/%m/%Y"); --> "25/04/1707"
    
  • STR_TO_DATE(string, format): Retorna un objecte DATE a partir d'una cadena de car脿cters en el format especificat. !!! example "Exemple"

    SELECT STR_TO_DATE("25/04/1707", "%d/%m/%Y"); --> "1707-04-25"
    

Operadors l貌gics露

Els operadors l貌gics s'utilitzen per modificar el resultat boole脿 d'una condici贸 o combinar-ne diverses.

Els principals operadors l貌gics s贸n:

  • NOT expr o ! expr: Nega una expresi贸. TRUE passa a ser FALSE i viceversa. !!! note "Nota"

    - `TRUE` es representa com un 1.
    - `FALSE` es representa com un 0.
    

    Taula NOT

    A NOT A
    0 1
    1 0

  • AND o &&: S'evalua a TRUE si les dues condicions es compleixen. !!! info "Taula AND"

    A B A AND B
    0 0 0
    0 1 0
    1 0 0
    1 1 1

  • OR o ||: S'evalua a TRUE si qualsevol de les dues condicions es compleix. !!! info "Taula OR"

    A B A OR B
    0 0 0
    0 1 1
    1 0 1
    1 1 1

  • XOR: S'evalua a TRUE si qualsevol de les dues condicions es compleix, per貌 no cap de les dues o les dues a la vegada. !!! info "Taula XOR"

    A B A XOR B
    0 0 0
    0 1 1
    1 0 1
    1 1 0

Exemple

  • Consulta les persones que el seu dni acaba en J i han nascut en el 2000 o anys posteriors.
    SELECT dni, nom, cognoms, data_naixement
    FROM persona
    WHERE RIGHT(dni, 1) = "J" AND YEAR(data_naixement) >= 2000;
    +-----------+------+---------+----------------+
    | dni       | nom  | cognoms | data_naixement |
    +-----------+------+---------+----------------+
    | 58224076J | Rosa | Peris   | 2000-10-21     |
    +-----------+------+---------+----------------+
    

Registres duplicats (ALL | DISTINCT)露

Les consultes poden retornar registres duplicats i podem especificar el comportament de la consulta en les seg眉ents opcions:

  • ALL: Comportament per defecte. La consulta pot retornar files duplicades.
  • DISTINCT: La consulta elimina les files duplicades del resultat.

Exemple

  • Consultem el nombre d'hores dels m貌duls amb menys de 100 hores:

    SELECT hores
    FROM modul_professional
    WHERE hores < 100;
    +-------+
    | hores |
    +-------+
    |    88 |
    |    96 |
    |    60 |
    |    96 |
    |    96 |
    |    60 |
    |    40 |
    |    96 |
    |    60 |
    |    96 |
    |    60 |
    |    40 |
    |    96 |
    |    60 |
    |    80 |
    |    40 |
    |    96 |
    |    60 |
    |    96 |
    |    96 |
    +-------+
    

  • Consultem el nombre d'hores dels m貌duls amb menys de 100 hores sense registres duplicats.

    SELECT DISTINCT hores
    FROM modul_professional
    WHERE hores < 100;
    +-------+
    | hores |
    +-------+
    |    88 |
    |    96 |
    |    60 |
    |    40 |
    |    80 |
    +-------+
    

ORDER BY露

La cl脿usula ORDER BY permet especificar l'ordre dels resultats obtinguts en una consulta. Per defecte, no s'aplica cap ordre en concret a la consuta.

En aquesta cl脿usula s'especifica un o m茅s criteris d'ordenaci贸. Primer, s'ordena per el primer atribut especificat. Si hi ha un "empat", s'ordena pel seg眉ent, i aix铆 succecivament.

Es pot especificar el "sentit" de la ordenaci贸:

  • ASC: Ordena les dades de manera ascendent.
  • DESC: Ordena les dades de manera descendent.

Exemple

  • Es consulta la informaci贸 dels m貌duls professionals amb menys de 100 hores.

    Els resultats s'han ordenat per nombre d'hores primer. En cas d'empat, pel nombre de cr猫dits descendentment. Per 煤ltim, s'han orrdenat per l'ID del m貌dul.

SELECT *
FROM modul_professional
WHERE hores < 100
ORDER BY hores ASC, ects DESC, id_modul ASC;
+----------+-------------------------------------------------------------+--------+-------+------+
| id_modul | nom                                                         | sigles | hores | ects |
+----------+-------------------------------------------------------------+--------+-------+------+
| 0379     | Projecte d'Administraci贸 de Sistemes Inform脿tics en Xarxa   | PRJ    |    40 |    5 |
| 0492     | Projecte de Desenvolupament d'Aplicacions Multiplataforma   | PRJ    |    40 |    5 |
| 0616     | Projecte de Desenvolupament d'Aplicacions Web               | PRJ    |    40 |    5 |
| 0377     | Administraci贸 de sistemes gestors de bases de dades         | SGBD   |    60 |    5 |
| 0490     | Programaci贸 de Serveis i Processos                          | PSP    |    60 |    5 |
| 0230     | Empresa i Iniciativa Emprenedora                            | EIE    |    60 |    4 |
| 0381     | Empresa i Iniciativa Emprenedora                            | EIE    |    60 |    4 |
| 0494     | Empresa i Iniciativa Emprenedora                            | EIE    |    60 |    4 |
| 0618     | Empresa i Iniciativa Emprenedora                            | EIE    |    60 |    4 |
| 0614     | Desplegament d鈥橝plicacions Web                              | DPL    |    80 |    5 |
| 0228     | Aplicacions Web                                             | AW     |    88 |    5 |
| 0373     | Llenguatge de marques i sistemes de gesti贸 d'informaci贸     | LLM    |    96 |    7 |
| 0371     | Fonaments de maquinari                                      | FHW    |    96 |    6 |
| 0487     | Entorns de Desenvolupament                                  | IDE    |    96 |    6 |
| CV0003   | Angl茅s T猫cnic I-S                                           | ATI    |    96 |    6 |
| CV0004   | Angl茅s T猫cnic II-S                                          | ATI    |    96 |    6 |
| 0229     | Formaci贸 i Orientaci贸 Laboral                               | FOL    |    96 |    5 |
| 0380     | Formaci贸 i Orientaci贸 Laboral                               | FOL    |    96 |    5 |
| 0493     | Formaci贸 i Orientaci贸 Laboral                               | FOL    |    96 |    5 |
| 0617     | Formaci贸 i Orientaci贸 Laboral                               | FOL    |    96 |    5 |
+----------+-------------------------------------------------------------+--------+-------+------+

Funcions d'agregaci贸露

Les funci贸ns d'agregaci贸 s'utilitzen per realitzar operacions i fer c脿lculs a partir de m煤ltiples registres.

Aquestes funcions poden ser utilitzades amb la cl脿usula GROUP BY.

Les funcions d'agregaci贸 m茅s comunes s贸n:

  • COUNT(A): Compta el nombre de registres de la columna A. !!! example "Exemple"

    SELECT COUNT(nia) nombre_estudiants
    FROM estudiant;
    +-------------------+
    | nombre_estudiants |
    +-------------------+
    |                40 |
    +-------------------+
    

  • MIN(A): Retorna el valor m铆nim dels registres de la columna A. !!! example "Exemple"

    SELECT MIN(YEAR(data_naixement))
    FROM persona;
    +---------------------------+
    | MIN(YEAR(data_naixement)) |
    +---------------------------+
    |                      1974 |
    +---------------------------+
    

  • MAX(A): Retorna el valor m脿xim dels registres de la columna A. !!! example "Exemple"

    SELECT MAX(YEAR(data_naixement))
    FROM persona;
    +---------------------------+
    | MAX(YEAR(data_naixement)) |
    +---------------------------+
    |                      2002 |
    +---------------------------+
    

  • SUM(A): Retorna la suma dels valors dels registres de la columna A. !!! example "Exemple"

    SELECT SUM(hores)
    FROM modul_professional;
    +------------+
    | sum(hores) |
    +------------+
    |       6806 |
    +------------+
    

  • AVG(A): Retorna la mitjana aritm猫tica dels valors dels registres de la columna A. !!! example "Exemple"

    SELECT ROUND(AVG(hores), 2)
    FROM modul_professional;
    +---------------------+
    | ROUND(AVG(hores),2) |
    +---------------------+
    |              141.79 |
    +---------------------+
    

  • DISTINCT(A): Retorna els valors no repetits dels registres de la columna A. !!! example "Exemple"

    SELECT DISTINCT(hores)
    FROM modul_professional
    ORDER BY hores;
    +-------+
    | hores |
    +-------+
    |    40 |
    |    60 |
    |    80 |
    |    88 |
    |    96 |
    |   100 |
    |   110 |
    |   120 |
    |   128 |
    |   140 |
    |   160 |
    |   176 |
    |   192 |
    |   224 |
    |   256 |
    |   380 |
    |   400 |
    +-------+
    

馃搶 Aquest document pot quedar desactualitzat despr茅s d鈥檌mprimir-lo. Pots consultar la versi贸 m茅s recent a la p脿gina web.
馃尶 Abans d鈥檌mprimir aquest document, considera si 茅s realment necessari. Redueix el consum de paper i ajuda a protegir el nostre entorn.