2. El 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 normalización 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. Dado que SQL es un estándar, todas las bases de datos comerciales de la actualidad utilizan SQL como puente de comunicación entre la base de datos y el usuario.
3. H I S T O R I A El lenguaje SQL surge en 1974 con la definición, por parte de Donald Chamberlin y de otras personas que trabajaban en los laboratorios de investigación de IBM, de un lenguaje para la especificación de las características 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 revisión del lenguaje (SEQUEL/2), que a partir de ese momento cambió de nombre por motivos legales, convirtiéndose 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 todavía comercializado, también otras compañías 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 años ochenta, numerosas compañías (por ejemplo Oracle y Sybase, sólo por citar algunos) comercializaron productos basados en SQL, que se convierte en el estándar industrial de hecho por lo que respecta a las bases de datos relacionales.
4. En el año 1986, ANSI adoptó SQL (sustancialmente adoptó el dialecto SQL de IBM) como estándar para los lenguajes relacionales y en 1987 se transformó 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. 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.
5. 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.
6. SQL cuenta con dos tipos de instrucciones que son: DDL (Data Definition Language) Lenguaje de definición de datos Este tipo de instrucciones se utilizan con el fin de crear o modelar la base de datos, es decir manejar su estructura, dentro de las cuales se destacan: CREATE: S e utiliza para crear objetos, es decir una tabla, vista, procedimiento, disparador, índice perteneciente a una base de datos. Sintaxis: Create table Create view Create índex Create procedure Create tigger Ejemplo ( creación de una tabla ) create table tbl_nombre_tabla Columna + tipo de dato Create table tbl_clientes( Fld_id varchar2(10)); INSTRUCCIONES
7. DROP: Toda sentencia de creación CREATE tiene su equivalente para eliminar el objeto creado. Sintaxis: drop table drop view drop índex drop procedure drop tigger Ejemplo (Eliminar una tabla) drop table tbl_nombre_tabla; Drop table tbl_clientes; Si la tabla presenta relación con otra tabla se debe hacer lo siguiente: drop table tbl_nombre_tabla cascade constraint; ALTER: Modifica o actualiza un proceso de la base de datos. Sintaxis: alter table alter view (desactivar / activar) alter index (desactivar / activar) alter procedure (desactivar / activar) alter tigger (desactivar / activar) Ejemplo (agregar un campo mas a la tabla clientes) Alter table tbl_clientes add fld_nombre varchar2(20) not null;
8. DML (Data Manipulation Language) Lenguaje de manipulación de datos: Conjunto de sentencias que está orientadas a la consulta, y manejo de datos de los objetos creados. El DML es un subconjunto muy pequeño dentro de SQL, pero es el más importante, ya que su conocimiento y manejo con soltura es imprescindible. Básicamente consta de cuatro sentencias: SELECT, INSERT, DELETE, UPDATE. INSERT: sentencia utilizada para ingresar registros a una tabla. Sintaxis: INSERT INTO nombre_tabla, VALUES (valor1, valor2, . . ., valorN); Ejemplo (ingresar un registro a la tabla clientes) INSERT INTO tbl_clientes( Fld_id, fld_nombre, fld_apellido, fld_telefono) values( ‘ 1234’,’pedro’,’uribe’,’4566657’); Cada valor debe ir encerrado entre comillas sencillas excepto los valores que estén involucrados en operaciones aritméticas.
9. UPDATE: Se utiliza para actualizar registros en una tabla. Sintaxis: UPDATE nombre_tabla SET Columna1 = nuevo_dato1, Columna2 = nuevo_dato2 Where columna = dato condition;(condición de actualización o patrón de consulta). Elemplo (modificar 2 campos de la tabla clientes, en este caso el nombre y el teléfono). Update tbl_clientes set Fld_nombre=’cesar’, Fld_telefono=’455112’ Where fld_id=’1234’;
10. DELETE: Se usa para eliminar registros de una tabla. Sintaxis: delete from nombre_tabla Where columna = dato; Ejemplo ( eliminar un registro de la tabla clientes) Delete from tbl_clientes Where fld_id=’1234’; SELECT: Se utiliza para realizar consultas a una tabla. Sintaxis: SELECT columnas FROM tablas WHERE condición GROUP BY columnas de agrupación HAVING condición agrupada ORDER BY columnas de ordenación; Ejemplo: (consultar el nombre y el apellido del cliente) Select fld_nombre as nombre, fld_apellido as apellido From tbl_clientes Order by fld_nombre;
11. CREATE TABLE TBL_ESTUDIANTES( FLD_IDES VARCHAR2 (10), FLD_NOMBRE VARCHAR2(20) NOT NULL, FLD_APELLIDO VARCHAR2(20) NOT NULL, FLD_SEXO VARCHAR2(10) NOT NULL, FLD_TELEFONO VARCHAR2(12), FLD_DIRECCION VARCHAR2 (20) NOT NULL, FLD_FECHA_NAC DATE, FLD_FECHAINGR DATE, FLD_COD_EST VARCHAR2(3) NOT NULL); tbl_estudiantes es el nombre de la tabla fld_ides, fld_nombre, fld_apellido y los demás son los campos que hacen parte de la tabla not null es una restricción que nos da a entender que el campo no debe quedar vacío. Es obligatorio el ingreso de información. CREACIÓN DE UNA TABLA
12. Las cláusulas son condiciones de modificación utilizadas para definir los datos que desea seleccionar o manipular. FROM Utilizada para especificar la tabla de la cual se van a seleccionar los registros WHERE Utilizada para especificar las condiciones que deben reunir los registros que se van a seleccionar GROUP BY Utilizada para separar los registros seleccionados en grupos específicos HAVING Utilizada para expresar la condición que debe satisfacer cada grupo ORDER BY Utilizada para ordenar los registros seleccionados de acuerdo con un orden específico CLAUSULAS