Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
OBJETIVOS
DEFINICIN SQL
DATA DEFINITION LANGUAGE (DDL) DATA MANIPULATION LANGUAGE (DML) DATA CONTROL LANGUAGE (DCL) HISTORIA COMPOSED PRIMARY KEYS CONTROLLING VALUES ENSURING DATA INTEGRTY
BENEFICIOS Y PROPSITOS DEL SQL MEDIO AMBIENTE DEL SQL COMANDO CREATE
SCHEMA TIPO DE DATOS CONSTRAINT - PRIMARY AND FOREIGN KEY PASOS PARA CREAR UNA TABLA CREANDO TABLAS CON DIFERENTES APLICACIONES
SQL CONSTRAINTS
EJEMPLOS NOT NULL
DEFINICIN SQL
DEFINICIN - SQL
SQL (Structured Query Language) Se podra traducir como lenguaje estructurado para consultas. Es el lenguaje ms importante para el manejo de base de datos relacionales. Forma parte del DML (Data Manipulation Language) y lo desarroll IBM a principios de los 70. Es el estndar para el relational database management systems(RDBMS)
DEFINICIN
Se compone de tres partes: Data Definition Language (DDL) Instrucciones
que crean una base de datos, tabla o ndices entre otras cosas.
Data Manipulation Language (DML) Instrucciones que aaden, eliminan o modifican instancias (records) y las instrucciones que sirven para realizar consultas (queries) a la base de datos. Data Control Language (DCL) Instrucciones relacionadas a la administracin de la base de datos (cuentas, privilegios, accesos, tunning, etc.)
Schema
La estructura que contiene descripciones de objetos creados por un usuario (tablas, views y restricciones (constraints))
Figure 7-1 A simplified schematic of a typical SQL environment, as described by the SQL-2003 standard
Figure 7-4 DDL, DML, DCL, and the database development process
COMANDO CREATE
SCHEMA
Antes de poder crear tablas en la base de datos, necesitamos crear esquemas para los usuarios. Son como cuentas o reas en donde cada usuario crea y maneja sus tablas independientemente. A nivel de produccin se define un schema que comparten muchos usuarios. El administrador de la base de datos es el que crea los esquemas y las cuentas.
Tipo - NUMBER
Se utiliza para valores numricos enteros y reales. Su formato es number (o,d) en donde o = cantidad de dgitos enteros y d = cantidad de dgitos decimales. Valor mximo de o =38. Ejemplos:
NUMBER(8) - Un entero de ocho dgitos. NUMBER(5,2) - Nmero de cinco dgitos, de los cuales dos son decimales. OJO 5,2 no puede almacenar un valor mayor de 999.99. Si se trata de guardar un nmero mayor, va a generar un error.
Derivados de number:
int[eger] dec[imal] smallint real -
Tipo - CHAR
Se utiliza para especificar una cantidad de caracteres FIJOS. Su formato es CHAR(n) donde n tiene un mximo de 255 (en Oracle 8 es de 2000) En caso de que el valor sea menor que la cantidad definida, se rellena de espacios en blanco. (consume memoria) Ejemplos:
CHAR(5) - Un string de cinco caracteres. CHAR - Es el default y slo almacenara un carcter.
Tipo - VARCHAR2
Se utiliza para especificar una cantidad de caracteres VARIABLES. Su formato es VARCHAR(n) donde n puede tener un valor mximo de 2000 (4000 en Oracle 8). Si el dato ocupa menos posiciones de las definidas, estas no se rellenan con espacios en blanco y por lo tanto no utiliza memoria. Ejemplos:
VARCHAR2(5) - Un string de cinco caracteres. VARCHAR2 - Es el default y su tamao es de largo variable.
Tipo - DATE
Se utiliza para especificar fecha y hora. Almacena la fecha en formato dd-mmm-yy hh:mm:ss.ss o dd-mmm-yyyy hh:mm:ss.ss. Se requiere que la fecha se especifique entre comillas sencillas. Ejemplos:
08-mar-07 es vlido si se guardo en el atributo con este formato. 08-mar-2007 - Tambin es vlido. OJO Si el Oracle se instal en espaol, los meses cambian de acuerdo al idioma.
Tipo - LONG
Permite almacenar caracteres hasta 2GB. Solo se permite a cada tabla un mximo de una columna de este tipo.
Tipo - BOOLEAN
Se utiliza para especificar valores cierto o falso. Puede contener TRUE, FALSE o NULL. Nota: En Oracle-SQL no existe el tipo de dato buleano. Sin embargo se puede representar con char(1) o number(1). Hay muchos otros tipos de datos tales como LONG, RAW, LONG RAW, etc. Por ahora vamos a trabajar con los que se han explicado hasta el momento.
CONSTRAINT
Sirve para especificar restricciones o condiciones a los atributos. Nos permite especificar los primary keys (PK). Tambin permite especificar los foreign keys. A cada CONSTRAINT se le identifica con un nombre el cual debe ser alusivo a su funcin o propsito.
CREATE TABLE tabla2 ( atributo1 number(7), atributo2 varchar2(5), CONSTRAINT nombre-const PRIMARY KEY(atributo1) );
);
CREATE TABLE tabla1 ( atributo1 number(7) PRIMARY KEY, atributo2 varchar2(5), etc.); CREATE TABLE tabla2 ( atributo3 number(7), atributo4 varchar2(5), atributo5 number(7), CONSTRAINT keytabla2 PRIMARY KEY(atributo3) CONSTRAINT foreignkeytabla1 FOREIGN KEY atributo5 REFERENCES tabla1(atributo1) );
Pasos en la creacin de la tabla: 1. Identificar los tipos de datos para los atributos 2. Identificar atributos que no pueden ser nulos 3. Identificar columnas que deben ser nicas (candidatas a PK) 4. Identifica primary key
5. Determinar los valores 6. Identificar limitaciones (constraints) en las columnas (domain specifications) 7. Crear la tabla e ndices asociados
SQL CONSTRAINTS
SQL Constraints
NOT NULL constraint
Se asegura de que la columna no acepte valores nulos.
UNIQUE constraint
Se asegura de que el valor en la columna sea nico con respecto a los dems valores en la misma columna.
DEFAULT constraint
Asigna una valor por defecto cuando se va a insertar una nueva fila.
CHECK constraint
Valida la data cuando el valor del atributo se entra.
Database Systems: Design, Implementation, & Management, 7th Edition, Rob & Coronel
Los prximos slides utilizan comandos de SQL para crear las tablas que se ven en este ERD
Figure 7-6 SQL database definition commands for Pine Valley Furniture
Overall table definitions
Figure 7-6 SQL database definition commands for Pine Valley Furniture
Figure 7-6 SQL database definition commands for Pine Valley Furniture
Figure 7-6 SQL database definition commands for Pine Valley Furniture
Figure 7-6 SQL database definition commands for Pine Valley Furniture
Non-nullable specification
Non-nullable specifications
Primary key
Domain constraint
Figure 7-7 Ensuring data integrity through updates Relational integrity is enforced via the primary-key to foreign-key match
No permite que el PK de la tabla CUSTOMER se modifique. Si se cambia el PK de CUSTOMER, se hace lo mismo con sus correspondientes FK.
CREACIN DE SECUENCIAS
Creacin de Secuencias
Se utilizan cuando vas a definir un PK como autonumber para que genere nmeros automticamente. En SQL 2003 se hizo una modificacin para poder incluirlo dentro del mandato CREATE. Ejemplo: CREATE TABLE CUSTOMER_T (customer_id INTEGER GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1 MINVALUE 1 MAXVALUE 10000 NOCYCLE), customer_name VARCHAR (25) NOT NULL, CONSTRAINT customer_pk PRIMARY KEY (customer_id) );
INSERT INTO
Nos permite entrar datos en una tabla ya creada. Ejemplo: Si tenemos la siguiente definicin de una tabla: CREATE TABLE tabla1( atributo1 number(7) PRIMARY KEY, atributo2 varchar2(5), ); Para insertar un record sera de la siguiente forma: INSERT INTO tabla1(atributo1, atributo2) VALUES (1234567,abcde);
COMMIT
Este comando confirma (ejecuta fsicamente) una operacin de INSERT, UPDATE o DELETE en una tabla. Cuando ejecutamos esa instruccin en una tabla, esta no se altera fsicamente (sino lgicamente) hasta que no se reciba el comando COMMIT; Esto nos permite revertir comando en las bases de datos.
TRUNCATE TABLE
Este comando nos permite eliminar los datos de la tabla nicamente. Su estructura se mantiene. Su formato es: TRUNCATE TABLE tabla1; OJO Al eliminar los datos de diferentes tablas, estos deben eliminarse en un orden en particular.
DROP TABLE
Este comando nos permite eliminar los datos de la tabla y su estructura. Su formato es: DROP TABLE tabla1; OJO Al eliminar las tablas de un sistema, estas deben eliminarse en un orden en particular.
ALTER TABLE
Permite aadir y modificar definiciones de atributos de tablas que ya estan creadas. Ejemplo: Tenemos la siguiente definicin de una tabla: CREATE TABLE tabla1( atributo1 number(7) PRIMARY KEY, atributo2 varchar2(5), ); Si deseamos aadir un atributo adicional, se puede escribir el siguiente mandato: ALTER TABLA tabla1 ADD ( atributo3 number(5) ); Si deseamos cambiar el tamao del atributo3, lo podemos hacer con el siguiente mandato: ALTER TABLA tabla1 MODIFY ( atributo3 number(8) );
ROLLBACK
Nos permite eliminar una operacin de INSERT, UPDATE o DELETE en una tabla. Trabaja de una forma parecida al UNDO del ambiente grfico. Elimina esas operaciones, siempre y cuando no se haya ejecutado el mandato: COMMIT Su formato es: ROLLBACK;
DESC tabla
Nos muestra una descripcin general de tabla. No termina con el punto y coma (;) como los dems mandatos. Este mandato pertenece a SQL Plus. Su formato es: DESC tabla
DESC (EJEMPLO)
Ejemplo de DESC.
EJERCICIO DE PRACTICA - 1
De acuerdo al siguiente ERD
EJERCICIO DE PRACTICA
Y los siguientes valores:
EJERCICIO DE PRACTICA - 3
Desarrolle el script que crea las tablas. Desarrolle el script que entre los datos (INSERT INTO). Desarrolle el script que elimine los datos y borre las tablas (DROP TABLE).
EJERCICIO DE PRACTICA - 4
Cdigo de ejemplo de creacin de la tabla DEPARTAMENTO:
REM *************************************************************** REM * Creacion de la tabla DEPARTAMENTO * REM ***************************************************************
CREATE TABLE DEPARTAMENTO ( dep_numero NUMBER(1), dep_nombre VARCHAR2(25) NOT NULL, dep_localizacin VARCHAR2(15), CONSTRAINT dep_numero_pk PRIMARY KEY (dep_numero) );
EJERCICIO DE PRACTICA - 5
Cdigo de ejemplo de crear datos en la tabla DEPARTAMENTO:
REM *************************************************************** REM * Datos de la tabla DEPARTMENTO * REM *************************************************************** INSERT INTO DEPARTAMENTO VALUES (2,'Physics','Edificio 100');
INSERT INTO DEPARTAMENTO VALUES (5,'Computer Science','Edificio 100');
EJERCICIO DE PRACTICA - 6
Cdigo de ejemplo para eliminar la tabla DEPARTAMENTO:
DROP TABLE DEPARTAMENTO;
REFERENCIAS
Modern Database Management 8th Edition, Jeffrey A. Hoffer, Mary B. Prescott, Fred R. McFadden Database Systems: Design, Implementation, and Management, Seventh Edition, Rob and Coronel Dra. Mara De Jess - Universidad Interamericana, Recintro Metro A Guide to SQL, Seventh Edition
A