2. INTRODUCCIÓN A SQL
IBM desarrolló la versión original de SQL, originalmente denominada
Sequel, como parte del Proyecto System R a principios de 1970. El lenguaje
Sequel ha evolucionado desde entonces y su nombre ha pasado a ser SQL
(Structured Query Languaje). Hoy en día, numerosos productos son
compatibles con el lenguaje SQL y se ha establecido como el lenguaje
estándar para las bases de datos relacionales.
El lenguaje SQL tiene varios componentes:
Lenguaje de definición de datos. Proporciona comandos para la
definición de esquemas de relación, borrado
modificación de los esquemas de relación.
de
relaciones
y
3. INTRODUCCIÓN A SQL
Lenguaje interactivo de manipulación de datos. Incluye un lenguaje de
consultas basado tanto en el algebra relacional como en el calculo
relacional de tuplas. También contiene comandos para insertar, borrar y
modificar tuplas.
Integridad. El LDD incluye comandos para especificar las restricciones
de integridad que debe cumplir los datos almacenados en la base de
datos. Las actualizaciones que violen la integridad se rechazan.
Definición de vistas. El LDD incluye comandos para la definición de
vistas.
Control de transacciones. SQL incluye comandos para especificar el
comienzo y el final de las transacciones.
4. INTRODUCCIÓN A SQL
Autorizaciones. El LDD de SQL incluye comandos para especificar los
derechos de acceso a las relaciones y a las vistas.
5. DEFINICIÓN DE DATOS
El conjunto de relaciones de cada base de datos debe especificarse en el
sistema en términos de un lenguaje de definición de datos (LDD). El LDD de
SQL no solo permite la especificación de un conjunto de relaciones, sino
también de la información relativa a esas relacione, incluyendo:
El esquema de cada relación
El dominio de valores asociados a cada atributo
Las restricciones de integridad
El conjunto de índices que se deben mantener para cada relación
La información de seguridad y de autorización de cada relación
La estructura de almacenamiento físico de cada relación en el disco
6. DEFINICIÓN DE DATOS
Tipos básicos de dominios
SQL soporta gran variedad de tipos de dominios predefinidos:
Char(n): Una cadena de caracteres de longitud fija, con una longitud n
especificada por el usuario.
Varchar(n): Una cadena de caracteres de longitud variable con una
longitud máxima n especificada por el usuario.
Int: Un entero (subconjunto finito de los enteros dependientes de la
maquina).
Numeric(p,d): Un número de coma fija, cuya precisión la especifica el
usuario. El número esta formado por p dígitos y de esos p dígitos, d
pertenecen a la parte decimal.
Real, double precision: Números de coma flotante y números de coma
flotante de doble precisión.
Float(n): Un número de coma flotante cuya precisión es de n dígitos.
7. DEFINICIÓN DE DATOS
Tipos básicos de dominios
Date: Tipo de dato para especificar una fecha de calendario que
contiene el año (cuatro cifras), el mes y el día en formato americano.
Time: Tipo de dato para especificar la hora del día en horas, minutos y
segundos (valor predeterminado es 0).
Datetime: Tipo de dato para especificar fecha y hora.
8. DEFINICIÓN DE DATOS
Definición básica de esquemas en SQL
El lenguaje de definición de datos, es el que se encarga de la modificación
de la estructura de los objetos de la base de datos. Incluye órdenes para
modificar, borrar o definir las tablas en las que se almacenan los datos de
la base de datos. Existen cuatro operaciones básicas:
CREATE: Este comando crea un objeto dentro del gestor de base de
datos. Puede ser una base de datos, tabla, índice, procedimiento
almacenado o vista.
ALTER: Este comando permite modificar la estructura de un objeto. Se
pueden agregar/quitar campos a una tabla, modificar el tipo de un
campo, agregar/quitar índices a una tabla, modificar un trigger, etc.
9. DEFINICIÓN DE DATOS
Definición básica de esquemas en SQL
DROP: Este comando elimina un objeto de la base de datos. Puede ser
una tabla, vista, índice, trigger, función, procedimiento o cualquier otro
objeto que el motor de la base de datos soporte. Se puede combinar con
la sentencia ALTER.
TRUNCATE: Este comando trunca todo el contenido de una tabla. La
ventaja sobre el comando DROP, es que si se quiere borrar todo el
contenido de la tabla, es mucho más rápido, especialmente si la tabla es
muy grande. La desventaja es que TRUNCATE sólo sirve cuando se
quiere eliminar absolutamente todos los registros, ya que no se permite
la cláusula WHERE.
10. DEFINICIÓN DE DATOS
Definición básica de esquemas en SQL
A. Elaboración de bases de datos
Estructura:
create database n
Donde:
n: nombre de la base de datos
Ejemplo:
create database mdmbd
create database seguros
11. DEFINICIÓN DE DATOS
Definición básica de esquemas en SQL
B. Eliminación de bases de datos
Estructura:
drop database n
Donde:
n: nombre de la base de datos
Ejemplo:
drop database mdmbd
drop database seguros
12. DEFINICIÓN DE DATOS
Definición básica de esquemas en SQL
C. Elaboración de tablas
Estructura:
create table r (a1 d1, a2 d2, …, an dn, primary key (a1))
Donde:
r: nombre de la tabla o relación
a: nombre del atributo
d: tipo de dominio
Ejemplo:
create table autos
(no_serie char(15), modelo decimal(4), marca char(15), color char(10),
primary key (no_serie))
13. DEFINICIÓN DE DATOS
Definición básica de esquemas en SQL
D. Añadir clave primaria a las tablas
Estructura:
alter table r add primary key (a)
Donde:
r: nombre de la tabla o relación
a: nombre del atributo de la clave primaria
Ejemplo:
alter table autos add primary key (no_serie)
alter table partidos add primary key (id_partido)
14. DEFINICIÓN DE DATOS
Definición básica de esquemas en SQL
E. Renombramiento de tablas
Estructura:
alter table r rename n
Donde:
r: nombre actual de la tabla o relación
n: nuevo nombre de la tabla o relación
Ejemplo:
alter table autos rename auto
alter table partidos rename partido
15. DEFINICIÓN DE DATOS
Definición básica de esquemas en SQL
F. Eliminación de tablas
Estructura:
drop table r
Donde:
r: nombre de la tabla o relación
Ejemplo:
drop table auto
drop table partido
16. DEFINICIÓN DE DATOS
Definición básica de esquemas en SQL
G. Añadir atributos a la estructura de la tabla
Estructura:
alter table r add a d
alter table r add a d after ae
alter table r add a d first
Donde:
r: nombre de la tabla o relación
a: nombre del nuevo atributo
d: tipo de dominio del nuevo atributo
ae: nombre del atributo existente en la tabla o relación
after: después del atributo existente
first: al inicio de los atributos
17. DEFINICIÓN DE DATOS
Definición básica de esquemas en SQL
G. Añadir atributos a la estructura de la tabla
Ejemplo:
alter table autos add estatus char(8)
alter table autos add placa char(8) after marca
alter table partidos add estatus char(8) first
18. DEFINICIÓN DE DATOS
Definición básica de esquemas en SQL
H. Renombramiento de atributos en tablas
Estructura:
alter table r change aa na d
Donde:
r: nombre de la tabla o relación
aa: nombre del antiguo atributo
na: nombre del nuevo atributo
d: tipo de dominio del nuevo atributo
Ejemplo:
alter table autos change estatus fecha date
alter table partidos change estatus serie char(15)
19. DEFINICIÓN DE DATOS
Definición básica de esquemas en SQL
I. Modificar el tipo de dominio de los atributos de las tablas
Estructura:
alter table r modify a d
Donde:
r: nombre de la tabla o relación
a: nombre del atributo existente
d: nuevo tipo de dominio del atributo
Ejemplo:
alter table partidos modify lugar char(50)
alter table partidos modify tipo_partido numeric(2)
20. DEFINICIÓN DE DATOS
Definición básica de esquemas en SQL
J. Borrar atributos de la tabla
Estructura:
alter table r drop a
Donde:
r: nombre de la tabla o relación
a: nombre del atributo
Ejemplo:
alter table partidos drop lugar
alter table partidos drop tipo_partido
alter table autos drop estatus
21. DEFINICIÓN DE DATOS
Definición básica de esquemas en SQL
K. Borrar la clave primaria de las tablas
Estructura:
alter table r drop primary key
Donde:
r: nombre de la tabla o relación
Ejemplo:
alter table autos drop primary key
alter table partidos drop primary key
22. DEFINICIÓN DE DATOS
Definición básica de esquemas en SQL
L. Borrar la clave foránea de las tablas
Estructura:
alter table r drop foreign key fk
Donde:
r: nombre de la tabla o relación
fk: nombre de la clave foránea de la tabla o relación
Ejemplo:
alter table impositor drop foreign key numero_cuenta
alter table prestatario drop foreign key numero_prestamo