Ana Isabel Morales Contreras 4 CI CECyTEJ 14 Zapotiltic
SQL Introducción El lenguaje de consulta estructurado (SQL ( SQL)) es un lenguaje de base de datos normalizado, utilizado por el motor de base de datos de Microsoft Jet. SQL se utiliza para crear objetos QueryDef, como el argumento de origen del método OpenRecordSet OpenRecordSet y como la propiedad RecordSource del control de datos. También se puede utilizar con el método Execute para crear y manipular manipular directamente las bases de datos Jet y crear consultas SQL de paso a través para manipular bases de datos remotas cliente – servidor El Lenguaje de consulta estructurado (SQL [/eseku ˈele/ en español, / ɛskjuːˈɛl /, en inglés, pero no / ˈsiːkwəl/ ya que esto deriva de sus primeras versiones donde se nombraba Structured ENGLISH Query Language, que no es vigente hoy en día] Structured Query Language) es un lenguaje declarativo de acceso a bases de datos relacionales relacionales que permite especificar diversos tipos de operaciones operaciones en éstas. Una de sus características es el manejo del álgebra y el cálculo relacional permitiendo efectuar consultas con el fin de recuperar -de una forma sencilla- información de interés de una base de datos, así como también hacer cambios sobre ella. Es un lenguaje de cuarta generación
Componentes del SQL El lenguaje SQL está compuesto por comandos, cláusulas, operadores y funciones de agregado. Estos elementos se combinan en las instrucciones para crear, actualizar y manipular las bases de datos.
Comandos Existen dos tipos de comandos SQL: 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
Descripción
CREATE CREATE Utilizad Utilizado o para crear crear nueva nuevas s tablas, tablas, campos campos e índices índices DROP ROP
Empl Emplea eado do para para elim elimin inar ar tabl tablas as e índ índic ices es
ALTER
Utilizado para modificar las tablas agregando campos o cambiando la definición de los campos
Comandos DML
Ana Isabel Morales Contreras 4 CI CECyTEJ 14 Zapotiltic Descripción
Comando
SELECT
Utilizado para consultar registros consultar registros de la base de datos que satisfagan un criterio determinado determinado
INSERT
Utilizado para cargar lotes de datos en la base de datos en una única operación.
UPDATE
Utilizado para modificar los valores de los campos y registros especificados especificados
DELETE
Utilizado para eliminar registros de una tabla de una base de datos
Orígenes y evolución 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 éste un sublenguaje de acceso a los datos basado en el cálculo de predicados. predicados. Basándose en estas ideas, los laboratorios laboratorios de IBM definen el lenguaje SEQUEL (Structured English QUEry Language) 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. 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 relacionales surgidos en los años siguientes y es por fin estandarizado estandarizado en 1986 por el ANSI, ANSI, dando lugar a la primera versión estándar de estándar de este lenguaje, lenguaje, el "SQL-86" o "SQL1". Al año siguiente este estándar es también adoptado por la ISO. ISO. Sin embargo, este primer estándar no cubre todas las necesidades de los desarrolladores e incluye funcionalidades de definición de almacenamiento que se consideraron consideraron suprimir. Así que en 1992 se lanza un nuevo estándar ampliado y revisado del SQL llamado "SQL-92" o "SQL2". En la actualidad el SQL es el estándar de facto de la inmensa mayoría de los SGBD comerciales. comerciales. Y, aunque la diversidad de añadidos particulares particulares que incluyen las distintas implementaciones implementaciones comerciales del lenguaje es amplia, el soporte al estándar SQL-92 es general y muy amplio. El ANSI SQL sufrió varias revisiones y agregados a lo largo del tiempo: Año
Nombre
1986
SQL-86
1989
SQL-89
1992
SQL-92
Alias SQL-87
SQL2
Ana Isabel Morales Contreras 4 CI CECyTEJ 14 Zapotiltic 1999
SQL:1999
2003
SQL:2003
2006
SQL:2006
2008
SQL:2008
SQL2000
El SQL es un lenguaje de acceso a bases de datos que explota la flexibilidad flexibilidad y potencia de los sistemas relacionales permitiendo gran variedad de operaciones en éstos últimos. 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, registros, y no a registros individuales, individuales, permite una alta productividad productividad en codificación 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. Cláusulas Las cláusulas son condiciones de modificación utilizadas para definir los datos que desea seleccionar o manipular.
Cláusula
Descripción
FROM
Utilizada para especificar la tabla de la cual se van a seleccionar seleccionar los registros
WHERE
Utilizada para especificar las condiciones que deben reunir los registros que se van a seleccionar
GROUP BY BY Utilizada para separar separar los los registros registros seleccionados seleccionados en grupos específicos HAVIN HAVING G
Utili Utilizad zada a para para expres expresar ar la condi condició ción n que que debe debe satisf satisface acerr cada cada grupo grupo
ORDER BY
Utilizada para ordenar los registros seleccionados de acuerdo con un orden específico
Operadores Lógicos
Operador
AND
Uso Es el "y" lógico. Evalua dos condiciones y devuelve un valor de valor de verdad sólo si ambas son ciertas.
Ana Isabel Morales Contreras 4 CI CECyTEJ 14 Zapotiltic
OR
Es el "o" lógico. Evalúa dos condiciones y devuelve un valor de verdad si alguna de las dos es cierta.
NOT
Negación lógica. Devuelve el valor contrario de la expresión.
Operadores de Comparación
Operador
Uso
<
Menor que
>
Mayor que
<>
Distinto de
<=
Menor ó Igual que
>=
Mayor ó Igual que
=
Igual que
BETWEEN BETWEEN Utilizad Utilizado o para especific especificar ar un intervalo intervalo de valores. valores. LIKE
Utilizado en la comparación de un modelo
In
Utilizado para especificar registros de una base de datos
Funciones de Agregado Las funciones de agregado se usan dentro de una cláusula SELECT en grupos de registros para devolver un único valor que se aplica a un grupo de registros.
Función AVG
Descripción Utiliz Utilizada ada para para cal calcul cular ar el el prom promedi edio o de los valore valores s de de un un campo campo deter determin minad ado o
COUNT COUNT Utilizad Utilizada a para devolv devolver er el número número de registro registros s de la selección
SUM
Utilizada para devolver la suma de todos los valores de un campo determinado
Ana Isabel Morales Contreras 4 CI CECyTEJ 14 Zapotiltic MAX MAX
Util Utiliz izad ada a para para dev devol olve verr el val valor or más más alt alto o de un un camp campo o espe especi cifi fica cado do
MIN MIN
Util Utiliz izad ada a par para a dev devol olve verr el el val valor or más más baj bajo o de de un un cam campo po espe especi cifi fica cado do
Tipos de Datos Los tipos de datos SQL se clasifican en 13 tipos de datos primarios y de varios sinónimos válidos reconocidos reconocidos por dichos tipos de datos. Tipos de datos primarios:
Tipo Tipo de Dato Datos s
Long Longit itud ud Desc Descri ripc pció ión n
BINARY
1 byte
Para consultas sobre tabla adjunta de productos de bases de datos que definen un tipo de datos Binario.
BIT
1 byte
Valores Si/No ó True/False
BYTE
1 byte
Un valor entero entre 0 y 255.
COUN COUNTE TER R
4 byte bytes s
Un núme número ro incr increm emen enta tado do auto automá máti tica came ment nte e (de (de tipo tipo Long Long))
CURRENCY
8 bytes
Un entero escalable entre 922.337.203.685.477,5808 922.337.203.685.477,5808 y 922.337.203.685.477,5807.
DATETI TETIM ME
8 by bytes tes
Un va valor lor de de fe fecha cha u hora entre tre los los años 100 y 999 9999.
4 bytes
Un valor en punto flotante de precisión simple con un rango de -3.402823*1038 a -1.401298*10-45 -1.401298*10-45 para valores negativos, 1.401298*10-45 a 3.402823*1038 para valores positivos, y 0.
DOUBLE
8 bytes
Un valor en punto flotante de doble precisión con un rango de -1.79769313486232*10308 a -4.94065645841247*10324 para valores negativos, 4.94065645841247*10-324 4.94065645841247*10-324 a 1.79769313486232*10 1.79769313486232*10308 308 para valores positivos, y 0.
SHORT
2 bytes
Un entero corto entre -32,768 y 32,767.
LONG
4 bytes
Un entero largo entre -2,147,483,648 y 2,147,483,647.
LONGTEXT
1 byte por De cero a un máximo de 1.2 gigabytes. carácter
SINGLE
Ana Isabel Morales Contreras 4 CI CECyTEJ 14 Zapotiltic Según LONGBINARY se De cero 1 gigabyte. gigabyte. Utilizado para objetos OLE. necesite De cero a 255 caracteres.
Aunque ya vimos una introducción a los ficheros de comandos en anteriormente, vamos ahora a profundizar un poco en las posibilidades que nos ofrece SQL*Plus. En un fichero de comandos se pueden incluir: •
líneas de comentarios,
•
líneas de ejecución,
•
líneas de comandos SQL, y
•
líneas de comandos SQL*Plus.
Líneas de Comentarios
Se pueden introducir comentarios en una archivo de comandos de tres maneras: •
•
Utilizando del comando REM del SQL*Plus. Utilizando los delimitadores de comentario de SQL /* y */.
Utilizando los símbolos de comentario PL/SQL " __". 1 byte por Líneas de Ejecución carácter •
TEXT
Constan de una única barra inclinada, " /", y se introducen a continuación de cada sentencia SQL indicando su ejecución.
Sustituyen al punto y coma, " ;" al final de las sentencias SQL. Líneas de Comandos SQL
Se puede introducir cualquiera de los comandos SQL enumerados en este curso, y se ejecutarán de manera secuencial. Se permite el anidamiento de los ficheros de comandos. Líneas de Comandos SQL*Plus
SQL*Plus aporta una serie de posibilidades al lenguaje SQL que le acerca un poco mas a lo que entendemos como un lenguaje de programación. Se pueden definir constantes y variables, capturar datos del teclado, introducir parámetros en la llamada de un archivo de comandos, y alguna cosa más