6.1. Introducción. Guía 5. SQL.

Documentos relacionados
Creación de Vistas. Copyright Oracle Corporation, All rights reserved.

Unidad. Lenguaje SQL. (Structured Query Language)

Restricción y Clasificación de los Datos. Copyright Oracle Corporation, All rights reserved.

CONTROL DE ACCESO. curso 2008

2. Distinguir entre los comandos SQL*Plus y las sentencias SQL. 3. Consultar la estructura de una tabla, por ejemplo emp.

Administración de Oracle 9i. Existen alrededor de 126 privilegios del sistema, a continuación vemos los más destacados

Subconsultas Multi-Columna. Copyright Oracle Corporation, All rights reserved.

Administración de usuarios en Oracle - Administración de Oracle - Orasite.com

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

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

Informática Básica Práctica Tema 3 Ejercicios de SQL

Tema 5. Lenguaje de Definición de Datos

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

LENGUAJE DE CONSULTA ESTRUCTURADO (SQL)

Seguridad en SQL Server 2005

Subconsultas. Copyright Oracle Corporation, All rights reserved.

1. Lenguaje de Definición de Datos. 2. Lenguaje de Manipulación de. Datos. M. C. Gustavo Alfonso Gutiérrez Carreón

Tema 4. Manipulación de datos con SQL

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

Tema 33. El lenguaje SQL

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

8 SQL SERVER 2008 RA-MA

Unidad III. Bases de Datos

Bases de Datos Ejercicios de SQL

8 MICROSOFT SQL SERVER 2008 R2. CURSO PRÁCTICO RA-MA

LENGUAJE DE MANIPULACIÓN DE DATOS (DML) CONSULTA DE DATOS

Desarrollo Web en Entorno Servidor

ÍNDICE. Introducción... Capítulo 1. Características, instalación, inicio y entorno de trabajo... 1

Bases de Datos I Práctica 1 Ejercicios de SQL

Introducción a SQL sobre Oracle

Vistas en InformiX Sistemas de Bases de Datos II EMT CETP A/S Leonardo Carámbula

Visualización de Datos a partir de Varias Tablas. Copyright Oracle Corporation, All rights reserved.

5 Objetos de base de datos

Pre-Taller Gestión de Privilegios de Usuarios 2. Manipulación de Vistas 3. Creación y manipulación de Triggers (Introducción al uso de PL/pgsql)

ÍNDICE INTRODUCCIÓN...17

CONCEPTOS DE PROCESAMIENTO DE TRANSACCIONES

DISPARADORES EN SQL DISPARADORES EN SQL:1999 SINTAXIS GENERAL DE UN DISPARADOR EN SQL:1999 SINTAXIS GENERAL DE UN DISPARADOR EN SQL:1999

SQL (Structured Query Language)

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

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

Ampliación de Bases de Datos Práctica 1: El lenguaje PL/SQL de Oracle Sesión 1: Introducción al PL/SQL

BASES DE DATO TO I VISTAS curso 2008

ÍNDICE PRIMERA PARTE... 17

Sistemas de Bases de Datos II ITS / ITSB EMT CETP

GBD Diseño físico de DDBB

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

UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDES

Concepto de vista. (con ciertas limitaciones). nivel físico) Una vista es una tabla virtual (no tiene una correspondencia a

Consultas con combinaciones

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

Escritura Básica de Sentencias SQL. Copyright Oracle Corporation, All rights reserved.

Base de Datos Oracle 10g: Introducción a SQL Código: D Duración: 5 días (40 horas)

ADMINISTRACION DE BASES DE DATOS EN ORACLE

Grupo Kybele, Pág. 1

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

Asignatura: Administración de Bases de Datos

8 ACCESS CURSO PRÁCTICO RA-MA

Integridad Referencial. Restricciones (constraints)

SQL Server FEMEPA SQL Server 2000

EL ENTORNO DE TRABAJO SQL ORACLE

SQL Los fundamentos del lenguaje

SUBPROGRAMAS PL/SQL César Martínez C. Profesor Instructor de Base de Datos Sede Puente Alto DUOC

FIREBIRD: ADMINISTRACIÓN Y SEGURIDAD

Integridad y Seguridad. Integridad y Seguridad. Restricción de Dominio. Protección. Índice. create domain. Dominios

INDICE Primera Parte. Panorámica general de SQL 2. Rápido repaso de SQL 3. SQL en Perspectiva

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

ORACLE 10g. Descripción A QUIEN VA DIRIGIDO?

CREACIÓN, SUPRESIÓN Y MODIFICACIÓN DE TABLAS.

PROGRAMAS DE ESTUDIO FORMATO 7 INTRODUCCIÓN A SQL. Área de Formación Profesional

Manipulación de Datos. Copyright Oracle Corporation, All rights reserved.

Aplicaciones de las vistas Concepto de vista Vistas en SQL Vistas en SQL.

Seguridad en Bases de Datos

El catalogo del sistema. Bibliografía: Introducción a los Sistemas de Bases de Datos Date, C.J.

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

Base de datos Lenguaje SQL

MANUAL BÁSICO DE ORACLE

11. Seguridad en sistemas de bases de datos

El lenguaje SQL III: Creación de bases de datos y seguridad. Introducción

Escribiendo sentencias básicas de SQL

Tutorial de SQL - El comando SELECT

UNIVERSIDAD NACIONAL DE SAN AGUSTÍN FACULTAD DE PRODUCCIÓN Y SERVICIOS ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS LABORATORIO DE BASES DE DATOS 1

Base de datos relacional

ÍNDICE. Introducción... XVII. Capítulo 1. Oracle 10g y el Grid Computing... 1

ÍNDICE. Introducción... Capítulo 1. Novedades de Access

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

Diseño de bases de datos Práctica-1 Definición de datos

Cursores Explícitos. Copyright Oracle Corporation, All rights reserved.


SISTEMA DE DATOS CURSO: ERNESTO CHINKES FACULTAD DE CIENCIAS ECONOMICAS UNIVERSIDAD DE BUENOS AIRES GUIA: SQL GUIA DE SQL

Introducción al lenguaje SQL

Access SQL: DDL y DML. Una empresa de Ingeniería precisa una base de datos para la gestión de sus proyectos.

Oracle Database: Introducción a SQL

Se considera a Oracle como uno de los sistemas de bases de datos más completos, destacando su:

Practicas de BB. DD. ORACLE

GUIA DE SQL DDL (DATA DEFINITION LANGUAGE) DML (DATA MANIPULATION LANGUAGE) Agosto de 2008 AUTORES:

APÉNDICE SQL (Structures Query Language)

Objetivos y Temario CURSO MySQL 5

Sistemas de Datos Curso: Ernesto Chinkes. Sistemas de Datos. Niveles de Control de acceso. Criptografía. Aspectos legales y éticos.

RESTRICCIONES DE DOMINIOS

Bases de Datos 2. Teórico

Transcripción:

6.1. Introducción. Guía 5. SQL. 1

6.2. Lenguaje de Definición de Datos (Data Definition Language DDL-). 2

3

4

5

------------------------------------------------------------------------------------------------------------------------- 6

7

------------------------------------------------------------------------------------------------------------------------- 8

9

6.3. Lenguaje de Manipulación de Datos (Data Manipulation Language DML-). ------------------------------------------------------------------------------------------------------------------------- 10

------------------------------------------------------------------------------------------------------------------------- 11

----------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------- 12

13

----------------------------------------------------------------------------------------------------------------------- 14

----------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------- 15

------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------ 16

------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------ ----------------------------------------------------------------------------------------------------------------------- 17

6.4. Consultas. Guía 5. SQL. ----------------------------------------------------------------------------------------------------------------------- 18

----------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------- 19

----------------------------------------------------------------------------------------------------------------------- 20

----------------------------------------------------------------------------------------------------------------------- 21

----------------------------------------------------------------------------------------------------------------------- 22

----------------------------------------------------------------------------------------------------------------------- 23

----------------------------------------------------------------------------------------------------------------------- 24

----------------------------------------------------------------------------------------------------------------------- 25

26

----------------------------------------------------------------------------------------------------------------- 27

28

29

30

31

--------------------------------------------------------------------------------------------------------------------- Ejemplo: Obtener, de la tabla inmediatamente anterior, el id del departamento, el nombre y el sueldo del empleado con mayor salario y del empleado con el menor salario (en una sola consulta). SELECT deptno, ename, sal FROM EMP WHERE sal in (select max(sal) from emp) OR sal in (select min(sal) from emp); deptno ename sal 10 KING 5000 20 SMITH 800 32

33

34

35

Cláusula HAVING con subconsulta Guía 5. SQL. Ejemplo: Consultar los departamentos donde el empleado que menos salario recibe, gana más que el de menor sueldo del departamento 30. Los datos completos son estos: empno ename job sal deptno 7839 KING PRESIDENT 5000 10 7698 BLAKE MANAGER 2850 30 7782 CLARK MANAGER 2450 10 7566 JONES MANAGER 2975 20 7654 MARTIN SALESMAN 1250 30 7499 ALLEN SALESMAN 1600 30 7844 TURNER SALESMAN 1500 30 7900 JAMES CLERK 950 30 7521 WARD SALESMAN 1250 30 7902 FORD ANALYST 3000 20 7369 SMITH CLERK 800 20 7788 SCOTT ANALYST 3000 20 7876 ADAMS CLERK 1100 20 7934 MILLER CLERK 1300 10 Identifiquemos primero cual es el menor salario del departamento 30 Y ahora se usará como subconsulta y su resultado es el parámetro de comparación para la consulta externa: 36

Las vistas sirven para: Restringir el acceso a los datos. Mostrar sólo algunas columnas o filas de una tabla a determinados usuarios. Hacer las consultas complejas más fáciles de usar para los usuarios. Hacer una vista que oculte una consulta que reúne (join) varias tablas. Presentar diferentes vistas de los mismos datos. 37

SINTAXIS PARA LA CREACIÓN DE VISTAS Guía 5. SQL. CREATE [OR REPLACE] [FORCE NOFORCE] VIEW [Esquema]Vista [ (AliasColumna[, AliasColumna] ) ] AS SubConsulta [WITH CHECK OPTION [CONSTRAINT Nombre] ] [WITH READ ONLY [CONSTRAINT Nombre] ] OR REPLACE FORCE NO FORCE [Esquema]Vista AliasColumna SubConsulta: WITH CHECK OPTION WITH READ ONLY Nombre borra y re-crea la vista si ésta ya existe en la base de datos. Crea la vista así las tablas base no existan o el SELECT tenga errores de compilación. Crea la vista sólo si las tablas base existen y el SELECT no tiene errores de compilación. Nombre de la vista y el esquema en el que se va a crear, por defecto el esquema del usuario que ejecuta la sentencia. Son los nombres que se le van a asignar a las columnas de la vista. Debe existir una correspondencia uno a uno entre los Alias y las columnas proyectadas en la cláusula SELECT de la SubConsulta. Es una sentencia SELECT con todas las cláusulas conocidas (SELECT,FROM,WHERE,GROUPBY,HAVING, ), pero no se recomienda la cláusula ORDERBY, ésta última se utiliza cuando se consulta la vista. Define que solo las filas que se pueden acceder a través de la vista, pueden ser insertadas o modificadas. Define que NO se pueden hacer operaciones DML sobre la vista. Es el nombre de la restricción que asigna el usuario. 38

39

40

NEGAR OPERACIONES DML SOBRE UNA VISTA (CLÁUSULA WITH READ ONLY) 41

BORRADO DE VISTAS 42

VISTAS EN LÍNEA Es una subconsulta con nombre (alias) que se puede usar dentro de una sentencia SQL No es un objeto del esquema 43

6.5. Lenguaje de Control de Datos (Data Control Language DCL-). Un Lenguaje de Control de Datos es un lenguaje proporcionado por el Sistema de Gestión de Base de Datos que incluye una serie de comandos SQL que permiten al administrador controlar el acceso a los datos contenidos en la Base de Datos. GRANT: Permite dar permisos a uno o varios usuarios o roles para realizar tareas determinadas. REVOKE: Permite eliminar permisos que previamente se han concedido con GRANT. PRIVILEGIOS En general, los privilegios se asignan del siguiente modo: 1) Un usuario que crea una tabla o cualquier otro objeto de la base de datos es el propietario y se le garantizan automáticamente todos los privilegios aplicables a dicho objeto, con la posibilidad de darles también a otros usuarios dichos privilegios (privilegio de concesión). 2) Un usuario que tenga un privilegio y posea además un privilegio de concesión puede asignarle tal privilegio a otro usuario y pasarle también el privilegio de concesión. 3) Los privilegios los concede quien tiene el permiso (es decir el propietario del objeto y quien tiene el privilegio de concesión) mediante la orden GRANT, y los revoca mediante la orden REVOKE. Los privilegios son de dos tipos: System Privileges (Privilegios del Sistema). Son normalmente otorgados por el Administrador de la Base de Datos a los usuarios. Ejemplos de estos privilegios: CREATE SESSION, CREATE TABLE, CREATE USER, CREATE ROL, etc. Object privileges (Privilegios de Objetos). Son privilegios sobre objetos tales como tablas, vistas, procedimientos, etc. Estos privilegios son otorgados por el propietario del objeto. GRANT - Privilegios de objetos La sintaxis de la orden GRANT es la siguiente: GRANT privilegios ON objeto TO usuario [ WITH GRANT OPTION ] Esto asigna al usuario una serie de privilegios sobre el objeto especificado. La privilegios asignables y combinables entre sí son los siguientes: SELECT INSERT UPDATE[(nombre_columna)] DELETE REFERENCES[ (nombre_columna)] ALTER INDEX ALL Privilegio para acceder a todas las columnas de una tabla o de una vista a través de la sentencia select. Adicionar nuevas filas a la tabla con la sentencia insert. Si se especifica la opción nombre_columna, se trata del privilegio para actualizar el valor en la columna indicada. Si no se coloca, permite actualizar el valor de todas las columnas incluidas. Privilegio para eliminar filas de una tabla. Otorga permiso de crear una referencia de llave foránea a la tabla especificada. Si se indican una o más columnas, el permiso es válido sólo en la referencia de llave foránea a las columnas especificadas. Otorga permiso para cambiar la definición <esquema> de la tabla. Otorga permiso para crear un índice sobre la tabla. Otorga todos los privilegios sobre la tabla. 44

Ejemplos: Guía 5. SQL. GRANT SELECT, INSERT, UPDATE (nombre) ON Persona TO jtimana WITH GRANT OPTION Le asigna al usuario jtimana los privilegios de SELECT e INSERT sobre todas las columnas de la tabla Persona y el de UPDATE sobre la columna nombre de dicha tabla. Si está presente la opción WITH GRANT OPTION, se asigna además el privilegio de concesión, que permite al usuario transferir o asignar posteriormente los privilegios que se les han asignado a otros usuarios. GRANT ALL ON Persona TO jtimana Otorga todos los privilegios sobre la tabla Persona al usuario indicado. GRANT SELECT ON EMP TO PUBLIC Otorga privilegios de consulta sobre la tabla EMP a todos los usuarios de la base de datos. GRANT UPDATE(CIUNOMBRE), INSERT(CIUID,CIUNOMBRE) ON CIUDAD TO jtimana Otorga privilegios de actualización solo sobre el nombre de la ciudad y permite insertar sobre las columnas descritas. GRANT EXECUTE ON PROCEDURE proc TO maria Otorga privilegios de ejecución del procedimiento proc a María. REVOKE Para quitarles los privilegios a los usuarios se usa REVOKE: REVOKE [GRANT OPTION FOR] privilegios ON objeto FROM usuario { RESTRICT CASCADE } privilegios, objeto y usuario tienen el mismo significado que las correspondientes opciones de GRANT. La opción GRANT OPTION FOR revoca el privilegio de concesión. Si se especifica la cláusula RESTRICT, la orden REVOKE puede fallar si el usuario al que se le han revocado los privilegios se los ha concedido posteriormente a otros. Si está presente la cláusula CASCADE, la instrucción se completará siempre con éxito y se revocarán también los privilegios de esos usuarios y de todos aquellos a quienes a su vez se les han concedido (... y así hasta que no haya más privilegios "abandonados", es decir concedidos sin que quien los haya concedido los posea todavía). Se destruirán, además, los objetos de la base de datos construidos gracias a dichos permisos. PRIVILEGIOS DEL SISTEMA GRANT CREATE SESSION, CREATE TABLE, CREATE VIEW, CREATE PROCEDURE, CREATE SYNONYM, ALTER TABLE, ALTER VIEW, ALTER PROCEDURE, ALTER SYNONYM, DROP TABLE, DROP VIEW, DROP PROCEDURE, DROP SYNONYM TO programador 45

ROLES Guía 5. SQL. Un rol es un grupo de privilegios. Un rol es muy útil particularmente en situaciones donde un número de usuarios deben tener el mismo conjunto de privilegios. Por ejemplo, jtimana, lacosta, jlopez, mmejia son usuarios de la BD. A estos usuarios se desea otorgarles privilegios de consulta y actualización sobre la tabla EMP y privilegios de consulta y eliminación sobre la tabla DEPT. Para hacer esto, primero creamos un rol con la siguiente sentencia: CREATE ROLE FUNCIONARIOS Luego otorguemos privilegios a este rol: GRANT SELECT,UPDATE ON EMP TO FUNCIONARIOS ; GRANT SELECT,DELETE ON DEPT TO FUNCIONARIOS ; Ahora, otorgue el rol Funcionarios a los empleados: GRANT FUNCIONARIOS TO jtimana, lacosta, jlopez, mmejia Ahora, estos usuarios tienen todos los privilegios otorgados al rol Funcionarios. Suponga ahora, que tiempo más adelante se requiere otorgar privilegio de eliminación a la tabla EMP. GRANT DELETE ON EMP TO FUNCIONARIOS De forma automática todos los usuarios de este rol tendrán dicho privilegio. De igual manera si desea revocar un privilegio: REVOKE UPDATE ON EMP FROM FUNCIONARIOS Para borrar un rol: DROP ROLE FUNCIONARIOS; ------------------------------------------------- FIN DEL DOCUMENTO 46