Referencia de comandos SQL
En este capítulo se incluye información sobre la lista de comandos SQL:
Sentencia Select
Sintaxis
SELECT [ALL|DISTINCT] expresión [ AS nombre ] [, …] [ FROM tabla [ WHERE condición ]
[ GROUP BY columna [, …] ]
[ HAVING condición [, …] ]
[ UNION select ]
Entradas
expresión
Nombre de una columna de una tabla o una expresión.
nombre
Especifica otro nombre de columna o una expresión usando la cláusula AS. nombre no puede ser usado en la condición WHERE. Sí puede, sin embargo, ser referenciado en cláusulas HAVING o GROUP BY asociadas.
table
Nombre de una tabla existente referenciada por la cláusula FROM.
condición
Expresión booleana que devuelva un resultado true or false. Ver la cláusula WHERE.
columna
Nombre de una columna de una tabla.
select
Una sentencia select con todas sus funcionalidades excepto la cláusula ORDER BY.
Salidas
rows
Conjunto completo de filas resultantes de la especificación de la consulta.
count
Número de filas devueltas por la consulta.
Sentencia SELECT simple
Sentencias select que sólo contienen nombres de columna y una única tabla:
SELECT fieldname FROM tablename
Ejemplos:
– Seleccionar todos los registros de todas las columnas de ANEXOS.
– Seleccionar todos los registros de las columnas especificadas de ANEXOS.
Sentencia Select conteniendo las palabras clave ALL y DISTINCT
Sentencias select que contienen palabras claves cuantificadores. Si no se especifican palabras claves, se tomará ALL por defecto.
SELECT DISTINCT fieldname FROM tablename SELECT ALL fieldname FROM tablename
Ejemplos:
– Seleccionar todos los registros de todas las columnas de ANEXOS.
– Seleccionar los registros de todas las columnas de ANEXOS, quitando aquellos que tengan valores duplicados en las mismas.
– Seleccionar todos los registros de las columnas especificadas de ANEXOS.
– Seleccionar los registros con valores distintos en las columnas especificadas de ANEXOS.
Sentencia select con expresiones aritméticas
Los operadores aritméticos manipulan operandos numéricos.
(unario): hace positivo el operando.
Ejemplo:
– (unario): niega el operando. Ejemplo:
+: suma de números. Ejemplo:
–: resta de números. Ejemplo:
*: multiplicación de números. Ejemplo:
/: división de números. Ejemplo:
Más ejemplos:
Cláusula WHERE
La cláusula WHERE en sentencias SELECT es usada para especificar los criterios de selección basados en una condición de búsqueda.
Operadores de comparación
Los operadores de comparación son usados en condiciones que comparan una expresión con otra. El resultado de la comparación puede ser TRUE o FALSE.
=: igual que. Ejemplo:
<>: distinto de. Ejemplo:
>: mayor que. Ejemplo:
<: menor que. Ejemplo:
>=: mayor o igual que. Ejemplo:
<=: menor o igual que. Ejemplo:
Más ejemplos:
Los operadores de comparación pueden ser usados también en campos de tipo cadena.
Operadores lógicos
Operadores lógicos que manipulan el resultado de condiciones.
NOT: devuelve TRUE si la condición siguiente es FALSE. Devuelve FALSE si es TRUE. Ejemplo:
AND: devuelve TRUE si las dos condiciones componentes son TRUE. Devuelve FALSE si alguna es FALSE. Ejemplo:
OR: devuelve TRUE si alguna de las condiciones componentes son TRUE. Devuelve FALSE si ambas son FALSE. Ejemplo:
Más ejemplos:
Sub Query
Una condición de búsqueda puede incluir una sub consulta. El grado y cardinalidad de la sub consulta puede ser 1. Las sub consultas no pueden tener cláusulas GROUP BY O HAVING.
Ejemplos:
Predicado BETWEEN
Mayor que o igual y menor que o igual entre dos límites.
Ejemplos:
Predicado LIKE(%, _ Y \)
El predicado LIKE busca cadenas que coincidan con un patrón determinado. Este patrón es especificado por una cadena en la que el signo _ y el signo % pueden tener un significado especial.
%: busca coincidencia con cualquier cadena de cero o más caracteres. Ejemplo:
_: busca coincidencia con cualquier carácter único. Ejemplo:
ESCAPE: escape es interpretado de forma literal, útil cuando se desea buscar cadenas que contengan un tanto por ciento (%) o un carácter de subrayado (_). Ejemplo:
Más ejemplos:
– Devolverá todas las cadenas que contengan la cadena “Valor”.
– Devolverá aquellas cadenas que tengan 5 caracteres que empiecen por ab y terminen en cd.
– Devolverá todas las cadenas que empiecen por ab%cd.
– Devolverá todas las cadenas que empiecen por ab_cd.
– Devolverá todas las cadenas que empiecen por ab\cd.
– Devolverá todas las cadenas que no empiecen por ab\cd.
Predicado NULL
Busca valores nulos. Este es el único operador que puede ser usado para buscar valores nulos.
Ejemplos:
Predicado de comparación cuantificada
Compara el valor de cada valor en una lista o en una lista resultante de una consulta. Debe ir precedido de =, !=, >, <, =. Evalúa FALSE si la consulta no devuelve filas.
Ejemplos:
Predicado EXISTS
Devuelve TRUE si una sub-consulta retorna al menos una fila.
Predicado IN
Comprueba si el valor es igual a cada valor de una lista o de una lista resultante de una consulta.
Nota: esta cláusula no es funciona con cláusulas multi-tabla.
Funciones de agregado
Realizan un cálculo sobre un conjunto de valores y devuelven un solo valor. SUM: devuelve la suma de todos los valores los valores de la expresión numérica. Solamente puede utilizarse con columnas numéricas.
Ejemplo:
AVG: devuelve el promedio de los valores de un grupo. Solamente puede utilizarse con columnas numéricas.
Ejemplo:
COUNT: devuelve el número de valores de un grupo.
Ejemplo:
COUNT(*): devuelve el número de filas seleccionadas.
Ejemplo:
MAX: devuelve el valor máximo de la expresión.
Ejemplo:
MIN: devuelve el valor mínimo de la expresión.
Ejemplo:
Uso de las palabras clave DISTINCT y ALL
Las palabras clave opcional DISTINCT puede ser usada con SUM, AVG y COUNT para eliminar valores duplicados antes de que una función de agregado sea ejecutada (el valor por defecto es ALL).
Ejemplos:
Más ejemplos:
– Quita registros duplicados obtenidos en el resultado.
GROUP BY
Agrupa un conjunto de filas seleccionado en un conjunto de filas de resumen de acuerdo a los valores de una o más columnas o expresiones.
Especifica los grupos en los que han de ser situadas las filas seleccionadas y, si en la cláusula SELECT se han incluido funciones de agregado, calcula un valor de resumen para cada grupo.
Ejemplos:
HAVING
Especifica una condición de búsqueda para un grupo o un agregado. Habitualmente es usado con la cláusula GROUP BY.
Ejemplos:
Combinación de WHERE ,GROUP BY,HAVING
Ejemplos:
Operaciones con conjuntos
Puede ser llevadas a cabo a través de operadores de conjuntos, éstos combinan el resultado de dos consultas en una única colección.
UNION
Devuelve todas las filas con valores diferentes de cada consulta.
Ejemplos:
UNION ALL
Devuelve todas las filas seleccionadas por cada consulta, incluyendo todas las duplicadas.
Ejemplos:
Operación de renombrado
Alias de columna
Se trata de un nombre alternativo para sustituir el nombre de columna en un conjunto resultante de una consulta.
Ejemplos:
SELECT con múltiples tablas
La cláusula SELECT que contenga múltiples tablas devolverá producto cruzado de tablas.
Ejemplo:
Uso del operador .
Usando el operador . el nombre de la tabla puede ser usado para referenciar una columna.
Ejemplo:
Sentencia INSERT INTO
Syntax
INSERT INTO tabla
{ VALUES ( valor1 [, …] ) | SELECT consulta }
También es posible especificar las columnas para las que queramos insertar datos:
INSERT INTO tabla [ ( columna [, …] ) ]
{ VALUES ( valor1 [, …] ) | SELECT consulta }
Entradas
table: el nombre de una tabla existente.
column: el nombre de una columna de la tabla.
valor1: el valor asignado a la columna correspondiente.
Consulta: una consulta (query) válida. La lista resultante de la SELECT de esta sub consulta debe tener el mismo número de columnas que la lista resultante de la sentencia INSERT.
Salidas
INSERT #
Mensaje retornado y se insertaron filas. # es el número de filias insertadas.
Formas de sentencias INSERT
Inserta un nuevo registro con los valores 47 para el primer campo y “Nuevo” para el segundo.
Inserta un nuevo registro con el valor 44 para el CODIGO y el resto de los campos por defecto.
Inserta un nuevo registro con el valor “Nuevo” para el NOMBRE y CODIGO con valor auto-incrementado si así está declarado.
Inserta un nuevo registro con el valor 47 en el CODIGO y el valor “Nuevo” en el NOMBRE.
Inserta todos los registros de ANEXOS en IDIOMAS. Inserta solamente si el grado de la sub-consulta es igual al grado de los IDIOMAS.
Inserta todos los registros de ANEXOS en IDIOMAS. Inserta solamente si el grado de la sub-consulta es igual al grado de IDIOMAS. La sub-consulta solamente puede contener los campos seleccionados.
Inserta las columnas especificadas en la sub-consulta a las columnas especificadas de la tabla.
Inserta registros basados en la condición de la sub-consulta (cláusula WHERE).
Notas de uso
El mismo nombre de columna no debería aparecer más de una vez en el argumento de columna.
El número de columnas especificado en el argumento de columna debe ser igual al número de valores proporcionados. Si se omite el argumento columna, el número de valores debe ser igual al grado de la tabla.
La expresión para cada columna debería ser del tipo de datos adecuado, pues no se hará una corrección automática del tipo.
Las columnas de la lista de destino pueden ser listadas en cualquier orden.
ttps://velneo.atlassian.net/browse/VELNEO-8223, pues resulta que hemos
El límite para una cadena que se asigna como valor a un campo en una sentencia es de 467 caracteres.
Sentencia UPDATE
Sintaxis
UPDATE– Reemplaza valores de columnas en una tabla.
<DESTUPDATE tabla SET columna = expresión [, …]
[ WHERE condición ]
Entradas
tabla: nombre de una tabla existente.
columna: nombre de una columna de la tabla.
SET: indica que las columnas siguientes se les asignarán valores específicos.
Si se omite el nombre de una de las columnas de la tabla en la cláusula SET, el valor de la misma permanecerá inalterado.
Expresión: una expresión o valor válidos para asignar a la columna.
condición: una condición de búsqueda.
WHERE restringe las filas actualizadas a aquellas en las que la condición especificada es TRUE. Si se omite la cláusula WHERE, el driver actualizará todas las filas de la tabla.
La condición de búsqueda en la sentencia UPDATE puede ser uno de los predicados siguientes:
Predicado de comparación.
Predicado BETWEEN.
Predicado IN.
Predicado LIKE.
Predicado NULL.
Predicado de comparación cuantificada.
Predicado EXISTS.
Salidas
UPDATE #
Mensaje devuelto si el resultado ha sido satisfactorio. El carácter # significa el número de filas actualizadas. Si # es igual a 0, querrá decir que no se actualizó fila alguna.
Formas de la sentencia UPDATE
La sentencia UPDATE básica actualiza todos los registros de una tabla con nuevos valores.
Ejemplos:
Actualiza todos los registros solamente si ninguno de los campos es la clave primaria. Si no, retorna error.
Actualiza solamente los campos especificados, el resto permanecerán inalterados.
Con expresiones aritméticas
Las operaciones aritméticas usan operandos numéricos.
Ejemplos:
Evalúa la expresión aritmética y la actualiza en todos los registros.
Cláusula WHERE y sub consultas
Busca registros basándose en una condición y actualiza solamente aquellos que cumplan la condición. La condición de búsqueda pude tener cualesquiera predicados y sub consultas.
Predicado de comparación.
Predicado BETWEEN.
Predicado IN.
Predicado LIKE.
Predicado NULL.
Predicado de comparación cuantificada.
Predicado EXISTS.
Ejemplos:
Notas de uso
La misma columna no puede aparecer más de una vez en la cláusula SELECT.
Si no se especifica ninguna cláusula WHERE serán actualizadas todas las filas de la tabla.
El límite para una cadena que se asigna como valor a un campo en una sentencia es de 467 caracteres.
Sentencia DELETE
Borra filas de una tabla.
Sintaxis
DELETE FROM tabla [WHERE condición]
Entradas
tabla: nombre de una tabla existente.
condición: se trata de una consulta SQL de selección que retorna las filas a borrar.
En el capítulo dedicado a la sentencia SELECT encontrarás información sobre la cláusula WHERE.
La condición de búsqueda en la sentencia DELETE puede ser uno de los predicados siguientes:
Predicado de comparación.
Predicado BETWEEN.
Predicado IN.
Predicado LIKE.
Predicado NULL.
Predicado de comparación cuantificada.
Predicado EXISTS.
Salidas
DELETE count
Mensaje retornado si los elementos son borrados satisfactoriamente. “count” es el número de filas borradas. Si es 0, querrá decir que no se ha borrado ninguna fila.
Formas de la sentencia DELETE
Forma básica: borrar todos los registros de una tabla:
Ejemplos:
Cláusula WHERE, sub consultas
Busca registros basándose en una condición y borra solamente aquellos que la cumplen. La condición de búsqueda puede tener cualesquiera predicados y sub consultas.
Ejemplos categorizados basados en predicados:
Predicado LIKE
Encontrará todas las cadenas que incluyan la cadena "Val".
Encontrará todas las cadenas que tengan 5 caracteres que comiencen por "ab" y terminen en "cd".
Encontrará todas las cadenas que comiencen por "ab%cd".
Encontrará todas las cadenas que comiencen por "ab_cd".
Encontrará todas las cadenas que comiencen por "ab\cd".
Encontrará todas las cadenas que no comiencen por "ab\cd".
Predicado de comparación
Operadores lógicos
Predicado BETWEEN
Predicado IN
Predicado NULL
Predicado de comparación cuantificada
Predicado EXISTS
Notas de uso
Si no se especifica ninguna cláusula WHERE, serán borradas todas las filas de la tabla.