Oracle Básico PL/SQL



Documentos relacionados
Maestría en Bioinformática. Bases de Datos y Sistemas de Información SQL: DDL. Ing. Alfonso Vicente, PMP alfonso.vicente@logos.com.

BASE DE DATOS - CURSO 02/03 PRÁCTICA 2: SQL: Lenguaje de definición de datos (DDL)

EL ENTORNO DE TRABAJO SQL ORACLE

CREATE USER ADMINISTRADOR IDENTIFIED BY ADMIN DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP QUOTA 500K ON USERS;

Constraints (Restricciones) Copyright Oracle Corporation, All rights reserved.

SQL (Structured Query Language)

Restricciones de Integridad

Un nombre de usuario de 30 caracteres o menos, sin caracteres especiales y que inicie con una letra.

6- Combinación de tablas

UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉCNICA DE LA FUERZA ARMADA NACIONAL EXTENSIÓN BARQUISIMETO BARQUISIMETO ESTADO. LARA

Lenguaje para descripción de datos

sql*plus es un programa de linea de comandos de oracle que puede ejecutar comandos sql y pl/sql de forma interactiva o mediante un script.

4- Uso de sentencias para el envió y extracción de datos

Base de Datos Práctica 1.

m047a Curso Programando una Base de Datos SQL Server 2008, 36 h Creación B.D. y Constraints

Formatos para prácticas de laboratorio

3. El catálogo 26. Laboratorio de Bases de Datos

Seguridad de la Información Permisos. Sistemas de Bases de Datos II - ITS EMT - CETP

Consultas con combinaciones

Base de Datos SQL Server

Diseño de bases de datos

- Bases de Datos - - Diseño Físico - Luis D. García

SINTAXIS DE SQL-92. <definición de esquema >::= CREATE SCHEMA <cláusula de nombre de esquema> [ <elemento de esquema>... ]

Si queremos modificar la contraseña de sys, una vez que accedamos al sistema como sys, escribiremos la sentencia:

Creación y Gestión de Tablas. Copyright Oracle Corporation, All rights reserved.

PROYECTO ADMINISTRACIÓN ORACLE ENTERPRISE MANAGER

COMANDOS DE SQL, OPERADORES, CLAUSULAS Y CONSULTAS SIMPLES DE SELECCIÓN

Base de datos I Facultad de Ingeniería. Escuela de computación.

SQL: Lenguaje de definición de datos (DDL) (*) DBMS: DATA BASE MANAGEMENT SYSTEM. SGBD: SISTEMAS GESTOR DE BASE DE DATOS

Lenguaje SQL Página 1 -PARTE III-...3 TEMA 8. CREACIÓN DE VISTAS:...3. Vistas: qué son y para qué sirven?...3. Creación de vistas...

* Size es el tamaño inicial y Filegrowth es el incremento * El size del Primary debe ser 3 veces mayor que el Log necesariamente

Permite definir cada relación que pertenece a la base de datos relacional, incluyendo:

Integridad en sistemas de bases de datos relacionales

Maestría en Bioinformática. Bases de Datos y Sistemas de Información. Diseño Lógico. Ing. Alfonso Vicente, PMP alfonso.vicente@logos.com.

El Manejador de Bases de Datos Relacionales ORACLE

PRÁCTICA III. DISPARADORES EN SQL (II)

Tema: PROCEDIMIENTOS ALMACENADOS.

Grupo Kybele, Pág. 1

Estándares de Programación en ORACLE

Bases de Datos SQL 1 SQL. Jorge Pérez R. Universidad de Talca, II Semestre 2006

Curso de MySQL y Java

Bibliografía. Fundamentos de Sistemas de Bases de Datos (3. edición) Elmasri, Navathe Addisson Wesley 2002

UNIVERSIDAD DEL ISTMO CAMPUS IXTEPEC LIC. INFORMATICA GRUPO 508 PROCEDIMIENTOS ALMACENADOS EN SQL SERVER 2000

Estándar de desarrollo de aplicaciones del Govern de les Illes Balears

Iniciando con Oracle. Índice de contenido. Ingresando a Oracle. Cambiando Su Contraseña. Ingresando un Comando SQL en SQL*Plus

Administración Básica de Oracle9i.

Tutorial de Unity 3D Tema 52 Bases de Datos. Tutorial de Unity 3D. Bases de Datos

PL/SQL. Con PL/SQL vamos a poder programar las unidades de programa de la base de datos Oracle:

GUIA DE LABORATORIO N 9 B. (000Webhost Php- Para desarrollar en casa)

Sistema Gestor de Bases de Datos Relacionales (SGBDR), que maneja distintos tipos de datos:

Dependiendo de las tareas, podemos clasificar las sentencias SQL en dos tipos:

Trabajos de Ampliación. Bases de datos NoSQL.

Comerciales. Comisiones en Documentos de Venta WhitePaper Enero de 2008

Es un lenguaje de consulta estructurado establecido claramente como lenguaje de alto nivel estándar para sistemas de base de datos relacionales.

T12 Vistas y tablas temporales

MANUAL BÁSICO DE ORACLE

Lenguaje de manipulación de datos

Bases de Datos: Structured Query Language (SQL)

CONSULTAS BASICAS EN SQL SERVER

Estándares para la construcción de Sentencias SQL

El Lenguaje SQL TEMA V. Grupo de Bas ses de Datos Avanzadas Univ. Carlo os III de Madrid. V.1 SQL como Lenguaje de Definición de Datos

Unidad. Lenguaje SQL. (Structured Query Language)

Seguridad en SQL Server 2005

Bases de datos relacionales y el modelo entidad-relación

Tema 33. El lenguaje SQL

Otros objetos de Base de Datos

UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDES

Diseño físico de datos. Oracle

[CASI v.0110] Pág. 1

CONTROL DE ACCESO. curso 2008

MANUAL BÁSICO DEL LENGUAJE SQL

Unidad 2 Lenguaje de Definición de Datos (DDL) 2.1 Creación de base de datos. 2.2 Creación de tablas.

CREACION DE USUARIOS EN MY SQL

Usuarios y Seguridad

Paso del E-R a tablas

Nociones de performance

Un ejemplo teórico de trigger podría ser éste:

El usuario puede utilizar esta tabla derivada como una tabla más, en sus consultas.

Ejercicios SQL - Select TutorialesNET Versión Revisión 1 25 de julio de 2015

OBJETIVOS METODOLOGÍA PROCEDIMIENTO 1.- Trabajo con el servidor de bases de datos Sybase

A.1. Definiciones de datos en SQL

Restricciones (constraints) FOREIGN KEY

ADMINISTRACIÓN DE BASE DE DATOS

Introducción a PostgreSQL con PHP

ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA Programación de sitios web Act 11: Reconocimiento de la unidad 3

Tablas y Campos Nuevos

3 GESTIÓN DE TABLESPACES

Formato para prácticas de laboratorio

SQL. (...la guía básica de supervivencia de dmi) Universidad de los Andes Demián Gutierrez Enero

Una vez creada la BD podemos pedirle a MySQL que nos muestre todas las BD existentes. Para eso utilizamos la siguiente instrucción:

RUEDA TORRES DULCE CAROLINA 3CM2. MySQL CON NET BEANS PRÁCTICA 8

Base de Datos LSI y PI Lic. Paola Daniela Budán Lic. Federico Rosenzvaig

PRÁCTICA B2. Definición y modificación de datos en SQL

CONSULTAS CON SQL. 3. Hacer clic sobre el botón Nuevo de la ventana de la base de datos. Aparecerá el siguiente cuadro de diálogo.

Tema: Mineria de datos.

SQL. Orígenes y Evolución

Lenguaje SQL para Novatos

FIREBIRD: LENGUAJE DE DEFINICIÓN DE DATOS

6. Integridad en Sistemas de Bases de Datos Relacionales

RESTRICCIONES DE DOMINIOS

Transcripción:

Oracle Básico PL/SQL Creación de un Esquema de Base de Datos El objetivo de este ejercicio es la ejecución de sentencia SQL de tipo DDL. Contenido Caso a Desarrollar...2 Modelo Lógico... 2 Modelo Físico... 2 Creación del Usuario para el Esquema...3 Creación del Usuario... 3 Asignar Privilegios... 3 Creación de Tablas...4 Tabla Curso... 4 Tabla Alumno... 4 Tabla Matricula... 5 Tabla Pago... 5 Restricción Primary Key (PK)...6 Tabla Curso... 6 Tabla Alumno... 6 Tabla Matricula... 7 Tabla Pago... 7 Restricción Foreign Key (FK)...8 Tabla Matricula... 8 Tabla Pago... 9 Restricción Default (Valores por Defecto)...10 Ejemplo... 10 Restricción NOT NULL (Nulidad de una Columna)...11 Ejemplo... 11 Restricción Unique (Valores Únicos)...12 Ejemplo... 12 Restricción Check (Reglas de Validación)...13 Ejemplo... 13 Asignar Privilegios a Usuarios...14 Ejemplo... 14

Caso a Desarrollar El siguiente modelo trata de una empresa que ofrece cursos de extensión, los participantes tienen la libertad de matricularse sin ninguna restricción, y pueden tener facilidades de pago. Modelo Lógico Modelo Físico Pág. 2 de 14

Creación del Usuario para el Esquema Creación del Usuario Script 1 SQL> conn / as sysdba Connected. SQL> create user uvr1 2 identified by admin; User created. Asignar Privilegios Asignaremos privilegios al usuario uvr1 a través del los roles connect y resource, los cuales le otorgan los privilegios necesarios para que pueda crear sus objetos. Script 2 SQL> grant connect, resource to uvr1; Grant succeeded. Ahora ya podemos ingresar como usuario egcc y crear los objetos que corresponden a su esquema. Pág. 3 de 14

Creación de Tablas Create Table NombreTabla( Columna1 Tipo1 [ NULL NOT NULL ], Columna2 Tipo2 [ NULL NOT NULL ], Columna2 Tipo2 [ NULL NOT NULL ],...... ); Tabla Curso Script 3 SQL> connect uvr1/admin Connected. SQL> CREATE TABLE Curso ( 2 IdCurso CHAR(4) NOT NULL, 3 NomCurso VARCHAR2(40) NOT NULL, 4 Vacantes NUMBER(2) NOT NULL, 5 Matriculados NUMBER(2) NOT NULL, 6 Profesor VARCHAR2(40) NULL, 7 PreCurso NUMBER(8,2) NOT NULL 8 ); Table created. Tabla Alumno Escriba el script para crear la tabla Alumno. Pág. 4 de 14

Tabla Matricula Escriba el script para crear la tabla Matricula. Tabla Pago Escriba el script para crear la tabla Pago. Pág. 5 de 14

Restricción Primary Key (PK) La restricción Primary Key se utiliza para definir la clave primaria de una tabla, en el siguiente cuadro se especifica la(s) columna(s) que conforman la PK de cada tabla. Tabla Curso Alumno Matricula Pago Primary Key Incurso IdAlumno IdCurso, IdAlumno IdCurso, IdAlumno, Cuota Alter Table NombreTabla Add Constraint PK_NombreTabla Primary Key ( Columna1, Columna2,... ); Tabla Curso Script 4 SQL> Alter Table Curso 2 Add Constraint PK_Curso 3 Primary Key ( IdCurso ); Table altered. Tabla Alumno Escriba el script para crear la PK de la tabla Alumno. Pág. 6 de 14

Tabla Matricula Escriba el script para crear la PK de la tabla Matricula. Tabla Pago Escriba el script para crear la PK de la tabla Pago. Pág. 7 de 14

Restricción Foreign Key (FK) La restricción Foreign Key se utiliza para definir la relación entre dos tablas, en el siguiente cuadro se especifica la(s) columna(s) que conforman la FK de cada tabla. Tabla Foreign Key Tabla Referenciada Matricula IdCurso IdAlumno Curso Alumno Pago IdCurso, IdAlumno Matricula Alter Table NombreTabla Add Constraint FK_NombreTabla_TablaReferenciada Foreign Key ( Columna1, Columna2,... ) References TablaReferenciada; Es necesario que en la tabla referenciada esté definida la PK, por que la relación se crea entre la PK de la tabla referenciada y las columnas que indicamos en la cláusula Foreign Key. Tabla Matricula 1ra FK La primera FK de esta tabla es IdCurso y la tabla referenciada es Curso, el script para crear esta FK es el siguiente: Script 5 SQL> Alter table Matricula 2 Add Constraint FK_Matricula_Curso 3 Foreign Key ( IdCurso ) 4 References Curso; Table altered. Pág. 8 de 14

2da FK La segunda FK de esta tabla es IdAlumno y la tabla referenciada es Alumno, escriba usted el script para crear ésta FK. Tabla Pago Esta tabla solo tiene una FK y esta compuesta por dos columnas: IdCurso e IdAlumno, y la tabla referenciada es Matricula, escriba usted el script para crear ésta FK. Pág. 9 de 14

Restricción Default (Valores por Defecto) El Valor por Defecto es el que toma una columna cuando no especificamos su valor en una sentencia insert. Alter Table NombreTabla Modify ( NombreColumna Default Expresión ); Ejemplo El número de vacantes por defecto para cualquier curso debe ser 20. Script 6 SQL> Alter Table Curso 2 Modify ( Vacantes default 20 ); Table altered. Para probar el default insertemos un registro en la tabla curso. Script 7 IDCU NOMCURSO VACANTES MATRICULADOS PROFESOR PRECURSO ---- -------------------------- --------- ------------ ---------------- -------- C001 Oracle - Nivel Inicial 20 10 Genaro Mendez 350 Pág. 10 de 14

Restricción NOT NULL (Nulidad de una Columna) Es muy importante determinar la nulidad de una columna, y es muy importe para el desarrollador tener esta información a la mano cuando crea las aplicaciones. Alter Table NombreTabla Modify ( NombreColumna [NOT] NULL ); Ejemplo En la tabla alumno, la columna Telefono no debe aceptar valores nulos. Script 8 SQL> Alter Table Alumno 2 Modify ( Telefono NOT NULL ); Table altered. SQL> describe alumno Name Null? Type ----------------------------------------- -------- ---------------------------- IDALUMNO NOT NULL NUMBER(5) NOMALUMNO NOT NULL VARCHAR2(40) DIRECCIÓN NOT NULL VARCHAR2(40) TELEFONO NOT NULL VARCHAR2(15) Si queremos insertar un alumno tendríamos que ingresar datos para todas las columnas. Script 9 SQL> insert into alumno 2 values(10001, 'Ricardo', 'Ingeniería', NULL); insert into alumno * ERROR at line 1: ORA-01400: cannot insert NULL into ("UVR1"."ALUMNO"."TELEFONO") El mensaje de error claramente nos indica que no se puede insertar valores nulos en la columna TELEFONO, de la tabla ALUMNO, que se encuentra en el esquema UVR1. Pág. 11 de 14

Restricción Unique (Valores Únicos) En muchos casos debemos garantizar que los valores de una columna ó conjunto de columnas de una tabla acepten solo valores únicos. Alter Constraint NombreTabla Add Constraint U_NombreTabla_NombreColumna Unique ( Columna1, Columna2,... ); Ejemplo No puede haber dos alumnos con nombres iguales. Script 10 SQL> Alter Table alumno 2 Add Constraint U_Alumno_NomAlumno 3 Unique (NomAlumno); Table altered. Para probar la restricción insertemos datos. Script 11 SQL> Insert Into Alumno 2 Values( 10001, 'Galilea', 'San Miguel', '456-3456' ); 1 row created. SQL> Insert Into Alumno 2 Values( 10002, 'Galilea', 'Los Olivos', '521-3456' ); Insert Into Alumno * ERROR at line 1: ORA-00001: unique constraint (UVR1.U_ALUMNO_NOMALUMNO) violated El mensaje de error del segundo insert nos indica que esta violando el constraint de tipo unique de nombre U_ALUMNO_NOMALUMNO en el esquema UVR1. Pág. 12 de 14

Restricción Check (Reglas de Validación) Las reglas de validación son muy importantes por que permiten establecer una condición a los valores que debe aceptar una columna. Alter Table NombreTabla Add Constraint CK_NombreTable_NombreColumna Check ( Condición ); Ejemplo El precio de un curso no puede ser cero, ni menor que cero. Script 12 SQL> Alter Table Curso 2 Add Constraint CK_Curso_PreCurso 3 Check ( PreCurso > 0 ); Table altered. Probemos el constraint ingresando datos. Script 13 SQL> Insert Into Curso 2 Values( 'C002', 'PL/SQL', 20, 7, 'Ricardo', -400.00 ); Insert Into Curso * ERROR at line 1: ORA-02290: check constraint (UVR1.CK_CURSO_PRECURSO) violated Al intentar ingresar un curso con precio negativo, inmediatamente nos muestra el mensaje de error indicándonos que se está violando la regla de validación. Eric Gustavo Coronel Castillo (gcoronel@viabcp.com) Pág. 13 de 14

Asignar Privilegios a Usuarios Si queremos que otros usuarios puedan operar los objetos de un esquema, debemos darle los privilegios adecuadamente. Grant Privilegio On Objeto To Usuario; Ejemplo Por ejemplo, el usuario scott necesita consultar la tabla curso. Script 9.14 SQL> Grant Select On Curso To Scott; Grant succeeded. Ahora hagamos la prueba respectiva. Script 15 SQL> connect scott/tiger Connected. SQL> select * from uvr1.curso; IDCU NOMCURSO VACANTES MATRICULADOS PROFESOR PRECURSO ---- -------------------------- --------- ------------ ---------------- --------- C001 Oracle - Nivel Inicial 20 10 Genaro Mendez 350 Pág. 14 de 14