SQL/Predicados

En Galilibros, o Wikibooks en galego.
< SQL
Saltar ata a navegación Saltar á procura
SQL
← Volver a Expresións Predicados Seguir con Funcións escalares


Os predicados sitúanse tras o WHERE e teñen como resultado «verdadeiro» ou «falso».

Operadores lóxicos[editar]

Estes son os operadores lóxicos de SQL:

  • Maior que: >
  • Maior ou igual que: >=
  • Menor que: <
  • Menor ou igual que: <=
  • Igual que: =
  • Distinto de: <>

NULL[editar]

Para comprobar se o valor dun campo é ou non nulo.

WHERE campo IS [NOT] NULL

BETWEEN[editar]

Permite comporbar se os valores dun campo se atopan ou non entre outros dous valores, ambos os dous incluídos. O primeiro valor ten que ser inferior ao segundo. A súa sintaxe é:

WHERE campo [NOT] BETWEEN valor1 AND valor2

LIKE[editar]

LIKE permite comparar valores de xeito similar ao operador lóxico de igualdade (=), aínda que nos permite utilizar salvedades. Estas salvedades inclúen:

_ (barra baixa)
Este carácter indica que, onde está situado, ten que ir un caracter calquera.
%
Este caráter indica que, onde está situado, pode ir unha cantidade calquera de caracteres, mesmo ningún.

A súa sintaxe é:

WHERE campo LIKE 'cadea de texto con salvedades'

Para os casos en que non precisemos do uso de salvedades, cómpre usarmos o = en vez do LIKE, xa que este último xera un maior consumo de recursos, algo a evitar sempre que se poida.

SELECT subordinado[editar]

Nunha comparación, o segundo elemento pode ser un SELECT subordinado, popularmente coñecido coma subselect.

Dito SELECT pode vir precedido dunha palabra clave de SQL, a saber:

  • ANY (ou SOME), a condición ten que cumprirse para calquera elemento da subselect.
  • ALL, a condición ten que cumprirse para todos os elementos da subselect.

E pechando o SELECT subordinado entre parénteses a continuación.

No seguinte exemplo obtense o nome e mailo salario do empregado con maior salario:

SELECT nome,salario FROM empregados WHERE salario >= ALL (SELECT salario FROM empregados);

En resumo: a sentencia obtén o nome e salario do empregado que máis cobra, como xa anunciáramos. Pero se queremos explicar paso a paso o que fai a sentencia, sería algo coma «seleccionar o nome e mailo salario dos empregados cuxo salario sexa maior ou igual que os salarios de todos os empregados (non xuntos, evidentemente)». Entenderás o funcionamento dunha subselect cando, no exemplo anterior, entendas por que se substituísemos >= por > non obteriamos ningún resultado.

Tamén podemos usar un SELECT subordinado na parte do FROM. Isto sería unha táboa subordinada. Para facelo non abonda con substituír o nome da táboa anterior cunha sentencia SELECT subordinada, senón que é necesario establecer un identificador único para dita sentencia, que representa unha nova táboa:

FROM (subselect) AS 'identificador'

IN[editar]

IN permite comprobar se o resultado dunha expresión está contido nunha lista de valores. Esta lista de valores especifícase tras o INT, e pode substituírse por unha sentencia SELECT subordinada. A súa sintaxe é:

WHERE campo [NOT] IN (valor1, valor2, valor3, valor4...)
WHERE campo [NOT] IN (subselect)

EXISTS[editar]

Permite saber se un SELECT subordinado devolve ou non algunha fila. A súa sintaxe é:

WHERE [NOT] EXISTS (subselect)


SQL
← Volver a Expresións Predicados Seguir con Funcións escalares