Sunteți pe pagina 1din 37

Structured Query

Structured Query
Languaje
Languaje
SQL
lenguaje estructurado de consultas
Pablo Schiavone
Qu es SQL???
SQL es un lenguaje de bases de datos completo.
Cuenta con enunciados de definicin, consulta y
actualizacin de datos.
As pues es tanto un DDL como un DML.
Se utiliza mucho embebido en lenguajes de
programacin como C, Java ,pascal , etc .
D. D. L.
Definicin de Datos
SQL emplea los trminos:
tabla (table),
fila (row),
columna (column)
En vez de relacin, tupla y atributo respectivamente.
D. D. L.
Definicin de Datos
D. D. L.
Data
Definition
Language.
D. D. L.
Definicin de Datos
Permite Crear, modificar y eliminar :
-Las estructuras para almacenar los datos
(Tablas).
-Vistas de la base de datos, Triggers, ndices
entre otros
D. D. L.
Definicin de Datos
Las rdenes para definir datos son:
CREATE (crear),
ALTER (alterar)
DROP (desechar)
D. D. L.
Tipos de Datos
CHAR: Cadena de caracteres (alfanumricos) de longitud fija
Entre 1 y 2000 bytes como mximo.
Aunque se introduzca un valor ms corto que el indicado en el tamao,
se rellenar al tamao indicado.
Es de longitud fija, siempre ocupar lo mismo, independientemente del valor
que contenga.
VARCHAR2 : Cadena de caracteres de longitud variable
Entre 1 y 4000 bytes como mximo.
El tamao del campo depender del valor que contenga,
es de longitud variable.
D. D. L.
Tipos de Datos
VARCHAR : Cadena de caracteres de longitud variable
En desuso, se utiliza VARCHAR2 en su lugar.
BLOB: Permite almacenar datos binarios no estructurados
Admiten hasta 8 terabytes
CLOB : Almacena datos de tipo carcter
Admiten hasta 8 terabytes
D. D. L.
Tipos de Datos
BFILE: Almacena datos binarios no estructurados en archivos del sistema
operativo, fuera de la base de datos. Una columna BFILE almacena
un localizador del archivo.
Admiten hasta 8 terabytes.
El administrador de la base de datos debe asegurarse de que exista el
archivo en disco y de que los procesos de Oracle tengan permisos de
lectura para el archivo .
D. D. L.
Tipos de Datos
NUMBER: Almacena nmeros fijos y en punto flotante
Se admiten hasta 38 dgitos de precisin.
FLOAT: Almacena tipos de datos numricos en punto flotante.
Es un tipo NUMBER que slo almacena nmeros en punto flotante
INTEGER: Almacena tipos de datos numricos
Es equivalente a NUMBER
D. D. L.
Tipos de Datos
DATE: Almacena un punto en el tiempo (fecha y hora)
El tipo de datos DATE almacena el ao (incluyendo el siglo), el mes,
el da, las horas, los minutos y los segundos (despus de medianoche).
Oracle utiliza su propio formato interno para almacenar fechas.
Los tipos de datos DATE se almacenan en campos de longitud fija de siete
octetos cada uno, correspondiendo al siglo, ao, mes, da, hora, minuto,
y al segundo.
D. D. L.
Creacin de Tablas
CREATE TABLE
Crea una nueva tabla (relacin o entidad)
Para cada atributo se puede especificar:
Nombre Obligatorio
Tipo de dato Obligatorio
Dominio
Restricciones
D. D. L.
Creacin de Tablas
CREATE TABLE
Tipos de restricciones:
De clave
Atributos de ingreso obligatorio
De integridad:
De dominio
Referencial
D. D. L.
Creacin de Tablas
CREATE TABLE
Sintaxis:
CREATE TABLE NOMBRE_TABLA (
ATRIBUTO1 TIPO_DATO,
ATRIBUTO2 TIPO_DATO,
ATRIBUTO3 TIPO_DATO,
.....
ATRIBUTOn TIPO_DATO,
);
D. D. L.
Creacin de Tablas
Ejemplo :
Persona(CI, PriNom, SegNom, PriApe, SegApe)
Create table Persona(
CI int ,
PriNom Char (25) NOT NULL,
SegNom Char (25),
PriApe Char (25) NOT NULL,
SegApe Char (25) NOT NULL
);
D. D. L.
Creacin de Tablas
Para definir un valor por defecto se utiliza la clusula DEFAULT
Ejemplo :
Persona(CI, PriNom, SegNom, PriApe, SegApe ,CI_Supervisor)
Create table Persona(
CI INT,
PriNom Char (25) NOT NULL,
SegNom Char (25),
PriApe Char (25) NOT NULL,
SegApe Char (25) NOT NULL,
CI_Supervisor INT default 40686046 NOT NULL ,
CONSTRAINT PK_PERSONA PRIMARY KEY (CI)
);
D. D. L.
Creacin de Tablas
Para que el SGBD controle:
Claves primarias (PRIMARY KEY)
Claves candidatas (UNIQUE KEY)
Claves forneas (FOREIGN KEY)
Hay que indicar a travs de CONSTRAINTS que atributo(s) pertenecen a cada
una de las resticciones.
D. D. L.
Creacin de Tablas
Para definir la clave primaria se utiliza la clusula CONSTRAINT PRIMARY
KEY (Atributo1, Atributo2 , , Atributon-1, Atributon)
Ejemplo:
Persona(CI, PriNom, SegNom, PriApe, SegApe)
Create table Persona(
CI int ,
PriNom Char (25) NOT NULL,
SegNom Char (25),
PriApe Char (25) NOT NULL,
SegApe Char (25) NOT NULL,
CONSTRAINT PK_PERSONA PRIMARY KEY (CI)
);
D. D. L.
Creacin de Tablas
Para los atributo en los cuales NO se puede repetir el valor insertado se utiliza
la restriccin UNIQUE
Ejemplo :
DEPARTAMENTO (NOMBRE, NUMERO)
CREATE TABLE DEPARTAMENTO(
NOMBRE VARCHAR(15) NOT NULL,
NUMERO INT NOT NULL,
CONSTRAINT PK_DEPTO PRIMARY KEY (NUMERO),
CONSTRAINT UN_DEPTO UNIQUE (NOMBRE));
D. D. L.
Creacin de Tablas
Chequear valores que estn en determinado dominio.
Por ejemplo, asegurarse que los valores posibles del campo sexo de la tabla
Persona sea slo F o M.
Ejemplo :
Persona(CI, PriNom, SegNom, PriApe, SegApe ,CI_Supervisor, Sexo)
Create table Persona(
CI INT,
PriNom Char (25) NOT NULL,
SegNom Char (25),
PriApe Char (25) NOT NULL,
SegApe Char (25) NOT NULL,
CI_Supervisor INT default 40686046 NOT NULL ,
Sexo char,
CONSTRAINT PK_PERSONA PRIMARY KEY (CI),
CONSTRAINT veo_sex CHECK (sexo in ('F', 'M'))
);
D. D. L.
Creacin de Tablas
Otro Ejemplo :
Slo se pueden insertar valores que estn en el rango de 10 a 99.
empleado (Salario)
CREATE TABLE empleado(
Salario number(10,2)
CONSTRAINT check_sal_emp CHECK
(salario BETWEEN 10 AND 99) );
D. D. L.
Creacin de Tablas
FOREIGN KEY
Controla que el valor de un atributo (o la combinacin de atributos) exista en otra
tabla (el valor).
Este atributo (o la combinacin de atributos) debe ser clave primaria en la otra
tabla (CLAVE EXTERNA).
FOREIGN KEY (AtributoLocal) REFERENCES
EMPLEADO(AtributoDeReferencia) ON DELETE CASCADE
D. D. L.
Creacin de Tablas
Empleado (CI, Nombre, Dir)
Tel_Empleado (CI, Tel)
Proyecto(NroProyecto, Nombre)
Trabaja (CI_Empleado, NroProyecto)
FOREIGN KEY
Ejemplo
D. D. L.
Creacin de Tablas
Empleado (CI, Nombre, Dir)
FOREIGN KEY
Ejemplo
CREATE TABLE EMPLEADO (
CI INT ,
NOMBRE VARCHAR(15) NOT NULL,
DIR VARCHAR(15) NOT NULL,
CONSTRAINT PK_EMPLEADO PRIMARY KEY (CI));
Esta tabla va a ser referenciada por la FK
D. D. L.
Creacin de Tablas
Tel_Empleado (CI, Tel)
FOREIGN KEY
Ejemplo
CREATE TABLE TelEMP(
CI INT ,
TEL INT ,
CONSTRAINT PK_TEL_EMPLEADO PRIMARY KEY (CI, TEL),
CONSTRAINT FK_TEL_EMPLEADO FOREIGN KEY (CI)
REFERENCES EMPLEADO(CI)
);
.
D. D. L.
Creacin de Tablas
ALTER TABLE
Las acciones posibles para modificar las definiciones de una tabla incluyen:
Agregar o eliminar una columna.
Modificar la definicin de una columna.
Agregar o eliminar restricciones de la tabla.
Activar o desactivar una restriccin
D. D. L.
Creacin de Tablas
Agregar una columna (ADD)
Por ejemplo, si queremos aadir a la tabla EMPLEADO un atributo para
almacenar la FECHA de NACIMIENTO, podemos usar la orden:
ALTER TABLE EMPLEADO
ADD FECHA_NAC DATE;
D. D. L.
Creacin de Tablas
Eliminar una columna (DROP COLUMN)
Por ejemplo, si queremos eliminar de la tabla EMPLEADO un atributo para
almacenar la FECHA de NACIMIENTO, podemos usar la orden:
ALTER TABLE EMPLEADO
DROP COLUMN FECHA_NAC ;
D. D. L.
Creacin de Tablas
Modificar la definicin de una columna (MODIFY)
Por ejemplo, si queremos modificar de la tabla EMPLEADO el atributo DIR para
que el tipo de datos sea varchar de 25 caracteres, podemos usar la orden:
ALTER TABLE EMPLEADO
MODIFY DIR VARCHAR(25);
D. D. L.
Creacin de Tablas
Modificar la definicin de una columna (MODIFY)
Por ejemplo, si queremos modificar de la tabla EMPLEADO el atributo DIR para
que permita null, podemos usar la orden:
ALTER TABLE EMPLEADO
MODIFY DIR VARCHAR(25) NULL;
D. D. L.
Creacin de Tablas
Agregar restricciones de la tabla (ADD)
Las restricciones se pueden agregar en cualquier momento.
Ejemplo,
Create table Producto(
id INT,
Descipcion Char (25) NOT NULL,
Precio Char (25)
);
ALTER TABLE PRODUCTO ADD
CONSTRAINT PK_PROD PRIMARY KEY (ID);
D. D. L.
Creacin de Tablas
Eliminar restricciones de la tabla (DROP)
Si nuestro esquema cambia y ya no necesitamos una restriccin podemos
eliminarla .
Ejemplo,
ALTER TABLE PRODUCTO DROP
CONSTRAINT PK_PROD ;
Note que se eliminan las constraints con el nombre que le asignamos.
D. D. L.
Creacin de Tablas
Activar o desactivar una restriccin
Desactivar
ALTER TABLE PRODUCTO DISABLE CONSTRAINT
PK_PROD;
Activar
ALTER TABLE PRODUCTO ENABLE CONSTRAINT
PK_PROD;
D. D. L.
La orden DROP TABLE
Eliminar una tabla
Si ya no se necesita una relacin base, podemos eliminarla junto con su definicin
con la orden DROP TABLE (desechar tabla).
DROP TABLE Nombre_Tabla;
Ejemplo
DROP TABLE PRODUCTO;
D. D. L.
La orden DROP TABLE
Eliminar una tabla
Si la tabla a eliminar tiene la clave primaria o alguna clave secundaria
referenciada por alguna clave externa de otra tabla, se debern eliminar tambin
estos Constraints
DROP TABLE Nombre_Tabla CASCADE CONSTRAINTS;
Ejemplo
DROP TABLE PERSONA CASCADE CONSTRAINTS;
D. D. L.
La orden DROP TABLE
Renombrar: RENAME
Para cambiar el nombre de un atributo:
ALTER TABLE RENAME COLUMN ATRIB TO
NOM_NUEVO;
EJEMPLO
ALTER TABLE EMPLEADO RENAME COLUMN DIR TO
DIRECCION;
Para cambiar el nombre de una tabla:
RENAME TABLA TO NuevoNombreDeLaTabla;
EJEMPLO
RENAME EMPLEADO TO NuevoNombre;
Bibliografa
Libro :Fundamentos de Sistemas de Bases de Datos
Captulo 8
Autores:
Ramez Elmasri
Shamkant B. Navathe

S-ar putea să vă placă și