Cerrar

Enviar mensaje

twitter FaceBook You Tube Git Hub Docs.com Enviar email

Manual de SQL (Oracle SQL)

[1]
Introducción al lenguaje SQL

Publicidad

[1.1] notas previas

[1.1.1]versión de SQL

La pretensión de estos apuntes es la de ser guía para el aprendizaje del lenguaje SQL. Aunque SQL posee un estándar aprobado por la agencia ISO, la realidad es que cada producto comercial de base de datos utiliza su propia variante.

En este sentido todo el SQL del libro se ha probado en la versión 11g R2 del sistema Oracle Database. Aunque en algunos apartados se hacen ciertos comentarios sobre las diferencias sobre el SQL estándar aprobado por la agencia ISO, el manual se basa en el aprendizaje del SQL de la empresa Oracle.

La realidad es que Oracle ha sido puntero en incorporar nuevas funcionalidades al lenguaje SQL y por ello, aprendiendo el SQL de Oracle es fácil aprender cualquier otro dialecto de SQL y también el estándar y esa es para mí la razón fundamental para elegir Oracle como sistema de aprendizaje de SQL.

A fin de probar el SQL hay que tener en cuenta que existe una versión de Oracle que es gratuita para un uso sin ánimo de lucro llamada Oracle 11g Express Edition1.

La razón de utilizar Oracle como base de trabajo se debe a su respeto por SQL estándar, aunque, desde luego, lejos del estricto respeto del estándar de otros sistemas (por ejemplo el que hace el sistema PostgreSQL) y porque Oracle sigue siendo el Sistema Gestor de Bases de Datos (SGBD) más importante e influyente.

[1.1.2]formato de las instrucciones en los apuntes

En este manual en muchos apartados se indican sintaxis para saber la forma y posibilidades de las instrucciones SQL. En el presente manual, dicha sintaxis, se escribe en párrafos sombreados con el reborde de color marrón.

Ejemplo:

SELECT * | {[DISTINCT  columna | expresión [alias], ...}
FROM tabla;

Otras veces se describen códigos de ejemplo de un comando. Los ejemplos se escriben también con fondo naranja claro, pero sin el reborde. Ejemplo:

SELECT nombre FROM cliente;

Los ejemplos sirven para escenificar una instrucción concreta, la sintaxis se utiliza para indicar las forma de utilizar un comando.

Para indicar la sintaxis de un comando se usan símbolos especiales. Los símbolos que utiliza este libro (de acuerdo con la sintaxis que se utiliza normalmente en cualquier documentación de este tipo) son:

SQL es el lenguaje fundamental de los SGBD relacionales. Se trata de uno de los lenguajes más utilizados de la historia de la informática y sigue siendo de aprendizaje casi obligatorio para cualquier profesional relacionado con la computación.

SQL es un lenguaje declarativo, lo que implica que se centra en definir qué se desea hacer, por encima de cómo hacerlo (que es la forma de trabajar de los lenguajes de programación de aplicaciones como C o Java). La razón de este matiz, es que los lenguajes declarativos se parecen más al lenguaje natural humano y parecen más apropiados para trabajar con bases de datos (especialmente con las relacionales).

Se trata de un lenguaje que intenta agrupar todas las funciones que se le pueden pedir a una base de datos, por lo que es el lenguaje utilizado tanto por administradores como por programadores o incluso usuarios avanzados.

Pretende cumplir la quinta regla de Codd, que dicta que el lenguaje de la base de datos debe de ser capaz de realizar cualquier instrucción sobre la misma. En sistemas gestores como Oracle esta regla se cumple completamente: toda la gestión y administración del sistema de bases de datos se puede realizar utilizando solo lenguaje SQL.

[1.2.2]historia del lenguaje SQL

El nacimiento del lenguaje SQL data de 1970 cuando E. F. Codd publica su libro: “Un modelo de datos relacional para grandes bancos de datos compartidos”. Ese libro dictaría las direcrices de las bases de datos relacionales. Apenas dos años después IBM (para quien trabajaba Codd) utiliza las directrices de Codd para crear el Standard English Query Language (Lenguaje Estándar Inglés para Consultas) al que se le llamó SEQUEL. Más adelante se le asignaron las siglas SQL (Standard Query Language, lenguaje estándar de consulta) aunque en inglés se siguen pronunciando secuel. En español se pronuncia esecuele.

En 1979 Oracle presenta la primera implementación comercial del lenguaje. Poco después se convertía en un estándar en el mundo de las bases de datos avalado por los organismos ISO y ANSI. En el año 1986 se toma como lenguaje estándar por ANSI de los SGBD relacionales. Un año después lo adopta ISO, lo que convierte a SQL en estándar mundial como lenguaje de bases de datos relacionales.

En 1989 aparece el estándar ISO (y ANSI) llamado SQL89 o SQL1. En 1992 aparece la nueva versión estándar de SQL (a día de hoy sigue siendo la más conocida) llamada SQL92. En 1999 se aprueba un nuevo SQL estándar que incorpora mejoras que incluyen triggers, procedimientos, funciones,… y otras características de las bases de datos objeto-relacionales; dicho estándar se conoce como SQL99 o SQL2000.

Tras ese estándar, se publicaron nuevos estándares en los años 2003, 2006, 2008 y 2011. Por lo tanto, el último estándar es el del año 2011 (SQL2011). Pero la mayoría de las mejoras añadidas en los últimos estándares se refieren al uso de otros lenguajes (especialmente los referentes a XML) con el propio SQL o a la incorporación de elementos orientados a objetos.

[1.2.3]funcionamiento

1componentes de un entorno de ejecución SQL

Según la normativa ANSI/ISO cuando se ejecuta SQL, existen los siguientes elementos a tener en cuenta en todo el entorno involucrado en la ejecución de instrucciones SQL:

En el caso de Oracle al cliente SQL se le suele llamar proceso de usuario y al servidor SQL, proceso servidor.

2modos de ejecución SQL. tipos de agentes SQL

1ejecución directa. SQL interactivo

Las instrucciones SQL se introducen directamente en el software del cliente. Las instrucciones se traducen sin intermediarios, pasan tal cual al servidor SQL.

Normalmente es un modo de trabajo incómodo, pero permite tener acceso a todas las capacidades del lenguaje SQL de la base de datos a la que estamos conectados. Es la forma habitual en la que trabajan los administradores y muchos desarrolladores y operadores.

2ejecución incrustada o embebida

Las instrucciones SQL se colocan como parte del código de otro lenguaje que se considera anfitrión (C, Java, Pascal, Visual Basic,...). El código anfitrión se debe de compilar o interpretar mediante software adecuado, el cual detectará el código SQL y podrá lanzarle hacia el servidor SQL a través de una interfaz especial, como JDBC u ODBC por ejemplo.

3ejecución a través de clientes gráficos

Se trata de software que permite conectar a la base de datos a través de un software que permite abstraerse del lenguaje SQL. El software permite manejar de forma gráfica la base de datos y las acciones realizadas son traducidas a SQL y enviadas al servidor. Los resultados recibidos vuelven a ser traducidos de forma gráfica para un manejo más cómodo

4ejecución dinámica

Se trata de SQL almacenado en procedimientos y funciones que se almacenan junto con la base de datos. Cuando se invoca a estos procedimientos y funciones, el código que contienen se ejecuta en el servidor.

[1.2.4]proceso de las instrucciones SQL

Normalmente, el proceso de una instrucción SQL consta de estos pasos:

[1]Se analiza la instrucción. Para comprobar la sintaxis de la misma

[2]Si es correcta se valora si los metadatos de la misma son correctos. Se comprueba esto en el diccionario de datos.

[3]Si es correcta, se optimiza, a fin de consumir los mínimos recursos posibles.

[4]Se ejecuta la sentencia y se muestra el resultado al emisor de la misma.

[1.3] elementos del lenguaje SQL

[1.3.1]código SQL

El código SQL consta de los siguientes elementos: