Está en la página 1de 20

Ttulo original: Curso de SQL para Oracle 10g

2009, Antoln Muoz Chaparro


ISBN Edicin digital (pdf): 978-84-613-6028-4

PREFACIO

Este libro, refunde gran parte del material utilizado durante aos, e impartido en
diversas academias de formacin y empresas privadas, sirviendo de referencia y
ayuda a quien quiera iniciar un aprendizaje en el lenguaje SQL, o mejorar el nivel de
conocimientos sobre el mismo.
La informacin que encontrar en este curso, se encuentra actualizada hasta la
versin 10g Rel 2., de la base de datos de Oracle.
Pensando en un amplio sector de la poblacin que no puede acudir de forma
presencial a la distinta oferta formativa que se ofrece para este lenguaje, este
documento aporta cmodamente un curso planificado, con un pautado ritmo de
aprendizaje y que siempre servir como gua de referencia para posteriores consultas.
Antoln Muoz Chaparro.

Curso SQL para Oracle 10G

NDICE
CAPITULO 1 .................................................................................... 9
Conceptos de Base de Datos Relacionales ................................................ 9
Qu es una Base de Datos?................................................................................................ 9
Qu significa Base de Datos Relacional?.......................................................................... 10
Introduccin al Modelo Relacional ....................................................................................... 10
Relacin entre elementos de Base de Datos y elementos del Modelo Relacional ............. 12
Composicin de un ndice.................................................................................................... 12
Creacin de un diagrama relacional .................................................................................... 13
Reglas para la creacin de claves ajenas ........................................................................... 15
Operaciones de consulta ..................................................................................................... 16
Operacin de Seleccin ....................................................................................................... 16
Operacin de Proyeccin..................................................................................................... 16
Operacin de Unin ............................................................................................................. 17
Operacin de Interseccin ................................................................................................... 17
Operacin de Diferencia ...................................................................................................... 17
Operacin de Producto Cartesiano...................................................................................... 18
Operacin de Join ................................................................................................................ 18

CAPITULO 2 .................................................................................. 21
Introduccin al lenguaje SQL..................................................................... 21
Introduccin.......................................................................................................................... 21
Historia de SQL.................................................................................................................... 21
SQL Standard ...................................................................................................................... 22
Beneficios de SQL ............................................................................................................... 25
Estructura del lenguaje SQL ................................................................................................ 25
Sublenguaje DDL ................................................................................................................. 26
Sublenguaje DML................................................................................................................. 26
Sublenguaje de Control de Transacciones .......................................................................... 26
Sublenguaje de Control de Sesin ...................................................................................... 26
Sublenguaje de Control del Sistema.................................................................................... 27
Convenciones lxicas .......................................................................................................... 27

CAPITULO 3 .................................................................................. 29
Elementos de SQL....................................................................................... 29
Introduccin.......................................................................................................................... 29
Literales o valores constantes.............................................................................................. 29
Textos................................................................................................................................... 29
Enteros ................................................................................................................................. 31
Nmeros............................................................................................................................... 31
Tipos de datos...................................................................................................................... 32
Tratamiento de valores nulos............................................................................................... 33
Pseudocolumnas.................................................................................................................. 34
Comentarios ......................................................................................................................... 36
Objetos de la base de datos ................................................................................................ 36
Nombres de objeto y calificadores....................................................................................... 37
Referenciando a esquemas de objetos ............................................................................... 39
Referenciando a bases de datos remotas ........................................................................... 39

CAPITULO 4 .................................................................................. 43
Tipos de datos en profundidad. ................................................................. 43
Tipos numricos................................................................................................................... 43
Tipos de carcter ................................................................................................................. 44
Tipos de datos de fecha....................................................................................................... 45
Tipos ROWID ....................................................................................................................... 46
Tipos Booleanos .................................................................................................................. 47
Tipos LOB ............................................................................................................................ 47
Tipos compuestos ................................................................................................................ 47
Material del curso actualizado hasta la versin de Oracle 10g Rel 2.
Contenidos del curso elaborados por: Antoln Muoz Chaparro.

Curso SQL para Oracle 10G


Tipos de referencia .............................................................................................................. 48

CAPITULO 5 .................................................................................. 49
Gestin de usuarios. ................................................................................... 49
Gestin de usuarios ............................................................................................................. 49
Modos de conectarse a la base de datos con cualquier usuario......................................... 49
Privilegios asociados a los modos de conexin a la base de datos .................................... 50
Como se arranca y se para una base de datos mediante comandos ................................. 50
Creacin de un usuario ........................................................................................................ 52
Gestin de roles o papeles de usuario ................................................................................ 52
Gestin de privilegios sobre objetos de la Base de Datos .................................................. 54
Anulacin de privilegios y roles............................................................................................ 56
Borrar un usuario ................................................................................................................. 56
Usuario PUBLIC................................................................................................................... 56

CAPITULO 6 .................................................................................. 59
El lenguaje DDL. .......................................................................................... 59
Introduccin.......................................................................................................................... 59
Creacin de una tabla (CREATE TABLE) ........................................................................... 59
Integridad Referencial .......................................................................................................... 68
Alteracin del contenido de una tabla. (ALTER TABLE) ..................................................... 71
Borrado de una tabla. (DROP TABLE). ............................................................................... 83
Manejo de ndices ................................................................................................................ 85
Manejo de vistas .................................................................................................................. 89
Creacin de secuencias....................................................................................................... 93
Cmo se maneja la secuencia ............................................................................................. 94

CAPITULO 7 .................................................................................. 97
El lenguaje DML (Introduccin).................................................................. 97
Introduccin.......................................................................................................................... 97

CAPITULO 8 .................................................................................. 99
El lenguaje DML (Insercin de datos)........................................................ 99
Introduccin.......................................................................................................................... 99
Insercin de datos (INSERT) ............................................................................................... 99

CAPITULO 9 ................................................................................ 103


El lenguaje DML (Consulta de datos). ..................................................... 103
Introduccin........................................................................................................................ 103
Consulta de datos (SELECT)............................................................................................. 103
Consultas bsicas .............................................................................................................. 104
Ordenar los registros.......................................................................................................... 104
Consultas con predicado.................................................................................................... 105
El Concepto de Alias.......................................................................................................... 106
Criterios de Seleccin ........................................................................................................ 106
Funciones de conversin ................................................................................................... 110
Modificadores para las funciones de conversin ............................................................... 111
Funciones de caracteres.................................................................................................... 113
Funciones de nmero ........................................................................................................ 118
Funciones de fecha............................................................................................................ 123
Funciones de sesin .......................................................................................................... 124
Funciones de agrupamiento............................................................................................... 126
Agrupamiento de registros ................................................................................................. 128
Recuperacin jerrquica. ................................................................................................... 129
Tratamiento de nulos ......................................................................................................... 131
La funcin NVL................................................................................................................... 133
Subconsultas...................................................................................................................... 134
Consultas JOIN .................................................................................................................. 138

CAPITULO 10 .............................................................................. 141


El lenguaje DML (Actualizacin de datos)............................................... 141
Introduccin (Comando UPDATE)..................................................................................... 141
Actualizacin general. ........................................................................................................ 142
Material del curso actualizado hasta la versin de Oracle 10g Rel 2.
Contenidos del curso elaborados por: Antoln Muoz Chaparro.

Curso SQL para Oracle 10G


Actualizacin con criterios.................................................................................................. 142
Actualizacin mediante SELECT. ...................................................................................... 143
Actualizacin devolviendo valores a variables................................................................... 143

CAPITULO 11 .............................................................................. 145


El lenguaje DML (Borrado de datos)........................................................ 145
Introduccin (Comando DELETE) ..................................................................................... 145
Borrado general. ................................................................................................................ 146
Borrado con criterios. ......................................................................................................... 146
Borrado devolviendo valores a variables. .......................................................................... 146

CAPITULO 12 .............................................................................. 147


Certificaciones de Oracle ......................................................................... 147
Introduccin a las Certificaciones de Oracle...................................................................... 147
Certificaciones de Oracle disponibles................................................................................ 147
Informacin sobre el proceso de obtencin de la Certificacin. ........................................ 153
Preguntas tipo Examen de Certificacin en SQL............................................................... 154

ANEXO I ....................................................................................... 177


Resolucin de Supuestos Prcticos ....................................................... 177
Supuesto Prctico 0 ........................................................................................................... 177
Supuesto Prctico 1 ........................................................................................................... 182
Supuesto Prctico 2 ........................................................................................................... 186
Supuesto Prctico 3 ........................................................................................................... 187
Supuesto Prctico 4 ........................................................................................................... 190
Supuesto Prctico 5 ........................................................................................................... 191
Supuesto Prctico 6 ........................................................................................................... 192
Supuesto Prctico 7 ........................................................................................................... 193
Supuesto Prctico 8 ........................................................................................................... 194
Supuesto Prctico 9 ........................................................................................................... 196
Supuesto Prctico 10 ......................................................................................................... 214
Supuesto Prctico 11 ......................................................................................................... 216
Supuesto Prctico 12 ......................................................................................................... 218

ANEXO II ...................................................................................... 231


Resolucin Cuestiones de Certificacin ................................................. 231

ANEXO III ..................................................................................... 253


Referencias, enlaces y material anexo en Internet................................. 253
Referencias utilizadas para el curso .................................................................................. 253
Enlaces Oracle ................................................................................................................... 253
Material anexo en Internet para mejor aprovechamiento del Curso.................................. 254

Material del curso actualizado hasta la versin de Oracle 10g Rel 2.


Contenidos del curso elaborados por: Antoln Muoz Chaparro.

Curso SQL para Oracle 10G

Material del curso actualizado hasta la versin de Oracle 10g Rel 2.


Contenidos del curso elaborados por: Antoln Muoz Chaparro.

Curso SQL para Oracle 10G

CAPITULO 1

Conceptos de Base de Datos Relacionales


Qu es una Base de Datos?
Es un conjunto de informacin almacenada en una estructura de ficheros en disco, y
que ser consultada y modificada por los usuarios que acceden a la misma, siendo el
Sistema Gestor de Base de Datos (SGBD), el encargado de llevar fsicamente a cabo
estas operaciones.

Grficamente, una base de datos se representa con


un cilindro.
Dentro del mismo, se ubicara la informacin que
contenga la misma.

El proceso de consulta de una base de datos


quedara representado con esta figura, donde
un usuario lanza desde su ordenador una
sentencia (select * from tabla), contra la base
de datos.

La base de datos convierte la lgica de la


sentencia lanzada por el usuario, en una
bsqueda fsica de la informacin dentro de
la base de datos. Para ello, tendr que
acceder a los ndices que contenga la tabla
consultada, para ubicar la zona fsica del
disco donde se encuentra la informacin.

Material del curso actualizado hasta la versin de Oracle 10g Rel 2.


Contenidos del curso elaborados por: Antoln Muoz Chaparro.

Curso SQL para Oracle 10G

Completada la bsqueda de la informacin fsica, el SGBD devuelve la informacin al


usuario de forma estructurada, segn el tipo de consulta que haya realizado.

Qu significa Base de Datos Relacional?


Cuando hablamos de base de datos, tendemos a unir el concepto relacional a su
significado, pero realmente; Qu significa base de datos relacional? Y Cundo
podemos considerar a una base de datos como Relacional?

Una base de datos Relacional, es aquella que se fundamenta o utiliza las teoras
del modelo relacional de Codd.

Oracle implementa el modelo relacional en sus SGBD desde su primera versin.


Actualmente, ha extendido este modelo (sin abandonarlo) para aadir
funcionalidades de los entornos orientados a objeto.

Otros SGBD que utilizan el modelo relacional son SQLSERVER y SYSBASE.

Introduccin al Modelo Relacional


En este apartado se hace una breve descripcin del funcionamiento del Modelo
Relacional.

El Modelo Relacional fue enunciado por Codd a finales de los aos 60.

Est basado en la teora de las relaciones, donde se contemplan como elementos


principales: las Entidades y Relaciones.

El elemento bsico es la Relacin: nexo entre 2 o ms entidades.

Material del curso actualizado hasta la versin de Oracle 10g Rel 2.


Contenidos del curso elaborados por: Antoln Muoz Chaparro.

10

Curso SQL para Oracle 10G

Otros elementos del Modelo son: Entidades, Atributos, Tuplas y Dominios.


o Una Entidad es un objeto del mundo real que tiene inters para el sistema
y del cual se puede extraer una serie de atributos. Ejemplos de entidades
son: casa, coche, oficina, hospital, persona, etc
o Un Atributo es la caracterstica o propiedad que define una entidad, y que
la diferencia de otra. Ejemplos de atributos para la entidad casa seran:
ubicacin, nmero de habitaciones, metros cuadrados, etc
o Una Tupla es la unin de todos los atributos de una entidad, en una sola
estructura independiente. Un ejemplo de Tupla sera: Pepito, Perez, 26, C/
Madrid, 913332211.
o Un Dominio es un conjunto de valores que puede adoptar un atributo de
una entidad. Ejemplo de un dominio para el atributo metros cuadrados de
una casa sera: Entre 1 m2 y 30 m2, entre 31 m2 y 60 m2, entre 61 m2 y 100
m2, > 100 m2.

En el Modelo Relacional, se consideran 3 tipos de claves: primarias, alternativas y


ajenas.
o Una Clave es un conjunto de valores de una entidad, que distingue
unvocamente esta informacin de otro conjunto de valores de la misma
entidad. Por ejemplo, si consideramos una entidad alumno, que incluya
como atributos: el dni y el nombre del alumno, la clave de la misma sera el
dni, dado que es el nico dato que hace diferenciar un alumno de otro.
o Una Clave Primaria corresponde con el/los atributos de una entidad cuyo
conjunto de valores distingue unvocamente una tupla de otra.
o Una Clave Alternativa es aquel atributo o conjunto de atributos, que
podran haber formado una clave primaria, pero que al ya existir una, no
pueden hacerlo.
o Una Clave Ajena es aquel atributo o conjunto de atributos de una entidad
que se relaciona con la clave primaria de otra entidad.

En el Modelo Relacional se permite la determinacin de restricciones sobre los


atributos de una entidad.
o Una Restriccin se define sobre un atributo, y consiste en una limitacin
que se le aplica al mismo. Una clave es por definicin, una restriccin que
limita la repeticin de valores para la clave. As mismo, un dominio definido
sobre un atributo, tambin los es, porque limita los valores que se pueden
almacenar para el mismo.

Para el paso del modelo conceptual (Entidad / Relacin) al Modelo Relacional y


modelo fsico de construccin, se utilizarn teoras de normalizacin y conversin a
elementos propios de base de datos: tablas, columnas, ndices y constraints.

Por ltimo, el Modelo Relacional enumera una serie operaciones para la


manipulacin de la informacin.

Material del curso actualizado hasta la versin de Oracle 10g Rel 2.


Contenidos del curso elaborados por: Antoln Muoz Chaparro.

11

Curso SQL para Oracle 10G

Relacin entre elementos de Base de Datos y elementos del


Modelo Relacional
Para poder utilizar el Modelo Relacional (diagrama de Entidad/Relacin) en un SGBD
es necesaria la conversin de los elementos del modelo relacional, a elementos
propios de una base de datos relacional.
A continuacin se muestra una tabla con la conversin de los elementos:
Modelo Conceptual Entidad /
Relacin (Modelo Relacional)
Entidades
Atributos
Tuplas
Dominios
Claves

Base de datos
Tablas
Columnas
Filas
Restricciones
Restricciones e ndices.

Una Tabla es un conjunto de filas y columnas donde se almacena la informacin.

Una Columna representa un nico valor o atributo de una tabla.

Una Fila representa la unin de un conjunto de valores repartidos entre las


columnas de la tabla.

Una Restriccin es aquella limitacin que se impone a los valores que pueda
llegar a tomar una columna de una tabla. As mismo, se pueden imponer
restricciones a nivel de toda la tabla, usando claves.

Un ndice es una estructura de acceso rpido que utiliza el SGBD para localizar
ms rpido la informacin fsica contenida en la base de datos.

Composicin de un ndice
Un ndice se crea para poder acceder a la informacin fsica de manera ms rpida
por parte del SGBD.

Un ndice se compone de un conjunto de columnas que son la clave de acceso a


travs del ndice + la identificacin de la posicin fsica dentro del fichero, donde se
encuentra la fila para recuperar la informacin correspondiente.

Clave buscada Indice.


3511
Posicion
00199AAA
00198FFF
31233FFF

Clave
3509
3510
3511

Fichero.
Posicion
00199AAA
00198FFF
31233FFF

Material del curso actualizado hasta la versin de Oracle 10g Rel 2.


Contenidos del curso elaborados por: Antoln Muoz Chaparro.

Informacin
Pepe
Juan
Jose

Tabla.
Clave
3509
3510
3511

Nombre
Pepe
Juan
Jose

12

Curso SQL para Oracle 10G

Creacin de un diagrama relacional


En este apartado se orienta sobre la creacin de un diagrama relacional, los pasos a
seguir, y los elementos a contemplar en el mismo.
La teora del Modelo de Codd parte de la idea de creacin de un diagrama
Entidad/Relacin, donde nicamente se especificarn las Entidades (con sus atributos
clave y no clave), y las Relaciones entre las mismas, especificando cardinalidades y
grado de las relaciones. Este tipo de diagramas queda fuera del estudio de este curso,
no obstante, al final de este apartado se muestra el diagrama Entidad/Relacin del que
se partira, para poder llegar a obtener el Modelo Relacional descrito a continuacin
como prctica de este curso.
El supuesto prctico que se expresa en este apartado, quiere reflejar en un modelo
relacional, la estructura de un comercio que vende productos informticos.
Evidentemente, esta descripcin es muy abierta, por lo que el diagrama que se
propone, podra ser diferente dependiendo de la interpretacin que quiera darle cada
alumno a este enunciado.
Fase 1: En la primera fase del diseo, tenemos que identificar las entidades, sus
atributos, y las restricciones que puedan imponerse sobre los mismos, si las hubiera.

Material del curso actualizado hasta la versin de Oracle 10g Rel 2.


Contenidos del curso elaborados por: Antoln Muoz Chaparro.

13

Curso SQL para Oracle 10G


Fase 2: Identificar las claves primarias y alternativas de todas las entidades.

Ultima fase: Identificar las claves ajenas o relaciones entre los atributos de las
distintas entidades.

Material del curso actualizado hasta la versin de Oracle 10g Rel 2.


Contenidos del curso elaborados por: Antoln Muoz Chaparro.

14

Curso SQL para Oracle 10G


Diseo Entidad/Relacin: Como se ha comentado al comienzo del apartado, un
diseo relacional requiere de un diseo Entidad/Relacin previo. Para nuestro modelo
relacional anterior, el diagrama de Entidad/Relacin sera el siguiente:

Reglas para la creacin de claves ajenas


Para crear una relacin entre entidades o claves ajenas, es necesario que se cumplan
una serie de condiciones:

Que el tipo de dato y tamao entre los atributos coincida.

Que el/los atributos de la entidad a la que llegue la relacin sean clave primaria o
clave nica.

Material del curso actualizado hasta la versin de Oracle 10g Rel 2.


Contenidos del curso elaborados por: Antoln Muoz Chaparro.

15

Curso SQL para Oracle 10G

La relacin con la entidad a la que llega la relacin debe de ser completa (con
todos los atributos que forman la clave primaria de la misma).

Operaciones de consulta
En el Modelo Relacional de Codd se definen las siguientes operaciones de consulta
sobre entidades:

Seleccin
Proyeccin
Unin
Interseccin
Diferencia
Producto cartesiano
Join

Operacin de Seleccin
Esta operacin de consulta, obtiene un conjunto de tuplas de una sola entidad con o
sin condiciones.

Operacin de Proyeccin
Esta operacin de consulta, permite obtener valores de uno o varios atributos de una
sola entidad.

Material del curso actualizado hasta la versin de Oracle 10g Rel 2.


Contenidos del curso elaborados por: Antoln Muoz Chaparro.

16

Curso SQL para Oracle 10G

Operacin de Unin
Para poder realizar una operacin de consulta de unin entre entidades, tiene que
coincidir el nmero de atributos de ambas, y el tipo.
El resultado de esta operacin, es la suma de tuplas de ambas entidades para los
atributos que se unen.

Operacin de Interseccin
Para realizar una operacin de consulta con interseccin entre entidades, tiene que
coincidir el nmero de atributos de ambas, y el tipo.
El resultado de esta operacin, es la aparicin nicamente de las tuplas con el mismo
contenido en ambas entidades.

Operacin de Diferencia
Para realizar una operacin de consulta con diferencia entre entidades, tiene que
coincidir el nmero de atributos de ambas, y el tipo.
El resultado de esta operacin, es la aparicin de aquellas tuplas de la primera entidad
que no coincidan con las tuplas de la segunda.

Material del curso actualizado hasta la versin de Oracle 10g Rel 2.


Contenidos del curso elaborados por: Antoln Muoz Chaparro.

17

Curso SQL para Oracle 10G

Operacin de Producto Cartesiano


La operacin de consulta del Producto Cartesiano, permite obtener un resultado que
ser una tupla por cada combinacin entre cada tupla de la primera entidad, y todas
las tuplas de la segunda.

Operacin de Join
La operacin de consulta Join, permite unir tuplas de dos entidades a travs de algn
atributo en comn.
El resultado de esta operacin, es la suma de los atributos que se quieran mostrar.

SUPUESTO PRCTICO 0: Resolucin en el Anexo I de este manual.


Disear un esquema de modelo Relacional en el que se vean reflejados las
entidades, atributos mnimos, relaciones y las claves primarias, alternativas y
ajenas que considere oportunas, de acuerdo al enunciado que se especifica
a continuacin. Opcionalmente, podr disear, previo al modelo Relacional,
el modelo Entidad Relacin del que se derivara el modelo Relacional.

Representar la estructura de un centro de enseanza, que posee delegaciones en


varias provincias de Espaa.
Ser necesario reflejar para el centro de enseanza los siguientes atributos:
o Codigo de 1 a 99.
o Nombre.
o Direccin.
o Provincia.
o Telfono.
o Cdigo postal.
Para las provincias habr que reflejar:
o Cdigo provincia de 1 a 52
o Nombre.
El cdigo del centro es unvoco y distinto para todos los centros estatales.
En cada centro se imparten una serie de cursos con los siguientes atributos:
o Ccdigo de curso de 1 a 99999.
o Nombre de curso.
o Cdigo del centro donde se imparte.
Cada curso es impartido por una serie de profesores cualificados con los
siguientes atributos:
o Dni.
o Nombre.
o Apellidos.
o Direccin.

Material del curso actualizado hasta la versin de Oracle 10g Rel 2.


Contenidos del curso elaborados por: Antoln Muoz Chaparro.

18

Curso SQL para Oracle 10G

o Telfono.
o Cdigo postal.
o Cdigo de curso.
o Cdigo de centro.
o N de la Seguridad Social.
El cdigo del curso puede repetirse en centros distintos, por lo que no es unvoco.
Un curso de un centro, slo puede ser impartido por un profesor.
Por ltimo, a estos cursos, asisten una serie de alumnos con los siguientes
atributos:
o Dni.
o Nombre.
o Apellidos.
o Direccin.
o Telfono.
o Cdigo postal.
o Codigo curso.
o Cdigo centro.
o Fecha de comienzo del curso.
o Fecha de fin del curso.
Un alumno en un mismo centro, puede asistir a varios curso, pero al mismo curso
slo podr asistir en fechas de comienzo distintas.

Material del curso actualizado hasta la versin de Oracle 10g Rel 2.


Contenidos del curso elaborados por: Antoln Muoz Chaparro.

19

Curso SQL para Oracle 10G

Material del curso actualizado hasta la versin de Oracle 10g Rel 2.


Contenidos del curso elaborados por: Antoln Muoz Chaparro.

20

También podría gustarte