viernes, 23 de noviembre de 2007

Consultas simples

La instrucción SELECT recupera datos de una base de datos y devuelve en forma de resultados de la consulta contiene 6 cláusulas con las siguientes funciones.
  1. Clausula SELECT. Lista los elementos de los datos a recuperar; los elementos pueden ser columnas de la base de datos o columnas calculadas por SQL PROCESA LA CONSULTA.

  2. Cláusula FROM. lista las tablas que contienen los datos a recuperar por la consulta;toman datos de una única tabla.
  3. Cláusula WHERE. informa a SQL, que incluya solo ciertas filas de datos en los resultados de la consulta; usa una condición de búsqueda para especifcar las filas deseadas.
  4. Cláusula GROUP BY. Especifica una consulta de resumen.

  5. Cláusula HAVING. Indica a SQL que incluya el resultado solo determinando grupos producidos pra al cláusula GROUPO BY.
  6. ORDEN BY. Ordena los resultados tomando como base los datos de una o más columnas.

Los elementos de selección son listas que generan una única columna de resultados de la consulta de izquierda a derecha puede ser:


  • Un nombre de columna, identifica una columna de la tabla(s) de la cláusula FROM.
  • Constante. Especifica ese mismo valor de constante aparece en cada fila de los resultados de la consulta.
  • Expresión SQL debe calcular el valor a poner en los resultados, según la expresión.

La cláusula FROM consiste en cada especificación de la tabla identifica una tabla que contiene datos a recuperar por la consulta, contiene un nombre único de la tabla de fuente de consulta.


El resultado de consulta d SQL es una tabla d base de datos de filas y columnas, si un programa se envia a una consulta de DBMS usando como programación de SQL se devuelve la tabla de resultados al programa. Las consultas relacionales de SQL tiene una estuctura tabular de una base de datos.

Las consultas simples solicitan columnas de datos de una única tabla de labase de datos utiliza las cláusulas SELECT y FROM SQL procesa la consulta tomando los valores de las columnas requeridas en las listas de selección y produzca una única filade resultados devolviendo asi una fila de datos por cada fila de la tabla.


Las columnas calculadas son valores que se obtienen de los valores de los datos almacenados en las listas de selección se debe especificar una expresión SQL suma, resta, multiplicación, divición o usar paréntesis para expresiones mas complejas.


La selección de todas las columnas utiliza la instrucción SELECT con un asteriscos(*) como abreviatura de las listas de selección de todas las columnas sirve para mostrar el contenido de todas las columnas de una tabla, estructuras de la base de datos de la programación de SQL.

Si la clave primaria que no incluye en las dos consultas aparecen filas duplicadas. Para eliminar filas duplicadas se uliliza la instrucción DISTINCT.


La cláusula WHERE especifica las filas que se desean recuperar dem una tabla, si no se desea seleccionar solo algunas filas si no incluye el resultado de la consultas de la tabla. La condición de la búsqueda produce los siguientes resultados:

  • Si la condición de la búsqueda es TRUE la fila se incluyen los resultados de la consulta.
  • Si la condición de búsqueda es FALSE la fila se incluye de los de la consulta.

  • Si la condición de búsqueda tiene NULL(desconocido ) la fila se incluye de los resultados.

La condición de búsqueda especifica diferentes tpos de consulta de forma eficiente y natural; las condiciones de búsqueda basicas de consulta llamadas"predicados" del estándar ANSI/ISO.



  • Test de comparación. (<=,<>,<,<=,>.>=) compara el valor de una expresión con el valor de otra expresión. La expresión puede ser el nombre de una columna una constante o una expresión aritmetica mas compleja. SQL compara los valores de expresión en el test de comparación pueden ocurrir 3 resultados:
  1. Si la comparación es cierta, el test da un resultado TRUE
  2. Si la comparación es falsa, el test da un resultado FALSE
  3. Si algunas de las dos expresiones devuelve un valor NULL la comparación devuelve un resultado NULL.

También hace recuperación de filas que es cuando la columna es una clave primaria, el test aisla una única fila de la tabla produciendo una única fila de resultados de la consulta.

  • Test de rango. (BETWEEN) comprueba si el valor de una expresión se encuentra en un rango especificado de valores.SQL implica 3 expresiones primero define el valor a comprobar,segundo y tercero define los limites inferiores y superiores del rango a comprobar. Para una negación se utiliza NOT BETWEEN del test de rango, comprueba valores fuera del rango.
    El estándar ANSI/ISO define reglas para el manejo de los valores NULL en el test BETWEEN:
  • Si la expresión de la test produce un valor NULL; o si ambas expresiones se define en el rango produce vaores NULL, entonces el test BETWEEN devuelve un resultado NULL

  • Si la expresión que define el limite inferior del rango produce un valor NULL, entonces el test BETWEEN devuelve FALSE si el valor es mayor que el limite superior, y NULL en caso contrario.

  • Si la expresión que define el limite superior del rango produce un valor NULL entonces el test BETWEEN devuelve FALSE si el valor es menor que el limite inferior, y NULL en caso contrario.
  • Test de pernitencia a conjuntos (IN). C omprueba si el valor de una expresión coincide con uno de un conjunto de valores. La expresión del test IN es un nombre de columna, ofrece una condición de búsqueda mas efeciente y comprueba si los valores de datos coninciden con la láusula NOT IN. S i el test produce valores NULL el test in devuelve NULL.

El estándar ANSI/ISO no especifica un limite máximo sobre el número de elementos que aprarecen en la lista de valores, tampoco la mayoria de implementaciones comerciales ofrecen un limite superior explícito.



  • Test de encaje de patrones(LIKE). Prueba si el valor de una columna que contiene datos de cadena coinciden con un patron especificado . Patrón es una cadena que puede concluir en uno o más caracteres comodín que es (signo del porcentaje)coincide en cualquier secuencia de varios o ningín carácter. Para buscar cadenas que no coincidan con un patrón se utiliza NOT LIKE.
  1. Test LIKE debe aplicar una columna con un tipo de dato de cadena
  2. Si el valor de la columna es NULL, el test LIKE devuelve un resultado NULL.
  3. El asterico(*) se usa en lugar del porcentaje.

  4. Signo de interrogacion de cierre (?) se usa en el subrayado de SQL.

E l estándar ANSI/ISO especifica una forma de comparar los caracteres de escape.E l caracter de escape aparece en el patrón, el caracter que lo sigue es el caracter literal, el ultimo es un caracter escapado que puede ser un comodín o un caracter propio de caracter de escape que tiene un significado en el patrón. La condición de búsqueda de caracter de escape tiene una cláusula ESCAPE.



  • Test de valores nulos(IS NULL). comprueba si la columna tiene un valor NULL (desconocido), es útil comprobar los valores NULL en las condiciones de búsqueda ya que quedara como resultado valores NULL, el test de valores NULL no puede devolver un resultado NULL solamente puede ser TRUE o FALSE, tanto las filas como las columnas tienen condiciones de búsqueda con valores NULL. La forma negativa de test de valores NULL es IS NOT NULL se encuentra en las filas que no tienen valores NULL.

Las condiciones de búsqueda con AND, OR Y NOT pueden ser condiciones de búsqueda compuestas.

OR. Se usa para combinar dos condiciones de búsqueda cuando cualqiera de ellas (o ambas)deben ser ciertas.

AND. Combina dos condiciones de búsqueda que deben de ser simultáneamente ciertas

NOT.Selecciona filas donde la condición de búsqueda sea falsa


El estándar ANSI/ISO especifica que cuando se combina mas de dos condiciones de búsqueda como NOT que tienen una procedencia mas alta del segundo de AND y despues OR. SQL añade el "test is" en la condición lógica de búsqueda a la lógica proporcional AND, OR Y NOT.


SQL pide que la intrucción SELECT incluya la cláusula ORDEN BY especifcando una lista de orden separadaspor comas, en el orden de datos la secuencuencia ascendente o desendente se incluya con la clave DESC O ASC especificando un orden para los elementos de la selección. SQL controla el tipo de ordenación del DBMS de la clave de ordenación.

Las consultas de una única tabla son simple conociendo la consulta de la instrucción SELECT Y ORDEN BY vistas en el capitulo anterior.

Para generar resultados de una instrucción SELECT :

  1. Comenzar con la tabla referenciada en la consulta FROM
  2. Si hay una cláusula aplicar su condición de búsqueda a cada fila de la tabla, reteniendo las filas para la condición de búsqueda y descartando filas para FALSE O NULL.

  3. Para cada fila restante, calcula el valor de cada elemento en la lista de selección para producir una única fila de resultados.

  4. Si se especifica SELECT O DISTINCT, elimina cualquier fila duplicada de los resultados que se hubiera producido.

  5. Si hay una cláusula ORDEN BY, ordena los resultados como se haya especificado.


La combinación de resultados de dos o mas consultas en una única tabla de datos, la cula SQL dispone de una caracteristica de UNION con la instrución SELECT.

Las siguientes restricciones severas sobre las tablas se pueden combinar en una operación:

  • Las dos tablas deben contener el mismo numero de columnas

  • El tipo de dato de cada columna de la primera tabla debe ser el mismo que el de la columna correspondiente de la segunda.
  • Ninguna de las dos tablas se pueden ordenar en la cláusula ORDEN BY.

El nombre de las columnas de dos consultas combinadas en UNION no deben ser identicas. Unión combina la fila de dos conjuntos de resultados produciendo resultados de filas duplicadas, si deseas conservar las filas duplicadas de una peración unión especifica la clave UNION ALL. El combinado de resultados de la operación no tienen unión se ordena con la cláusula ORDEN BY (debe especificar las columnas por el nímero de columnas) despues d la segunda instrución SELECT. La operación UNION se puede usuar para combinar 3 o mas conjuntos resultados en un único conjunto.El paréntesis indica la operación de la unión especificando un orden.














































1 comentario:

José Daniel Guerrero Gálvez (Oquitzin Azcatl) dijo...

Esta entrada se encuentra con mayor coherencia y jerarquía. Recuerda que el ensayo es para que tu expreses tus opiniones y no es para copiar o transcribir lo ya hecho. Sería un trabajo desperdiciado...