La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Prof. Nelliud D. Torres SQL - Introductorio - DDL

Presentaciones similares


Presentación del tema: "Prof. Nelliud D. Torres SQL - Introductorio - DDL"— Transcripción de la presentación:

1 Prof. Nelliud D. Torres SQL - Introductorio - DDL
SICI-4030 Base de Datos Prof. Nelliud D. Torres SQL - Introductorio - DDL

2 OBJETIVOS DEFINICIÓN SQL CREACIÓN DE SECUENCIAS EDITAJE DE COMANDOS
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 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

3 DEFINICIÓN SQL Volver a los Objetivos

4 DEFINICIÓN - SQL SQL (Structured Query Language) – 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 (Data Manipulation Language) y lo desarrolló IBM a principios de los 70. Es el estándar para el “relational database management systems”(RDBMS) Pag: 289

5 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.)

6 Historia del SQL 1970 – E. Codd develops relational database concept
– 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

7 BENEFICIOS Y PROPÓSITOS DEL SQL
Volver a los Objetivos

8 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

9 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

10 MEDIO AMBIENTE DEL SQL Volver a los Objetivos

11 Medio ambiente del SQL Catalog Schema Data Definition Language (DDL)
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

12 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

13 Figure 7-1 A simplified schematic of a typical SQL environment, as described by the SQL-2003 standard Pag: 294

14 DDL, DML, DCL, and the database development process
Figure 7-4 DDL, DML, DCL, and the database development process Pag: 297

15 COMANDO CREATE Volver a los Objetivos

16 Creación de una base de datos con SQL
Data Definition Language (DDL) Instrucciones más importantes con la declaración CREATE: 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ás views Otras declaraciones de CREATE: CHARACTER SET, COLLATION, TRANSLATION, ASSERTION, DOMAIN

17 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.

18 Enunciado CREATE TABLE
Su formato básico es: CREATE TABLE nombre_tabla ( atributo1 tipoDeDato1, atributo2 tipoDeDato2, atributo3 tipoDeDato3, etc.);

19 Tipos de datos en SQL Pag: 295

20 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 Si se trata de guardar un número mayor, va a generar un error. Derivados de number: int[eger] - dec[imal] - smallint - real -

21 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.

22 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.

23 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.

24 Tipo - LONG Permite almacenar caracteres hasta 2GB. Solo se permite a cada tabla un máximo de una columna de este tipo.

25 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.

26 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.

27 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), CONSTRAINT nombre-const PRIMARY KEY(atributo1) ); Declaración directa, no se define nombre del constraint Declaración indirecta (constraint)

28 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) );

29 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), atribut number(7) FOREIGN KEY tabla1(atributo1), CONSTRAINT nombre-const PRIMARY KEY(atributo3) );

30 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 ( atributo number(7), atributo varchar2(5), atributo number(7), CONSTRAINT keytabla PRIMARY KEY(atributo3) CONSTRAINT foreignkeytabla1 FOREIGN KEY atributo5 REFERENCES tabla1(atributo1) );

31 Creación de una Tabla 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 Figure 7-5 General syntax for CREATE TABLE Pag: 299

32 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

33

34

35 A Guide to SQL, Seventh Edition

36 A Guide to SQL, Seventh Edition

37 SQL CONSTRAINTS Volver a los Objetivos

38 SQL Constraints NOT NULL constraint UNIQUE 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

39 Los próximos slides utilizan comandos de SQL para crear las tablas que se ven en este ERD

40 Figure 7-6 SQL database definition commands for Pine Valley Furniture
Overall table definitions Pag: 300

41 Figure 7-6 SQL database definition commands for Pine Valley Furniture

42 Figure 7-6 SQL database definition commands for Pine Valley Furniture

43 Figure 7-6 SQL database definition commands for Pine Valley Furniture

44 Figure 7-6 SQL database definition commands for Pine Valley Furniture

45 Defining attributes and their data types

46 Non-nullable specification
Primary keys can never have NULL values Identifying primary key

47 Some primary keys are composite– composed of multiple attributes
Non-nullable specifications Primary key Some primary keys are composite– composed of multiple attributes

48 Controlling the values in attributes
Default value Domain constraint

49 Identifying foreign keys and establishing relationships
Primary key of parent table Foreign key of dependent table

50 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

51 Figure 7-7 Ensuring data integrity through updates
Relational integrity is enforced via the primary-key to foreign-key match Pag: 303

52 Pag: 303 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. Si se cambia el PK de CUSTOMER, se pone NULL sus correspondientes FK. Si se cambia el PK de CUSTOMER, se le pone un valor predeterminado a sus correspondientes FK. Pag: 303

53 CREACIÓN DE SECUENCIAS
Volver a los Objetivos

54 Creación de Secuencias
Se utilizan cuando vas a definir un PK como autonumber para que genere números automáticamente. En SQL 2003 se hizo una modificación 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) ); Pag: 305

55 Creación de Secuencias (cont.)
También se puede poner como una directiva aparte. Por ejemplo: CREATE SEQUENCE  nombre         INCREMENT BY n         START WITH n         MAXVALUE n | NOMAXVALUE         CYCLE | NOCYCLE         CACHE  n  | NOCACHE

56 Creación de Secuencias (cont.)
INCREMENT BY n - Indica de cuanto en cuanto  vamos contando en "n“ START WITH n - Indica el primer valor en "n“ MAXVALUE n - Indica el valor mayor posible en "n" NOMAXVALUE - Por default el valor mayor es 10^27 CYCLE -  Permite recomenzar la secuencia. NOCYCLE - Fuerza a que de error si se trata de usar un número menor al especificado en START WITH o de un número mayor al especificado en MAXVALUE. CACHE  n - Especifica cuantos valores se pre localizarán en el Oracle Server y los mantiene en un lugar de memoria del servidor de la base de datos. Por default mantiene 20 valores.

57 Creación de Secuencias (Ejemplo - 2)
CREATE SEQUENCE s_dept_id     INCREMENT BY 1     START WITH 50     MAXVALUE     NOCYCLE     NOCACHE;   Podemos ver el valor actual de la secuencia de la siguiente forma                 SELECT s_dept_id.CURRVAL FROM dual; Usando la secuencia podemos insertar datos usando el próximo número de la secuencia de la siguiente forma:              INSERT INTO s_dept VALUES (s_dept_id.NEXTVAL, 'Finance', 2);

58 Información sobre las secuencias
Podemos conseguir información sobre los views creados en la tablas del diccionario de datos que se llama USER_SEQUENCES. Escribe el siguiente mandato de SQLPlus para que veas los campos de la tablas USER_SEQUENCES: DESCRIBE user_sequences  También puedes hacer consultas  sobre esa tabla, por ejemplo: SELECT sequence_name, min_value, max_value, increment_by, last_number FROM user_sequences;

59 Ejemplo de CREATE TABLE y CREATE SEQUENCE
CREATE TABLE EJEMPLO ( eje_id INTEGER NOT NULL, eje_name VARCHAR2(20) NOT NULL, eje_date DATE DEFAULT SYSDATE, eje_dateExpires DATE, PRIMARY KEY( acc_id ) ); CREATE SEQUENCE eje_id INCREMENT BY 1 START WITH 1 NOMAXVALUE NOCYCLE;

60 EDITAJE DE COMANDOS Y MANEJO DE ERRORES EN DIFERENTES APLICACIONES
Volver a los Objetivos

61 Editaje de Comandos – Oracle SQL*Plus

62 Comandos con errores – Oracle SQL*Plus

63 Comandos con errores – Oracle SQL*Plus

64 Editando Comandos en MySQL
Los comandos más recientes se almacenan en memoria en un área llamada “statement history”. Se puede editar los comandos en el “statement history” al utilizar los siguientes comandos de editaje que se muestran en el próximo slide. A Guide to SQL, Seventh Edition

65 Editaje de Comandos - MySQL

66 A Guide to SQL, Seventh Edition

67 Editando Comandos en MySQL
Presione Up arrow para ir a la primera línea Dele Enter para moverse a la próxima línea si esta correcta la primera Utilice las flechas( ) para moverse al texto que necesita corrección. Al terminar de corregir la línea, presione Enter. Hasta que no se de Enter, el cambio a esa línea no será efectivo.

68 OTROS MANDATOS DE SQL Volver a los Objetivos

69 INSERT INTO Nos permite entrar datos en una tabla ya creada.
Ejemplo: Si tenemos la siguiente definición de una tabla: CREATE TABLE tabla1( atributo1 number(7) PRIMARY KEY, atributo2 varchar2(5), ); Para insertar un record sería de la siguiente forma: INSERT INTO tabla1(atributo1, atributo2) VALUES ( ,’abcde’); Pag: 304

70 COMMIT Este comando confirma (ejecuta físicamente) una operación de INSERT, UPDATE o DELETE en una tabla. Cuando ejecutamos esa instrucción en una tabla, esta no se altera físicamente (sino lógicamente) hasta que no se reciba el comando COMMIT; Esto nos permite revertir comando en las bases de datos.

71 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. ¿Cuál es ese orden y porque?

72 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. ¿Cuál es ese orden y porque? Pag: 304

73 EJERCICIO DE PRACTICA - 1
De acuerdo al siguiente ERD

74 EJERCICIO DE PRACTICA - 2
Y los siguientes valores:

75 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).

76 EJERCICIO DE PRACTICA - 4
Código de ejemplo de creación de la tabla DEPARTAMENTO: REM *************************************************************** REM * Creacion de la tabla DEPARTAMENTO * CREATE TABLE DEPARTAMENTO ( dep_numero NUMBER(1), dep_nombre VARCHAR2(25) NOT NULL, dep_localización VARCHAR2(15), CONSTRAINT dep_numero_pk PRIMARY KEY (dep_numero) );

77 EJERCICIO DE PRACTICA - 5
Código de ejemplo de crear datos en la tabla DEPARTAMENTO: REM *************************************************************** REM * Datos de la tabla DEPARTMENTO * INSERT INTO DEPARTAMENTO VALUES (2,'Physics','Edificio 100'); INSERT INTO DEPARTAMENTO VALUES (5,'Computer Science','Edificio 100'); INSERT INTO DEPARTAMENTO VALUES (7,'Geology','Edificio 200'); COMMIT;

78 EJERCICIO DE PRACTICA - 6
Código de ejemplo para eliminar la tabla DEPARTAMENTO: DROP TABLE DEPARTAMENTO;

79 OTROS MANDATOS DE SQL - ALTER TABLE
Permite añadir y modificar definiciones de atributos de tablas que ya estan creadas. Ejemplo: Tenemos la siguiente definición de una tabla: CREATE TABLE tabla1( atributo1 number(7) PRIMARY KEY, atributo2 varchar2(5), ); Si deseamos añadir un atributo adicional, se puede escribir el siguiente mandato: ALTER TABLA tabla1 ADD ( atributo number(5) Si deseamos cambiar el tamaño del atributo3, lo podemos hacer con el siguiente mandato: ALTER TABLA tabla1 MODIFY ( atributo number(8) Pag: 303

80 OTROS MANDATOS DE SQL - ROLLBACK
Nos permite eliminar una operación de INSERT, UPDATE o DELETE en una tabla. Trabaja de una forma parecida al UNDO del ambiente gráfico. Elimina esas operaciones, siempre y cuando no se haya ejecutado el mandato: COMMIT Su formato es: ROLLBACK;

81 OTROS MANDATOS DE SQL - DESC tabla
Nos muestra una descripción general de tabla. No termina con el punto y coma (;) como los demás mandatos. Este mandato pertenece a SQL Plus. Su formato es: DESC tabla

82 OTROS MANDATOS DE SQL - DESC (EJEMPLO)
Ejemplo de DESC.

83 OTROS MANDATOS DE SQL - SET ECHO ON/OFF
Cuando se está ejecutando un script de SQL, este comando (SET ECHO ON) permite ver en pantalla las instrucciones según se van ejecutando. Escribiendo SET ECHO OFF desactiva la opción. Este comando se pueden dar interactivamente en pantalla o incluirlos como parte de un script.

84 OTROS MANDATOS DE SQL - REM
Permite poner comentarios dentro del script. Su formato es similar al formato de comentario del Basic clásico. Después de REM se puede poner lo que programador desee. También se puede utilizar dos guiones seguidos (--) para sustituir la palabra REM. Formato: REM comentarios

85 OTROS MANDATOS DE SQL - SPOOL filename.txt
Envía el resultado que sale en el command Prompt al archivo que especifique el usuario. El resultado sale tanto en pantalla como en el archivo. Lo guarda en un directorio dentro de Oracle. El directorio podría ser: Se puede indicar el Path como parte del nombre del archivo.

86 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. María De Jesús - Universidad Interamericana, Recintro Metro A Guide to SQL, Seventh Edition A


Descargar ppt "Prof. Nelliud D. Torres SQL - Introductorio - DDL"

Presentaciones similares


Anuncios Google