Práctica de SQL-Data Definition Language (DDL)

Anuncio
Introducción a SQL
08/11/2013
1. Introducción
2. Historia de SQL
3. Lenguajes
dentro de SQL
4. Tipos de datos
en SQL
5. Manejo de
tablas
Introducción a SQL
(DDL)
6. Secuencias
Grupo de Ingeniería del Software y Bases de Datos
Departamento de Lenguajes y Sistemas Informáticos
© Diseño de Amador Durán Toro, 2011
Universidad de Sevilla
noviembre 2012
Introducción a SQL
• Objetivos de este tema
– Conocer los orígenes de SQL.
1. Introducción
2. Historia de SQL
3. Lenguajes
dentro de SQL
4. Tipos de datos
en SQL
5. Manejo de
tablas
6. Secuencias
– Conocer tanto el DDL (Data Definition Language)
como el DML (Data Manipulation Language) de
SQL.
– Ser capaz de usar el SQL DDL para definir
noviembre 2012
IISSI
Introducción a la Ingeniería del Software y a los Sistemas de Información
1
© Diseño de Amador Durán Toro, 2011
modelos relacionales.
1
Introducción a SQL
08/11/2013
Introducción a SQL
• ¿Qué es SQL?
– SQL (Structured Query Language) es el lenguaje
1. Introducción
estándar para definir, manipular y consultar bases
de datos relacionales.
2. Historia de SQL
3. Lenguajes
dentro de SQL
4. Tipos de datos
en SQL
– SQL permite especificar consultas declarativas:
declarativas se
especifica qué datos se quieren obtener, pero no
5. Manejo de
tablas
6. Secuencias
el cómo obtenerlos.
– SQL suele dividirse en dos partes:
• DML (Data Manipulation Language): gestión de los
datos (inserción, actualización, borrado y consulta
de datos).
Introducción a la Ingeniería del Software y a los Sistemas de Información
noviembre 2012
2
© Diseño de Amador Durán Toro, 2011
• DDL (Data Definition Language): gestión del
esquema de la base de datos (creación,
modificación y borrado de tablas, claves, etc.)
Historia de SQL
1. Introducción
Aňo
Nombre Alias
Comentarios
1986
SQL-86
Primera publicación hecha por ANSI. Confirmada
SQL-87
por ISO en 1987.
2. Historia de SQL
3. Lenguajes
dentro de SQL
4. Tipos de datos
en SQL
5. Manejo de
tablas
6. Secuencias
1989
SQL-89
1992
SQL-92
SQL2
Importantes modificaciones
1999
SQL:1999
SQL2000
Se agregaron expresiones regulares, consultas
SQL3
Pocas modificaciones
Oracle
Entry level
recursivas (para relaciones jerárquicas), triggers
y algunas características orientadas a objetos.
2003
SQL:2003
Introduce características de XML, junto a la
estandarizyación de objetos sequence y los
campos autonuméricos
2006
SQL:2006
Define la manera en la cual SQL se puede
2008
noviembre 2012
IISSI
SQL:2008
Modificaciones de ORDER BY, incluye
disparadores tipo INSTEAD OF...
Introducción a la Ingeniería del Software y a los Sistemas de Información
3
© Diseño de Amador Durán Toro, 2011
utilizar conjuntamente con XML
2
Introducción a SQL
08/11/2013
Lenguajes dentro de SQL
• En SQL existen dos tipos de sentencias:
– DDL (Data Definition Language)
1. Introducción
2. Historia de SQL
– DML (Data Manipulation Language)
3. Lenguajes
dentro de SQL
4. Tipos de datos
en SQL
5. Manejo de
tablas
6. Secuencias
• DDL es utilizado para crear estructuras
dentro de la base de datos, permitiendo por
ejemplo:
– CREATE, crear objetos en la base de datos como tablas,
vistas, usuarios, perfiles…
– ALTER, modificar los objetos creados
– TRUNCATE, borrar todos los registros de una tabla
noviembre 2012
Introducción a la Ingeniería del Software y a los Sistemas de Información
4
© Diseño de Amador Durán Toro, 2011
– DROP, borrar los objetos creados
Lenguajes dentro de SQL
1. Introducción
2. Historia de SQL
3. Lenguajes
dentro de SQL
4. Tipos de datos
en SQL
5. Manejo de
tablas
6. Secuencias
• DML se usa para la gestión de los datos
almacenados en las distintas estructuras.
Puede ser utilizado en lenguajes de
programación de propósito general como C
o Pascal o bien en lenguajes específicos del
fabricante (p.ej. PL/SQL en ORACLE,
TRANSACT SQL en MS-SQL Server)...
– SELECT, obtener un subconjunto de los datos
almacenados
– INSERT, insertar datos en una tabla
– DELETE, borrar todos los objetos de una tabla pero
manteniendo el espacio de los registros
noviembre 2012
IISSI
Introducción a la Ingeniería del Software y a los Sistemas de Información
5
© Diseño de Amador Durán Toro, 2011
– UPDATE, actualizar los datos de una tabla
3
Introducción a SQL
08/11/2013
Lenguajes dentro de SQL
• El DDL permite, entre otras cosas:
1. Introducción
2. Historia de SQL
3. Lenguajes
dentro de SQL
Crear
Modificar
Borrar
Renombrar
4. Tipos de datos
en SQL
Tablas
Índices
Vistas
5. Manejo de
tablas
6. Secuencias
– Se pueden crear tablas con la instrucción
CREATE TABLE nombre_tabla
( atributos: cada uno con su tipo de datos y restricciones );
– Las vistas no son más que “consultas con nombres”
CREATE VIEW nombre_vista AS consulta;
– Se crean índices de la forma:
noviembre 2012
Introducción a la Ingeniería del Software y a los Sistemas de Información
6
© Diseño de Amador Durán Toro, 2011
CREATE INDEX nombreindice ON tabla(columna(s));
Tipos de Datos en Oracle
• CHAR (tamaño
(tamaño)
tamaño)
– Cadena de caracteres de longitud fija (tamaño por defecto 1).
Hasta 2000 bytes.
1. Introducción
2. Historia de SQL
3. Lenguajes
dentro de SQL
4. Tipos de datos
en SQL
5. Manejo de
tablas
6. Secuencias
• VARCHAR (tamaño)
– Cadena de caracteres de longitud variable. En desuso, se utiliza
VARCHAR2 en su lugar.
• VARCHAR2 (tamaño)
– Cadena de caracteres de longitud variable. Entre 1 y 4000 bytes
como máximo. El tamaño del campo dependerá del valor que
contenga, es de longitud variable.
• NVARCHAR (tamaño)
– Cadena de caracteres de longitud fija que sólo almacena
caracteres Unicode.
– Cadena de caracteres de longitud variable que sólo almacena
caracteres Unicode.
noviembre 2012
IISSI
Introducción a la Ingeniería del Software y a los Sistemas de Información
7
© Diseño de Amador Durán Toro, 2011
• NVARCHAR2 (tamaño)
4
Introducción a SQL
08/11/2013
Tipos de Datos en Oracle
• NUMBER (L, D)
– Números de coma fija o flotante. L representa la longitud y D el
número de dígitos decimales. Ej. NUMBER(5, 2)
999.99
1. Introducción
– Según el dialecto SQL,
SQL también se puede especificar como:
DECIMAL(L,D), DEC(L,D) o NUMERIC(L,D)
2. Historia de SQL
3. Lenguajes
dentro de SQL
4. Tipos de datos
en SQL
• INTEGER
5. Manejo de
tablas
– Números enteros, también indicados como INT o SMALLINT.
SMALLINT
6. Secuencias
• DATE
– Fechas (DD-MM-AAAA)
• BLOB
– Objeto binarios de gran tamaño (hasta 4 Gigabyes).
• CLOB
• RAW (tamaño)
– Datos binarios en bruto: imágenes, vídeo, sonido, etc.
Introducción a la Ingeniería del Software y a los Sistemas de Información
noviembre 2012
8
© Diseño de Amador Durán Toro, 2011
– Objetos de caracteres de gran tamaño (hasta 4 Gigabyes).
Creación de Tablas
1. Introducción
Especificación de restricciones de columna
–
Cláusula NULL o NOT NULL, indica si una columna puede contener o no
NULL, Por omisión,
omisión se asume NULL
–
CREATE TABLE Empleado (dni VARCHAR(9), nombre VARCHAR(15) NOT
NULL);
NULL
–
Cláusula DEFAULT <valor>
2. Historia de SQL
3. Lenguajes
dentro de SQL
4. Tipos de datos
en SQL
•
Valor por omisión (o por defecto)
5. Manejo de
tablas
•
CREATE TABLE Empleado ( ..., salario DECIMAL(5,2) DEFAULT 1000 NULL);
NULL
6. Secuencias
•
Si una columna no tiene DEFAULT, su valor por defecto es:
•
noviembre 2012
IISSI
–
El de su dominio, si su tipo es un dominio que incluye DEFAULT
–
NULL en cualquier otro caso, siempre que la columna permita NULL
Especificación de restricciones de tabla
–
Cláusula PRIMARY KEY (<lista_columnas
(<lista_columnas>)
lista_columnas>) que componen la clave
primaria
–
Cláusula UNIQUE (<lista_columnas
(<lista_columnas>)
lista_columnas>) que forman una clave alternativa
–
Cláusula FOREIGN KEY (<lista_columnas
(<lista_columnas>)
lista_columnas>) REFERENCES
<tabla>(<lista_columnas
lista_columnas>)
<tabla>(<
lista_columnas
>)
–
Cláusula CHECK (<expresión>), que determina una condición sobre los
valores de las columnas que debe cumplir toda fila de la tabla
Introducción a la Ingeniería del Software y a los Sistemas de Información
9
© Diseño de Amador Durán Toro, 2011
•
5
Introducción a SQL
08/11/2013
Creación de Tablas
CREATE TABLE USUARIOS2
(
IDUSUARIO NUMBER NOT NULL
1. Introducción
, EMAIL VARCHAR2(20 BYTE) NOT NULL
2. Historia de SQL
3. Lenguajes
dentro de SQL
, DIRECCION VARCHAR2(100 BYTE) NOT NULL
4. Tipos de datos
en SQL
, NOMBRE VARCHAR2(20 BYTE) NOT NULL
5. Manejo de
tablas
, GENERO VARCHAR2(8 BYTE) NOT NULL
6. Secuencias
, CONSTRAINT USUARIOS_PK PRIMARY KEY (IDUSUARIO)
, CONSTRAINT USUARIOS_UK1 UNIQUE (EMAIL)
, CONSTRAINT USUARIOS_CHK1 CHECK
(GENERO = 'Hombre' OR GENERO = 'Mujer')
Introducción a la Ingeniería del Software y a los Sistemas de Información
noviembre 2012
10
© Diseño de Amador Durán Toro, 2011
);
Creación de Tablas
CREATE TABLE PEDIDOS
(
IDPEDIDO NUMBER NOT NULL
1. Introducción
, FECHAENTREGA DATE
2. Historia de SQL
, FECHAPEDIDO DATE
3. Lenguajes
dentro de SQL
, PRECIOENVIO NUMBER
4. Tipos de datos
en SQL
, PRECIOTOTAL NUMBER
5. Manejo de
tablas
, IDUSU NUMBER
6. Secuencias
, CONSTRAINT PEDIDOS_PK PRIMARY KEY (IDPEDIDO)
, CONSTRAINT PEDIDOS_USUARIOS_FK1 FOREIGN KEY (IDPEDIDO)
REFERENCES USUARIOS (IDUSUARIO)
Cuando la clave primaria a la que se referencia es compuesta se debe utilizar la sintaxis:
FOREIGN KEY (column1, column2, ... column_n) REFERENCES parent_table (column1,
column2, ... column_n)
noviembre 2012
IISSI
Introducción a la Ingeniería del Software y a los Sistemas de Información
11
© Diseño de Amador Durán Toro, 2011
);
6
Introducción a SQL
08/11/2013
Secuencias (Autonuméricos en Oracle)
• Las secuencias (sequences) son objetos que
facilitan la generación automática de series
1. Introducción
numéricas.
2. Historia de SQL
3. Lenguajes
dentro de SQL
4. Tipos de datos
en SQL
5. Manejo de
tablas
•
6. Secuencias
Los usos más frecuentes de las secuencias, son:
– La generación automática de claves primarias
– Coordinar las claves de múltiples filas o tablas.
•
Las secuencias son independientes de las tablas; por
tanto, una misma secuencia se puede usar para
más tablas.
Introducción a la Ingeniería del Software y a los Sistemas de Información
diciembre 2011
12
© Diseño de Amador Durán Toro, 2011
generar valores de columnas numéricas de una o
Secuencias
CREATE SEQUENCE
[INCREMENT
[START
1. Introducción
3. Lenguajes
dentro de SQL
n]
n]
n]
...;
4. Tipos de datos
en SQL
6. Secuencias
BY
WITH
[MAXVALUE
2. Historia de SQL
5. Manejo de
tablas
nombre_secuencia
•
Para referenciar al número actual de una secuencia:
•
Para generar el siguiente número de una secuencia:
nombre_secuencia.Nextval
.Nextval
•
Los usos posibles de Nextval y Currval son:
Clausula “Values” del comando Insert
Lista “Select” del comando Select
Clausula “Set” del comando Update
diciembre 2011
IISSI
Introducción a la Ingeniería del Software y a los Sistemas de Información
13
© Diseño de Amador Durán Toro, 2011
nombre_secuencia.Currval
.Currval
7
Introducción a SQL
08/11/2013
Secuencias
• Ejemplo de creación de secuencia
CREATE SEQUENCE sec_emp;
1. Introducción
2. Historia de SQL
3. Lenguajes
dentro de SQL
4. Tipos de datos
en SQL
5. Manejo de
tablas
6. Secuencias
•
Obtener los valores de la clave primaria de la tabla
Empleado y coordinar los valores de las claves
primarias de las tabla Empleado y la tabla Salario.
– Insertar fila en la tabla Empleado
INSERT INTO Empleado (cod_emp,codemp...)
VALUES (sec_emp.NEXTVAL
sec_emp.NEXTVAL,
sec_emp.NEXTVAL ‘emp01’...);
INSERT INTO Salario (cod_emp,mes...)
VALUES (sec_emp.CURRVAL
sec_emp.CURRVAL,..)
sec_emp.CURRVAL
diciembre 2011
IISSI
Introducción a la Ingeniería del Software y a los Sistemas de Información
14
© Diseño de Amador Durán Toro, 2011
– Insertar empleado en la tabla Salarios
8
Descargar