Curso de SQL

Embed Size (px)

DESCRIPTION

Curso de SQL para la programcion

Text of Curso de SQL

Curso de SQL

Autor: Ing. Jos Lus Morales

Enero del 2006

ndiceIntroduccin o Breve Historia o Componentes del SQL Comandos Clusulas Operadores lgicos Operadores de Comparacin Funciones de Agregado Consultas de Seleccin o Consultas Bsicas o Devolver Literales o Ordenar los Registros o Uso de Indices de las tablas o Consultas con Predicado o Alias o Recuperar Informacin de una base de Datos Externa Criterios de Seleccin o Operadores Lgicos o Intervalos de Valores o El Operador Like o El Operador In o La clusula WHERE Agrupamiento de Registros y Funciones Agregadas o La clusula GROUP BY o AVG (Media Aritmtica) o Count (Contar Registros) o Max y Min (Valores Mximos y Mnimos) o StDev y StDevP (Desviacin Estndar) o Sum (Sumar Valores) o Var y VarP (Varianza) o COMPUTE de SQL-SERVER Consultas de Accin o DELETE o INSERT INTO Insertar un nico Registro Para seleccionar registros e insertarlos en una tabla nueva Insertar Registros de otra Tabla o UPDATE Tipos de datos Subconsultas Consultas de Unin Internas o Consultas de Combinacin entre tablas o Consultas de Autocombinacin o Consultas de Combinaciones no Comunes o CROSS JOIN (SQL-SERVER) o SELF JOIN Consultas de Unin Externas Estructuras de las Tablas o Creacin de Tablas Nuevas o La clusula CONSTRAINT o Creacin de Indices o Modificar el Diseo de una Tabla Cursores Consultas de Referencias Cruzadas (Access) Full Text (SQL Server) o Consultas e ndices de texto o Componentes de las consultas de texto de Transact-SQL o Funciones de conjunto de filas CONTAINSTABLE y FREETEXTTABLE CONTAINSTABLE (T-SQL) FREETEXTTABLE o Utilizar el predicado CONTAINS

Utilizar el predicado FREETEXT Funciones de conjunto de filas CONTAINSTABLE y FREETEXTTABLE Los predicados de texto de las funciones Comparacin entre CONTAINSTABLE y CONTAINS Comparacin entre FREETEXTTABLE y FREETEXT o Identificacin del nombre de la columna de la clave nica Limitar los conjuntos de resultados o Buscar palabras o frases con valores ponderados (trmino ponderado) o Combinar predicados de texto con otros predicados de TRANSACT-SQL o Utilizar predicados de texto para consultar columnas de tipo IMAGE Acceso a Bases de Datos Externas (Access) Parmetros (Access)

o o

IntroduccinEl lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos normalizado, utilizado por los diferentes motores de bases de datos para realizar determinadas operaciones sobre los datos o sobre la estructura de los mismos. Pero como sucede con cualquier sistema de normalizacin hay excepciones para casi todo; de hecho, cada motor de bases de datos tiene sus peculiaridades y lo hace diferente de otro motor, por lo tanto, el lenguaje SQL normalizado (ANSI) no nos servir para resolver todos los problemas, aunque si se puede asegurar que cualquier sentencia escrita en ANSI ser interpretable por cualquier motor de datos.

Breve HistoriaLa historia de SQL (que se pronuncia deletreando en ingls las letras que lo componen, es decir "ese-cuele" y no "siquel" como se oye a menudo) empieza en 1974 con la definicin, por parte de Donald Chamberlin y de otras personas que trabajaban en los laboratorios de investigacin de IBM, de un lenguaje para la especificacin de las caractersticas de las bases de datos que adoptaban el modelo relacional. Este lenguaje se llamaba SEQUEL (Structured English Query Language) y se implement en un prototipo llamado SEQUEL-XRM entre 1974 y 1975. Las experimentaciones con ese prototipo condujeron, entre 1976 y 1977, a una revisin del lenguaje (SEQUEL/2), que a partir de ese momento cambi de nombre por motivos legales, convirtindose en SQL. El prototipo (System R), basado en este lenguaje, se adopt y utiliz internamente en IBM y lo adoptaron algunos de sus clientes elegidos. Gracias al xito de este sistema, que no estaba todava comercializado, tambin otras compaas empezaron a desarrollar sus productos relacionales basados en SQL. A partir de 1981, IBM comenz a entregar sus productos relacionales y en 1983 empez a vender DB2. En el curso de los aos ochenta, numerosas compaas (por ejemplo Oracle y Sybase, slo por citar algunos) comercializaron productos basados en SQL, que se convierte en el estndar industrial de hecho por lo que respecta a las bases de datos relacionales. En 1986, el ANSI adopt SQL (sustancialmente adopt el dialecto SQL de IBM) como estndar para los lenguajes relacionales y en 1987 se transfom en estndar ISO. Esta versin del estndar va con el nombre de SQL/86. En los aos siguientes, ste ha sufrido diversas revisiones que han conducido primero a la versin SQL/89 y, posteriormente, a la actual SQL/92. El hecho de tener un estndar 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 prctico, por desgracia las cosas fueron de otro modo. Efectivamente, en general cada productor adopta e implementa en la propia base de datos slo el corazn del lenguaje SQL (el as llamado Entry level o al mximo el Intermediate level), extendindolo de manera individual segn la propia visin que cada cual tenga del mundo de las bases de datos. Actualmente, est en marcha un proceso de revisin del lenguaje por parte de los comits ANSI e ISO, que debera terminar en la definicin de lo que en este momento se conoce como SQL3. Las caractersticas principales de esta nueva encarnacin de SQL deberan ser su transformacin en un lenguaje stand-alone (mientras ahora se usa como lenguaje hospedado en otros lenguajes) y la introduccin de nuevos tipos de datos ms complejos que permitan, por ejemplo, el tratamiento de datos multimediales.

Componentes del SQLEl lenguaje SQL est compuesto por comandos, clusulas, operadores y funciones de agregado. Estos elementos se combinan en las instrucciones para crear, actualizar y manipular las bases de datos.

ComandosExisten dos tipos de comandos SQL:

Los DLL que permiten crear y definir nuevas bases de datos, campos e ndices. Los DML que permiten generar consultas para ordenar, filtrar y extraer datos de la base de datos.

Comandos DLL:

Comando CREATE DROP ALTER

Descripcin Utilizado para crear nuevas tablas, campos e ndices Empleado para eliminar tablas e ndices Utilizado para modificar las tablas agregando campos o cambiando la definicin de los campos.

Comandos DML:

Comando SELECT INSERT UPDATE DELETEClusulas

Descripcin Utilizado para consultar registros de la base de datos que satisfagan un criterio determinado Utilizado para cargar lotes de datos en la base de datos en una nica operacin. Utilizado para modificar los valores de los campos y registros especificados Utilizado para eliminar registros de una tabla de una base de datos

Las clusulas son condiciones de modificacin utilizadas para definir los datos que desea seleccionar o manipular.

Clusula FROM WHERE GROUP BY HAVING ORDER BY

Descripcin Utilizada para especificar la tabla de la cual se van a seleccionar los registros Utilizada para especificar las condiciones que deben reunir los registros que se van a seleccionar Utilizada para separar los registros seleccionados en grupos especficos Utilizada para expresar la condicin que debe satisfacer cada grupo Utilizada para ordenar los registros seleccionados de acuerdo con un orden especfico

Operadores lgicos

Operador AND OR NOT

Uso Es el "y" lgico. Evalua dos condiciones y devuelve un valor de verdad slo si ambas son ciertas. Es el "o" lgico. Evala dos condiciones y devuelve un valor de verdar si alguna de las dos es cierta. Negacin lgica. Devuelve el valor contrario de la expresin.

Operadores de Comparacin

Operador < > = Menor que Mayor que Distinto de Menor Igual que Mayor Igual que

Uso

= LIKE In

Igual que Utilizado en la comparacin de un modelo Utilizado para especificar registros de una base de datos

BETWEEN Utilizado para especificar un intervalo de valores.

Funciones de AgregadoLas funciones de agregado se usan dentro de una clusula SELECT en grupos de registros para devolver un nico valor que se aplica a un grupo de registros.

Funcin AVG SUM MAX MIN

Descripcin Utilizada para calcular el promedio de los valores de un campo determinado Utilizada para devolver la suma de todos los valores de un campo determinado Utilizada para devolver el valor ms alto de un campo especificado Utilizada para devolver el valor ms bajo de un campo especificado

COUNT Utilizada para devolver el nmero de registros de la seleccin

Consultas de SeleccinLas consultas de seleccin se utilizan para indicar al motor de datos que devuelva informacin de las bases de datos, esta informacin es devuelta en forma de conjunto de registros que se pueden almacenar en un objeto recordset. Este conjunto de registros es modificable.

Consultas BsicasLa sintaxis bsica de una consulta de seleccin es la siguiente:SELECT Campos FROM Tabla;

En donde campos es la lista de campos que se deseen recuperar y tabla es el origen de los mismos, por ejemplo:SELECT Nombre, Telefono FROM Clientes;

Esta consulta devuelve un recordset con el campo nombre y telfono de la tabla clientes.

Devolver LiteralesEn determinadas ocasiones nos puede interesar incluir una columna con un texto fijo en una consulta de seleccin, por ejemplo, supongamos que tenemos una tabla de empleados y deseamos recuperar las tarifas semanales de los electricistas, podramos realizar la siguiente consulta:SELECT Empleados.Nombre, 'Tarifa semanal: ', Empleados.TarifaHora * 40 FROM Empleados WHERE Empleados.Cargo = 'Electricista'

Ordenar los Registros

Adicionalmente se puede especificar el orden en que se desean recuperar los registros de las tablas mediante la clasula ORDER BY Lista de Campos. En donde Lista de campos representa los campos a ordenar. Ejem