You are on page 1of 42

Gu prctica de Oracle 10g a a

Introduccin y SQL o Asignatura de Bases de Datos

Jorge Maturana jorge.maturana@inf.uach.cl


Instituto de Informtica, Universidad Austral de Chile a

Segundo semestre 2011

Oracle 10g XE y Oracle Developer SQL bsico a Ms SQL a

Contenido
1

Oracle 10g XE y Oracle Developer Introduccin o Descarga Instalacin o Utilizacin o SQL bsico a Introduccin a SQL o Creacin de una BD o Manipulacin de datos o Consultas a la BD Ms SQL a Vistas Secuencias Sinnimos o
Jorge Maturana Gu Oracle 10g - Intro & SQL a 2

Oracle 10g XE y Oracle Developer SQL bsico a Ms SQL a

Introduccin o Descarga Instalacin o Utilizacin o

Introduccin o
Oracle 10g Express Edition es una edicin gratuita (pero limitada) o del DBMS Oracle, liberada el ao 2005 con propsitos n o promocionales y educativos. Oracle funciona en un esquema cliente-servidor :
El Servidor es el programa que matiene la base de datos funcionando. El Cliente es un programa que se conecta al servidor desde el mismo computador o uno diferente. No se necesita instalar expresamente el programa cliente en el computador en donde est instalado el servidor a

Oracle Developer es un entorno de desarrollo integrado (IDE) para trabajar en bases de datos. Es liberado gratuitamente Oracle Developer provee un entorno grco para simplicar y a aumentar la productividad en tareas de desarrollo de BDs .

Jorge Maturana

Gu Oracle 10g - Intro & SQL a

Oracle 10g XE y Oracle Developer SQL bsico a Ms SQL a

Introduccin o Descarga Instalacin o Utilizacin o

Descarga
Descarga de Oracle 10g XE Existen versiones para Linux y Windows, las cuales pueden ser descargadas desde : http ://www.oracle.com/technetwork/database/expressedition/database10gxe-459378.html Se recomienda descargar la version Universal (mayor soporte para caracteres especiales) La documentacin est en l o a nea y puede ser hallada en http ://www.oracle.com/pls/xe102/homepage Descarga de Oracle Developer Existen versiones para Linux, MacOSX y Windows, que pueden ser descargadas desde http ://www.oracle.com/technology/products/database/sql developer/ en donde tambin se encuentra la documentacin . e o

Jorge Maturana

Gu Oracle 10g - Intro & SQL a

Oracle 10g XE y Oracle Developer SQL bsico a Ms SQL a

Introduccin o Descarga Instalacin o Utilizacin o

Instalacin de Oracle 10g XE o


La instalacin se compone de dos pasos principales : o
1

Instalacin propiamente tal, en donde se copian los archivos al o computador, y Conguracin, que permite denir parmetros bsicos, tales como o a a los puertos y la contrasea del administrador. n

Instruciones de instalacin o La instalacin puede variar dependiendo el sistema operativo que se est o e utilizando. Para instalar (y congurar) Oracle en su computador, siga las instrucciones en la seccin Installation Guide de la documentacin. o o Una vez instalado Oracle, se puede acceder a la interfaz de administracin o (basada en web) mediante la opcin Go to Database Home Page en el o men del sistema operativo. El usuario administrador se llama SYSTEM, u y la password es la que se especic durante la conguracin . o o

Jorge Maturana

Gu Oracle 10g - Intro & SQL a

Oracle 10g XE y Oracle Developer SQL bsico a Ms SQL a

Introduccin o Descarga Instalacin o Utilizacin o

Instalacin de Oracle Developer o


Para describir una instalacin genrica, trabajaremos con la versin o e o Java (descargar la versin Oracle SQL Developer for other o platforms) Es necesario tener instalado JDK (Java Development Kit), el cual puede ser descargado desde http ://www.oracle.com/technetwork/java/javase, o seleccionndolo a en el administrador de paquetes, en Linux) descomprimir el archivo .zip .

Jorge Maturana

Gu Oracle 10g - Intro & SQL a

Oracle 10g XE y Oracle Developer SQL bsico a Ms SQL a

Introduccin o Descarga Instalacin o Utilizacin o

Administracin bsica de Oracle 10g o a

La interfaz de administracin presenta 4 temas principales : o Administration en donde se administran los usuarios, se gestiona la memoria, y se monitororea la actividad del DBMS, entre otros. Object Browser, en donde se administran las tablas, vistas, ndices, funciones, etc. SQL, en donde se ingresan comandos SQL y PL/SQL, que permiten administrar la estructura y datos de la BD. Utilities, en donde se generan reportes, y se cargan/descargan datos masivamente .
Jorge Maturana Gu Oracle 10g - Intro & SQL a 7

Oracle 10g XE y Oracle Developer SQL bsico a Ms SQL a

Introduccin o Descarga Instalacin o Utilizacin o

Creacin de un usuario o
En Oracle, las bases de de datos (tambin llamada esquema) y los e usuarios estn en relacin 1 :1. a o Oracle trae un usuario y tablas con datos de prueba. El usuario, llamado HR, debe desbloquearse. Para hacer sto, vamos al men e u Administration Database Users y hacemos click en el cono que muestra el nombre del usuario. Asignar la password a este usuario tipendola dos veces, y cambiar a su status a Unlocked. Los usuarios poseen privilegios, que son acciones que pueden realizar (crear tablas o slo consultarlas, o conectarse o no a la BD, etc.). Vericar que el usuario HR posee los priviliegios CONNECT y RESOURCE. Para nalizar con los cambios, hacer click en el botn Alter User o Para crear un nuevo usuario, ir a Administration Database Users y hacer click en Create. La interfaz es la misma que usamos para desbloquear a HR. Para ms detalles, consulte la Getting Started Guide en la a documentacin . o
Jorge Maturana Gu Oracle 10g - Intro & SQL a 8

Oracle 10g XE y Oracle Developer SQL bsico a Ms SQL a

Introduccin o Descarga Instalacin o Utilizacin o

Uso de Oracle Developer


Ejecutar el programa desde el directorio en donde se descomprimi el o .zip (sh sqldeveloper.sh para Linux o sqldeveloper.exe para Windows) (Es posible que el programa pregunte por la ubicacin de JDK. o Proveer la ruta) Hacer click derecho en Connections en la ventana de la izquierda, y seleccionar New Connection Proveer un nombre para la conexin, el nombre del usuario y la o ubicacin del servidor de BD (localhost si est en el PC local). o a Hacer click en Save La nueva conexin aparecer bajo Connections o a Abrir el rbol de la conexin. Aparecern varios a o a tems (tablas, vistas, ndices, etc.) correspondientes al usuari/esquema. Los contenidos estn organizados de una manera similar a la interfaz a web de Oracle 10g .
Jorge Maturana Gu Oracle 10g - Intro & SQL a 9

Oracle 10g XE y Oracle Developer SQL bsico a Ms SQL a

Introduccin a SQL o Creacin de una BD o Manipulacin de datos o Consultas a la BD

Introduccin a SQL o
SQL (Structured Query Language), es un lenguaje creado para manipular BD relacionales a principios de los 70s. Es el estndar de a facto, presentando ligeras variaciones de un RDBMS a otro. Es un lenguaje de cuarta generacin que permite, entre otros : o
crear bases de datos y tablas insertar y modicar datos realizar bsquedas de registros u

Un usuario puede trabajar sobre la BD de varias formas : Mediante la interfaz web : ir a la pgina de administracin de Oracle a o (desde men del sistema operativo), logearse e ir al menu SQL u SQL Commands. Los comandos se deben tipear en la ventana, y ejecutarse con el botn Run. o Desde SQL*Plus : desde la l nea de comandos del sistema operativo. Mediante Oracle Developer u otro IDE

Jorge Maturana

Gu Oracle 10g - Intro & SQL a

10

Oracle 10g XE y Oracle Developer SQL bsico a Ms SQL a

Introduccin a SQL o Creacin de una BD o Manipulacin de datos o Consultas a la BD

Creacin de una BD o
Una base de datos es un conjunto de informacin (tablas, vistas, o etc.) Los datos tienen tipos. Los principales son :
varchar2(n) : alfanumrico de tamao variable, hasta 4000 bytes. n : e n

largo mximo a
char(n) : alfanumrico de tamao jo. n : largo e n number(n,m) : entero o decimal. n : numero de d gitos, m : decimales BINARY FLOAT y BINARY DOUBLE : otantes de mayor precisin o date : fecha y hora timestamp : fecha y hora, con mayor precisin o clob : (Character Large OBject) alfanumrico de mayor capacidad e

que varchar2, hasta 4GB blob : (Binary Large OBject) objeto (video, imagen u otro)

Jorge Maturana

Gu Oracle 10g - Intro & SQL a

11

Oracle 10g XE y Oracle Developer SQL bsico a Ms SQL a

Introduccin a SQL o Creacin de una BD o Manipulacin de datos o Consultas a la BD

Creacin de tablas o
Ejemplo de tabla
-- este es un comentario CREATE TABLE Alumno ( id number(8) not null, -nombre varchar2(20) not null, -apellido varchar2(30) not null, -nacimiento date, -foto blob -);

entero de 8 dgitos texto de hasta 20 caracteres texto de hasta 30 caracteres fecha de nacimiento imagen jpeg

la (row) = registro (record) = tupla (tuple). campo (eld) = interseccin de columna y la. o Nombre de tabla : hasta 30 caracteres

Jorge Maturana

Gu Oracle 10g - Intro & SQL a

12

Oracle 10g XE y Oracle Developer SQL bsico a Ms SQL a

Introduccin a SQL o Creacin de una BD o Manipulacin de datos o Consultas a la BD

Integridad de datos
Se pueden denir restricciones que los datos deben respetar, para implementar reglas de negocio :
not null

: impide que existan campos vac os. : valor por defecto para un campo

default v check

: verica cumplimiento de una condicin o : impide la repeticin de un valor en una columna o : identicador de la tupla (unico y no nulo) : valor de un campo debe existir en otra tabla

unique

primary key foreign key

Por defecto, la violacin arroja un error y la operacin es anulada. En o o general, las restricciones pueden habilitarse o deshabilitarse.

Jorge Maturana

Gu Oracle 10g - Intro & SQL a

13

Oracle 10g XE y Oracle Developer SQL bsico a Ms SQL a

Introduccin a SQL o Creacin de una BD o Manipulacin de datos o Consultas a la BD

Integridad de datos
Al eliminar o modicar la tupla a la cual una clave fornea hace a referencia, se pueden tomar 3 acciones con la tupla que la referencia : : impide la eliminacin de la tupla en la otra o o tabla mientras existan referencias a ella. Esta es la opcin por defecto
ON DELETE NO ACTION ON DELETE CASCADE

: elimina las tuplas que hacen referencia a ella : setea a null los campos de la clave fornea a

ON DELETE SET NULL

Oracle no implementa on delete set default. Tampoco implementa on update, pues se asume que una FK apunta a una PK de otra tabla, la cual no deber cambiar nunca (salvo problemas de diseo) a n

Jorge Maturana

Gu Oracle 10g - Intro & SQL a

14

Oracle 10g XE y Oracle Developer SQL bsico a Ms SQL a

Introduccin a SQL o Creacin de una BD o Manipulacin de datos o Consultas a la BD

Integridad de datos
Ejemplo de integridad de datos
CREATE TABLE id alumno RUT nombre apellido sexo nacimiento semestre region id carrera constraint constraint constraint constraint ); Alumno ( number(8), varchar2(10), varchar2(20) not null, varchar2(30) not null, char(1) not null, date, number(2) default 1, number(2), char(4), al pk primary key (id alumno), num region check (region < 16), sex hm check (sexo in (H,M)), carrera fk foreign key (id carrera) references carrera (id carrera) on delete no action

(asume la existencia de una tabla carrera con un campo id carrera)


Jorge Maturana Gu Oracle 10g - Intro & SQL a 15

Oracle 10g XE y Oracle Developer SQL bsico a Ms SQL a

Introduccin a SQL o Creacin de una BD o Manipulacin de datos o Consultas a la BD

Modicacin de tabla o
Agregar, modicar o eliminar columnas Agregar columna
ALTER TABLE tabla ADD (definicin de columna); o Ejemplo : ALTER TABLE Alumno ADD (email VARCHAR2(30) NULL);

Modicar columna
ALTER TABLE tabla MODIFY (definicin de columna); o Ejemplo : ALTER TABLE Alumno MODIFY (email VARCHAR2(40) NOT NULL);

Eliminar columna
ALTER TABLE tabla DROP COLUMN columna;

Ejemplo : ALTER TABLE Alumno DROP COLUMN email;

Jorge Maturana

Gu Oracle 10g - Intro & SQL a

16

Oracle 10g XE y Oracle Developer SQL bsico a Ms SQL a

Introduccin a SQL o Creacin de una BD o Manipulacin de datos o Consultas a la BD

Modicacin de restricciones o
Agregar, modicar o eliminar restricciones Agregar clave primaria
ALTER TABLE Alumno ADD CONSTRAINT al pk PRIMARY KEY (id alumno);

Agregar clave fornea (con accin referencial CASCADE) a o


ALTER TABLE Alumno ADD CONSTRAINT al fk FOREIGN KEY (id carrera) REFERENCES carrera (id carrera) ON DELETE CASCADE;

Agregar restriccin de unicidad o


ALTER TABLE Alumno ADD CONSTRAINT rut unico UNIQUE (RUT);

Agregar una restriccin de vericacin o o


ALTER TABLE Alumno ADD CONSTRAINT num reg CHECK (region < 16);

Deshabilita, habilita o elimina una restriccin o


ENABLE CONSTRAINT nombre restriccin; o DISABLE CONSTRAINT nombre restriccin; o o DROP CONSTRAINT nombre restriccin;
Jorge Maturana Gu Oracle 10g - Intro & SQL a 17

Oracle 10g XE y Oracle Developer SQL bsico a Ms SQL a

Introduccin a SQL o Creacin de una BD o Manipulacin de datos o Consultas a la BD

Renombrar y eliminar tablas


Renombrar una tabla
ALTER TABLE nombre actual RENAME to nuevo nombre;

Eliminar una tabla


DROP TABLE tabla;

Jorge Maturana

Gu Oracle 10g - Intro & SQL a

18

Oracle 10g XE y Oracle Developer SQL bsico a Ms SQL a

Introduccin a SQL o Creacin de una BD o Manipulacin de datos o Consultas a la BD

Indices
Los ndices permiten acelerar las bsquedas sobre una columna. Se u asignan a las ms utilizadas, t a picamente a las que contienen claves primarias. Operaciones con ndices Crear un ndice
CREATE INDEX nombre ndice ON tabla (columna);

Renombrar un ndice
ALTER INDEX nombre actual RENAME TO nuevo nombre;

Eliminar un ndice
DROP INDEX nombre ndice;

Jorge Maturana

Gu Oracle 10g - Intro & SQL a

19

Oracle 10g XE y Oracle Developer SQL bsico a Ms SQL a

Introduccin a SQL o Creacin de una BD o Manipulacin de datos o Consultas a la BD

Algunas instrucciones utiles


Todos los objetos de la base de datos (tablas, ndices, tuplas, etc.) estn a almacenados en un esquema relacional. Listar las tablas del sistema
select * from dict

Listar las tablas creadas por el usuario


select * from tabs

Obtener informacin sobre un objeto en particular o


describe <nombre objeto>

Jorge Maturana

Gu Oracle 10g - Intro & SQL a

20

Oracle 10g XE y Oracle Developer SQL bsico a Ms SQL a

Introduccin a SQL o Creacin de una BD o Manipulacin de datos o Consultas a la BD

Agregar registros
Sintaxis de INSERT Cuando se insertan todos los campos
INSERT INTO tabla VALUES (valor1, valor2, ...)

Para especicar expl citamente las columnas (al resto se asigna NULL) INSERT INTO tabla (columna1, columna2, ...) VALUES (valor1, valor2, ...) Nmeros se ingresan directamente : 3.1415, 1234 u Textos se ingresan entre comillas simples : John Black Fechas se ingresan con formato 02-AUG-2007 o 2-AUG-07 Para otros formatos de fecha se usa la funcion TO DATE(dato,formato) Ejemplo de TO DATE
TO DATE(25/12/2005 15:45, DD/MM/YYYY HH24:MI)

Jorge Maturana

Gu Oracle 10g - Intro & SQL a

21

Oracle 10g XE y Oracle Developer SQL bsico a Ms SQL a

Introduccin a SQL o Creacin de una BD o Manipulacin de datos o Consultas a la BD

Modicar y Eliminar registros


Sintaxis de UPDATE UPDATE tabla SET columna = valor WHERE condicin ; o Ejemplo : actualizar salario de empleado con id 11
UPDATE employees SET salary = salary * 1.05 WHERE employee id = 11;

Sintaxis de DELETE DELETE tabla WHERE condicin ; o Ejemplo : eliminar empleados con ID 10 u 11
DELETE FROM employees WHERE employee id = 10 OR employee id = 11;

Jorge Maturana

Gu Oracle 10g - Intro & SQL a

22

Oracle 10g XE y Oracle Developer SQL bsico a Ms SQL a

Introduccin a SQL o Creacin de una BD o Manipulacin de datos o Consultas a la BD

Consultas a la BD
La posibilidad de hacer consultas espec cas a la BD es uno de sus aspectos ms utiles a A continuacin veremos las queries (consultas) ms comunes en o a SQL. Para ello, utilizaremos el usuario de prueba HR y las tablas a las cuales este usuario tiene acceso. La base de datos de muestra HR posee datos relacionados con un departamento de recursos humanos. Se pueden ver las tablas logendose como HR en la interfaz web y haciendo click en Object a Browser. Utilizaremos estas tablas en los siguientes ejemplos

Jorge Maturana

Gu Oracle 10g - Intro & SQL a

23

Oracle 10g XE y Oracle Developer SQL bsico a Ms SQL a

Introduccin a SQL o Creacin de una BD o Manipulacin de datos o Consultas a la BD

HR Schema

Jorge Maturana

Gu Oracle 10g - Intro & SQL a

24

Oracle 10g XE y Oracle Developer SQL bsico a Ms SQL a

Introduccin a SQL o Creacin de una BD o Manipulacin de datos o Consultas a la BD

Consultas a la BD
El comando SELECT permite obtener los registros que cumplan con cierta condicin. o Ejemplos de SELECT sobre una tabla Mostrar todos los todos registros de la tabla EMPLOYEES
SELECT * FROM EMPLOYEES;

Mostrar los registros de personas llamadas John


SELECT * FROM EMPLOYEES WHERE FIRST NAME=John;

Mostrar a las personas llamadas John por orden de salario


SELECT * FROM EMPLOYEES WHERE FIRST NAME=John ORDER BY SALARY;

Mostrar slo los e-mails de las personas llamadas John o


SELECT EMAIL FROM EMPLOYEES WHERE FIRST NAME=John;

Jorge Maturana

Gu Oracle 10g - Intro & SQL a

25

Oracle 10g XE y Oracle Developer SQL bsico a Ms SQL a

Introduccin a SQL o Creacin de una BD o Manipulacin de datos o Consultas a la BD

Consultas a la BD
La clusula WHERE puede ser utilizada de diversas maneras a
=, !=, <>

: igual, diferente, diferente : mayor, mayor o igual, menor, menor o igual : rango de valores

>, >=, <, <=

BETWEEN ... AND ... LIKE

: bsqueda con comodines : % (uno o ms caracteres) o (uno) u a : pertenencia o no a un conjunto de valores : si es o no null

IN ( ), NOT IN ( )

IS NULL, IS NOT NULL AND, OR, NOT

: para componer clusulas . a

Jorge Maturana

Gu Oracle 10g - Intro & SQL a

26

Oracle 10g XE y Oracle Developer SQL bsico a Ms SQL a

Introduccin a SQL o Creacin de una BD o Manipulacin de datos o Consultas a la BD

Join
JOIN

consulta sobre varias tablas Cross : entre ms de una tabla, retorna todas las combinaciones a Inner : entre ms de una tabla, se retornan slo las que calcen a o entre ellas Self : de una tabla consigo misma Outer : Extiende Inner join, incluyendo las que no calzan.

Distintas sintaxis de JOIN

Jorge Maturana

Gu Oracle 10g - Intro & SQL a

27

Oracle 10g XE y Oracle Developer SQL bsico a Ms SQL a

Introduccin a SQL o Creacin de una BD o Manipulacin de datos o Consultas a la BD

Cross Join

Cross JOIN : Retorna todas las combinaciones


SELECT nombre, cantidad FROM CLIENTES, VENTAS;

Jorge Maturana

Gu Oracle 10g - Intro & SQL a

28

Oracle 10g XE y Oracle Developer SQL bsico a Ms SQL a

Introduccin a SQL o Creacin de una BD o Manipulacin de datos o Consultas a la BD

Inner Join
Inner JOIN : Retorna slo las relacionadas o
SELECT c.nombre, v.cantidad FROM CLIENTES c, VENTAS v WHERE c.id cliente = v.id cliente;

Inner join sobre 3 tablas


SELECT c.nombre, v.cantidad , p.descripcion FROM CLIENTES c, VENTAS v, PRODUCTOS p WHERE c.id cliente = v.id cliente AND v.id prod = p.id prod;

El uso de alias no es obligatorio cuando no hay ambiguedad, pero es una buena prctica a

Jorge Maturana

Gu Oracle 10g - Intro & SQL a

29

Oracle 10g XE y Oracle Developer SQL bsico a Ms SQL a

Introduccin a SQL o Creacin de una BD o Manipulacin de datos o Consultas a la BD

Self Join
Un tipo particular de join es el self join, que usa slo una tabla o Self Join : retorna lista de empleados y sus jefes
SELECT e.last name, j.last name FROM employees e, employees j WHERE e.manager id = j.employee id;

Esta query trata una tabla como si fueran 2 : una de empleados, referenciada por el alias e, y otra de jefes, referenciada por el alias j Dado que se debe hacer un match entre campos con distinto nombre, se deben usar sintaxis expl citas

Jorge Maturana

Gu Oracle 10g - Intro & SQL a

30

Oracle 10g XE y Oracle Developer SQL bsico a Ms SQL a

Introduccin a SQL o Creacin de una BD o Manipulacin de datos o Consultas a la BD

Outer Join
A veces es necesario extender el inner join para mostrar campos que no hacen match Ejemplos Listar clientes, incluso quienes no han comprado :
SELECT c.nombre, v.cantidad FROM clientes c, ventas v WHERE c.id cliente = v.id cliente (+);

Listar productos, incluso los que no se han vendido :


SELECT p.descripcion, v.cantidad FROM ventas v, productos p WHERE v.id producto (+) = p.id producto;

La part cula (+) se pone en el lado de la restriccin en donde se o permiten datos sin match hay sintaxis ANSI para outer joins (LEFT|RIGHT|FULL OUTER JOIN), que no veremos ac a
Jorge Maturana Gu Oracle 10g - Intro & SQL a 31

Oracle 10g XE y Oracle Developer SQL bsico a Ms SQL a

Introduccin a SQL o Creacin de una BD o Manipulacin de datos o Consultas a la BD

Subqueries
Dos o ms queries pueden anidarse, de manera de usar el retorno del a query interno para alimentar el externo Ejemplo Suponga que en el ejemplo [CLIENTES-VENTAS-PRODUCTOS] existe adems a una tabla SOCIOS con un campo nombre. Una query que lista los socios que son tambin clientes podr ser : e a
SELECT nombre FROM CLIENTES WHERE nombre IN ( SELECT nombre FROM SOCIOS);

Se asume que los nombres estn escritos de la misma manera en a ambas tablas Note que no hay ambiguedad entre los campos nombre, pues se trata de queries independientes
Jorge Maturana Gu Oracle 10g - Intro & SQL a 32

Oracle 10g XE y Oracle Developer SQL bsico a Ms SQL a

Introduccin a SQL o Creacin de una BD o Manipulacin de datos o Consultas a la BD

Pseudocolumnas
Las pseudocolumnas son columnas que se construyen durante la consulta, pero no existen en la BD.
ROWNUM, SYSDATE

y USER

ROWNUM limita el nmero de las en la respuesta u SELECT * FROM employees WHERE ROWNUM < 5; SYSDATE retorna la fecha actual (DUAL es una tabla dummy) SELECT SYSDATE FROM DUAL; SELECT SYSTIMESTAMP FROM DUAL; /*mayor precisin*/ o USER retorna el usuario SELECT USER FROM DUAL;

conectado actualmente

Jorge Maturana

Gu Oracle 10g - Intro & SQL a

33

Oracle 10g XE y Oracle Developer SQL bsico a Ms SQL a

Introduccin a SQL o Creacin de una BD o Manipulacin de datos o Consultas a la BD

Pseudocolumnas
Operaciones aritmticas e Realizan clculos aritmticos con valores de columnas a e
SELECT TRUNC((salary /12)*0.5,0) bono navidad from employees; TRUNC(columna,n) ROUND(columna,n) MOD(columna,n)

trunca a n decimales aproxima a n decimales

retorna mdulo n (resto de divisin) o o

Jorge Maturana

Gu Oracle 10g - Intro & SQL a

34

Oracle 10g XE y Oracle Developer SQL bsico a Ms SQL a

Introduccin a SQL o Creacin de una BD o Manipulacin de datos o Consultas a la BD

Pseudocolumnas
Funciones de texto Realizan operaciones sobre campos de texto
SELECT UPPER(last name) FROM employees; UPPER LOWER

pone en maysculas u pone en minsculas u mayuscula la primera, minsculas despus u e

INITCAP

LTRIM elimina espacios a la iquierda, RTRIM a la derecha, TRIM de ambos RPAD(columna,n,c) SUBSTR(columna,n,m) LENGTH(columna)

completa hasta posicin n-sima con caracter c o e extrae los caracteres de la posicin n hasta m o reemplaza el string n por m

retorna el largo del campo

REPLACE(columna, n, m)

Jorge Maturana

Gu Oracle 10g - Intro & SQL a

35

Oracle 10g XE y Oracle Developer SQL bsico a Ms SQL a

Introduccin a SQL o Creacin de una BD o Manipulacin de datos o Consultas a la BD

Pseudocolumnas
Funciones de fecha Realizan operaciones sobre campos de fecha
SELECT employee id, TRUNC(MONTHS BETWEEN(SYSDATE, HIRE DATE)) "meses empleado" FROM employees; MONTHS BETWEEN(fecha1,fecha2) EXTRACT(YEAR FROM columna) MONTH) ADD MONTHS(columna, n) LAST DAY(columna)

retorna diferencia en meses

extrae ao (tambin puede usarse DAY o n e

agrega n meses a la fecha del campo

retorna el ultimo d del mes . a

Jorge Maturana

Gu Oracle 10g - Intro & SQL a

36

Oracle 10g XE y Oracle Developer SQL bsico a Ms SQL a

Introduccin a SQL o Creacin de una BD o Manipulacin de datos o Consultas a la BD

Pseudocolumnas
Funciones de conversin o Realizan conversiones entre distintos tipos de dato
SELECT TO CHAR(SYSDATE, HH24:MI, DD MON YYYY AD) Ahora FROM DUAL; TO CHAR(columna, formato) TO NUMBER(texto) TO DATE(texto)

transforma a texto segn formato u

transforma a nmero u transforma a timestamp .

transforma a fecha

TO TIMESTAMP(texto)

Jorge Maturana

Gu Oracle 10g - Intro & SQL a

37

Oracle 10g XE y Oracle Developer SQL bsico a Ms SQL a

Introduccin a SQL o Creacin de una BD o Manipulacin de datos o Consultas a la BD

Pseudocolumnas
Funciones de agregacin o Retornan resultados de un grupo de las Cuenta nmero de las u
SELECT COUNT(*) FROM employees;

Agrupa por caracter stica


SELECT manager id, COUNT(*) FROM employees GROUP BY manager id;

Cuenta distintos
SELECT COUNT(DISTINCT department id) FROM employees;

Retorna m nimo, mximo, promedio y desviacin estndar a o a


SELECT MIN(salary), MAX(salary), AVG(salary), STDDEV(salary) FROM employees;

Jorge Maturana

Gu Oracle 10g - Intro & SQL a

38

Oracle 10g XE y Oracle Developer SQL bsico a Ms SQL a

Vistas Secuencias Sinnimos o

Vistas
Una vista es una consulta almacenada a la cual se puede tratar como una tabla. pueden contener un subconjunto de columnas o registros, de una o ms tablas a simplican el acceso a tablas proveen abstraccin a consultas complejas y recurrentes o ocupan poco espacio (no contienen datos) pueden anidarse (crear vistas basadas en otras vistas)

Jorge Maturana

Gu Oracle 10g - Intro & SQL a

39

Oracle 10g XE y Oracle Developer SQL bsico a Ms SQL a

Vistas Secuencias Sinnimos o

Vistas
Crear una vista
CREATE OR REPLACE VIEW nombre vista AS query;

Ejemplo :
CREATE OR REPLACE VIEW mi vista AS SELECT e.employee id, e.first name, e.last name, d.department name FROM employees e JOIN departments d ON d.manager id = e.employee id;

Posteriormente se hace simplemente :


SELECT * FROM mi vista;

Eliminar una vista


DROP VIEW nombre vista;

Jorge Maturana

Gu Oracle 10g - Intro & SQL a

40

Oracle 10g XE y Oracle Developer SQL bsico a Ms SQL a

Vistas Secuencias Sinnimos o

Secuencias
Las secuencias generan un conjunto de valores unicos de manera secuencial. Se usan principalmente para asignarlas a claves primarias. Crear una secuencia CREATE SEQUENCE nombre secuencia START WITH
valor inicial INCREMENT BY n;

Para usarla, primero se debe inicializar...


SELECT nombre secuencia.NEXTVAL FROM DUAL;

... y luego utilizarla


INSERT INTO tabla VALUES (nombre secuencia.CURRVAL, ...);

Eliminar una secuencia


DROP SEQUENCE nombre secuencia;

Jorge Maturana

Gu Oracle 10g - Intro & SQL a

41

Oracle 10g XE y Oracle Developer SQL bsico a Ms SQL a

Vistas Secuencias Sinnimos o

Sinnimos o
Los sinnimos son alias para elementos de la BD. Ayudan a o simplicar la consulta (por ejemplo, tipeando crr en vez de carrera). Si algn elemento cambia de nombre en la BD, se puede usar un u sinnimo para no tener que modicar las consultas existentes. o Se pueden crear sinnimos para tablas, vistas, secuencias, o procedimientos, funciones, paquetes u otro sinnimo o Crear un sinnimo o
CREATE SYNONYM nombre sinnimo for elemento referenciado; o

Para utilizarlo, simplemente reemplazar su aparicin en la expresin SQL o o Eliminar un sinnimo o


DROP SYNONYM nombre sinnimo; o

Jorge Maturana

Gu Oracle 10g - Intro & SQL a

42

You might also like