2. structured query language = lenguaje de consulta estructurado
SQL es el lenguaje de consulta universal para bases de datos.
es un lenguaje de base de datos normalizado, utilizado por los
diferentes motores de bases para realizar determinadas
operaciones sobre los datos o sobre la estructura de los mismos.
Una de sus características es el manejo del álgebra y el cálculo
relacional permitiendo efectuar consultas con el fin de recuperar
información de interés de una base de datos, así como también
hacer cambios sobre ella.
Que es el Lenguaje SQL:
3. Breve repaso por la historia
1970
Teniendo en cuenta los aportes hechos por Codd, donald
Chamberlin y otras personas trabajaron en los laboratorios
de investigación de IBM, con el fin de desarrollar un
lenguaje para la especificación de las características de las
bases de datos que adoptaban el modelo relacional, al
cual llamaron SEQUEL (Lenguaje de consulta
estructurado Inglés)
El cientifico informático 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
1974
4. Breve repaso por la historia
1974 - 1977
Se implementan prototipos como el SEQUEL-XRM llevando
así a una revisión del lenguaje SEQUEL, cambio el nombre
por motivos legales a SQL.
1977
La IBM desarrolla el Sistema gestionador de bases de
datos(SGBD) experimental System R
5. 1979 Fue oracle quien introdujo SQL por primera vez en un Programa
comercial
1986 El ANSI adoptó SQL como estándar para los lenguajes
relacionales, con la primera entrega de este tipo la cual fue
llamada SQL-86 o SQL1
SQL se transformó en estándar ISO, a nivel normativo.
1987
1992 se lanza un nuevo estándar ampliado y revisado del
SQL llamado "SQL-92" o "SQL2".
" este primer estándar no cubre todas las necesidades de los
desarrolladores e incluye funcionalidades de definición de
almacenamiento que se consideraron suprimir " por esto:
Actualmente Sql es el estándar de facto de la inmensa mayoría
de los SGBD comerciales, este estándar ha sido centro de
algunas modificaciones debido al variante mundo de las
conexiones informáticas
6. Características
Explota la flexibilidad y potencia de los sistemas relacionales
permitiendo gran variedad de operaciones a través del calculo y el
algebra relacional.
Es un lenguaje declarativo de "alto nivel" o "de no procedimiento“.
Una sentencia SQL es como una frase (escrita en inglés ) con la
que decimos lo que queremos obtener y de donde obtenerlo.
7. Sublenguajes
Las sentencias SQL se clasifican según su finalidad dando origen a tres
Sublenguajes:
Lenguaje de definición de datos (Data Definition language)DDL.
es el que se encarga de la definición de la base de datos y la
modificación de la estructura de los objetos que estén en ella.
Algunos comandos propios de este sublenguaje son CREATE, ALTER,
DROP y TRUNCATE
CREATE
Utilizado para crear nuevas tablas, campos e
índices y por ende una Base de Datos.
DROP Empleado para eliminar tablas e índices
ALTER
Utilizado para modificar las tablas agregando
campos o cambiando la definición de los
campos.
8. Sublenguajes
La creación de tablas se lleva a cabo con la sentencia
CREATE TABLE.
Ejemplo: creación del siguiente esquema de BD.
CLIENTES (CI, NOMBRE, DIR) SUCURSALES (CODSUC, CIUDAD)
CUENTAS (COD, CI, CODSUC, SALDO)
Se empieza por las tablas más independientes:
CREATE TABLE CLIENTES
(
CI VARCHAR(10) NOT NULL,
NOMBRE VARCHAR(20),
DIR VARCHAR(30),
PRIMARY KEY (CI)
);
CREATE TABLE SUCURSALES (
CODSUC VARCHAR(4) NOT NULL,
CIUDAD VARCHAR(30),
PRIMARY KEY (CODSUC)
);
9. Sublenguajes
El siguiente paso es crear la tabla CUENTAS, con las claves
externas:
CREATE TABLE CUENTAS (
COD VARCHAR(4) NOT NULL,
CICLIENTE VARCHAR(9) NOT NULL,
CODSUC VARCHAR(4) NOT NULL,
SALDO INT DEFAULT 0,
PRIMARY KEY (COD, CI, CODSUC),
FOREIGN KEY (CICLIENTE) REFERENCES CLIENTES (CI),
FOREIGN KEY (CODSUC) REFERENCES SUCURSALES
(CODSUC) );
10. EJEMPLO 1:
Se desea diseñar una base de datos para una tienda que se dedica a
la compra y venta de accesorios informáticos. La tienda dispone de
una serie de productos, de cada producto se desea guardar el
código, descripción, precio y cantidad existente. De cada cliente
se desea guardar el ci, nombre, apellidos, dirección y númeo de
teléfono.
Un cliente puede comprar varios productos en la tienda y un mismo
producto puede ser comprado por varios clientes. Cada vez que se
compre un artículo quedara registrada la compra en la base de datos
junto con la fecha en la cual se realizó la compra.
La tienda tiene contactos con varios proveedores nacionales que son
los que suministran los productos. Un mismo producto puede ser
suministrado por varios proveedores. De cada proveedor se desea
guardar el ci, nombre, apellidos, dirección, ciudad y número de
teléfono.
11.
12.
13.
14.
15. EJEMPLO 2:
Se desea informatizar la gestión de una empresa de transporte que
reparte paquetes por toda Bolivia. Los encargados de llevar los
paquetes son los camioneros, de los que se quiere guardar su
cedula de identidad, nombre, teléfono, dirección, salario y la
población del lugar donde vive. De los paquetes transportados
interesa conocer el código de paquete, descripción, destinatario y
dirección del destinatario. Un camionero distribuye muchos
paquetes y un paquete solo puede ser distribuido por un camionero.
De las provincias a las que llega los paquetes interesa guardar el
código de provincia y el nombre. Un paquete solo puede llegar a
una provincia. Sin embargo, a una provincia pueden llegar varios
paquetes.
De los camiones que llevan los camioneros interesa conocer la
matricula, modelo, tipo y potencia. Un camionero pude conducir
diferentes camiones en fechas diferentes, y un camión puede ser
conducido por varios camioneros.
16. Lenguaje de definición de datos (DDL)
Las sentencias DDL se utilizan para crear y modificar la estructura de
las tablas así como otros objetos de la base de datos.
CREATE - para crear objetos en la base de datos.
ALTER - modifica la estructura de la base de datos.
DROP - borra objetos de la base de datos.
ADD -
TRUNCATE - elimina todos los registros de la tabla, incluyendo todos
los espacios asignados a los registros.
17. Pongámonos en situación, puede darse el caso de que
tengamos que realizar algunas modificaciones en nuestra
estructura de datos, en las tablas que tenemos creadas y que
incluso contiene información. Pues esto es posible sin perder
ningún valor utilizando un comando de SQL, ALTER TABLE.
Con el comando ALTER TABLE podemos realizar
modificaciones en nuestras tabla, tales como: añadir nuevas
columnas, renombrar la estructura o cambiarle el tipo de
dato. Algunas de las modificaciones es posible que no se
permitan llevar a cabo porque dependan de otro objeto y en
otras ocasiones, dependiendo de la cantidad de información que
tengamos almacenada en dicha tabla, quizá realizar esa
modificación sea demasiado lento.
DDL
18. DDL : Cambiar el nombre de una tabla (RENAME)
Podemos cambiar el nombre de la propia tabla, de una o varias
columnas y de las constraint.
Modificar el nombre de una tabla:
ALTER TABLE nombre_actual RENAME TO nuevo_nombre
19. Para modificar varias columnas, hay que realizarlo cada columna
por separado. Se puede omitir la palabra reservada COLUMN. A
continuación se muestra la sentencia y un ejemplo donde se
renombra dos de sus tres columnas.
DDL : Cambiar el nombre de una tabla (RENAME)
Podemos cambiar el nombre de la propia tabla, de una o varias
columnas y de las constraint.
Modificar el nombre de una tabla:
ALTER TABLE nombre_actual RENAME TO nuevo_nombre
ALTER TABLE nombre_tabla RENAME COLUMN
actual_nombre_columna TO nuevo_nombre_columna;
20. Agregar una columna
DDL : Cambiar el nombre de una tabla (RENAME)
Podemos cambiar el nombre de la propia tabla, de una o varias
columnas y de las constraint.
Borrar una columna
ALTER TABLE empleados DROP COLUMN nombre_columna
ALTER TABLE empleados ADD COLUMN nombre_columna
BOOLEAN DEFAULT true
21. EJERCICIO 3: se pide que se diseñe la base de datos para la
automatización del control de los pedidos de productos para la
distribuidora de electrodomésticos “TARIJA S.R.L.”.
Se cuenta con el siguiente documento para solicitar los productos.
22. Lenguaje de Manipulación de Datos (Data Manipulation Language)
DML.
A través de él podemos seleccionar, insertar, eliminar y
actualizar datos. Es la parte que más frecuentemente
utilizaremos, y que con ella se construyen las consultas.
Algunos comandos propios de este sublenguaje son:
SELECT
Utilizado para consultar registros de la base de datos que
satisfagan un criterio 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
DELETE
Utilizado para eliminar registros de una tabla de una base de
datos
23. Lenguaje de Manipulación de Datos (Data Manipulation Language)
DML.
24. Lenguaje de control de datos (Data Control Language) DCL.
encargado de la seguridad de la base de datos, en todo lo referente al
control de accesos y privilegios entre los usuarios.
Como ejemplo estan : GRANT, REVOKE.
25. 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 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
26. Los operadores lógicos permiten comparar expresiones lógicas
devolviendo siempre un valor verdadero o falso. Los operadores lógicos
se evalúan de izquierda a derecha.
Operador Uso
AND
Es el "y" lógico. Evalúa dos
condiciones y devuelve un valor de
verdad sólo si ambas son ciertas.
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.
+
(Concatenación)
Se usa para unir datos de tipo
alfanumérico
Operadores lógicos
27. Operador Uso
< Menor que
> Mayor que
<> != Distinto de
<= Menor o igual que
>= Mayor o igual que
= Igual que
Operadores Relacionales
28. Numérico Alfanuméricos Fecha Lógico BLOB Otros
Integer Char Date Bit Image Moneda
Numeric varchar Date Time Text hipervínculo
Decimal adjunto
Float
Tipos de datos que soporta SQL