3493135-20320<br />                                UNIVERSIDAD VERACRUZANA<br />Facultad de Administración <br />CATEDRÁTI...
Ansi Sql Db Elaboraron Todos Eq8
Ansi Sql Db Elaboraron Todos Eq8
Ansi Sql Db Elaboraron Todos Eq8
Ansi Sql Db Elaboraron Todos Eq8
Ansi Sql Db Elaboraron Todos Eq8
Ansi Sql Db Elaboraron Todos Eq8
Ansi Sql Db Elaboraron Todos Eq8
Ansi Sql Db Elaboraron Todos Eq8
Ansi Sql Db Elaboraron Todos Eq8
Ansi Sql Db Elaboraron Todos Eq8
Ansi Sql Db Elaboraron Todos Eq8
Ansi Sql Db Elaboraron Todos Eq8
Ansi Sql Db Elaboraron Todos Eq8
Ansi Sql Db Elaboraron Todos Eq8
Ansi Sql Db Elaboraron Todos Eq8
Ansi Sql Db Elaboraron Todos Eq8
Ansi Sql Db Elaboraron Todos Eq8
Ansi Sql Db Elaboraron Todos Eq8
Ansi Sql Db Elaboraron Todos Eq8
Ansi Sql Db Elaboraron Todos Eq8
Upcoming SlideShare
Loading in …5
×

Ansi Sql Db Elaboraron Todos Eq8

1,316 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,316
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
34
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Ansi Sql Db Elaboraron Todos Eq8

  1. 1. 3493135-20320<br /> UNIVERSIDAD VERACRUZANA<br />Facultad de Administración <br />CATEDRÁTICO: <br />CARLOS ARTURO TORRES GASTELU<br />EQUIPO NUMERO 8<br />INTEGRANTES:<br />CARRION MENDIOLA ALINA LETICIA<br />HERRERA NIETO MAYRA YAZMIN<br />MONTALVO SACRAMENTO AMAYRANI SAMANTAHA<br />RIVERA MENDEZ SANDRA<br />GRUPO:<br />C002<br />SISTEMAS COMPUTACIONALES ADMINISTRATIVOS<br />ANSI-SQL Y SUS VARIACIONES<br />EE: <br />BASE DE DATOS<br />26 DE OCTUBRE DEL 2009<br />INTRODUCCIÓN<br />ANSI SQL ah sufrido diversas modificaciones a lo largo del tiempo, obteniendo aportaciones a sus diferentes versiones, en el siguiente documento se muestran las distintas características que se han agregado, así como las que han desaparecido, ya que se incluyeron nuevas y mejores, para tener los resultados deseados de una manera más fácil.<br />Entre las muchas características con las que cuentan ANSI SQL se pueden clasificar de acuerdo a su modo de utilización el cual tiene divisiones tales como SQL interactivo donde ocurre una ejecución directa, modos SQL-cliente aquí se muestran procedimientos almacenados, entre otros modos que nos pueden ayudar a utilizar el SQL prácticamente.<br />ANSI SQL cuenta con una variada gama de elementos los cuales nos permiten realizar las ordenes SQL, abarcando palabras predefinidas, nombre de los objetos, constantes, delimitadores, operadores, datos nulos, entre otros, pudiendo nosotros como administradores tener una sintaxis donde se entienda de manera clara y concisa lo que necesita obtener de la base de datos.<br />Además de contar con las características mencionadas anteriormente, ANSI SQL soporta una amplia variedad de datos, ya sea de tipo carácter, numérica o cadena de caracteres por mencionar algunos, esto nos permite poder ingresar un mayor numero de datos, de diferente tipo. <br />ANSI SQL tiene un grupo de subconjuntos SQL con los que podemos trabajar de acuerdo a las necesidades que tengamos, se pueden desglosar de la siguiente manera, encontrando DQL (lenguaje de consulta de datos), DML (lenguaje de manipulación de datos), DDL (lenguaje de definición de datos), DCL (lenguaje de control de datos), entre otros.<br />A continuación se detallaran las características mencionadas anteriormente, y también se efectuara una actualización de los datos aquí mencionados, aportando nuevas características y mejoras que se han incluido en ANSI SQL de nuevas versiones.<br />ANSI SQL<br />HISTORIA<br />Los orígenes del SQL están ligados a los de las bases de datos relacionales. En 1970 E. F. Codd propone el modelo relacional y asociado a este un sublenguaje de acceso a los datos basado en el cálculo de predicados. Basándose en estas ideas, los laboratorios de IBM definen el lenguaje SEQUEL (Structured English QUEry Language) que más tarde sería ampliamente implementado por el SGBD (Sistemas Gestores de Bases de Datos) experimental System R, desarrollado en 1977 también por IBM. Sin embargo, fue Oracle quien lo introdujo por primera vez en 1979 en un programa comercial.<br />El SEQUEL terminaría siendo el predecesor de SQL, siendo éste una versión evolucionada del primero. El SQL pasa a ser el lenguaje por excelencia de los diversos SGBD relacionales surgidos en los años siguientes y es por fin estandarizado en 1986 por el ANSI, dando lugar a la primera versión estándar de este lenguaje, el " SQL-86" o " SQL1" . Al año siguiente este estándar es también adoptado por la ISO.<br />En 1986, el ANSI adoptó SQL (sustancialmente adoptó el dialecto SQL de IBM) como estándar para los lenguajes relacionales y en 1987 se transfomó en estándar ISO. Esta versión del estándar va con el nombre de SQL/86. En los años siguientes, éste ha sufrido diversas revisiones que han conducido primero a la versión SQL/89 y, posteriormente, a la actual SQL/92.<br />El hecho de tener un estándar definido por un lenguaje para bases de datos relacionales abre potencialmente el camino a la intercomunicabilidad entre todos los productos que se basan en él. Desde el punto de vista práctico, por desgracia las cosas fueron de otro modo. Efectivamente, en general cada productor adopta e implementa en la propia base de datos sólo el corazón del lenguaje SQL (el así llamado Entry level o al máximo el Intermediate level), extendiéndolo de manera individual según la propia visión que cada cual tenga del mundo de las bases de datos.<br />Actualmente, está en marcha un proceso de revisión del lenguaje por parte de los comités ANSI e ISO, que debería terminar en la definición de lo que en este momento se conoce como SQL3. Las características principales de esta nueva encarnación de SQL deberían ser su transformación en un lenguaje stand-alone (mientras ahora se usa como lenguaje hospedado en otros lenguajes) y la introducción de nuevos tipos de datos más complejos que permitan, por ejemplo, el tratamiento de datos multimediales.<br />CARACTERÍSTICAS GENERALES<br />Las características generales de ANSI SQL no han sido modificadas de manera muy significativa a lo largo de sus versiones ya que, siguen el mismo patrón de funcionamiento, con algunos cambios pero todo sin afectar su estructura, siempre con la intención de mejorar el producto.<br />El SQL es un lenguaje de acceso a bases de datos que explota la flexibilidad y potencia de los sistemas relacionales permitiendo gran variedad de operaciones en éstos últimos.<br />Es un lenguaje declarativo de " alto nivel" o " de no procedimiento" , que gracias a su fuerte base teórica y su orientación al manejo de conjuntos de registros, y no a registros individuales, permite una alta productividad en codificación y la orientación a objetos. De esta forma una sola sentencia puede equivaler a uno o más programas que utilizas en un lenguaje de bajo nivel orientado a registro.<br />OPTIMIZACIÓN<br />Como ya se dijo arriba, y suele ser común en los lenguajes de acceso a bases de datos de alto nivel, el SQL es un lenguaje declarativo. O sea, que especifica qué es lo que se quiere y no cómo conseguirlo, por lo que una sentencia no establece explícitamente un orden de ejecución.<br />El orden de ejecución interno de una sentencia puede afectar gravemente a la eficiencia del SGBD, por lo que se hace necesario que éste lleve a cabo una optimización antes de su ejecución. Muchas veces, el uso de índices acelera una instrucción de consulta, pero ralentiza la actualización de los datos. Dependiendo del uso de la aplicación, se priorizará el acceso indexado o una rápida actualización de la información. La optimización difiere sensiblemente en cada motor de base de datos y depende de muchos factores.<br />Existe una ampliación de SQL conocida como FSQL (Fuzzy SQL, SQL difuso) que permite el acceso a bases de datos difusas, usando la lógica difusa. Este lenguaje ha sido implementado a nivel experimental y está evolucionando rápidamente.<br />A continuación se mostrara una breve historia de las versiones que han venido construyendo ANSI SQL a lo largo de su historia.<br />SQL-89<br />En 1986, el ANSI adopto SQL (sustancialmente adopto el dialecto SQL de IBM) como estándar para los lenguajes relacionales y en 1987 se transformo en el estándar ISO. Esta versión estándar tenía el nombre de SQL-86. En 1989 ANSI definió SQL-89 basada en la anterior pero con una serie de mejoras entre las que destacan:<br />Definición de clave primarias<br />Integridad de datos<br />Una característica importante de esta versión era la posibilidad de utilizarse a través de dos interfaces, de manera interactiva y por medio de programas de aplicación. <br />En la primera versión de SQL-89 se tienen tres partes esenciales:<br />Lenguaje de Definición de Datos DDL<br />Contiene todas las instrucciones para definir el esquema de una base de datos, como son CREATE (para la creación de tablas), ALTER (sirve para modificar los datos o las tablas) y DROP (para eliminar las tablas o registros de una BD).<br />Lenguaje de Manipulación de Datos DML<br />Contiene las instrucciones de manejo de tablas como son: <br />insert (insertar nuevos registros dentro de la BD)<br />select (mostrar los datos requeridos dentro de una BD)<br />update (modifica los datos dentro de una base de datos)<br />delete (borra de manera total o parcial los datos)<br />También contiene instrucciones como commit y rollback para el control de concurrencia de los datos.<br />Lenguaje de Control de Datos DCL<br />Contiene aquellas instrucciones para dar y revocar y permisos de acceso a los datos de la base de datos, como GRANT para otorgar permisos a los administradores y REVOKE para quitar dichos permisos.<br />Todas estas instrucciones pueden ir embebidas en programas escritos en diferentes lenguajes de programación tales como: COBOL, FORTRAN, PASCAL t PL/1.<br />Para completar la sentencia es necesaria una clausula, la cual especifica los datos sobre los que debe actuar la sentencia, o proporcionar mas detalles acerca de lo que la sentencia debe hacer. Todas las clausulas comienzan con palabras clave como: WHERE, FROM, INTO y HAVING.<br />SQL-92<br />SQL además de permitirnos consultas en la base de datos, contiene primitivas de definición de tablas, actualización de la base de datos, definición de vistas de otorgamiento de privilegios, etc. A continuación se muestran algunos aspectos del estándar ANSI-SQL92.<br />Definición de esquemas<br />La definición de un esquema es simple. Solo se necesita identificar el comienzo de la definición con una instrucción CREATE SCHEMA y una clausula adicional de AUTHORIZATION y a continuación definir cada dominio, tabla, vista, etc., en el esquema.<br />El dueño o propietario del esquema puede otorgar privilegios de acceso y actualización de la base de datos definida en el esquema a otros usuarios.<br />Tipo de datos y dominio<br />Un dominio es el conjunto del cual toma sus valores una columna de una relación. Según este concepto, los tipos de datos predefinidos son dominios. Adicionalmente ANSI-SQL92 permite la definición de dominios por parte de los usuarios.<br />NUMEROS EXACTOSIntegerEnterosSmall integerEnteros pequeñosNumeric p, eP: precisión: total de números o digitos en el numeroDecimal p, ePrecisión y escala<br />NUMEROS APROXIMADOSRealDoublé precisión Float<br />CADENA DE CARACTERESCarácterCarácterCharacter varyingCarácter variable<br />CADENA DE BITSBitBit varying<br />FECHAS Y HORASDateFechaTimeHoraTimestampSello de tiempoTimestamp con tiempo zonalTime con tiempo zonal<br />INTERVALOSYear-monthAño-mesDay-timeDía-hora <br />Definición de dominios<br />Los tipos de datos con restricciones (constraints) y valores por defecto (default values) se pueden combinar en la definición de dominios. Una definición de dominio es un tipo de datos especializado que puede estar definido dentro de una esquema y usado en la definición de columnas.<br />Por ejemplo:<br />CREATE DOMAIN IDENTIFICADOR NUMERIC (4) DEFAULT 0 CHECK (VALUES IS NOT NULL)<br />Lo anterior expresa que un dominio llamado IDENTIFICADOR cuenta con las siguientes características:<br />Su tipo de datos es numérico de cuatro dígitos<br />Su valor por defecto es cero<br />Nunca podrá ser nulo<br />Definición de tablas<br />Las tablas se definen en tres sencillos pasos:<br />Dar un nombre a la tabla<br />Definir cada columna, posiblemente incluyendo restricciones de columna <br />Definir las restricciones de la tabla<br />LA EVOLUCION DE ANSI-SQL<br />AÑONOMBREALIASCOMENTARIO1986SQL-86SQL-87Primera publicación hecha por ANSI. Confirmada por ISO en 1987.1989SQL-89Revisión menor.1992SQL-92SQL2Revisión mayor.1999SQL:1999SQL2000Se agregaron expresiones regulares, consultas recursivas (para relaciones jerárquicas), triggers y algunas características orientadas a objetos.2003SQL:2003Introduce algunas características de XML, cambios en las funciones, estandarización del objeto sequence y de las columnas auto numéricas. 2006SQL:2006ISO/IEC 9075-14:2006 Define las maneras en las cuales el SQL se puede utilizar conjuntamente con XML. Define maneras importar y guardar datos XML en una base de datos SQL, manipulándolos dentro de la base de datos y publicando el XML y los datos SQL convencionales en forma XML. Además, proporciona facilidades que permiten a las aplicaciones integrar dentro de su código SQL el uso de XQuery, lenguaje de consulta XML publicado por el W3C (World Wide Web Consortium) para acceso concurrente a datos ordinarios SQL y documentos XML.2008SQL:2008Permite el uso de la cláusula ORDER BY fuera de las definiciones de los cursores. Incluye los disparadores del tipo INSTEAD OF. Añade la sentencia TRUNCATE.<br />En la tabla anterior se muestran algunas de las variaciones que se le han hecho al lenguaje de SQL a lo largo de los años y de las versiones que han surgido. Como se puede observar son cambios muy pequeños, aunque significativos, ya que aportan nuevas sentencias, soportan un mayor tipo de datos, y el lenguaje tanto de manipulación DML como de definición de datos DDL han crecido a través del tiempo. <br />Aún cuando se describe a SQL como un lenguaje de consulta, en realidad es mucho más que eso, ya que dispone de otras<br />Funciones además de las de consultar una Base de Datos. Entre éstas se incluyen las relativas a:<br />definición de datos.<br />manipulación de los datos de la Base de Datos.<br />especificar restricciones de acceso y seguridad.<br />Cada función tiene su conjunto propio de instrucciones, que se expresan respectivamente en:<br />Lenguaje de Definición de Datos (LDD)<br />Lenguaje de Manipulación de Datos (LMD)<br />Lenguaje de Control de Datos (LCD)<br />COMANDOS DDL<br />COMANDODESCRIPCIONCREATEUtilizado para crear nuevas tablas, campos e índicesDROPEmpleado para eliminar tablas e índiceALTERUtilizado para modificar las tablas agregando campos.TRUNCATETrunca todo el contenido de una tabla<br />A continuación se muestran los comandos con sus respectivas sintaxis así como algunos ejemplos para dejar más clara la explicación. <br />CREATE<br />CREATE TABLE Nombre-Tabla<br />(Definición de columna [, definición de columna<br />...<br />)<br />Por ejemplo:<br />CREATE TABLE Alumnos ( Nombre CHAR(35), Sexo CHAR(1), Telefono INTEGER, FechaNac DATE, CuotaMes DECIMAL(7,2) )<br />ALTER<br />ALTER TABLE Nombre-Tabla ADD columna tipo de dato<br />Por ejemplo:<br />ALTER TABLE Prueba ADD Descuento SMALLINT<br />DROP<br />DROP TABLE<br />También es posible eliminar en cualquier momento una tabla existente. Se pierde todo.<br />DROP TABLE Nombre-Tabla<br />Por ejemplo:<br />DROP TABLE Pruebas<br />TRUCATE<br />Por ejemplo:<br /> TRUNCATE TABLE ''TABLA_NOMBRE1''<br />COMANDOS DML<br />Comando INSERT<br />Este comando se utiliza para agregar uno o mas registros (filas). Se puede utilizar para efectuar dos tipos de operaciones:<br />Insertar un único registro<br />Insertar en una tabla los registros contenidos en otra.<br />• Comando INSERT para un registro:<br />INSERT INTO destino [(campo1 [, campo2[, ...]])]VALUES (valor1[, valor2[, ...])<br />• Comando INSERT para insertar más de un registro:<br />INSERT INTO destino {[(campo1[, campo2[, ...]])] selección<br />ARGUMENTODESCRIPCIONDestinoEl nombre de la tabla donde se van a añadir registros.Campo NLos nombres de los campos donde se van a añadir los datos, si está a continuación del argumento destino, o los nombres de los campos de donde se obtienen los datos, si está a continuación de un argumento origen.Selección Es una expresión de selección que debe tener el mismo número de columnas y tipos que las columnas a insertar. Los registros que de cómo resultado la expresión SELECT serán agregados en la tabla destino (ver comando SELECT). Esto permite insertar en una tabla varios registros.Valor NLos valores que se van a insertar en los campos específicos del nuevo registro. Cada valor se inserta en el campo que corresponde a la posición del valor en la lista: valor1 se inserta en campo1 del nuevo registro, valor2 dentro de campo2, y así sucesivamente. Debe separar los valores con una coma y escribir los campos de texto entre apóstrofos ( ‘ ) y las fechas indicarlas en formato dd/mm/aa y entre apóstrofos.<br />Ejemplo INSERT<br />INSERT INTO articulos (art,Descripcion,precio,Stock_max,Stock_min) VALUES (5, 'Vino x1L', 1.5,90,20);<br />En este ejemplo se agrega un nuevo registro a la tabla artículos, pero en el campo cantidad no se pone ningún valor (Valor nulo).<br />Comando UPDATE<br />Para cambiar uno o más valores de campos de registros en una tabla, se utiliza el comando UPDATE.<br />Su sintaxis es:<br />UPDATE tabla SET campo1 = valor1 [, campo2 = valor2 [, ...]] WHERE condición;<br />ARGUMENTODESCRIPCIONTablaNombre de la tabla cuyos datos desea modificar.Campo NNombre del campo cuyo valor se actualizará.Valor NExpresión cuyo valor tomara el campoN. La expresión debe ser del tipo del campo.Condición Una expresión que determina qué registros se actualizarán. Sólo se actualizan los registros que satisfacen la expresión.<br />Ejemplo UPDATE<br />1) UPDATE articulos SET precio = precio * 1.2;<br />Esta instrucción incrementa los precios de todos los artículos en un 20 por ciento.<br />2) UPDATE articulos SET precio = precio * 1.2<br />WHERE precio <2;<br />La ejecución de este comando incrementa los precios de los artículos cuyo precio es menor a $2, en un 20 por ciento.<br />Comando DELETE<br />El comando DELETE se utiliza para borrar uno o varios registros de una tabla particular.<br />Su sintaxis es:<br />DELETE FROM tabla [WHERE condicion];<br />ARGUMENTODESCRIPCIONTablaNombre de la tabla cuyos registros se van a eliminarCondiciónExpresión que determina que registros se van a eliminar<br />En caso de omitir la condición WHERE se eliminaran todos los registros.<br />Ejemplo de DELETE<br />DELETE FROM proveedores;<br />La ejecución de este comando producirá que la tabla proveedores quede vacía.<br />DELETE FROM proveedores WHERE prov=200;<br />Este comando elimina el registro correspondiente al proveedor número 200.<br />Comando SELECT<br />El comando más usado en SQL es la instrucción SELECT, que se utiliza para recuperar datos de diferentes tablas de una base de datos.<br />Consta de seis cláusulas: las dos primeras (SELECT y FROM) obligatorias y las cuatro restantes, opcionales.<br />Su sintaxis es:<br />SELECT [ALL|DISTINCT] { * | expr_columna_1 [AS c_alias_1] [, expr_columna_2 [AS c_alias_2][,...]]} <br />FROM nombre_tabla_1 [t_alias_1][, table_name_n [t_alias_n][,...]] <br />[WHERE condicionWhere] <br />[GROUP BY expr_columna_group1 [,expr_columna_group2] [,...]] <br />[HAVING condicionHaving]] [{UNION [ALL] | INTERSECT | EXCEPT} SELECT ...] [ORDER BY nombre_campo_i1 [ASC|DESC] [, nombre_campo_j1 [ASC|DESC]][,...]]];<br />La cláusula SELECT lista los datos a recuperar por la sentencia SELECT. Los elementos o datos a seleccionar, pueden ser columnas de la base de datos o columnas a calcular por SQL cuando efectúa la consulta.<br />Su sintaxis es: <br />SELECT [ALL|DISTINCT] { * | expr_columna_1 [AS c_alias_1] [, expr_columna_2 [AS c_alias_2][,...]]}<br />ARGUMENTODESCRIPCIONALLSi hay registros repetidos en la consulta también son devueltos.DISTINCTSi hay registros repetidos en la consulta, solo devuelve uno de los repetidos. Valor por omision.*La tabla resultante de la consulta tendrá todas las columnas de las tablas involucradas.Expr_columna_NDefine una columna, que será parte del resultado de la consulta, puede ser el nombre de una columna de las tablas participantes en la consulta, o una expresión que la involucre (por Ej.: Precio * 2). También puede ser una función agregada de SQL c_alias_NNombres que se van a utilizar como encabezados de columnas en la tabla resultante, en vez de los nombres de las expresiones de columnas.<br />Clausula FROM<br />La cláusula FROM lista las tablas que contienen los datos a recuperar por la consulta.<br />La sintaxis de esta cláusula es:<br />FROM nombre_tabla_1 [t_alias_1][, nombre_tabla _n [t_alias_n][,...]]<br />Por ejemplo:<br />Devolver un listado de artículos con el número, Descripción y precio de cada artículo.<br />SELECT art, Desc, precio FROM articulos;<br />Cláusula WHERE<br />En cláusula WHERE se define la condicion que deben cumplir las filas o registros de datos, que estaran en el resultado de la consulta.<br />Su sintaxis es:<br />WHERE condicionWhere<br />Por ejemplo:<br />Devolver un listado con todos los campos de los artículos a reponer.<br />SELECT * FROM articulos WHERE stock_min > cant<br />OPERADORES DE COMPARACIÓN<br />< , >, <>, <=, >=, =<br />BETWEEN: Utilizado para especificar un intervalo de valores. Utilizado en tipos String, numéricos y de fechas.<br />LIKE: Utilizado en la comparación de un patrón. El carácter “%” se utiliza como comodín y el “_”, de comodín posicional<br />IN: Utilizado para saber si el valor de un campo se encuentra en una lista de valores<br />IS: Para verificar si un atributo tiene un valor nulo (NULL)<br />En una condicion, se pueden cotejar con operadores de comparación, columnas con otras columnas o con expresiones del tipo de la columna, las expresiones se pueden conectar con otras por medio de operadores lógicos.<br />OPERADORES LÓGICOS<br />AND Concatena dos condiciones con Y<br />OR Vincula dos condiciones con O<br />NOT Niega la expresion que precede<br />XOR Enlaza dos condiciones con O Exclusiva<br />Por ejemplo:<br />SELECT * FROM articulos WHERE desc like ‘A%’ AND desc like ‘%K’<br />Listados de artículos cuya descripción empieza con la letra A y termina con la letra K<br />SELECT * FROM articulos WHERE stock_min < 15 OR stock_max > 40<br />Devuelve los artículos cuyo stock mínimo sea menor a 15 o el máximo sea mayor a 40<br />FUNCIONES AGREGADAS<br />SQL proporciona funciones agregadas que toma el nombre de una columna como argumento. El valor del operador agregado se calcula sobre todos los valores de la columna especificada en la tabla completa.<br />Estas funciones se pueden combinar con la cláusula GROUP BY que se vera mas adelante.<br />Las funciones agregadas son:<br />AVG (Calcula el promedio)<br />COUNT (Cuenta la cantidad de registros)<br />SUM (Suma los valores de una columna)<br />MIN (Calcula el mínimo valor de una columna)<br />MAX (Calcula el máximo valor de una columna)<br />Cláusula ORDER BY<br />Ordena los resultados de la consulta, en base a los datos de una o más columnas. Si se omite, los resultados saldrán ordenados conforme estan alojados fisicamente<br />Su sintaxis es:<br />ORDER BY expresión_orden1 [ASC|DESC] [, expresión_orden2 [ASC|DESC] ][,...];<br />Por ejemplo:<br />SELECT art AS Numero_Art, Pv.prov AS Numero_prov,<br />Nombre, Precio_Venta<br />FROM Proveedores Pd, Provee Pv<br />WHERE Pd.prov = Pv.prov<br />ORDER BY art<br />Esta consulta devuelve un listado con los artículos, que proveedores lo suministran y su respectivo precio de venta. El listado esta ordenado ascendentemente por el número de artículo. También se puede observar la utilización de alias tanto en el nombre de tablas como en el de columnas.<br />Cláusula GROUP BY<br />La cláusula GROUP BY especifica una consulta sumaria. En vez de producir una fila de resultados por cada fila de datos de la base de datos, agrupa todas las filas similares y luego produce una fila sumaria de resultados para cada grupo.<br />Su sintaxis:<br />[GROUP BY expr_columna_group1 [,expr_columna_group2] [,...]]<br />Donde:<br />expr_columna_groupN deben coincidir con las expresión de columna utilizada en la cláusula SELECT.<br />Cláusula Having<br />La cláusula HAVING trabaja muy similarmente a la cláusula WHERE, y se utiliza para considerar sólo aquellos grupos que satisfagan la condición dada en la cláusula HAVING.<br />Su sintaxis es:<br />HAVING condicionHaving<br />Donde condicionHaving es la condición que deben cumplir los grupos. Las expresiones permitidas en la cláusula HAVING deben involucrar funciones agregadas<br />Por ejemplo:<br />Retornar un listado con los números de artículos y el precio promedio de venta de los artículos cuyo precio promedio de venta de los proveedores es menor a $2.<br />SELECT art, AVG(precio_venta)<br />FROM Provee<br />GROUP BY art<br />Having AVG(precio_venta) < 2;<br />Reuniones (JOIN)<br />Se utilizan para vincular dos o más tablas, y proporcionar información como si se tratara de una sola.<br />Para ello, se expresan los nombres de las tablas en la cláusula FROM y su sintaxis es:<br />FROM Tabla1, Tabla2<br />Además, en la cláusula WHERE se escribe la ecuación que indica, a través de que atributos se vinculan<br />WHERE Tabla1.Atributo k = Tabla2.Atributo j<br />Mostrar el nombre del cliente y el de los artículos que ha comprado.<br />SELECT clientes.nombre, articulos.desc<br />FROM clientes, compran, articulos<br />WHERE clientes.cli = compran.cli<br />AND compran.art = articulos.art<br />SELECT C.nombre, A.desc<br />FROM clientes C, compran C1, articulos A<br />WHERE C.cli = C1.cli<br />AND C1.art = A.art<br />SUBQUERY<br />Condiciones<br />Entrega una sola columna<br />Esta debe proporcionar un valor compatible con el usado en la cláusula WHERE ó HAVING<br />En ocasiones, puede entregar una lista de valores, en cuyo caso, los comparadores a usar son: IN, ANY, ALL<br />Se pueden anidar hasta 16 subqueries<br />Ésta facilidad puede sustituir al JOIN en algunos casos<br />Comparadores especiales<br />IN Se usa para comparar con igualdad una serie de valores<br />ANY Se aplica para comparar con CUALESQUIER valor de una lista<br />ALL Se usa para comparar con TODOS los valores de una serie<br />Estas son las principales características con las que cuenta el lenguaje ANSI SQL, su uso y las ventajas que nos ofrece si lo usamos.<br />CONCLUSION<br />Como vimos en este apartado, el lenguaje de consulta estructurado de ANSI nos permite manejar nuestra base de datos de manera rápida y confiable, con la seguridad de recibir los informes tal y como sean requeridos por los usuarios.<br />Con la ayuda de los sublenguajes que contienen las distintas versiones se nos hace mas practico el uso de esta herramienta. El uso de los comandos DML, conforman la base para una preparación adecuada, en la construcción de aplicaciones con BD. Las aplicaciones manejan comandos de insert, delete, update y select, contra la base de datos.<br />Con lo anteriormente mencionado, podemos darnos cuenta que aun pasando los años este lenguaje es y seguirá siendo una ayuda incomparable para el manejo de la base de datos, y también podemos decir que aunque sí, ha tenido diversas variaciones a lo largo de los años, todas han sido para mejorar el rendimiento del mismo.<br />FUENTES DE INFORMACIÓN<br />www.monografías.com<br />www.abcdatos.com<br />www.espanol.yahoo.com<br />www.ibm.com<br />USO DEL SQL PARA EL MANEJO DE BASES DE DATOS<br />Dpto. de Organización y Estructura de la Información (EUI-UPM) Asignatura de Bases de Datos Pedro Pablo Alarcón Cavero<br />

×