870 likes | 1.06k Views
SICI-4030 Base de Datos. Prof. Nelliud D. Torres SQL - Introductorio - DDL. OBJETIVOS. COMPOSED PRIMARY KEYS CONTROLLING VALUES ENSURING DATA INTEGRTY CREACIÓN DE SECUENCIAS EDITAJE DE COMANDOS OTROS MANDATOS DE SQL INSERT INTO COMMIT TRUNCATE TABLE DROP TABLE EJERCICIO ALTER TABLE
E N D
SICI-4030Base de Datos Prof. Nelliud D. Torres SQL - Introductorio - DDL
OBJETIVOS COMPOSED PRIMARY KEYS CONTROLLING VALUES ENSURING DATA INTEGRTY CREACIÓN DE SECUENCIAS EDITAJE DE COMANDOS OTROS MANDATOS DE SQL INSERT INTO COMMIT TRUNCATE TABLE DROP TABLE EJERCICIO ALTER TABLE ROLLBACK DESC TABLA SET ECHO ON/OFF SPOOL FILENAME.TXT REM SPOOL • DEFINICIÓN SQL • DATA DEFINITION LANGUAGE (DDL) • DATA MANIPULATION LANGUAGE (DML) • DATA CONTROL LANGUAGE (DCL) • HISTORIA • BENEFICIOS Y PROPÓSITOS 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
DEFINICIÓN SQL Volver a los Objetivos
DEFINICIÓN - SQL • SQL(StructuredQueryLanguage) – Se podría traducir como “lenguaje estructurado para consultas”. • Es el lenguaje más importante para el manejo de base de datos relacionales. • Forma parte del DML (DataManipulationLanguage) y lo desarrolló IBM a principios de los 70. • Es el estándar para el “relational database management systems”(RDBMS) Pag: 289
DEFINICIÓN • 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 añaden, 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 administración de la base de datos (cuentas, privilegios, accesos, tunning, etc.)
Historia del SQL • 1970 – E. Codd develops relational database concept • 1974-1979 – System R with Sequel (later SQL) created at IBM Research Lab • 1979 – Oracle markets first relational DB with SQL • 1986 – ANSI SQL standard released • 1989, 1992, 1999, 2003 – Major ANSI standard updates • Hoy día – SQL se utiliza por todos los vendedores de bases de datos Pag: 291
BENEFICIOS Y PROPÓSITOS DEL SQL Volver a los Objetivos
Beneficios de Utilizar un Lenguaje Relacional Estandarizado • Reduce costos de entrenamiento • Mayor productividad • Portabilidad de la aplicación • Longetividad de la aplicación • Reduce la dependencia de un sólo vendedor • Comunicación que cruza sistemas Pag: 293
Propósito del SQL Standard • Especificar sintaxis y semántica para la definición y manipulación de los datos. • Definir estructuras de datos • Capacitar la portabilidad • Permitir crecimiento y/o mejoras a los estándares
MEDIO AMBIENTE DEL SQL Volver a los Objetivos
Medio ambiente del SQL • Catalog • Un conjunto de schemas que constituye la descripción de la base de datos. • Schema • La estructura que contiene descripciones de objetos creados por un usuario (tablas, views y restricciones (constraints)) • Data Definition Language (DDL) • Comandos que definen una base de datos, incluyendo su creación, alteración y eliminación de tablas y establecer limitaciones (constraints). Pag: 294
Medio ambiente del SQL • Data Manipulation Language (DML) • Comandos que mantienen e interrogan una base de datos (query) • Data Control Language (DCL) • Comandos que controlan la base de datos, incluyendo la administración de privilegios y asegurando (committing) data (eliminando o guardando transacciones) Pag: 294
Figure 7-1 A simplified schematic of a typical SQL environment, as described by the SQL-2003 standard Pag: 294
Figure 7-4 DDL, DML, DCL, and the database development process Pag: 297
COMANDO CREATE Volver a los Objetivos
Creación de una base de datos con SQL • Data Definition Language (DDL) • Instrucciones más importantes con la declaraciónCREATE: • CREATE SCHEMA – Define una porción de la base de datos que le pertenece a un usuario en particular. • CREATE TABLE – Define una tabla con sus columnas. • CREATE VIEW – Define una tabla lógica de uno o másviews • Otras declaraciones deCREATE: CHARACTER SET, COLLATION, TRANSLATION, ASSERTION, DOMAIN
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 producción se define un schema que comparten muchos usuarios. • El administrador de la base de datos es el que crea los esquemas y las cuentas.
Enunciado CREATE TABLE • Su formato básico es: CREATE TABLE nombre_tabla ( atributo1 tipoDeDato1, atributo2 tipoDeDato2, atributo3 tipoDeDato3, etc.);
Tipos de datos en SQL Pag: 295
Tipo - NUMBER • Se utiliza para valores numéricos enteros y reales. Su formato es number (o,d) en donde o = cantidad de dígitos enteros y d = cantidad de dígitos decimales. • Valor máximo de o =38. • Ejemplos: • NUMBER(8) - Un entero de ocho dígitos. • NUMBER(5,2) - Número de cinco dígitos, de los cuales dos son decimales. OJO 5,2 no puede almacenar un valor mayor de 999.99. Si se trata de guardar un número 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 máximo 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 sólo almacenaría un carácter.
Tipo - VARCHAR2 • Se utiliza para especificar una cantidad de caracteres VARIABLES. Su formato es VARCHAR(n) donde n puede tener un valor máximo 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 tamaño 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 válido si se guardo en el atributo con este formato. • ’08-mar-2007’ - También es válido. OJO Si el Oracle se instaló en español, los meses cambian de acuerdo al idioma.
Tipo - LONG • Permite almacenar caracteres hasta 2GB. Solo se permite a cada tabla un máximo 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). • También permite especificar los foreign keys. • A cada CONSTRAINT se le identifica con un nombre el cual debe ser alusivo a su función o propósito.
CONSTRAINT - PRIMARY KEY • Se puede declarar en forma directa al declarar el atributo o por medio del constraint. • EJEMPLOS: CREATE TABLE tabla1 ( atributo1 number(7) PRIMARY KEY, atributo2 varchar2(5), etc.); CREATE TABLE tabla2 ( atributo1 number(7), atributo2 varchar2(5), CONSTRAINT nombre-const PRIMARY KEY(atributo1) ); Declaración directa, no se define nombre del constraint Declaración indirecta (constraint)
CONSTRAINT - PRIMARY KEY(cont.) • Para definir un Primary Key compuesto (dos atributos o más), se declara el constraint de la siguiente forma: CREATE TABLE tabla2 ( atributo1 number(7), atributo2 varchar2(5), atributo3 number(5), CONSTRAINT nombre-con PRIMARY KEY (atributo1,atributo2) );
CONSTRAINT - FOREIGN KEY • Se puede declarar en forma directa al declarar el atributo o por medio del constraint. • EJEMPLO-1: CREATE TABLE tabla1 ( atributo1 number(7) PRIMARY KEY, atributo2 varchar2(5), etc.); CREATE TABLE tabla2 ( atributo3 number(7), atributo4 varchar2(5), atribut05 number(7) FOREIGN KEY tabla1(atributo1), CONSTRAINT nombre-const PRIMARY KEY(atributo3) );
CONSTRAINT - FOREIGN KEY (Cont.) • Declaración por medio del constraint. • EJEMPLO-2: 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 creación de la tabla: • Identificar los tipos de datos para los atributos • Identificar atributos que no pueden ser nulos • Identificar columnas que deben ser únicas (candidatas a PK) • Identifica primary key–foreign key mates • Determinar los valores default • Identificar limitaciones (constraints) en las columnas (domain specifications) • Crear la tabla e índices asociados Creación de una Tabla Figure 7-5 General syntax for CREATE TABLE Pag: 299
EJECUTANDO COMANDOS DE SQL CON DIFERENTES APLICACIONES • Existen varias formas de ejecutar los comandos en SQL que varían de acuerdo a la herramienta que se utilice. • Algunos ejemplo son: • Oracle 10g use SQL*Plus or SQL*Plus Worksheet • Create queries in SQL view in Microsoft Access • Commands are typed at prompt in MySQL A Guide to SQL, Seventh Edition
SQL CONSTRAINTS Volver a los Objetivos
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 demás 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 próximos slides utilizan comandos de SQL para crear las tablas que se ven en este ERD
Overall table definitions Figure 7-6 SQL database definition commands for Pine Valley Furniture Pag: 300
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 Primary keys can never have NULL values Identifying primary key
Non-nullable specifications Primary key Some primary keys are composite– composed of multiple attributes
Controlling the values in attributes Default value Domain constraint
Identifying foreign keys and establishing relationships Primary key of parent table Foreign key of dependent table
Data Integrity Controls • Referencia de integridad – Son constraints que aseguran que los valores del FK de una tabla deben parear los valores del PK de una tabla en una relación 1:M. • Restringe: • Eliminación de records primarios • Actualización de records primarios • Insertar records dependientes Pag: 303