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.