Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
PARTE I
Ing. Humberto Rueda Rivero
hrueda@telebucaramanga.com.co
ORACLE 9i
DATABASE
– Almacenamiento de Datos
Oracle 9i - DATABASE
Herramientas de Desarrollo
Administración del Sistema
Internet Applications
Forms
SQL
Lógica del Lógica de Reports
PL/SQL
Negocio Presentación Graphics
Discoverer
Database & Servidor de Apps JAVA
JDeveloper
Servicios de Red
El Modelo Relacional
Colección de Objetos
Relaciones
Conjunto de Operaciones
Reglas de Integridad
Modelos de Datos
Idea
Modelo Entidad
Relación
Modelo de Datos
Tablas en la
Base de Datos
Modelo Entidad Relación
Empleado Departamento
Asignado a
# cedula # dpto
Compuesto de
* nombre * nombre
o mail o ubicacion
Entidades
Singular
Unico
Sinónimos
Mayúsculas
Atributos
Singular
Minúscula
Obligatorios o Mandatorios (*)
Opcionales (o)
Llave Primaria (#)
Diagramas
Row
Column
Foreign Key
Primary Key
NULL
Cap.1 - SELECT
Operaciones
SELECT * |
{<DISTINCT> column |
expression <alias>, ...}
FROM tabla;
Ejemplos
SELECT *
FROM empleado;
+
-
*
/
||
Eliminar Filas Duplicadas
SELECT DISTINCT
SELECT * |
{<DISTINCT> column |
expression <alias>, ...}
FROM tabla
WHERE condiciones;
Comparaciones
SELECT *
FROM empleado
WHERE sueldo BETWEEN
1000000 AND 2000000;
IN
SELECT *
FROM empleado
WHERE deptno in (1,3,5,7).
SELECT *
FROM empleado
WHERE estado in (‘A’,’I’,’D’)
LIKE
SELECT *
FROM empleado
WHERE apellido LIKE ‘RUEDA%’
%: cualquier combinación
_: reemplaza un caracter
Conectores Lógicos
AND
OR
NOT
SELECT * |
{<DISTINCT> column |
expression <alias>, ...}
FROM tabla
<WHERE condiciones>
<ORDER BY {col, expr} <ASC>
<DESC> >;
ORDER BY
Cláusula WHERE
Condiciones de Comparación
Ordenamientos
Cap. 3 - Funciones
Características
LOWER(‘HUMbeRTo’) = ‘humberto’
UPPER(‘humberto’) = ‘HUMBERTO’
INITCAP(‘pedro ROA’)= ‘Pedro Roa’
SUBSTR(‘humberto’,3,2) = ‘mb’
LENGTH(‘humberto’) = 8
INSTR(‘humberto rueda’,’rueda’)=10
Funciones de Cadena
TO_CHAR TO_CHAR
Funciones de Conversión
TO_DATE(‘20010101’,’yyyymmdd’)
TO_CHAR(SYSDATE, ‘month’)
TO_CHAR(sueldo)
TO_NUMBER(codigo) !!!
Elementos del Formato Fecha
YYYY: año
YEAR: año en palabras
MM: Mes en números
MONTH: Mes en palabras
MON: Tres letras del mes
DAY: Nombre del dia
DD: Dia en números
Funciones Generales
Desplegando Datos
de Múltiples Tablas
A Tener en Cuenta
Equijoin
Non equijoin
Outerjoin
Selfjoin
Equijoin
SELECT cedula, nombre, nombre_dpto
FROM empleado e,
departamento d
WHERE d.dpto = e.dpto
SELECT COUNT(*)
FROM empleado
WHERE dpto = 10;
SELECT COUNT(mail)
FROM empleado
WHERE dpto = 10;
SELECT *
FROM empleado
WHERE sueldo >
(SELECT sueldo
FROM empleado
WHERE cedula=91263541);
Subqueries Sencillos
SELECT *
FROM empleado
WHERE sueldo < ANY (SELECT sueldo
FROM empleado
WHERE dpto = 20)
AND dpto != 20;
ALL
SELECT *
FROM empleado
WHERE sueldo < ALL (SELECT sueldo
FROM empleado
WHERE dpto = 20)
AND dpto != 20;
IN
SELECT *
FROM empleado
WHERE dpto IN (SELECT dpto
FROM departamento
WHERE region=‘ORI’);
IN
SELECT *
FROM pagos
WHERE (banco, sucursal) IN
(SELECT cod_banco, cod_suc
FROM bancos
WHERE abierto = ‘S’)
Subqueries - Análisis Top N
&&
Cuando se quiere reutilizar la variable y
no se quiere que SQL*Plus la vuelva a
solicitar por pantalla.
DEFINE
UNDEFINE
UPDATE table
SET columna = valor,
columna = valor, ...
WHERE condicion;
El valor puede ser especificado
mediante un Subquery
UPDATE
UPDATE linea_cuenta lc
SET sdo_Fact = (SELECT SUM(sdo_fact)
FROM SALDO s
WHERE s.linea = lc.linea),
sdo_refc = (SELECT SUM(sdo_refc)
FROM SALDO s
WHERE s.linea = lc.linea)
WHERE lc.linea = 6344878;
DELETE
Finaliza con:
– Las sentencias COMMIT o ROLLBACK
– Cualquier sentencia DDL o DCL
– Saliéndose de SQL*Plus (exit)
– Error del Sistema (crash)
El Objeto de la Transacción
USER_
ALL_
DBA_
V$
Cap 9.
Constraints
Constraints
NOT NULL
UNIQUE
PRIMARY KEY
FOREIGN KEY
CHECK
Creación de Constraints
CREATE TABLE empleado
(cedula NUMBER(8) NOT NULL,
nombre VARCHAR2(40),
mail varchar2(40),
....
CONSTRAINT pk_emp
PRIMARY KEY (cedula),
CONSTRAINT un_mail
UNIQUE (mail)
CONSTRAINT mail_valido
CHECK (INSTR(mail, ‘@’) != 0) );
Llaves Foráneas