SQL/Predicados
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
(ouSOME
), 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 → |