martes, 11 de diciembre de 2007

Subconsultas y expresiones de Consultas









Una subconsulta es una consulta dentro de otra. El DBMS usa los dos resultados la subconsulta para determinear resultados de la consulta que contiene la subconsulta. La consulta principal y la subconsulta expresan la solicitud original y recuperan los datos solicitados de la base de datos. La subconsulta SQL utiliza la clásula WHERE(filas individuales) y HAVINGN (grupos de filas).
  • La subconsulta contiene un único elemento de selección en su cláusula SELECT.
  • La cláusla ORDEN BY no puede especificar una subconsulta.
  • Nombra columnas que aparecen en una subconsulta pueden hacer referencia a las columnas delas tablas de la coluna principal.
  • La mayoria de implementaciones una subconsulta puede ser la UNION de varias instrucciones SELECT diferentes; solo permite una única SELECT.

Sunconsultas en la cláusula WHERE funcionan como parte del proceso de selección de filas y prodecen un valor que se usa para comprobar dentro de una condición de búsqueda.

Referencias externas es un nombre de columna que no se refiere a ninguna de las tablas listadas en la cláusula FROM de la subconsulta en la que aparece el nombre de la columna. La cláusula principal es el nombre de una columna que hace referencia a una columna de una tabla especificada con la clásula FROM. El DBMS examina la condición de búsqueda de la subconsulta, el valor de la columna de la referencia externa se toma de la fila que se esta comprobando en la consulta principal.

El test de comparación en subconsultas (<=,<>,<,<=>,>=) compara el valor de una expresión con el valor producido por una subconsulta y devuelve un resultado TRUE si la comparación es cierta.

Test de pernitencia a conjuntos funciona a igual que el test simple IN solamente que este produce un conjunto de valores de la subconsulta, en lugar de listarse explicitamente en la intrucción.

El test de existencia (EXISTS) comprueba si una subconsulta produce alguna fila como resultado de la consulta, se usa nadamas en la subconsulta.

  • Si la columna esta vacía. el test EXISTS es TRUE.
  • Si la subconsulta no produce filas, el test EXISTS es FALSE
  • El test EXISTS no puede producir un valor NULL.

Para invertir la lógica del test EXISTS usando la forma NOT EXISTS. La condición de búsqueda no usa realmente los resultados de la consulta, simplemente prueba si la subconsulta ressultados poreso SQL dice que las subconsultas deben devolver una única columna de datos, usando la instrucción SELECT de la consulta de un TEST EXISTS. El test ANY usa un operador de comprobación especificado para constrastar el valor del test, con cada valor de dato de la columna uno a uno.

El estándar SQL de ANSI/ISO especifica una alternativa para ANY y la clave SOME lo cual no es admitido en el SGBD. Acontinuación se describen algunas reglas detalladas de los resultados del test ANY cuando el valor del test se compara con columna de los resultados de la subconsulta .

  • Si la subconsulta produce una columna vacía de resultados el test, ANY devuelve FALSE no produce ningun valor en las subconsultas para el que se cumpla el test de comparación
  • Si el test de comparación es TRUE para alguna de los valores de datos de la columna, entonces la condición de búsqueda ANY devuelve TRUE hay algún valor producido por la subconsulta para el que se cumpla el test de comparación.
  • Si el test de comparación es FALSE para cada valor de dato la columna, entonces la condición de búsqueda ANY devuelve FALSE.
  • Si el test de comparación no es TRUE para algún valor de dato de la columna, pero es NULL para uno o mas valores de datos, entonces la condición de búsqueda ANY devuelve NULL.

El test ALL utiliza utiliza los mismos operadores y test de comparaciones que el test ANY. Solamente en las reglas en donde cambia sus resultados de valor del test de comparación de la subconsulta.

  • Si la subconsulta produce una columna vacía de resultados es test ALL devuelve TRUE.
  • Si el test de comparación es TRUE para todos los valores de datos de columna, entonces la condición de búsqueda ALL devuelve TRUE.
  • Si el test de comparación es FALSE para algún vaor de dato en la columna, entonces la condicion de búsqueda ALL devuelve FALSE.
  • Si el test de comparación no es FALSE para algún valor de dato de la columna, pero es NULL para uno o mas valores de dato, entonces la condición de búsqueda ALLdevuelve NULL.

Subconsulta de reuniones, la consulta interna es una consulta de resumen mientras que la externa no porque no hay forma de que dos consultas se puedan combinar en una única reunión. Una consulta anidada es la forma de presentar una solicitud de forma natural, consulta de tres niveles una consulta principal, subconsulta y una sub-subconsulta.

El estándar ANSI/ISO no especifica un número máximo de niveles de anidamiento, cuando una consulta llega a aumentar el número de niveles, la consulta es más dificíl de conservarla, porque SQL restringe el número de niveles a un número mas pequeño.

Subconsultas correlacionadas también llamadas referencias externas sus resultados estan correlacionados en cada fila individual de la consulta principal. En la cláusula puede haber un nombre de columna ambigua que una consulta principal , en un nombre de columna calificada, SQL se refiere si pertenece a una tabla de la subconsulta o otra tabla .

Subconsultas en la cláula HAVING funciona como selección de grupos de filas también se usa en subconsultas correlacionadas en la cláusula.




domingo, 9 de diciembre de 2007

Consultas de Resumen






La funciòn de columnas (AVG) de SQL toma una columna de datos completada como argumento y produce un ùnico elemento de datos que resume la estructura.

SQL ofrece 6 funciones de columna diferente de datos:

  • SUM. Calcula el total de una columna. Los datos de la columna deben tener un tipo numerico (entero, decimal, flotante o meneda en el resultado es mayor precisiòn.
  • AVG. Calcula el valor medio de una columna. Suma los valores de la columna y despues los divide entre los nùmeros de valores de la columna.
  • MIN. Halla el menor valor de una columna.
  • MAX. Halla el mayor valor de una columna. Estas dos hallan valores menores y mayores los datos de las columnas que contienen informaciòn nùmerica los de cadena compara los nùmeros en un orden algebraico y la fecha-hora compara secuencialmente, la comparaciòn de dos cadenas depende del conjunto de caràcteres que use y el resultado es el mismo tipo de dato que los de la columna.
  • COUNT. Cuenta el nùmero de valores de una columna. Los datos de la columna pueden ser de cualquier tipo, devuelven un entero en el tipo dato de la columna del resultado, no importa realmente la columna que se especifique como argumento de la funciòn COUNT.
  • COUNT(*) Cuenta las filas de los resultados.

La funciòn de la columna aparece en la lista de selecciòn produciendo una columna de resumen o una lista de selecciòn no puede contener ninguna funciòn de columna produciendo una consulta detallada. La regla es un poco mas compleja en las consultas agrupadas y en subconsultas una de las funciones que usan las columnas de esta tabla de resultados detalladosque genera una ùnica fila de resultados de resumen.

E l estandar SQL de ANSI/ISO especifica que los valores NULL de la columna se ignora por las funciones de columna, acontinuaciòn se mencionan reglas para el manejo d valores NULL.


  • Si alguno de los valores de dato de una columna es NULL se ignora para el pròposito del càlculo del valor de funcón de una columna .

  • Si cada elemento de dato de la columna es NULL, entonces SUM Y AVG.

  • MIN() Y MAX devuelve un valor NULL; la funciòn COUNT() devulve el valor cero

  • Si hay un elemento de cda dato en la columna (columna vacìa) entonces la funciòn de la columna SUM()AVG(), MIN() Y MAX() devuelve el valor NULL; la función COUNT devuelve el valor cero.

  • COUNT(*)cuenta filas y no depende de la presencia o ausencia de los valores NULL. Si hay una fila devuelve un valor cero.

Los productos comerciales de SQL pueden producir resultados diferentes en le estándar si los valores de datos de una columna son NULL o cuando la funciòn de columna se aplica a una tabla vacìa, poreso antes de saber el compaortamiento del estàndar se deberia de specificar DBMS que se usa.

DISTINCT en la lista de selecciòn elimna filas duplicadas de resultados antes del pigmento de la funciòn de columnas. El estàndar SQL1 no permite expresiones solamente nombre simple de columna permite la clave DISTINCT las funciones de columna SUM() Y AVG() MIN Y MAX no porque no tienen pacto en sus resultados.

COUNT no requiere valores de columna de la clave COUNT (*) no puede especificar esta funciòn con valores de datos.

Las consultas de agrupaciòn concluye la clàusula GROUP BY que agrupa los datos de sus tablas fuente en una ùnica fila d resumen, por cada grupo de filas.Las columnas de agrupaciòn como dividen las filas en grupos. L a clàusula GROUP BY, dice que SQL, que divida los resultados dtallados en grupos y que aplique una funciòn de columna separadas por grupos produciendo un resultado por grupo. Las consultas de agrupaciòn siguen los pasos de las reglas de procesamiento añadiendo 3 pasos mas.


  • Si hay una clàusula GROUP BY organiza las filas restantes de la tabla productos en dos grupos, de forma que las filas de cada grupo tengan identicos valores en todas las columnas de agrupaciòn.

  • Si hay una clàusula HAVING aplica su condiciòn de bùsqueda a dada grupo de filas, conservado los grupos patra la condiciòn de bùsqueda es TRUE (y descartando aquellos para los que la condición es FALSE o NULL.
  • Para cada fila resultante (o grupo de filas), calcula el valor de cada elemento de la lista de selección para producir una única fila de resultados. Para una referencia a una columna simple, usa el valor de la columna en las filas en curso (o grupo de filas. Para una función de columnas, usa el grupo actual de filas como argumento, si se especifica GROUP BY; en caso contrario, usa el conjunto completo de resultados.

Para agrupación de múltiples columnas agrupan los resultados de la consulta en término de los contenidos de dos o más columnas proporcionando un nivel de agrupación de resultados de resumen y detallados de consulta. El estándar SQL añadio una cláusula COMPUTE para calcular los subtotales.

Las restricciones sobre los elementos aparecen en la lista de selección de una consulta de agrupación puede ser:

  • Una constante
  • Una función de columna, que prodece un único valor resumiendo las filas del grupo
  • Una columna de agrupación, que por su deficnición tiene el mismo valor en cada fila del grupo.
  • Una expresión que contenga combinaciones de lo anterior.

Las limitaciones de las consultas de agrupación es que SQL ignora la informacion de las claves primarias y externas al analizar las consultas de agrupación.

El estándar ANSI/ISO especifca que los valores NULL en una agrupación de columnas son diferentes en las cláusula WHERE y en la cláusula GROUP BY los valores NULL son iguales formando cada cláusula su grupo de valores NULL para tener un resultado debe construir una tabla de test de comprobación para saber el comportamiento de SGBD.

La cláusula HAVING especifica una condición de búsqueda para grupos, se puede usar para destacar y seleccionar los grupos de filas. Para resticciones sobre condiciones de búsqueda de grupos es excluir o incluir grupos de filas de resultados, aplicando la cláusula WHERE para filas individuales, HAVING para un grupo de filas, la clásula HAVING para valores NULL en condicones de búsqueda utlizan las mismos resultados que WHERE en la cual actua igual en los grupos de resultados de consultas. La cláula HAVING puede trabajar sin la cláusula GROUP BY considerando un resulatdo detallado de la consulta en un único grupo, la cual lo utiliza rara ala vez.


domingo, 2 de diciembre de 2007

Consultas Multitablas

Reunión de tablas es el proceso de la formación de pares de filas correponden al contenidode las columnas relacionadas

Reunión de dos tablas. Contiene datos de tablas originales

Equirreunión. Es la correpondencia exacta entre dos reuniones.

Las reuniones es un proceso de consulta multitabla que maneja SQL en la condición de búsqueda con la instrucción SELECT especificando el encaje la correspondencia de columnas.

La base de datos relacional almacena datos de las columnas de las relaciones entre tablas haciendo corresponder los contenidos de las columnas relacionadas incorporadas en la base de datos no tienen mecanismos para relación de filas, el único mecanismo es la relación de datos entre tablas .

Las consultas multitablas mas comúnes involucran dos tablas que una relación natural Padre/Hijo.

La relación Padre/Hijo en una consulta debe especificarse con una condición de búsqueda comparando la clave (es el hijo de la relación) y primaria(Padre) de la relación de base de datos de SQL.

La consulta multitabla especifica las columnas conicidentes de una condición de búsqueda que pueden combinarse con otras condiciones de búsqueda para limitar el contenido de los resultados .

Las reuniones multicolumnaque incluyen dos tablas son menos comunes que las reuniones de una única collumna incluyendo también claves externas en una consulta, no hay limite para el número de columnas incluida en la condición de encaje, pero las reuniones de las entidades representadas en las tablas de base de datos que se encuentra en una o sólo algunas columnas de las tablas.

SQL puede combinar datos de tres o más tablas usando técnicas básicas de las consultas de dos tablas .

La relación varios a varios y uno a varios es diferente de la relación creada las columnas coincidentes de la clave primaria y externa, la instrucción SELECT debe escribir la expresión correcta de la columna.

  • Las reuniones que encajan las claves primarias sonlas claves esternas siempre producen relaciones padre/hijo uno a varios.

  • Otras reuniones también pueden generar relaciones uno a varios si la columna coincide en al menos una de las tablas únicos en todas las filas de las tablas.
  • En general la reunión de las columnas coincidentes albitrarias generan relaciones varios a varios.

SQL permite reunir tablas en términos de otros operadores de comparación. La relación de igualdad no son comunes son útiles para la toma de decisiones y otras aplicaciones mas complejas en la base de datos.

En la siguiente sección se expresan algunas caracteristicas de las consultas multitabla del lenguaje SQL.

    • Los nombres calificados de las columnas se necesitan a veces en consultas multitabla para eliminar referencias ambiguas a columnas.

    • Las selecciones de todas las columnas (SELECT*) tienen un significado especial para las consultas multitablas.

    • Las autoreuniones se pueden usar para crear consultas que la relacione una tabla consigo misma.

    • Las alias de tablas se pueden usar en la cláusula FROM para simplificar los nombres calificados de columnas y permite referencias no ambiguas o columnas en las autocorrecciones.

El nombre calificado de columnas se puede usar en cualquier lugar de la instrucción SELECT que permite un nombre de columna, la tbla especificada en la columna calificada debe coincidir con algunas de las tablas especificadas en la lista FROM.

La desventaja es que el texto de la consulta sea mayor. SQL interactivo hace una consulta sin nombres calificados, y deja que SQL encuentre columnas ambiguas, si SQL informa de un error se edita la consulta para calificar las columnas ambiguas.

SELECT se puede usar para las colum,nas de la tabla nombrada en la cláusula FROM. SQL trata el asterisco(*) como una clase especial de nombre de columna comodín o un nombre de una tabla calificada.

Las consultas multitablas incluyen una relación de una tabla que tiene consigo misma, no permite duplicar contenido de las tablas, SQL solamente hace refencia de un nombre diferente denominado alias de tablas.En las consultas con autoreuniones son requeridas las aliasde tablas.

  • La cláusula FROM identifica todas las tablas que aportan datos a los resultados de la consultas . Cualquier columna referenciada en la instrucción SELECT puede venir de una de las tablas listadas en la consulta de la cláusula FORM.

  • La cláusula FROM especifica la etiqueta que se usa para identificar las tablas en las referencias calificada a columnas dentro de la instruccion SELECT. Si se especificaen las alias de la tabla, se convierte en una etiqueta de la tabla, en caso contrario el nombre de la tabla, tal como aparece en la clausula FROM es el que se convierte en una etiqueta. El requisito para las etiquetas de las tablas es que sean distintas entre si.SQL permite que la clave AS aparezca entre el nombre de la tabla y su alias.

El lenguaje SQL noimpone un número de tablas reunidas en consulta, algunos productos de SQL, si limitan el número de tablas. Las aplicaciones de procesamiento interactivo de transacciones (OLTP,ONLINE TRANSATION PROCESSING) es común que contenga solo una o dos tablas. El usuario introduce uno o dos tablas y necesita una respuesta de la bse de datos en segundo o dos para tener una buena toma de decisiones en las aplicaciones de los resultados de la´consulta que se lleva mas tiempo requiere de minutos o incluso hasta de horas debido a las complejas relaciones de la base de datos.

La estructura de un join es saber determinar el uso de la instrución SELECT saber que es una reunión que deberia usarse en la reunion de varias tablas, las condiciones de búsqueda, los resultados producidos y conocer la teoria de la base de datos realcionales sobre las reuniones.

La multiplicación de las tablas es el producto de dos tablas es otra tabla que consiste en todos los posibles pares de filas de dos tablas. Se podria decir que las filas eliminadas son precisamente las que cumplen con la condición de las columnas coincidentes en la reunión, el producto es parte de la definición formal del procesamiento de SQL de una consulta multitabla

Reglas para el procesamiento consultas multitablas,

  • Si la instrucción es una UNION de instrucciones SELECT aplica los pasos 2 al 5 a cada una de las instrucciones para generar sus resultados individuales.

  • Si se especifica SELECT DISTINCT, elimina todas las filas duplicadas del resultado que se hubiera producido.

  • Si la instrucción es una UNION de instrucciones SELECT, mezcla los resultados de la instrucciones individuales en una única tabla de resultados. Eliminando las filas duplicadas a menos que se especifique UNION ALL.

  • Si hay una cláusula ORDEN BY, ordena los resultados como se especifique

Esto es lo que produciria una consulta multitabla de resulatdos.

La reunión externa (outer join ) denominada a veces reunion interna, es una parte bien asimilada y útil del modelo de datos relacional, y expresión a cierto tipo de consulta se implemento en muchos productos de SQL de marcas diferentes de IBM com Microsoft, Sybase, Oracle e Informix.

Procedimiento para la construcción de la reunion externa:

  • Empezar con la reunion interna de las dos tablas usando las columnas coincidentes de la forma usual.

  • Para cada fila de la primera tabla que no coincida con ninguna de la segunda. anñadir una fila alos resultados los valores de las columnas de la primera tabla y asumir un valor NULL para todas las columnas de la segunda tabla.

  • Para cada fila de la segunda tabla que no coincide con ninguna de la fila de la primera tabla, añadir una fila de resultado usando los valores de las columnas de la segunda tabla y asumiendo un valor NULL para todas las columnas de la primera tabla.

  • La tabla resultante es la union externa de dos tablas.

La unión externa por la izquierda de dos tablas se puden producir los siguientes pasos 1 y 2 de la lista enumerada anterior. pero omitiendo el paso 3., incluyendo copias rellenas con valores NULL de las filas que no encajan en la primera tabla (izquierda), pero incluyendo las filas que no encajen de la segunda (derecha).


La unión externa de la derecha de las dos tablas se produce siguiendo los pasos, y omitiendo los pasos 2, incluyendo copias con los valores NULL de las filas que no encajan de la segunda tabla (derecha) , pero no incluyen las filas que no encajan de la primera tabla (izquierda). L a notación de la unión externa (outer join) indica una condición de reunión con un test de comparación añadiendo un asterisco "*=*" en la cláusula WHERE usando reuniones externas de las tablas.También Oracle tiene una notación pero diferente en la reunión externa inicia con la cláusula WHERE incluyendo entre paréntesis un signo (+) las reuniones externas para la izquierda y derecha usadas también en Oracle.

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.














































martes, 20 de noviembre de 2007

Creación de base de datos



Lenguaje de definición de datos





Lenguaje de manipulación de datos pueden ser modificados de la base de datos pero su estructura no puede ser modificada.

Lenguaje de deficición de datos es cuando se puede modificar la estructura de la base de datos; controla instrucciones y cláusulas del almacenamiento fisico de la base de datos pueden variar de un DBMS a otro manipulan columnas y tablas.

El lenguaje de definición de datos se basa en 3 verbos de SQL los cuales se utilizan mientras se pone en función el DBMS


  • CREATE : Define y crea un objeto de la base de datos

  • DROP :Elimina un objeto ya existente de la base de datos
  • ALTER :Modifica la definición de un objeto de la base de datos

El DBMS puede eliminar o modificar la base de datos relacional mientras se añaden tablas y aplicaciones nuevas.El lenguaje SQL admite LDD en sus productos comerciales ,exige las instrucciones del LDD funcione en forma recíproca en un programa.


El estándar SQL exige una separación entre el LMD y LDDque no lo exigian ,también permite alos fabricantes cumplir con el LMD del estándar de SQL.


El estándar SQL2 difencia instrucciones SQL. LDD, instrucciones de esquema SQL, y instrucciones de LMD instrucciones de datos de SQL e instrucciones de transacciones de SQL; también especifican LDD independientemente ala estructura de almacenamiento fisico del sistema operativo y DBMS de dase de datos.


El administrador de la base de datos es el encargado de crear nuevas base de datos que se utilicen, tambien crean base de datos personales para cada usuario.
El lenguaje SQL1 especifica la estructura de la base de datos pero no la cre de la base de datos diferenciando cada DBMS.


DB2 tiene un programa instalado de un sistema de información real DB2 en la base de datos pone en función el servicio del programa de DB2 y que los usuarios tengan acceso al servicio del programa.


Oracle instala un programa, en una base de datos ubicda en la tabla de los usuarios mediante un archivo instalado se reune con una copia del programa en servicio para definir nombre de la base de datos, Oracle crea una instrucción CREATE DATABASE.


LLD SQL Server Microsoft y Sybase sus instrucción es CREATE DATABASE especifica el dispositivo E/S de la base de datos y DROP DATABASE destruye la base de datos creada, se asocian con una instalación de SQL Server en la base de datos los nombre son unicos


Informix Universal Server CREATE DATABASE (crea la base de datos) en un dbspace es un area de almacenamiento de disco, contola el programa de informix. tambien controla el registro historico de una nueva base de datos del rendimiento e integridad de datos.



La instruccion CREATE DATABASE define una nueva tabla en la base de datos usa las cláusulas y instrucciones de la definición de la tabla y ejecuta la instrucción con un nombre especificado, tambien la tabla debe tener un nombre que no afecte alas demás tablas, despues de haber creado la tabla vacía DBMS añade datos con la instrucción INSERT.


La instrucción CREATE DATABASE define columnas separadas por comas, entre paréntesis y en un orden de izquierda a derecha de las columnas de la tablas, también las tablas varian de un DBMS a otro permite al estándar SQL2 especificar un dominio en lugar del tipo de datosoportado por el DBMS y lleva acabo comprobaciones del valor de los datos.


La tabla de deficición de columnas debe indicar al DBMS si debe estar ausentes los datos de la columna es decir con un valor NULL.Si la columna debe tener un valor de los datos de cada fila de la tabla con la cláusula NOT NULL. Los productos de DBMS DE Sybase y SQL Server no permiten los valores NULL a menos que la columna se declare NULL, también pueden definirse como valores predeterminados NULL.


La cláusula FOREIGN KEY especifica una clave externa de la tabla y la realción que crea con otra tabla de la base de datos (tabla padre).


PRIMARY KEY especifica las columnas de la clave primaria delas tablas, el valor de la clave primaria es único en cada fila de la tabla el DBMS lo exige, la definición de la columna de la clave primaria de be especificar que la columna es NOT NULL.


La cláusula CREATE DATABASE es procesada por el DBMS define la clave externa y primaria de la tabla a la que se hace referencia que coincida el número de columna y tipode dato para que la comprobación tenga éxito.También especifica las reglas de eliminación y actualización entre la relación de las tablas padre/hijo que se crea.


La restriccion de comprobación es una caracteristicas de integridad de datos de SQ2 especificando una condición de comprobación que se realiza mediante la modificacion del contenido de la tabla con la instrucción INSERT , UPDATE O DELETE .Si la condición de la comprobación TRUE no ha modificado los datos el DBMS puede volver el error, se le bede asignar un nombre al DBMS para comunicar el error de la restricción.


El almacenamiento fisico incluye una o varias cláusulas de la intrucción CREATE TABLE que son utilizadas para el administrador de la base de datos para su rendimiento y producción ofrecen aplicaciones y diseños diferentes de las estructuras de DBMS.


Sybase utliliza el administrador de la base de datos para almacenar los dispositivos lógicos de la base de datos y el sistema informatico de discos fisicos lo maneja un programa de Sybase y no SQL.


DB2 es un daministrador de la base de datos fisico que ocupa un espacio de las tablas de contenedores de almacenamiento de nivel lógico y grupos nodales.También DB2 utiliza instrucciones CREATE TABLE PACE Y CREATE NODE GROUPpara el manejo de de almacenamiento de SQL.


El estándar SQL de la instrucción DROP TABLE elinima tablas que no son necesarias en la base de datos en donde se pierde su definición y su contenido, no hay manera de recuperar los datos, también se incluye CASCADE O RESTRIC.


La instrucción ALTER TABLE almancena información sobre entidades representadas de la tabla la cual se puede:

  • Añadir la definición de una columna a la tabla

  • Eliminar una columna de la tabla

  • Modificar el valor predeterminadode una columna

  • Añadir o eliminar la clave primaria de la tabla

  • Añadir o elinimar una clave externa de la tabla
  • Añadir o eliminar una restricción de unicidad de la tabla

  • Añadir o eliminar restricción de comprobación de la tabla

Adición de columnas es añadir la denición de columnas de una tabla con el DBMS dando un valor NULL para columnas añadidas en las filas existentes de las tablas y NOT NULL para un valor predeterminado esto significa que la cláusula ADD se utiliza para especificar el tipo de objeto añadido.


El estándar SQL2 trata trata un problema de integridad de datos como DELETE y UPIDATE con un comportamiento de eliminación en el estándar ejecutando las mismas reglas de actualización y eliminación especificando la instrucción RESTRIC si algún objeto de la base de datos de depende de la columna que se va a eliminar, la instrucción ALTER TABLE manda un mensaje de error y al columna no s elimina, CASCADE dice que cualquier objeto de la base de datos depende de la columna que se va a eliminar.


También ALTER TABLE modifica, elimina y añade deniciones de claves primarias y externas de las tablas utilizan las mismas cláusulas que CREATE TABLE; la clave externa se elimina cuando se crea un nombre de la relación en caso de no haber nombre no podra eliminar la clave externa tendar que crear una nueva tabla.


Los asertos utilizan la instrucción CREATE ASSERTION para limitar el contenido dela base de datos de varias tabla y la relación de datos entre ellas.


Los dominios se crean con la instrucción CREATE DOMAIN que es una colección con nombre de varios valores de datos que actúan como otro tipo de dato y los IDS-EMP-VALIDOS que son nímeros de identificación de empleados validos de la base de datos haciendo referencia alas columnas forman parte de la definición de base de datos implementando al estándar SQL2 .También se pueden utilizar las reglas de eliminación CASCADE O RESTRICT para la definición de columnas de los dominios.


La instrucción CREATE ALIAS se utiliza para crear sinónimos del nombrede la tabla de consulta SQL; en el empleo de alias es necesario el permiso del acceso alas tablas del usuario, en el sinónimo las tablas parecen propias simplifican las instrucciones de SQL.Si no deseas utilizar los sinónimos puedes elinimarlos conla instrucción DROP ALIAS.


Los indices es una estructura de almacenamiento fisico de acceso rapido de filas de las tablas con la base en el valor de una o varias columnas , basadas en SQL utlizando DBMS como indice dispone e un orden asendente y desendente especificando lo que se va a indexar utilizando la instrucción CREATE INDEX. Las marcas de DBMS como Oracle, Microsoft SQL, Server, Informix, Sybase y DB2 admiten indices con la instrucción CREATE INDEX especificando la tabla creada con un nombre de indice. DB2 utiliza como palabra clave UNIQUE utililiza la palabra clave para UNIQUE para la instrucción especificando la combinación de columnas que se esta indexando con un valor único para cada fila de la tabla. Para eliminar un indice se utiliza la instrucción DROP INDEX.


Las instrucciones CREATE, DROP,ALTER se utilizan para la implementación de SQL que sirven para manipular tablas, indices, vistas y instrucciones de LDD se crean, destruyen y modifican otro objetos de la base de datos.Sybase añade instrucciones CREATE TIGGER Y CREATE PROCEDURE para ñadir nuevas estructuras de la base de datos y DROP para eliminar.


El DBMS de Sybase se trato como un objeto de base de datos junto con sus tablas sus asertos,sus indices y otras estructuras.las marcas de DBMS es:

  • El empleo de verbos CREATE/DROP/ALTER.

  • Palabra de la instrucción es el tipo de objeto que se sta gestionando

  • Tercera palabra es el nombre del objeto que se debe obedecer a los cuerdos denominados de SQL.

El estándar SQL2 se ocupa de la creación modificación y destrucción de todos los objetos de la base de datos de SQL.












































































viernes, 16 de noviembre de 2007

Base de Datos Relacional

Modelo Relacional



El Modelo Relacional simplifica estructuras de la base de datos, también elimina de las bases de datos estructuras padre/hijo y presenta la base de datos en filas y columnas en una tabla de datos

Los sistemas gestores relacionales de la base de datos no encontraron partes principales del modelo de Codd, ya que después fue creciendo la popularidad "relacional"de la base de datos se decía "relacional" no lo era, Para establecer esta definición Codd creo 12 reglas que tenia que seguir la base de datos fuera realmente relacional se definió con SGBD relacional.

La base de datos relacional es una base de datos que esta organizada para los usuarios como tablas de valores de datos y operaciones de datos que se realizan sobre tablas ya que pueden tener otras estructuras de base de datos jerárquica o de red.

El Dominio es un conjunto de valores de datos contenidos en una columna.

El estándar ANSI/ISO no especifican numero máximo de columnas por tabla, los productos comerciales de SQL si tienen un limite que es de 255 columnas o mas por tablas.Cuando se hace una consulta a la base de datos el contenido de las tablas muestra las filas en un desorden ya que para mostrarlas y organizarlas tiene que llamar a SQL.

Las tablas vacías tienen estructuras compuestas por columnas no tienen dato, el estándar ANSI/ISO no limita el número de filas de las tablas y productos SQL tienen un limite de 2000,000.

Clave primaria es la columna o combinación de columnas cuyos valores de identifican de manera unívoca cada fila de la tabla,son parte del modelo relacional ,es diferente de la relación de las tablas de cada fila provenientes de la base de datos relacional.

Los diseñadores de la base de datos no proporcionan una clave primaria para sus tablas, pero el SGBD no identifica ninguna clave primaria para cada tabla.

El DB2 fue el producto comercial de SQL y IBM que dio soporte a las claves primarias ANSI/ISO amplio el soporte de clave primaria que los sistemas gestores de base de datos ofrece .La diferencia entre un Modelo Relacional y los Modelos de datos relaciones padre/hijo de la base de datos jerárquica prohibida en la base de datos relacional.

Las claves externas son columnas de una tabla cuyos valores coinciden con los valores de la clave primaria de la otra tabla.El número de columnas y tipo de datos de las columnas de las clave primaria y clave externa pueden ser idénticos;una tabla puede tener varias claves externas si se relacionan con mas tablas.Las claves externas forman parte del Modelo Relaciona ya que se relaciona con la base de datos.


Codd presento 12 reglas para comprobar que una base de datos la considere realmente relacional con base al Modelo Relacional y la definición de base de datos relacional.
  1. Regla de la información

  2. Regla de acceso garantizado

  3. Tratamiento sistemático de los valores NULL

  4. Catálogo dinámico con conexión basado en el modelo relacional

  5. Reglas del sublenguaje de datos completos

  6. Reglas de actualización de las vistas

  7. Inserción, actualización y eliminación de alto nivel

  8. Independencia de los datos fisícos

  9. Independencia de los datos lógicos

  10. Independencia de la integridad
  11. Independencia de la distribución

  12. Reglas de la no subversión

Después de haber conocido la s doce reglas de Codd apareció las tablas de puntuación para los DBMS comerciales para cubrir con las reglas abria que aplicarlas ya que eran subjetivas, en la cual las tablas de puntuación no decían mucho del producto en competencia tenían que conformarse con las reglas.









martes, 13 de noviembre de 2007

Lenguaje SQL

lenguaje estructurado de consultas


LENGUAJE SQL (lenguaje estructurado de consultas) Herramienta útil y potente que maneja la organización y recuperación de cada datos de una base de datos,trabaja con una base de datos relacional, también controla funciones de DBMS como: definición de datos, recuperación de datos, manipulación de datos,control de acceso, compartimiento de datos y integridad de datos, SQL no es un lenguaje completo sino un sublenguaje de base de datos


También SQL está integrado a un sistema gestor de base de datos que junto con la base de datos forman una estructura, almacenamiento y recuperación de datos.


IBM (INTERNACIONAL BUSINES MACHINES) Trabajo mediante una muestra precisa para que lo siguieran los fabricantes de base de datos y sistemas de desarrollo de SQL y de las bases de datos relacionales IBM tiene un amplio soporte que con la influencia y desarrollo de IBM fue aceptado por los mercados SQL y después creo su propio negocio informático SQL el cual se ha trasformado en un producto estratégico.


Microsoft proporciona un acceso ala base de datos relacional mediante una conectividad abierta ala base de datos tecnologia de Enlace e incrustación de objetos, datos de objetos,siendo SQL server un producto distinto de Microsoft y formando parte importante de la arquitectura NET.


El lenguaje de base de datos relacional y el modelo de base de datos relacional tiene una estructura tabular, filas y columnas.


El creador de un base de datos de SQL puede presentar su estructura y su contenido en diferentes vistas, utilizando una mejor seguridad para su base de datos y que sepa usarlo cada usuario.


EL Lenguaje completo de la creación de base de datos, el manejo de su seguridad, cambiar su contenida recuperación de datos y el compartir datos con usuarios del grupo.


Los usuarios pueden tener acceso ala base de datos cuando se esta haciendo una dinámica de modificar y expandir la estructura de la base de datos, pero el lenguaje estático de definición de datos no permite el acceso a la base de datos cuando se modifica su estructura.


La base de datos en Internet para ser publicadas en paginas web utilizaron el lenguaje SQL, para presentar tablas de las bases de datos con aplicaciones y servicios en los programas de red.


Las base de datos relacional contribuyeron una gran importancia en la infraestructura de SQL en la base de datos utilizando las herramientas de informes,las herramientas para introducción de datos, las herramientas de diseño, programación que es una gran estraestructura en SQL, la gestion es mas simple de menor riesgo y menor costo de SQL.