Está en la página 1de 641

ORACLE 10g

Componentes de una Base da Datos


Relacional
• Una base de datos relacional es una colección de relaciones o
tablas bidimensionales. Una base de datos relacional usa
estas tablas bidimensionales para guardar la información.
• El modelo de la base de datos Relacional consiste en tres
componentes: una colección de objetos o relaciones, un juego
de operadores, y reglas de integridad. Las tablas son objetos
en el modelo de la base de datos relacional.
• Un lenguaje de programación es usado para actuar en la información de
una base de datos relacional. El Lenguaje de Consulta Estructurado (SQL -
Structured Query Language ) es el Lenguaje normado por el American
National Standards Institute (ANSI) para operar sobre las bases de datos
relacionales. Las consultas SQL se envían a la base de datos para su
ejecución y sus resultados son recuperados.
• El Modelo Relacional necesita de reglas de integridad de información. Las
reglas de integridad son leyes que gobiernan los funcionamientos
permitidos en los datos de una base de datos. Las reglas de integridad
aseguran que esos datos sean consistentes y exactos.
• Un Sistema de Administración de Base de datos Relacional (RDBMS -
Relational Database Management System ) maneja una colección de
tablas. Las tablas son objetos de la base de datos que guardan los datos en
un formato de filas y columnas. Usted puede guardar, manejar, y recuperar
los datos usando un RDBMS
• Usted puede ejecutar consultas SQL para recuperar la información de la
base de datos. Las consultas SQL se envían al servidor para su ejecución.
Usted recibe los resultados una vez que la consulta haya sido procesada
satisfactoriamente.
• Los usuarios pueden recuperar la información en cualquier orden usando
consultas SQL. Esto significa que los usuarios no tienen que estar familiarizados
con el almacenamiento físico de datos en la base de datos. Por ejemplo, los
gerentes pueden recuperar los datos del empleado en un orden alfabético y los
contadores pueden recuperar los mismos datos en el orden de sueldo.
ORACLE 10g
Temas a tratar
• Consultas Select
– Tipos de Consultas SQL
– Capacidad de la Consulta SELECT
– Escribiendo Consultas SELECT
– Seleccionando Filas y Columnas
– Expresiones Aritméticas
• Personalizando Queries
– Alias de Columnas
– Operador de Concatenación
– Cadenas de caracteres literales
– Eliminando Filas Duplicadas
• Utilizando el PL/SQL Developer
– Usos
– Command Window vs SQL Window
– Loggin On
– Funciones de ventanas
– Comando Describe
Tipos de Sentencias SQL
• Usted puede usar sentencias SQL para almacenar, recuperar y
administrar datos en la Base de Datos. En este tema,
aprenderá a comparar las sentencias SQL con sus
descripciones.
• Las Sentencias SQL están catalogadas en 5 tipos: Recuperación de datos, Lenguaje de Manipulación de
Datos (DML – Data Manipulation Language), Lenguaje de Definición de Datos (DDL – Data Definition
Language), Control de transacción, y Lenguaje de Control de Datos (DCL – Data Control Language). Las
sentencias de recuperación de datos recupera información de la Base de Datos. La Sentencia SQL SELECT
es usada para recuperar informacion de las Base de Datos.
• Las Sentencias DML hacen cambios a los Datos en una Base de Datos. Puede usar
INSERT para ingresar nuevos registros, UPDATE para cambiar los registros
existentes, y DELETE para eliminar definitivamente registros en una tabla. Puede
usar la sentencia SQL MERGE para actualizar o insertar registros en una tabla
basado en una condición.
• Las Sentencias DDL modifican las estructura de una Base de Datos. CREATE crea
una nueva tabla en la Base de Datos. RENAME cambia el nombre de una Tabla.
ALTER modifica las estructuras de las tablas. DROP elimina completamente una
tabla de una Base de Datos. TRUNCATE elimina todos los registros de una tabla, y
libera el espacio almacenado usado por la tabla.
• Las Sentencias de Control transaccional son usadas para manejar los cambios
realizados por las sentencias DML. COMMIT graba todos los las cambios y
ROLLBACK revierte todos los cambios de una transacción DML. SAVEPOINT crea un
marcador dentro de una transacción. Puede revertir los cambios hacia atrás hasta
el anterior marcador SAVEPOINT
• Las Sentencias DCL controlan el acceso del usuario a la Base de Datos. GRANT y
REVOKE son sentencias DCL que conceden o remueven los derechos de acceso a
una Base de Datos Oracle o a las estructuras en la Base de Datos.
• Este tema cubrió los 5 tipos de sentencias SQL y proporcionó una visión de los
tipos de manipulación de datos que se pueden brindar con SQL. Estas sentencias
SQL son usadas para añadir, modificar y eliminar la data almacenada en la Base de
Datos. También puede usar las sentencias SQL para crear y administrar tanto
objetos como tablas en la Base de Datos.
Capacidad de las Sentencias SELECT
• La Sentencia SELECT es usada para recuperar parte o toda los
registros de una tabla. En este tema, aprenderá acerca de las
capacidades de la Sentencia SQL SELECT.
• Puede usar la sentencia SQL SELECT para extraer datos de una
Base de Datos. Puede usar una sentencia SELECT para ver
todos o parte de la data en una tabla.
• Una consulta SELECT recupera información de una Base de Datos. Las Sentencias
SELECT tienen 3 capacidades: Selección, proyección y juntura.
• Puede usar las capacidad de selección de SQL para elegir que registros desea
recuperar de una tabla. Puede especificar varios criterios mientras que selecciona
que registros desea ver.
• Puede usar la capacidad de Proyección de SQL para elegir las columnas en una
tabla que desea recuperar. Puede recuperar columnas seleccionadas o todas las
columnas de una tabla.
• Puede juntar data que esta almacenada en diferentes tablas creando un enlace
entre los datos de las tablas. Juntar las tablas habilita que sea los datos
relacionados de dos o mas tablas a la misma vez.
Escribiendo Setencias SELECT
• Escribir una consulta básica requiere 2 cláusulas obligatorias en la sintaxis de la
Sentencia SELECT. Una cláusula SELECT y otra cláusula FROM. En este tema
aprenderá a identificar los pasos para construir una Sentencia SQL SELECT básica.
• La sintaxis de la Sentencia SQL esta mostrada. La Sentencia SELECT debe
incluir una cláusula SELECT y una cláusula FROM.
• La cláusula DISTINCT es opcional. Puede usar la cláusula
DISTINCT solamente cuando necesita eliminar en la pantalla
las filas duplicadas
• La cláusula SELECT especifica las columnas que desea mostrar.
La cláusula FROM especifica las tablas que contienen esas
columnas.
• La Sentencia SQL mostrada recupera todos las filas y columnas de la tabla
EMPLOYEES. Alternativamente, también puede especificar los nombres de
las columnas que desea seleccionar en la cláusula SELECT.
• Las palabras SELECT y FROM son llamadas keywords. Un
keyword comienza una cláusula SQL individual o un elemento
• Una cláusula refiere a una parte de la Sentencia SQL. La Sentencia SQL
mostrada en la pantalla tiene dos cláusulas. Una de las cláusulas es la
sentencia SELECT * y la otra es FROM EPLOYEES. EMPLOYEES se refiere al
nombre de la tabla.
• Una Sentencia es una combinación de cláusulas colocadas en un
especificado orden. Note que hay un punto y coma al final de la Sentencia.
Colocar un punto y coma al final de una sentencia es la forma de ejecutar
una sentencia SQL.
• Cuando ejecuta la sentencia, la consulta SQL es enviada a
la Base de Datos Oracle. La Data recuperada por la
consulta es obtenida y enviada de regreso.
• Cuando escriba código SQL, construya sentencias válidas que
sean fácil de leer y fáciles de editar. Necesita seguir reglas
simples y procedimientos para construir sentencias válidas.
• Primero necesita ingresar un Keyword para comenzar
una sentencia SQL. Los keywords no pueden ser
abreviados.
• Puede añadir keywords subsecuentes en diferentes líneas. Necesita
presionar ENTER para ir a la siguiente línea. Esto mejora la lectura,
colocando cada cláusula en una línea separada.
• Las Sentencias SQL no son case sensitive. Es aconsejable, para una mejor
lectura, digitar los keywords en mayúsculas. Las demas palabras, como el
nombre de la tabla y nombres de las columnas serán colocados en
minúsculas.
• Usted puede hacer código más leíble poniendo las cláusulas en líneas separadas, y
usando tabulaciones y sangrías. La importancia de esta pauta se pone más evidente
cuando sus declaraciones se ponen más complejas. La declaración de SQL mostrada
esta separada, y las cláusulas SELECT y FROM están escritas en dos líneas separadas.
• En este tema, aprendiste a identificar las pautas para construir las
sentencias SQL normales. El diagrama muestra la sintaxis para una sentencia
SELECT. Usted puede usar la sentencia SELECT para recuperar filas y
columnas de una tabla.
Seleccionando Columnas y Filas
• Cuando selecciona los datos de una tabla, puede seleccionar todas las
columnas y filas o puede restringir las columnas o filas que se
muestran. Este tema describe los métodos para seleccionar las
columnas de una tabla.
• Para mostrar todas las columnas de datos en una tabla, debes poner un
asterisco después de la palabra clave (keyword) SELECT. El asterisco
representa todas las columnas de una tabla.
• Para completar la sentencia identifique la tabla que quiere acceder.
Especifica la tabla en la cláusula FROM. En este ejemplo, se seleccionará
todas las columnas de la tabla de los EMPLOYEES.
• Para ejecutar la declaración, debe poner un punto y coma al final de la última línea
en la declaración y hacer clic en el botón Execute. Cuando ejecute la declaración, se
mostraran todas las columnas de la tabla EMPLOYEES. La pantalla se ha desplazado
hacia abajo para que se vean los primeros registros.
• Alternativamente, puedes mostrar todas las columnas listando todos los
nombres de columnas después de la Palabra Clave SELECT. Debes separar los
nombres de las columnas con comas.
• Listando todos los nombres de las columna de una tabla en la
cláusula SELECT, produces los mismos resultados como si usaras
el asterisco.
• Puedes limitar las columnas mostradas en el resultado de la consulta
limitando el número de columnas que se lista en la cláusula SELECT. Por
ejemplo, para mostrar sólo department_IDs y la department_name,
especifica sólo esas dos columnas.
• El orden en que lista las columnas en los cláusula SELECT determina el orden en que
aparecen las columnas en el resultado. En el ejemplo, especificando el manager_ID
seguido por department_name en la cláusula SELECT causa los resultados mostrados
con la columna manager_id primero y la columna department_name después.
• Las títulos de las columnas (o cabeceras) y los datos de las tablas se alinean según las
configuraciones pre-definidas. Las Columnas que contienen carácter o datos de fecha
están justificadas a la izquierda dentro de la anchura de la columna. Los títulos de las
columnas se centran.
• Las Columnas que contiene data numérica son justificados a la
derecha. Los títulos de las columnas para estas columnas están
centradas.
• Todos los títulos de las columnas aparecen en mayúsculas por defecto. Sin
embargo, usted puede cambiar los títulos de la columna según su
conveniencia usando los seudónimos de columna o alias.
• Este tema describió cómo escribir las sentencias SELECT para mostrar las
columnas y filas de una tabla. Puede usar la palabra clave SELECT para
recuperar todas las columnas o las columnas específicas de una tabla.
Expresiones Artiméticas
• Puede modificar la manera en que los datos se muestran, puede realizar cálculos, y
puede considerar en qué escenarios usar las expresiones aritméticas en una
sentencia SQL. En este tema, aprenderás a escribir una declaración SQL que incluya
expresiones aritméticas.
• Una expresión aritmética puede contener el nombre de la la columna, valores numéricos
constantes, y operadores aritméticos. Los operadores aritméticos disponibles en SQL son
la suma, resta, multiplicación, y división. Puedes usar los operadores aritméticos en
cualquier cláusula de una declaración SQL excepto la cláusula FROM.
• Por ejemplo, necesitas calcular un aumento de sueldo de $300
para todos los empleados. La salida debe mostrar un nuevo
sueldo adicional de $300 a la columna.
• Si desea mostrar los datos de la tabla EMPLOYEES. Los datos incluye el nombre del empleado,
sueldo, y el nuevo sueldo que es el sueldo actual más $300. En la cláusula SELECT, especificas las
columnas que quieres mostrar. Estos son FIRST_NAME, SALARY, y SALARY+300. En la cláusula
FROM, especificas el nombre de tabla EMPLOYEES.
• La consulta produce una nueva columna SALARY+300 en la salida. La
columna SALARY+300 no es una nueva columna en la tabla EMPLOYEES, sólo
es para el despliegue y no ha alterado la tabla. Por defecto, el nombre de la
columna viene del cálculo SALARY+300.
• En las declaraciones SQL, se evalúan las expresiones aritméticas según un orden
normal de funcionamiento. La multiplicación y división toman prioridad sobre la
suma y resta. Si los operadores dentro de una expresión son de la misma prioridad
entonces la expresión es evaluada de derecha a izquierda
• Por ejemplo, quieres calcular la compensación anual para los empleados.
Multiplicas el sueldo mensual por 12, entonces agregas una paga
extraordinaria de $100 a cada uno. En este ejemplo, la compensación anual
se representa por la expresión aritmética 12*salary+100.
• Puedes usar los paréntesis para reforzar el orden normal de precedencia y
mejorar la claridad. Usted puede escribir la expresión de la compensación
anual como (12*salary)+100 sin cambio en el resultado.
• Alternativamente, puedes usar los paréntesis para sobre-escribir las reglas
de precedencia. Por ejemplo, si quieres calcular la compensación anual
incluyendo un bono mensual de $100, la expresión sería 12*(salary+100).
• Cuando usted realiza las operaciones aritméticas en
valores NULOS, el resultado siempre es NULO. Se dice que
un campo vacío contiene NULO (NULL).
• Un valor NULO se define como un valor que no esta disponible, no asignado,
desconocido, o inaplicable. Un valor NULO no es igual que un cero o un espacio.
El cero es un número y un espacio es un carácter. La columna COMMISSION_PCT
en la tabla EMPLOYEES tiene valor NULO.
• Las columnas de cualquier tipo de dato pueden contener valores NULOS, a menos que la
columna no se defina como NULO cuando la tabla fue creada. Alternativamente, las columnas
Primary Key (llaves primaria) no pueden tener valores NULOS. La columna EMPLOYEE_ID es una
columna Primary Key. La columna DEPARTMENT_ID se define como una Columna no NO NULA.
• Si cualquier valor de una expresión aritmética es NULO, entonces el resultado es
NULO. Por ejemplo, si intentas dividir un número por cero, se consigue un error.
Si usted divide un número por NULO, el resultado es NULO
• Este tema demostró cómo escribir declaraciones SQL que contienen
expresiones aritméticas. Usted puede cambiar el orden predefinido de
precedencia para evaluar operadores aritméticos usando paréntesis.
LECCIÓN II:
PERSONALIZAR CONSULTAS
Alias de Columnas
• Cuando extrae datos de una tabla, puede mostrar los resultados en un
formato más útil. Este tema describe el uso de seudónimos o alias de
columnas como una manera de personalizar las declaraciones SELECT.
• Puedes usar un alias de columna para asignar un nombre diferente al
encabezado de la columna. Al mostrar el resultado de la consulta, en algunos
casos los títulos de las columnas pueden ser ambiguos. Usando un alias, puedes
mostrar un título más descriptivo para una columna.
• Por ejemplo, si recuperas los primeros nombres y salarios de los empleados de la
tabla EMPLOYEES, recibes dos columnas: FIRST_NAME y SALARY. Para crear un
resultado más descriptivo, puedes asignar nombres de alias NOMBRE y SUELDO
a las respectivas columnas.
• Creando una alias de columna, no está cambiando el
nombre de una columna en la base de datos. Usted está
cambiando sólo el título de la columna en el resultado.
• Especificas un alias apropiado después del nombre de columna
o expresión en la lista SELECT. Separas el nombre de la columna
y el seudónimo con un mínimo de un espacio.
• Cuando ejecuta la consulta, el resultado reemplaza el nombre
real de la columna con los nombres del alias. Por defecto, los
títulos aparecen en el mayúscula.
• Si no quieres que un alias esté en mayúsculas o si quieres usar espacios en
blanco en el nombre del alias, entonces incluye al alias doble comilla (“).
Incluyendo un alias en doble comilla, puedes especificar el caso exacto y los
espacios que quieras aparecer en el resultado.
• Puedes insertar la palabra clave opcional AS entre un nombre de columna y
un alias de columna para hacer que la declaración SQL sea más fácil de leer y
más explícito. El resultado de la consulta es el mismo.
• En este tema, aprendiste a usar los seudónimos o alias de columna para
personalizar sentencias SQL SELECT. Los seudónimos de columna hacen los
resultados más descriptivos.
Operador Concatenación
• Otra manera de personalizar una sentencia SQL es concatenar
dos o más columnas. Este tema describe cómo usar al operador
de concatenación.
• Puedes usar al operador de concatenación para concatenar o enlazar
columnas a otras columnas, caracteres aritméticos, o valores constantes.
Cuando se une una columna a uno de estos elementos, el resultado
despliega una sola columna que es una expresión de tipo carácter.
• El operador de concatenación se representa por dos barras
verticales. Las columnas, en cualquier lado del operador, son
combinados para mostrar una única columna.
• Por ejemplo, el logon del sistema para los empleados consista en su ID y su
primer nombre. Para recuperar una lista de nombres de logon, puedes usar
al operador de concatenación para que se una el ID del empleado y sus
primeros nombres.
• El resultado es una sola columna de información. La
información combina al ID del empleado y sus primeros
nombres en una columna llamada el LOGON_NAME.
• Este tema cubrió el uso del operador de concatenación. Puedes usar
el operador de concatenación para unir columnas de información en
una sola columna que contiene una expresión de tipo carácter.
Cadena de Caracteres Literales
• Puede introducir un carácter en una declaración SELECT personalizando el
resultado mostrado. Este carácter ingresado o cadena de caracteres son
conocido como literal. Este tema demuestra el uso de cadenas de carácter
literales.
• Un literal es un carácter, expresión, o número puestos en la lista SELECT
entre los nombres de columnas. Incluyes los caracteres literales entre
comillas simples. Usted no necesita incluir el literal de número en comilla.
Un literal es un valor que aparece una vez para cada fila de datos.
• Se unen las columnas y las cadenas literales con el operador de concatenación en una
cláusula SELECT. Por esto, usted puede producir resultados personalizados que son fácil de
leer y entender. En la pantalla, las columnas FIRST_NAME, EMPLOYEE_ID, y SALARY se han
unido con las cadenas literales para desplegar un resultado descriptivo.
• Puedes mostrar el literal como una columna separada. Por ejemplo, necesitas crear un
resultado que detalla el nombre del empleado con sus títulos de trabajo enlazados por la
cadena literal ‘ is a ’ (‘es un’). En la pantalla, el literal ' is a' se pone entre los nombres de la
columna en la lista SELECT. El resultado produjo una columna separada que contiene la cadena
literal.
• Alternativamente, usando la concatenación, el resultado muestra una sola columna
que puede darse un solo alias como Detalles del Empleado. Enlazando las columnas
FIRST_NAME y JOB_ID de esta manera, das mayor significado a las filas recuperadas.
• Este tema cubrió el uso del carácter literal para personalizar el
despliegue del resultado. Incluyendo el carácter literal en las
declaraciones SELECT, puedes reforzar la legibilidad del resultado.
Eliminar Filas Duplicadas
• Cuando envía una declaración SQL SELECT al servidor ORACLE para su
ejecución, la consulta devuelve todas las filas automáticamente, incluso las
filas duplicadas. Este tema discutiremos cómo eliminar las filas duplicadas
del resultado de una consulta.
• A menos que indique lo contrario, el resultado de una consulta contiene
todas las filas de una columna. Por ejemplo, si usted selecciona los
DEPARTMENT_IDs de la tabla EMPLOYEES, el resultado despliega toda los
DEPARTMENT_IDs, incluso los que se repiten.
• Puedes eliminar las filas duplicadas usando la palabra clave
DISTINCT en la cláusula SELECT. Debe colocar DISTINCT
inmediatamente después de la palabra clave SELECT.
• Usando la palabra clave DISTINCT, eliminas las filas duplicadas en el
resultado. En el ejemplo, la tabla EMPLOYEES contiene 108 filas, pero solo
hay 12 únicos números de departamentos en la tabla.
• La pantalla muestra todos los 12 únicos números de
departamento. La cláusula DISTINCT ha eliminado el despliegue
de números de departamentos duplicados.
• Puedes especificar columnas múltiples después de la palabra
clave DISTINCT. La palabra clave DISTINCT afecta todas a las
columnas seleccionadas.
• Usando la palabra clave DISTINCT para seleccionar los números de departamento y los títulos de
trabajo producen una combinación distinta de las columnas. Cuando usted usa la palabra clave
DISTINCT, el resultado se ordena primero con los valores de la columna DEPARTMENT_ID y
dentro de cada ID, se ordenan por valores de la columna JOB_ID
• Este tema discutió el uso de la palabra clave DISTINCT. La
cláusula DISTINCT se usa para eliminar las filas duplicadas del
resultado de una consulta.
ORACLE 10g

Restringiendo y ordenando la
información
LECCIÓN I:
Restricción de Filas
Cláusula WHERE
• Puedes restringir el número de filas que se recuperan de la Base de Datos
usando la cláusula WHERE en una sentencia SQL. En este tema aprenderás
a escribir Sentencias SQL usando la cláusula WHERE.
• Insertando una cláusula WHERE en una sentencia SQL, puedes especificar
una condición que debe cumplirse, y solo las filas que cumplan con esa
condición serán retornadas. Esto es también conocido como selección. La
selección de columnas o filas está basada en la condición que
especifiques.
• La cláusula WHERE sigue directamente a la cláusula FROM en
la Sentencia SQL. La cláusula WHERE consiste de la Palabra
Clave WHERE y una condición o condiciones
• La condición en una cláusula WHERE especifica una comparación de valores que
limitan las filas retornadas por una consulta. La condición consiste de 3 elementos.
Primero es un nombre de columna y segundo es un operador de comparación. El
tercer elemento puede ser otro nombre de columna, constante o lista de valores.
• La sentencia SQL muestra el ID del empleado, primer nombre, apellido, y salario
de esos empleados cuyo ID de departamento tienen el valor 90. El nombre de
columna después de la Palabra Clave WHERE especifica la columna que quieres
restringir. No puedes usar un alias de columna para especificar una columna en
una cláusula WHERE.
• El operador de comparación identifica las filas que son
retornadas. En la pantalla, el operador de comparación es el
signo igual.
• El nombre de la columna, constante, o lista de valores que siguen al
operador de la comparación completan la condición considerando que las
filas serán restringidas. En el ejemplo, la declaración selecciona las filas
dónde el valor en la columna de DEPARTMENT_ID es exactamente 90.
• Cuando ejecutas la consulta que contiene la cláusula WHERE, el resultado
muestra sólo a los IDs de los empleados, primeros nombres, apellidos, y
sueldos de esos empleados cuyo el DEPARTMEN_ID contiene el valor 90.
• En este tema, aprendiste a usar la cláusula WHERE. Puedes
usar la cláusula WHERE para mostrar solamente las filas que
quieres ver.
Cláusula WHERE: usando diferentes Tipos
de Datos
• Usando una cláusula WHERE, puedes especificar condiciones que incluyen
números, caracteres y fecha. En este tema, aprenderás a escribir una
cláusula WHERE usando diferentes Tipos de Datos.
• Usas una cláusula WHERE para restringir filas basadas en una comparación
de valores. Estos valores pueden ser valores numéricos, cadenas de
caracteres o valores de fecha.
• Puedes especificar un valor numérico en una cláusula WHERE, la condición
requiere no adicionar especificaciones. Escribe la palabra clave WHERE, el
nombre de columna, el operador de comparación y el número.
• Cuando uses una cadena de caracteres o un valor de fecha en la condición
de la cláusula WHERE, coloque el valor entre comillas simples.
• Los valores de tipo carácter son case sensitive. Por ejemplo, la cadena
‘ATLANTA’ no es lo mismo que ‘atlanta’ o ‘Atlanta’.
• Considere una situación en la que necesita una lista de todos los empleados que
tienen el JOB_ID de SA_MAN. Necesita primero especificar el nombre de columna
en la cláusula SELECT. Las columnas FIRST_NAME, JOB_ID y DEPARTMENT_ID.
Seguido, especifica el nombre de la tabla en la cláusula FROM.
• Si tipea la palabra SA_MAN en minúsculas, no retornará ninguna fila. Por el
contrario, la data en la tabla EMPLOYEES es almacenada en mayúsculas.
• Especificas el valor fecha en un formato predefinido. La pantalla despliega el
formato de fecha como DD-MON-YY.
• Oracle9i Database almacena las fechas en un formato interno, representando el
siglo, año, mes, dia, hora, minutos y segundos. El despliegue predefinido de una
fecha muestra el dia, mes y año, no puedes ver la hora ni minutos ni segundos
aunque si es almacenado.
• El formato de despliegue de fecha predefinido común en Oracle9i es DD-MON-RR.
DD es el día del mes, MON son las primeras tres letras del nombre del mes, y RR es
los últimos dos dígitos del año. La fecha que especificas debe estar en este
formato. Por ejemplo, el 25 de enero de 2002, se especifica y despliega en el
formato de fecha 25-JAN-02.
• En este tema, aprendiste a escribir una cláusula WHERE
usando diferentes Tipos de datos. Los caracteres y valores de
fecha deberán ser colocados entre comillas simples.
LECCIÓN II:
Operadores de Comparación
Objetivos
• Usar los operadores de comparación en la cláusula
WHERE.
• Mostrar las filas basadas en un rango de valores
usando el operador BETWEEN.
• Mostrar las filas que estasn relacionadas con una
lista de valores usando el operador IN
• Realizando búsquedas avanzadas usando el operador
LIKE.
• Mostrar las filas que contienen valores NULOS
usando el operador IS NULL.
Usando Operadores de comparación
• Los operadores de comparación son colocados en una cláusula WHERE
para restringir las filas devueltas basados en la comparación de una
expresión con otra. En este tema, aprenderás a usar los operadores de
comparación en la cláusula WHERE.
• Algunos de los operadores de comparación que pueden ser usados en la
cláusula WHERE se muestran a continuación. Los operadores son igual a,
mayor que, mayor o igual a, menor que, menor o igual a y diferente a.
Usando estos operadores, puedes especificar las condiciones a restringir
en las filas devueltas por una consulta.
• Otros operadores de comparación pueden ser usados en la cláusula WHERE, estos
son BETWEEN .... AND ...., IN, LIKE y IS NULL. También puedes usar estos
operadores de comparación para restringir las filas devueltas por una
consulta basadas en una variedad de condiciones.
• Por ejemplo, necesitas recuperar una lista de empleados que
ganan un sueldo mensual mayor a $1250. Puedes usar el
operador de comparación para especificar la condición.
• Puedes usar el operador de comparación “mayor
que” en la cláusula WHERE, especificas una
condición de salary > 1250.
• El resultado produce una lista de empleados
que gana mas de $1250 por mes.
• También puedes usar operadores de comparación en una
cláusula WHERE que contienen caracteres o valores de fecha.
Debes colocar el carácter o valor de fecha entre comillas
simples
• Considere una situación donde necesitas una lista de los empleados que
gana un sueldo mensual que es mayor o igual a su comisión anual.
Primero debes seleccionar las columnas que necesitas recuperar. Seguido,
especificas el nombre de la tabla, y finalmente añades la cláusula WHERE
que restringa los resultados a la condición.
• EL resultado produce una lista de empleados que tienen un
sueldo mensual que es mayor que su comisión anual. Los
empleados cuya columna COMMISSION_PCT contienen un
valor NULL no son incluido en la lista.
• Cuando usas los operadores de comparación en una cláusula WHERE, las filas que
contienen valores NULOS no son efectivamente parte del resultado. Esto es porque
cuando comparas un valor NULO con cualquier valor, su resultado siempre es
NULO. Un valor no puede ser igual, mayor que, menor que o diferente a NULO,
porque NULO no es un valor.
• En este tema aprendiste a usar los operadores de
comparación en la cláusula WHERE. Estos operadores
recuperan resultados de la tabla basadas en la condición que
especificas.
Operador BETWEEN
• Algunas veces necesitas recuperar información que está en un rango de valores.
Para mostrar filas basadas en un rango de valores, usas el operador BETWEEN. En
este tema aprenderás a mostrar filas basadas en un rango de valores usando el
operador BETWEEN.
• Para especificar una condición en una cláusula WHERE basado en un rango de
valores, usas las palabras claves BETWEEN y AND. Especificas la palabra clave
BETWEEN seguido del límite inferior del rango, y la palabra clave AND, y el límite
superior del rango.
• Los valores especificados en el operador BETWEEN
son inclusivos. Necesitas especificar primero el límite
inferior.
• Puedes usar el operador BETWEEN para mostrar caracteres o
valores de fecha que se encuentren en un rango. Cuando
especificas caracteres o fechas en un rango, debes colocar
cada valor entre comillas simples.
• Puedes recuperar una lista de todos los empleados cuyos nombres
alfabéticamente se encuentren en un rango específico. Seleccionas la columna
FIRST_NAME de la tabla EMPLOYEES. Entonces añades una cláusula WHERE que
especifica el rango desde la letra ‘S’ hasta la letra ‘W’. Los valores de caracter en el
rango son colocados entre comillas simples.
Operador IN
• Si necesitas restringir las filas recuperadas a valores en una lista específica,
entonces debes usar el operador IN en una cláusula WHERE. En este tema,
aprenderás a mostrar filas que estén relacionadas con una lista de valores
usando el operador IN.
• Usas el operador IN dentro de una cláusula WHERE para probar los valores
en una lista específica de valores no consecutivos. La palabra clave IN se
sigue por una lista de valores separados por comas. La lista de valores
debe estar dentro de paréntesis.
• Puedes usar el operador IN en cualquier tipo de
dato. El tipo de Dato puede ser numérico, carácter o
fecha.
• Puedes usar el operador IN con caracteres o fechas en una
cláusula WHERE. Necesitas colocar cada cadena de caracteres
o fecha entre comillas simples.
• En este tema, aprendistes a usar el operador IN. Puedes usar
el operador IN para restrimgit as filas retornadas probados
para valores en una lista.
• En este tema, aprendiste a usar el operador IN. Puedes usar el
operador IN para restringir filas retornadas probados para
valores en una lista.
Operador LIKE
• Al recuperar información de una tabla, no siempre sabes exactamente qué
valor quieres buscar. Puedes usar el operador LIKE en una cláusula WHERE
buscando patrones de caracteres en la información. En este tema,
aprenderás a realizar búsquedas WILDCARD usando el operador LIKE.
• Puedes seleccionar filas que estén relacionadas con un patrón
de caracteres usando el operador LIKE. Este método de
búsqueda basado en patrones de caracteres es conocido
como WILCARD
• Para realizar búsquedas WILDCARD, primero debes hacer una cadena que
contenga símbolos comodines. El símbolo porcentaje (%) representa cualquier
número de caracteres, cero o mas. El símbolo underscore (_) representa un solo
carácter. La cadena de búsqueda esta encerrada entre comillas simples.
• En una cláusula WHERE, colocas el nombre de columna seguido por el
operador LIKE y la cadena de búsqueda. El ejemplo en la pantalla muestra
las búsquedas para valores en la columna FIRTS_NAME donde el tercer
carácter sea A
• Si necesitas hacer búsquedas de cadenas de caracteres que contengan el
literal % o _, entonces debes usar la opción ESCAPE. Usando la opción
ESCAPE, puedes especificar que los símbolos porcentaje y underscore ( %,
_ ) no representen cadenas comodines.
• Por ejemplo, para mostrar los nombres de los empleados cuyo nombre contengan
los caracteres A_B, puedes usar la sentencia mostrada en la pantalla. La palabra
clave ESCAPE identifica el backslah (barra inversa) como el carácter ESCAPE. El
carácter de escape interpreta el siguiente carácter literalmente.
• En el ejemplo, el backslash precede el underscore. Por consiguiente, el
servidor Oracle interpreta el underscore literalmente en esta sentencia. El
resultado mostrará nombres como SARA_BENNETT, SANDRA_BROWN, y
DEBRA_BURNS
• En este tema, aprendiste a usar el operador LIKE en una cláusula WHERE.
El operador LIKE es usado para restringir filas recuperadas basadas en la
búsqueda de patrones de caracteres.
Operador IS NULL
• Si quieres averiguar que si alguna columna contiene un valor NULO,
puedes usar el operador IS NULL en la cláusula WHERE. En este tema,
aprenderás a mostrar filas que contienen valores NULOS usando el
operador IS NULL.
• El operador IS NULL evalúa todos los valores si nos NULOS. Un medio de
valor NULO es aquel valor no disponible, no asignado, desconocido, o inaplicable.
No puedes probar, para valores NULOS, usando un signo igual porque un valor
NULO no puede ser igual o diferente a cualquier valor.
• Por ejemplo, necesitas recuperar los nombres de empleados que no tienen un
administrador. Puedes usar el operador IS NULL para hallar todas las filas que
contienen un valor NULO en la columna MANAGER_ID. En la cláusula WHERE,
digitas el nombre de la columna seguido por el operador IS NULL:
• La lista de empleados resultantes que tienen un valor NULO
en la columna MANAGER_ID. En la tabla EMPLOYEES, solo uno
de los empleados no tiene asignado un administrador.
• En este tema, aprendiste a mostrar filas que contienen valores NULOS usando el
operador IS NULL. El operador IS NULL recupera solo aquellas filas que contienen
un valor NULO.
LECCIÓN III:
Operadores Lógicos
Objetivos
• Escribir una expresión combinada usando el
operador AND en una cláusula WHERE.
• Escribir una expresión combinada usando el
operador OR en una cláusula WHERE.
• Restringir filas usando el operador NOT en una
cláusula WHERE.
• Identificar las reglas de precedencia cuando se
evalúan condiciones que usan operadores de
comparación y lógicos.
Operador AND
• Puedes especificar mas de una condición en una cláusula WHERE usando
operadores lógicos. Tres operadores lógicos están disponibles en SQL:
AND, OR y NOT. En este tema, aprenderás a escribir una expresión
combinada usando el operador AND en una cláusula WHERE.
• Usas el operador lógico AND en una cláusula WHERE para
definir condiciones que todas deberían ser verdad- Si todas
las condiciones se cumplen entonces las filas serán
recuperadas
• Típicamente adicionas la palabra clave del operador lógico en la siguiente línea
después de la cláusula WHERE proporcionando legibilidad a las condiciones. La
cláusula WHERE en el ejemplo especifica que el salario mensual debería ser mayor
o igual a $2850 y que el JOB_ID debería ser ST_CLERK para toda fila recuperada.
• Si ejecutas la consulta, el resultado lista todos los primeros nombres,
apellidos, JOB_IDs y salarios de los empleados que cumplen con ambas
condiciones especificadas en la cláusula WHERE
• Todo carácter buscado es case sensitive, por defecto. Si especificas el valor
ST_CLERK en minúsculas, ninguna fila será retornada. Esto es porque los JOB_IDs
son almacenados en mayúsculas en la tabla EMPLOYEES. Necesitas colocar la
cadena de caracteres en mayúsculas en la condición de búsqueda.
• Cuando combinas cualquier número de condiciones AND, todas las
condiciones deben ser verdad para que el resultado también sea verdad-
Si todas las condiciones no se cumplen, ninguna fila es recuperada.
• Puedes usar el operador lógico AND para combinar condiciones que
reduzcan el alcance de la búsqueda. El ejemplo especifica dos condiciones:
el salario esta entre $2850 y $3800 y el MANAGER_ID está en la lista de
valores 100, 120 y 121.
• En este tema aprendiste a escribir una expresión combinada usando el
operador lógico AND. Puedes usar el operador lógico AND para combinar
múltiples condiciones en una cláusula WHERE.
Operador OR
• Cuando escribes una cláusula WHERE, puedes especificar múltiples condiciones
usando el operador lógico OR. Cuando dos o mas condiciones son enlazadas por el
operador OR, solo uno de las condiciones debe ser verdad. En este tema
aprenderás a escribir una expresión combinada usando el operador lógico OR.
• Puedes usar el operador lógico OR en una cláusula WHERE para definir dos
condiciones de los cuales uno debe ser verdad. Si una de las condiciones
se cumplen, entonces las filas son recuperadas de la base de datos.
• Por ejemplo, necesitas recuperar información acerca de los empleados
que ganen un sueldo mayor o igual a $4500 o que tengan el título de
trabajo ST_CLERK. Puedes combinar estas condiciones en una cláusula
WHERE usando el operador OR.
• El resultado produce una lista de empleados que cumplen con alguna de las
condiciones. La cadena de caracteres ‘ST_CLERK’ ha sido ingreso en mayúsculas
producto del case sensitive de los caracteres. Recuerde que siempre debe encerrar
las cadenas de caracteres y fechas entre comillas simples.
• Note las diferencias en los resultados cuando usas el operador lógico AND
y OR. El operador lógico OR es menos restrictivo porque solo una de las
condiciones debe ser verdad para cada fila recuperada.
• Cuando combinas dos expresiones con OR, una de las condiciones debe
ser verdad para que el resultado sea verdad. Los resultados de combinar
dos expresiones con OR son mostradas en la pantalla.
• Puedes usar el operador lógico OR en una combinación con cualquier operador de
comparación para especificar condiciones en una cláusula WHERE. Por ejemplo,
para encontrar empleados con ‘S’ como la primera letra en su primer nombre o
que no ganen una comisión, puedes usar los operadores de comparación LIKE y IS
NULL enlazados por el operador lógico OR.
• En este tema, aprendiste a escribir una sentencia SQL que incluya el
operador lógico OR en la cláusula WHERE. Puedes usar el operador lógico
OR para especificar condiciones en que la fila se recupera si cualquier de las
condiciones es verdad
Operador NOT
• Mientras recuperas información de una tabla, puedes especificar solo los
detalles que quieres ver. En este tema, aprenderás a recuperar
información que deseas ver usando el operador NOT en una cláusula
WHERE.
• Puedes usar el operador NOT para invertir el resultado de una simple
condición en una cláusula WHERE. Puedes usar el operador lógico NOT en
combinación con operadores de comparación como IN, BETWWEN, LIKE y
IS NULL.
• Para producir una lista de empleados que no son ni empleados ni
vendedores, puedes usar el operador NOT en combinación con el
operador IN. Digite NOT directamente antes de la palabra clave IN en la
sentencia.
• El resultado produce una lista de empleados que no
tienen el JOB_ID especificado en la lista de valores de
la cláusula IN.
• Coloca el operador NOT directamente antes del operador IN, BETWEEN, y
LIKE en una declaración SQL. Sin embargo, con el operador IS NULL, coloca
la palabla clave NOT en la mitad produciendo el operador IS NOT NULL.
• Si una condición intenta evaluar un valor NULO, el resultado es NULO o
desconocido. Usas el operador IS NULL para encontrar los valores NULOS. En
contraste, puedes usar el operador IS NOT NULL para localizar los valores que no
sean NULOS.
• Para recuperar una lista de empleados que ganan una comisión, puedes
usar el operador IS NOT NULL en la cláusula WHERE. En la pantalla se
muestra el ID del empleado, primer nombre, y la comisión ganada por los
empleados.
• En este tema aprendiste a restringir filas usando el operador NOT en una
cláusula WHERE. Puedes usar el operador NOT para definir una condición
en términos de “que es lo no quieres recuperar”.
• En este tema aprendiste a restringir filas usando el operador NOT en una
cláusula WHERE. Puedes usar el operador NOT para definir una condición
en términos de “que es lo no quieres recuperar”.
Reglas de precedencia
• Cuando combinas operadores lógicos y de comparación en una cláusula
WHERE, estos operadores son evaluadas de acuerdo a un orden estándar de
precedencia. En este tema, aprenderás a identificar las reglas de precedencia
cuando evalúen condiciones que usen operadores de comparación o lógicos
• Las reglas de precedencia determinan el orden en que cada expresión será
evaluado y calculado. En la sentencia SELECT, el Servidor Oracle evalúa
primero los operadores de comparación y después los operadores lógicos.
• En la evaluación de los operador lógicos, el operador NOT es evaluado
primero y el operador AND es evaluado segundo. El operador lógico OR es
evaluado tercero.
• Puedes sobrescribir el orden de precedencia por defecto usando
paréntesis. Colocas los paréntesis alrededor de las expresiones que deseas
calcular primero.
• De acuerdo con las reglas de precedencia, el operador AND es evaluado
antes que el operador OR en una sentencia SQL. En el ejemplo, la
sentencia primero recupera las filas de la tablas EMPLOYEES en las que un
empleado gana mas de $4850 y que tiene el JOB_ID de AD_PRES.
• The statement then evaluates the OR condition. The condition retrieves
rows in which the employee has the job ID of SA_MAN. La declaración
entonces evalúa la condición OR. La condición recupera filas en las que el
empleado tiene el JOB_ID de SA_MAN.
• El resultado refleja una combinación de ambas condiciones. La sentencia
recupera filas donde el salario es mayor a $4850 y que tienen el JOB_ID de
AD_PRESS o basta que tengad el JOB_ID de SA_MAN. En total, seis registros
coinciden con las condiciones especificadas en la cláusula WHERE.
• Puedes usar paréntesis para cambiar la prioridad de evaluación.
Insertando paréntesis como se muestra, la primera condición que
será evaluada es que el JOB_ID sea AD_PRES o SA_MAN.
• La segunda condición que será evaluada es
que el salario sea mayor a $4850
• El resultado lista los empleados que tienen su JOB_ID como AD_PRES o
SA_MAN, y que ganen mas de $4850 por mes. La consulta recupera 6
registros.
• En este tema, aprendiste a identificar las reglas de precedencia usadas en
la evaluación de operadores lógicos y de comparación. Siguiendo estas
reglas de precedencia, puedes escribir sentencias SQL que recuperen la
información que necesitas.
LECCIÓN IV:
Ordenando filas
Objetivos
• Ordenar filas recuperadas en orden
ascendente usando la cláusula ORDER BY.
• Ordenar filas recuperadas en orden
descendente usando la palabra clave DESC en
la cláusula ORDER BY.
• Ordenar filas recuperadas usando un alias de
columna en la cláusula ORDER BY.
• Ordenar filas recuperadas por mas de una
columna.
Cláusula ORDER BY
• Cuando recuperas información de una tabla, puedes ordenar las filas
usando una cláusula ORDER BY. En este tema, aprenderás a ordenar las
filas recuperadas en orden ascendente usando una cláusula ORDER BY en
una sentencia SELECT.
• Cuando recuperas filas de una tabla, el orden de las filas en el resultado es
indefinido. Esto significa que el servidor Oracle no puede recuperar las
filas en el mismo orden para la misma consulta emitida en dos momentos
diferentes
• Puedes usar la cláusula ORDER BY para ordenar filas en un orden que
puedes especificar. El orden puede ser ascendente o descendente. El
orden por defecto es ascendente. Puedes especificar la palabra clave DESC
para ordenar la información en orden descendente
• Colocar una cláusula ORDER BY al final de la sentencia SELECT. Las palabras claves
ORDER BY son seguidas por el nombre de columna, alias de columna o expresión
usada para ordenar la información. El orden por defecto es ascendente. Para
ordenar las filas en orden descendente, necesitas especificar la palabra clave DESC
después del nombre de columna
• El valor predeterminado para ordenar los datos es en orden ascendente. Los datos
numéricos se ordenan del más bajo al más alto. Los datos tipo carácter se ordena
alfabéticamente de la A a la Z. Los datos tipo fecha se ordenan del más próximo a
la última fecha. Los valores NULOS son mostrados en último lugar en sucesiones
ascendentes.
• Puedes ordenar la información por una columna o por una
expresión. Puedes también usar un alias de columna en una
cláusula ORDER BY para ordenar la información, al contrario
de la sintaxis de la cláusula WHERE.
• Puedes ordenar datos por un nombre de columna o
expresión. El nombre de columna no necesariamente
debe aparecer en la lista SELECT.
• Considerando una situación donde necesitas una lista de empleados ordenados en
orden ascendente por el sueldo anual, pero no deseas que el salario actual
aparezca en el resultado puedes seleccionar solamente el nombre del empleado y
entonces especificar el sueldo anual en la cláusula ORDER BY usando la expresión
SALARY * 12.
• El resultado lista a los empleados ordenados por el
salario anual. La cantidad del salario no aparece en el
resultado.
• En este tema, aprendiste a usar la cláusula ORDER BY.
Puedes incluir la cláusula ORDER BY en la sentencia
SELECT para ordenar los resultados de una consulta.
Ordenando en Orden
descendente
• Algunas veces necesitas mostrar la información ordenada en
orden descendente. En este tema, aprenderás a ordenar las
filas recuperadas en orden descendente usando la palabra
clave DESC en la cláusula ORDER BY.
• El orden por defecto cuando usa la cláusula ORDER BY es
ascendente. Puedes revertir el orden de las filas mostradas
usando la Palabra clave DESC.
• Necesitas colocar la palabra clave DESC después del nombre
de columna en la cláusula ORDER BY. Esto ordenará la
columna en el orden descendente.
• Necesitas colocar la palabra clave DESC después del nombre
de columna en la cláusula ORDER BY. Esto ordenará la
columna en el orden descendente.
• La Palabra clave DESC implementa un ordenamiento descendente. Los valores
numéricos son mostrados desde el mas alto al mas bajo. Los valores caracteres son
mostrados desde la Z a la A. Los valores fecha son mostrados desde las últimas
fechas a las mas próximas. Los valores NULOS son mostrados primeros en
secuencias descendentes.
• En este tema, aprendiste a usar la palabra clave DESC en la
cláusula ORDER BY. Pedes usar la palabra clave DESC para
ordenar información en orden descendente.
Ordenando por Alias de
Columnas
• Si proporciona un alias de columna en su sentencia SELECT, puedes usar
este alias en la cláusula ORDER BY. En este tema, aprenderás a ordenar las
filas recuperadas usando un alias de columna en la cláusula ORDER BY.
• Puedes usar un alias de columna para proporcionar una cabecera mas
descriptiva para la información mostrada como el resultado de una
consulta. Asignas una alias de columna a una columna real, puedes
también usar el alias en la cláusula ORDER BY.
• En este tema, aprendiste como ordenar filas recuperadas usando un alias
de columna en la cláusula ORDER BY. Usando un alias de columna, no
necesitas digitar la columna, o columnas, o la expresión en la cláusula
ORDER BY.
Ordenar por múltiples columnas
• Puedes ordenar resultados de consulta usando mas de una
columna. En este tema, aprenderás a ordenar filas
recuperadas por mas de una columna.
• Puedes ordenar información por mas de una columna especificando múltiples
columnas en la cláusula ORDER BY. Separas los nombres de columnas, alias o
expresiones usando comas en la cláusula ORDER BY. El orden del ordenamiento es
el orden de las columnas en la lista del ORDER BY.
• Considere una situación dónde necesita mostrar una lista de nombres, IDs de
departamento y sueldos de los empleados. Para producir una lista que ordene a
los empleados por el ID de departamento, seguido por el sueldo dentro de cada ID
de departamento, puedes especificar las múltiples columnas en la cláusula ORDER
BY.
• Si necesitas invertir el orden dentro de una columna, debes poner la palabra clave
DESC después del nombre de la columna en la cláusula ORDER BY. En una lista de
columnas múltiples, usted necesita especificar la palabra clave DESC después de
cada columna que necesite estar ordenado en orden descendente.
• En este tema, aprendiste a ordenar filas recuperadas por mas de una
columna. Puedes usar esta información para organizar el orden de los
datos recuperados por una consulta.
ORACLE 10g

Funciones de fila únicas


LECCIÓN I:
Tipos de Datos y Funciones SQL
Objetivos
• Identificar los diferentes tipos de Dato
• Relacionar los tipos de datos carácter con sus
descripciones.
• Identificar las características de los tipos de datos
numéricos.
• Relacionar los tipos de datos DateTime con sus
descripciones.
• Relaciones los tipos de datos LOB con sus descripciones.
• Identificar los tipos de Funciones SQL.
• Relacionar los tipos de funciones de filas únicas con sus
características.
Categoría Tipos de Datos
• Oracle Database consiste de varios objetos de base de datos. Una tabla es un
objeto de la base de datos donde almacena su información. La información que se
almacena en una tabla puede pertenecer a diferentes tipos de datos como un
character, number o DateTime. En este tema aprenderás acerca de las categorías
de tipos de datos proporcionados por Oracle9i.
• Cada valor manipulado por Oracle tiene un tipo de dato. Los
tipos de datos proporcionan una manera de definir la
conducta de la información. Cuando creas una tabla, debes
especificar un tipo de dato para cada una de sus columnas.
• El tipo de dato de un valor asocia un juego fijo de propiedades con el valor. Estas
propiedades causan que Oracle trate los valores de un tipo de dato
diferentemente de los valores de otro. Se muestran las categorías de tipos de dato.
Puede categorizar el tipo de dato proporcionado por Oracle9i como CHARACTER,
NUMBER, RAW y LONG RAW, DATETIME, LOB, y ROWID.
• En un tipo de datos CHARACTER puedes almacenar variables de tipo caracter de
longitud fija o variable. VARCHAR2, CHAR y LONG con algunos de los tipos de dato
CHARACTER. La mayoría de los tipos de dato tiene un tamaño máximo dado,
forzado por el servidor Oracle. Salvo el tipo de dato CHAR, todos los tipos de datos
CHARACTER aceptan datos de longitud variable.
• Puedes almacenar valores numéricos de longitud variable con la ayuda del
tipo de dato NUMBER. El tipo de dato NUMBER puede almacenar
precisión (p) y escala (s). Precisión es el total de dígitos decimales. Escala
es el número de dígitos a la derecha de la precisión.
• Puedes almacenar valores de fecha y hora usando el tipo de dato DATETIME. En Oracle9i,
puedes incluir la zona horaria y las fracciones de segundo en los tipos de dato DATETIME.
DATE, TIMESTAMP, INTERVAL YEAR TO MONTH, INTERVAL DAY TO SECOND, TIMESTAMP WITH
TIME ZONE, y TIMESTAMP WITH LOCAL TIME ZONE son algunos de los tipos de datos
DATETIME.
• Puedes almacenar grandes cantidades de información y datos no
estructurados como texto, imágenes, video usando los tipos de dato LOB.
El tipo de dato LOB como BLOB y CLOB pueden almacenar hasta 4 GB de
información.
• ROWID es una cadena hexadecimal que representa una
dirección única de una fila en la tabla. El Tipo de Dato ROWID
es usado para almacenar la dirección de cada fila en una base
de datos.
• El tipo de dato RAW es equivalente al tipo de dato VARCHAR2. Generalmente este
tipo de dato es usado para almacenar datos binarios que no son interpretados por
el Servidor Oracle. Puedes almacenar hasta 2000 bytes de datos binarios. Sin
embargo, debes especificar un tamaño máximo cuando uses el tipo de dato RAW.
• El tipo de dato LONG RAW es equivalente al tipo de dato
LONG. El tipo de dato LONG RAW almacena hasta dos GB de
datos binarios de longitud variable.
• En este tema, aprendiste acerca de las categorías de tipos de dato
proporcionados por Oracle 9i. Un tipo de dato es un formato estándar de
dato. Si conoces el tipo de dato de la columna entonces puedes identificar
el contenido de la información almacenada en esa columna de la tabla.
Tipos de Dato Character
• Puedes usar el tipo de dato CHARACTER para almacenar valores de
longitud variable y fija. En este tema, aprenderás acerca de los tipos de
dato character.
• Cuando usas una tipo de dato de longitud variable, el espacio para almacenar los
datos se conserva. Por ejemplo, tienes un nombre de columna que puede guardar
hasta 10 caracteres. Si ingresas un valor que tiene 5 caracteres, el espacio restante
puede ser usado para almacenar otros valores.
• Al contrario, un tipo de dato de longitud fija consume toda la longitud especificada
sin tener en cuenta el número de caracteres almacenado. Si insertas un valor que
es más corto que la longitud especificada, el valor se llena con espacio en blanco
hasta la longitud especificada.
• Los tipos de dato character son usados para almacenar caracteres donde el número de
caracteres no puede exceder un límite particular máximo. Oracle asegura que todos los
valores almacenados en una columna tengan un tamaño específico. Los tipos de datos
mas comúnmente usados son VARCHAR2, CHAR, y LONG.
• El tipo de dato VARCHAR2(longitud) es un tipo de dato de longitud variable con
una longitud mínima de un caracter y una longitud máxima de 4000 caracteres.
Cuando usas el tipo de dato VARCHAR2, debes especificar un tamaño máximo.
• Un ejemplo es mostrado donde una columna llamada ADDRESS pertenece a un
tipo de dato VARCHAR2. VARCHAR2 es un tipo de dato ideal para almacenar
direcciones porque estos puedes contener tanto valores numéricos como caracter.
• El tipo de dato CHAR es usado para almacenar caracteres de longitud fija.
La longitud por defecto y mínima del tipo de dato CHAR es uno. Sin
embargo, puedes especificar una longitud de hasta 2000 caracteres.
• Identifique la longitud máxima de caracteres que
pueden ser especificados en un tipo de dato
VARCHAR2.
– 4000
– 3000
– 5000
– 100
• Puedes usar el tipo de dato character LONG para almacenar caracteres de
longitud variable hasta de 2 GB. Una columna LONG puede contener
cualquier caracter como letras, números, símbolos o espacios en blanco.
• Oracle9i proporciona varios tipos de dato character. En este tema,
aprendiste acerca de los tipos de dato character. Usas estos tipos de dato
para almacenar caracteres.
Tipos de Dato NUMBER
• Puedes almacenar valores numéricos usando el tipo de dato NUMBER. En
este tema, aprenderás acerca de las características de los tipos de dato
NUMBER.
• El tipo de dato NUMBER almacena siempre valores numéricos de longitud
variable. Por ejemplo, puedes almacenar el salario de un empleado en una
columna que es del tipo de dato NUMBER.
• La sintaxis para el tipo de dato NUMBER es mostrada. Puedes
especificar un número de punto fijo usando el formato
NUMBER(p,s)
• La precisión es el total de dígitos. Por ejemplo, si tomamos el
número 99.65, la precisión es 4. La precisión puede ser desde 1
hasta 38. La precisión por defecto para el tipo de dato NUMBER es
38.
• La Escala es el número de dígitos a la derecha del punto decimal. La Escala
puede estar en el rango de -84 hasta 127. Por ejemplo si tomas el número
66.553, la escala es tres.
• Identifique la característica del Tipo de Dato
NUMBER
– Un tipo de dato NUMBER almacena data
alfanumérica de longitud variable
– Un tipo de dato NUMBER almacena data numérica
de longitud fija
– El rango de la ESCALA es de -84 a 155
– El rango de la PRECISIÓN es de 1 a 38
Tipos de Dato DateTime
• La versión Oracle9i ha introducido nuevos tipos de datos DateTime que te
habilita a incluir el desplazamiento de la zona horaria y proporciona
soporte para fracciones de segundo. En este tema aprenderás acerca de
los tipos de dato DateTime
• Oracle9i proporciona fecha y hora extendidas y soporta diferentes zonas horarias.
Algunos de los tipos de dato DateTime son DATE, TIMESTAMP, INTERVAL YEAR TO
MONTH, INTERVAL DAY TO SECOND, TIMESTAMP WITH TIME ZONE, y TIMESTAMP
WITH LOCAL TIME ZONE.
• Los valores de los tipos de dato DateTime son llamados algunas veces Fechas y
horas. Las Fechas y Horas están hechas de campos. El valor de estos campos
determinan el valor del tipo de dato. Los campos mostrados son YEAR, MONTH,
DAY, HOUR, MINUTE, SECOND, TIMEZONE_HOUR, y TIMEZONE_MINUTE
• El tipo de Dato DATE es un tipo de dato estándar Oracle usado para almacenar
valores de fecha y hora. El formato de fecha por defecto en Oracle9i es DD-MON-
RR. El formato le permite guardar fechas del siglo 20 especificando sólo los dos
últimos dígitos del año. Esto significa que una fecha específica se guardará
internamente como 25-JAN-2002
• El rango válido del tipo de dato DATE es entre Enero 1, 4712 a.c. Y
Diciembre 31, 9999. El formato por defecto para mostrar la fecha es DD-
MON-YY. La información del siglo no es mostrada por defecto. Por
ejemplo, por defecto la fecha es mostrada como 25-JAN-02.
• Puedes almacenar tiempo con una precisión de fracciones de segundos usando el
nuevo tipo de dato TIMESTAMP. El tipo de dato TIMESTAMP es una extensión del
tipo de dato DATE. Puedes almacenar el año, mes y día en el tipo de dato DATE,
adicional también puedes almacenar valores de horas, minutos, segundos y
fracciones de segundos.
• La sintaxis del tipo de dato TIMESTAMP es mostrado. El valor de precisión de las
fracciones de segundos especifica, opcionalmente, el número de dígitos en la
parte fraccional del campo SECOND. El valor de precisión de las fracciones de
segundos puede ser cualquier valor entre 0 y 9. El valor por defecto es 6.
• El tipo de dato INTERVAL es usado para representar la diferencia precisa entre dos
valores DATETIME. Por ejemplo, para almacenar el tiempo que tomo en completar
una tarea, puedes usar el tipo de dato INTERVAL para grabar el tiempo entre el
inicio y final de la tarea.
• El tipo de dato INTERVAL YEAR TO MONTH es un tipo de dato INTERVAL. Puedes
usar el tipo de dato INTERVAL YEAR TO MONTH para almacenar intervalos de años
y meses.
• Necesitas calcular las fechas de la apreciación del empleado que varían basado en
el contraste de las fechas de los empleados. La columna de la APRECIACIÓN de la
tabla mostrada tiene el tipo de dato INTERVAL YEAR TO MONTH que guarda el
valor en años. Este valor se agrega al contraste de la fecha para calcular las fechas
de la apreciación que se guardan en la columna de APPR_DATE.
• El tipo de dato INTERVAL YEAR TO MONTH almacena un periodo de hora usando
los campos YEAR y MONTH. En la sintaxis mostrada, el valor de precisión del año
es el número de dígitos en el campo YEAR. El valor por defecto es 2.
• El INTERVAL DAY TO SECOND es otro tipo de INTERVAL. El tipo de dato almacena
un periodo de tiempo en términos de días, horas, minutos y segundos. El valor
mostrado indica un día, 5 horas, 31 minutos, y 0 segundos.
• Por ejemplo, el departamento Ferrocarril quiere generar el tiempo de
llegada, automáticamente, para todos los trenes. El tipo de dato INTERVAL
DAY TO SECOND puede usarse para guardar el tiempo de llegada.
• TIMESTAMP WITH TIME ZONE es una variante del tipo de dato TIMESTAMP que
incluye un desplazamiento de zona horaria en su valor. El desplazamiento de zona
horaria es la diferencia, en horas y minutos, entre el tiempo local y el Coordinated
Universal Time (UTC), anteriormente conocido como Greenwich Mean Time
(GMT). Un TIMESTAMP es mostrado.
• La sintaxis del tipo de dato TIMESTAMP WITH TIME ZONE es mostrado. El valor de
precisión de las fracciones de segundo es un ingreso opcional, que especifica el
número de dígitos en la parte fraccional del campo SECOND. El valor puede estra
comprendido entre 0 y 9. El valor por defecto es 6.
• Por ejemplo, las estaciones de monitoreo de terremotos alrededor del mundo
registran los detalles de temblores detectados en sus respectivas áreas. Las fechas
y horas de las ocurrencias de estos temblores son almacenados, junto con el
desplazamiento de zona horaria, usando el tipo de dato TIMESTAMP WITH TIME
ZONE.
• Dos valores TIMESTAMP WITH TIME ZONE son idénticos si ambos representan la
misma instancia en UTC. Esto es sin tener en cuenta las zonas horarias guardados
en los datos
• El valor TIMESTAMP mostrado representa la misma instancia en UTC. Esto es, 8:00
am Pacific Estándar Time es lo mismo que 11:00 am Easten Estándar Time. El valor
TIMESTAMP puede también ser almacenado como TIMESTAMP ‘199-04-15 8:00:00
US/Pacific’
• Identifique el tipo de dato que usaría para especificar
el desplazamiento de la zona horaria entre el tiempo
LOCAL y UTC.
– DATE
– TIMESTAMP WITH TIME ZONE
– TIMESTAMP
– INTERVAL YEAR TO MONTH
• El tipo de dato TIMESTAMP WITH LOCAL TIME ZONE es otra variante del tipo de dato
TIMESTAMP que incluye el desplazamiento de la zona horaria en su valor. A diferencia de
TIMESTAMP WITH TIME ZONE en que la data almacenada en la base de datos esta
normalizada a la base de datos del desplazamiento de la zona horaria, y el desplazamiento de
la zona horaria no es almacenado como parte de la columna.
• Los datos son almacenados en la base de datos de zona horaria. En
contraste, cuando usted recupera los datos del servidor de Oracle, este
devuelve los datos en la zona horaria de su sesión local.
• La sintaxis para especificar el TIMESTAMP WITH LOCAL TIME ZONE es
mostrado. El valor de precisión de las fracciones de segundo especifica
opcionalmente el número de dígitos en la parte fraccional de campo
SECOND.
• Por ejemplo, el sistema de desplazamiento de zona horaria de la base de datos en
San Francisco es 8:00. Si un cliente en New York Selecciona un valor TIMESTAMP
WITH LOCAL TIME ZONE de la base de datos de San Francisco, el valor es
retornado en la zona horaria de la sesión local del cliente.
• Para el cliente de New York el valor retornado es '1998-1-23
6:00:00 -5:00‘. El mismo valor es almacenado en la base de
datos de San Francisco como '1998-1-23 3:00:00 -8:00'
• Por consiguiente, cuando el cliente en New York selecciona la información
de la Base de Datos de San Francisco, el valor mostrado es 1998-1-23
6:00:00 -5:00. En contraste, cuando un cliente en San Francisco selecciona
la información ingresada, el valor mostrado es 1998-1-23 3:00:00 -8:00.
• La compañía está planeando una
Otro ejemplo es de una compañía IT multinacional
transmisión en vivo de las celebraciones de días anuales a través del globo. Para
fijar una transmisión de varios eventos por el globo, ellos usan una aplicación que
guarda el tiempo de la transmisión usando el tipo de dato TIMESTAMP WITH
LOCAL TIME ZONE.
• Por consiguiente, directores localizados en diferentes zonas horarias
pueden preguntar la columna que representa el tiempo de la transmisión
fácilmente, para averiguar cuándo empezar y acabar sus transmisiones.
• En este tema, aprendiste acerca de los tipos de datos DATETIME. Los nuevos tipos de
datos DATETIME le permiten guardar el tiempo con las fracciones de
segundo y el campos DATETIME como AÑO y MES.
Tipos de Dato LOB
• Los tipos de datos Objetos Binarios de Gran Tamaño (LOB) fueron
introducidos en la versión Oracle8 Database. En este tema, aprenderás
acerca de los tipos de objeto LOB
• Los tipos de datos LOB guardan caracteres así como datos binarios como
las imágenes. Los tipos de datos LOB son CLOB, BLOB, y BFILE. Todas las
columnas LOB guardan un puntero que sirve como un indicador a los datos
en el sistema de archivos del servidor.
• Puedes almacenar hasta 4 GB de caracteres usando los tipos de datos
Character Large Object (CLOB). El CLOB es un gran objeto de tipo carácter
que contiene caracteres de bytes simples. Esto significa que el tipo de dato
puede almacenar cantidades grandes de información de tipo carácter.
• El Binary Large Object (BLOB) es otro hijo del tipo de dato LOB. Puedes usar el tipo
de dato BLOB para almacenar hasta 4 GB de información binaria. Si la información
excede la longitud especificada entonces la columna BLOB almacena un puntero
que sirve como un indicador a los datos guardado externamente
• El tipo de dato BFILE habilita acceso a archivos binarios LOBs que son almacenados
en el sistema de archivos fuera de la base de datos Oracle. Una columna BFILE
almacena un punto BFILE, que sirve como un puntero al archivo binaria en el
sistema de archivos del servidor. Este puntero mantiene el alias del directorio y el
nombre del archivo. El máximo tamaño de archivo soportado es de 4 GB.
• En este tema, aprendiste acerca de los tipos de datos LOB. Los tipos de datos LOB
son usados para almacenar grandes cantidades de información binaria.
Tipos de Funciones SQL
• Las Funciones SQL proporcionan una poderosa opción para realizar operaciones
cuando recuperas información de una tabla. En este tema discutiremos los dos
tipos de funciones disponibles en SQL. Usando estas funciones SQL puedes
manipular los ítems de información.
• Una función SQL es un programa que realiza una operación sobre la información.
La mayoría de las funciones SQL descritas en esta unidad son específicas de Oracle
Server. Puedes usar estas funciones además de las funciones SQL estándar de
ANSI. Las funciones pueden o no aceptar argumentos de entrada. Todas las
funciones producen resultados
• Usando funciones SQL, puedes realizar cálculos sobre la información. También
puedes mostrar resultados modificados para ítems de datos individuales o grupos
de filas.
• Puedes usar funciones SQL para mostrar fechas y números formateados. También
puedes usar funciones SQL para convertir tipos de datos de columnas. El ejemplo
en la pantalla muestra valores de fecha, valores caracteres, y valores numéricos en
varios formatos.
• Las funciones SQL pueden aceptar uno o mas argumentos y siempre retornan un
valor simple. Si llamas a una función SQL con un valor NULO como argumento, la
función SQL retornará automáticamente NULO.
• Hay dos tipos de funciones disponibles en SQL. Estas son funciones de fila
simple y funciones de filas múltiples. Las funciones de fila simple
producen un resultado por fila y las funciones de filas múltiples producen
un resultado por grupo de filas.
• Las funciones de fila simple operan en filas simples únicas y producen un
resultado por cada fila. Las funciones de filas simples pueden ser usadas
en cláusula SELECT, WHERE y ORDER BY.
• Las funciones de filas múltiples operan sobre un grupo de filas
y producen un resultado por grupo de filas. Las funciones de
filas múltiples son también llamadas funciones grupales.
• Este tema se describieron los dos tipos de funciones disponibles en SQL.
Puedes realizar cálculos sobre información, manipular resultados para
grupos de filas, mostrar fechas y números formateados, y convertir tipos
de datos de columnas usando funciones SQL.
Tipos de Funciones de filas simples:
Características
• En este tema, aprenderás acerca de los tipos de funciones de
fila simple. Las funciones de fila simple son usadas para
manipular la información.
• Una función de fila simple acepta uno o mas argumentos y
retorna un valor por cada fila. Estas funciones solo operan en
filas simples.
• La sintaxis para una función de fila simple es mostrada. En la sintaxis,
function_name es el nombre de la función de fila simple, seguido por los
argumentos de ingreso. Los argumentos de ingreso pueden ser un nombre
de columna, una expresión o un valor.
• El argumento aceptado por la función de fila simple puede es una
constante, un valor variable, un nombre de columna, o una expresión. Pro
ejemplo, el argumento puede ser la palabra ORACLE, o la expresión salary
* 12.
• Una función de fila simple puede retornar un valor que es un tipo
diferente. Por ejemplo, puedes pasar un tipo de dato carácter como
argumento de ingreso, como STEVE, mientras que el valor retornado
puede ser numérico como 5.
• Puedes usar funciones de filas simples en las cláusulas SELECT, WHERE y
ORDER BY. El ejemplo en la pantalla mostrará los primeros nombres de los
empleados en mayúsculas siempre que la longitud sea igual a 20. El
resultado será ordenado por el primer nombre.
• Pueden anidarse las funciones de la fila única. Puedes colocar una función dentro
de otra dependiendo del resultado que quieras recuperar. La sintaxis en la pantalla
muestra la cláusula SELECT seguida por nombre de funciones anidadas. Los
argumentos 1 y 2 refieren a cualquier argumento de ingreso que puede ser usado
por la función.
• Existen 5 tipos de funciones de fila únicas: character,
number, datetime, Conversión entre tipos de datos y
general
• Identifique la característica de una funciones de fila
simple
– Estos pueden aparecer en la cláusula FROM
– Estos pueden ser utilizados en la cláusula ORDER
BY
– Estos aceptan un número limitado de argumentos
– Estos retornan múltiples valores por cada fila
• Las funciones carácter aceptan un carácter como ingreso.
Algunas funciones carácter retornan valores caracteres y otras
retornan valores numéricos.
• Las funciones numéricas aceptan datos numéricos
como argumentos de ingreso. Las funciones retornan
valores numéricos.
• Las Funciones DateTime operan sobre valores de tipo DATO. Todas las
funciones DATETIME retornan un DateTime o un intervalo, excepto la
función MONTHS_BETWEEN, que retorna un number.
• Las funciones de conversión convierten un valor de un tipo de dato a otro. Usando
las funciones de conversión, puedes convertir un tipo de dato NUMBER a
VARCHAR2 y viceversa. En adición, puedes convertir un tipo da dato VARCHAR2 a
DATE y viceversa.
• Las funciones generales mejoran el poder de las sentencias SQL. Estas categorías
incluyen funciones como NULLIF, NVL, NVL2, COALESCE, CASE y DECODE. Estas
funciones son usada para ejecutar consultas basadas en un condicional, lógica IF –
THEN – ELSE, o para probar valores nulos y retornan expresiones apropiadas.
• En este tema, aprendiste acerca de las funciones de filas únicas. Puedes usar las diferentes
tipos de funciones de fila únicas para realizar cálculos, mostrar información y convertir
información de un tipo de dato a otro.
LECCIÓN II:
Funciones de caracteres
Objetivos
• Relaciones los tipos de funciones de caracteres con sus usos.
• Mostrar información en minúsculas usando la función LOWER.
• Concatenar valores de caracteres usando la función CONCAT.
• Mostrar el número de caracteres en un valor usando la
función LENTGH.
• Mostrar información acerca de un valor carácter usando las
funciones SUBSTR y INSTR.
• Mostrar valores rellenados con caracteres usando las
funciones LPAD y RPAD.
• Remover caracteres o espacios extras de una cadena de
caracteres usando la función TRIM.
• Buscar y remplazar una expresión de texto usando la función
REPLACE.
Funciones de carácter: usos
• Las funciones de carácter de fila simple aceptan datos de
carácter como entrada y devuelven carácter o valores
numéricos. En este tema, aprenderás sobre los tipos de
funciones de carácter de fila simple.
• Las Funciones de caracter que devuelven valores de caracteres, retornan
valores del mismo tipo de datos que sus argumentos de entrada.
Funciones de carácter que devuelven valores numéricos pueden tomar
cualquier tipo de dato carácter como argumento de entrada.
• Cuando una función de tipo caracter retorna un valor que es de tipo CHAR,
el valor de retorno está limitado a la longitud de 2000 bytes. En contraste,
cuando una función de tipo caracter retorna un valor que es de tipo
VARCHAR2, el valor de retorno está limitado a la longitud de 4000 bytes.
• Puedes categorizar las funciones carácter de fila simple en dos
tipos. Estos son Funciones case-manipulation y funciones
Character-manipulation.
• Usas las funciones case-manipulation para cambiar el case de las cadenas
de caracteres. Los diferentes tipos de funciones case-manipulation son
LOWER, UPPER y INITCAP
• Usas la función LOWER para convertir las cadenas de caracteres
alfanuméricos a minúsculas. La sintaxis de la función LOWER se muestra.
Especificas un nombre de columna o una expresión como argumento de
entrada a la función LOWER
• La sintaxis de la función UPPER es mostrada. Usas la función UPPER para
convertir cadenas de caracteres a mayúsculas. Especificas un nombre de
columna o una expresión como un argumento de entrada a la función
UPPER:
• La sintaxis de la función INITCAP es mostrada. Usas la función INITCAP para
convertir la primera letra de cada cadena de caracteres a mayúscula y el resto a
minúsculas. Especificas un nombre de columna o una expresión como argumento
de entrada de la función INITCAP.
• Puedes usar funciones character-manipulation para manipular cadenas de
caracteres. Los diferentes tipos de estas funciones son CONCAT, SUBSTR,
LENGTH, INSTR, LPAD, RPAD, TRIM y REPLACE.
• Usas la función CONCAT para concatenar el primer valor carácter al segundo valor
carácter. La función CONCAT es equivalente al operador de concatenación (||). En
la sintaxis mostrada, dos valores son especificados como argumentos de entrada
en la función CONCAT. Los valores pueden ser un nombre de columna o una
expresión.
• Identifique la función que convierte las primeras
letras de una cadena de caracteres en mayúsculas y
el resto de las letras en minúsculas
– INITCAP
– UPPER
– LOWER
– CONCAT
• La función SUBSTR extrae un strin de una determinada longitud de un nombre de
columna o una expresión. En la sintaxis mostrada, especificas 3 valores como
argumentos de entrada a la función SUBSTR. El primer valor puede ser un nombre
de columna o una expresión. El segundo valor (m) indica la posición del caracter
de comienzo.
• La tercera opción (n) indica la longitud total de la cadena devuelta. El valor por
defecto de m y n es 1. Esto significa que el servidor de Oracle cuenta desde el
principio de la cadena para encontrar el primer carácter. En el ejemplo, la función
SUBSTR extrae 4 caracteres del primer nombre del empleado, comenzando del
segundo caracter.
• Si el segundo valor es negativo, el servidor Oracle cuenta hacia atrás desde el final
de la cadena. Si el tercer valor se omite, el servidor devuelve todos los caracteres
de la cadena. Si el tercer valor es menor que uno entonces devuelve nulo. La
sentencia mostrada extrae las cuatro primeras letras a partir del tercer caracter del
primer nombre.
• La función LENGTH retorna el numero de caracteres en el valor de una
columna o en la expresión. Especificas un nombre de columna o una
expresión como argumento de entrada en la función LENGTH. La sintaxis
de la función LENGTH es mostrada.
• You use the INSTR function to return the numeric position of a named
string. You specify two values as input arguments. The first value is the
column name or an expression, and the second value is a named string.
You search for the named string in the first value.
• Optionally, you provide a position (m) to start searching from, and the occurrence
(n) of the string as the third and fourth input arguments. The function returns a
numeric value indicating the position of the character in the first value that is the
first character of this occurrence. If the search is unsuccessful, the return value is
zero.
• LPAD returns char1, left-padded to length n with the sequence of
characters in char2. If char1 is longer than n, LPAD returns the portion of
char1 that fits in n. The argument n is the total length of the return value.
The example displayed left-pads the FIRST_NAME column with the
asterisks sign.
• RPAD returns char1, right-padded to length n with char2, replicated as
many times as necessary. If char1 is longer than n, RPAD returns the
portion of char1 that fits in n. The example displayed right-pads the
FIRST_NAME column with the letters "ab" until it is 15 characters long.
• You use the TRIM function to trim leading or trailing characters (or both),
or spaces from a character string. You specify three input arguments in the
TRIM function. The syntax of the TRIM function is displayed.
• The first argument is the leading or trailing characters or both. The second
argument is the trim_character that you want to trim followed by the FROM
clause. The last argument is the trim_source. If the trim_character or the
trim_source value is a literal string, you must enclose them in single quotation
marks.
• Identifique la función que retorna la posición
numérica de un nombre de cadena
A. INSTR
B. LENGTH
C. LOWER
D. SUBSTR
• You use the REPLACE function to search a character string in a text expression. If
the character string is found, then the function replaces the search string with the
specified replacement string. You specify three input arguments in the REPLACE
function, the text expression, search string, and replacement string.
• In this topic, you learned about the different types of single-
row character functions. These functions help you to convert
or manipulate character strings.
Funciones case-manipulation
• You use case-manipulation functions to display character values in a
different case, without changing the case of the data in the table. This
topic describes the three case-manipulation functions.
• The EMPLOYEES table stores data in mixed case. If you want
to display data from this table in a different case, you can use
a case-manipulation function.
• Common case-manipulation functions are INITCAP, LOWER,
and UPPER. To use a case-manipulation function, you use the
function and pass the character data that you want to convert
enclosed in parentheses.
• The INITCAP function converts the first letter of each word to
uppercase and the remaining letters to lowercase. This form
of capitalization is commonly called initial capitalization.
• By using initial capitalization, you can improve the readability of the output
displayed by a query. To display employee first names using the INITCAP function,
you type the SELECT keyword, then the INITCAP function, followed by the column
name in parentheses. The result is a list of employee names with only the first
letter of each name capitalized.
• You use the same syntax structure for the UPPER and LOWER functions.
The LOWER function displays all characters in lowercase. The UPPER
function displays all characters in uppercase.
• By combining case-manipulation functions with literal strings, you can produce
output that is easy to read and understand. The INITCAP and LOWER functions are
applied to the FIRST_NAME and JOB_ID columns in the example. The converted
columns are concatenated with literal strings and given an alias of Employee
Details.
• The screen displays the literal strings, the first names in initcap and job IDs
in lowercase. By using a combination of the case-manipulation functions
and literal strings the result is easy to read and understand. The screen has
been scrolled down for you to view the records.
• You can also use case-manipulation functions in the WHERE clause. You are
searching for information about employee BRUCE and you write a statement that
specifies FIRST_NAME = 'bruce' in the WHERE clause. If the name is stored in the
table in a different case, such as Bruce or BRUCE, the data is not found.
• By using case-manipulation functions, you can convert a column to a specific case
before it is evaluated in the WHERE clause. The result converts the values in the
FIRST_NAME column to lowercase before evaluating for a match. The screen has
been scrolled down for you to display all the three rows.
• This topic discussed converting data to a specific case by using case-
manipulation functions. You can use case-manipulation functions to
enhance the readability of output displayed and to improve the flexibility
of search results.
Funciones CONCAT
• You can concatenate characters and character strings to produce a
more readable output. In this topic, you learn how to concatenate
character values by using the CONCAT function.
• You must specify two values in the CONCAT function. An example of the
CONCAT function is displayed. The example concatenates the FIRST_NAME
and EMAIL columns from the EMPLOYEES table. The alias name MAILID is
specified for the concatenated result.
• Consider a situation where you want to display the employee first name and the
last name in a single column. You can use the CONCAT function for displaying such
an output. The example displayed concatenates the employee FIRST_NAME and
LAST_NAME columns. The column alias 'Name' is used.
• The result displays the first name and the last name together.
The screen has been scrolled down for you to view the
records.
• In this topic, you learned to concatenate or join two character
values by using the CONCAT function. You use the CONCAT function
to display a more readable output by joining two values.
Funciones LENGTH
• If you want to know the number of characters in a string, you can use the
LENGTH character function. In this topic, you learn how to determine the
number of characters in a string by using the LENGTH function.
• SQL offers many single-row character functions that work with
character values in a variety of ways. The LENGTH function
displays the length of a string as a numeric value.
• To use the LENGTH function, you type the LENGTH keyword, and a column name,
character string, or expression enclosed in parentheses. The example displayed
retrieves the employees first name and the total number of characters in the FIRST
NAME column.
• This topic covered the use of the LENGTH function. The
LENGTH function is used to show the number of characters in
data.
Funciones SUBSTR y INSTR
• You can display information about a value by using the SUBSTR and INSTR
character manipulation functions. This topic describes the use of the
SUBSTR and INSTR character functions.
• Consider a situation where you want to extract only a few characters from
a column value or an expression. You can extract a string of a determined
length using the SUBSTR function.
• The example displayed extracts the first five characters from the department name
column by using the SUBSTR function. You specify a character string followed by
two numbers. The first number represents the start position of extracting the
characters. The second number is the number of characters that you want to
extract.
• By concatenating the SUBSTR function with data from the
EMPLOYEE_ID column, you can create a list of identification
numbers. The data has a column alias of ID_NUMBERS.
• You can find the numeric position of a named
character by using the INSTR function.
• An example of the INSTR function is displayed. By using the INSTR function, you
specify a character string or a column name followed by the character for which
you want the numeric position. The function returns a numeric value representing
the placement of the first occurrence of the specified letter in the string.
• The letter placed in the INSTR function syntax is case sensitive. Typing a
lowercase letter 'b' in the statement produces a list of zeros because the
first character value of the employee name in the EMPLOYEES table are
stored in uppercase.
• This topic discussed the use of the SUBSTR and INSTR functions to extract
information about character data from the database. You can use these functions
to manipulate character data depending on your needs.
• This topic covered the use of the LENGTH function. The
LENGTH function is used to show the number of characters in
data.
Funciones LPAS y RPAD
• You can change the justification of the results of a query by padding character
values with specified characters. In this topic, you learn to pad values with
characters by using the LPAD and RPAD functions.
• You use the LPAD function to place a character or
characters to the left of a character value.
• An example of the LPAD function is displayed. You first specify the name of
the column that you want to pad, then the total number of characters that
you want in the output, and finally the character or characters that you
want to pad to the left of a value.
• You can use the RPAD function in the same way. The RPAD function pads the
character value on the right. An example of the RPAD function is displayed on the
screen. The example pads the asterisk sign to the right of the first name.
• This topic discussed the use of the LPAD and RPAD functions to pad the
results of a query with a character or to change the justification of column
output. You can use these character manipulation functions in a variety of
ways based on your needs.
Funciones TRIM
• You can use the TRIM function to trim certain characters from
a character string. In this topic you learn to use the TRIM
function.
• You use the TRIM function to trim leading or trailing characters or both
from a character string. If the trim character or the trim source is a literal
string, you must specify them in single quotation marks. The characters
are trimmed based on the specification of the user.
• If you specify leading, Oracle removes any leading characters equal to trim
character. If you specify trailing, Oracle removes any trailing characters equal to
trim character. If you specify both or none, Oracle removes trailing and leading
characters equal to trim character. If you do not specify trim character, the default
value is a blank space.
• An example of the TRIM function is displayed. In the example, the letter 'S' is the
trim character. The trim source is the FIRST_NAME column from the EMPLOYEES
table.
• In this topic, you learned to use the TRIM function with the SELECT
statement. The TRIM function is used to trim leading or trailing characters
or both from a character string.
Funciones REPLACE
• You can use character functions to search for a text expression and replace the
string with another value. In this topic, you learn to search for and replace a text
expression by using the REPLACE function.
• You use the REPLACE function to search for a text expression in a source string. If
the search string is found, you can replace it with a specified replacement string. If
the search is not found, or is null then the source string is returned. You must
enclose both the search and the replacement strings within single quotation
marks.
• In the example, the REPLACE function has three input arguments. The first
argument is the DEPARTMENT_NAME column. The second input argument is the
search string IT. The third input argument is the replacement string Tech. If the
string IT is found, it is replaced by Tech. This replacement occurs only in the output
and not in the table.
• Consider a situation where you want to search for the department name DEPT 5 in
the DEPARTMENT_NAME column. If found, you want to replace DEPT 5 with the
name TECH. The department names are displayed. Notice that the last value is
Dept 5. The screen has been scrolled down for you to view the last set of rows.
• In this topic, you learned to search for and replace a text expression by
using the REPLACE function. You can use the REPLACE function to search
for text expression and replace the search string with a replacement
string.
LECCIÓN III:
Funciones numéricas
Objetivos
• match the number functions with their
descriptions.
• Display rounded values to a specified decimal
place by using the ROUND function.
• Display truncated values to a specified decimal
place by using the TRUNC function.
• Return the remainder of one value divided by
another by using the MOD function.
Funciones numéricas: usos
• You use number functions to accept numeric input. The number functions return
numeric values. In this topic, you learn to match some of the number functions
with their descriptions.
• The three most commonly used number functions are displayed. They are ROUND,
TRUNC, and MOD.
• The ROUND function rounds the column, expression, or value to n decimal places.
The syntax of the ROUND function is displayed. The first parameter is the column
name or an expression. The second parameter is the number of decimal places to
which you want to round off the value.
• You use the TRUNC function to truncate the column value, expression, or a value
to n decimal places. The syntax of the TRUNC function is displayed. The first
parameter is the column or an expression. You specify the number of decimal
places as the second parameter.
• The MOD function returns the remainder of m divided by n. The syntax of the
MOD function is displayed. You must specify two values as parameters to the MOD
function. For example, you can use the MOD function to determine if a value is
odd or even.
• In this topic, you learned to match the number functions with their
descriptions. You use number functions to accept numeric input and
return numeric values.
LECCIÓN IV:
Funciones Date
Objetivos
• identify the uses of the SYSDATE function.
• define the RR date format.
• perform arithmetic operations on dates.
• display date information by using common
SQL date functions.
FUNCION SYSDATE
• SQL offers a variety of functions for working with dates. This topic describes the
SYSDATE function for returning the current date and time.
• Oracle stores dates in an internal format, representing the century, year, month,
day, hours, minutes, and seconds. For example, the current date will be stored
internally by the Oracle server as January 30, 2002 11:05:00.
• The default display and input format for any date in the Oracle9i server is DD-
MON-RR. DD stands for the date of the month, MON stands for the first three
letters in the month name, and RR stands for the year that also includes the
century. Valid Oracle dates are between January 1, 4712 B.C., and December 31,
9999 A.D.
• The DATE datatype always stores year information as a four-digit number
internally, two digits for the century and two digits for the year. For
instance, the Oracle database stores the year as 1999 or 2001, and not as
99 or 01.
• The example displays the HIRE_DATE column values in the format DD-MON-YY.
However, in the database, dates include the components of date and time. This
means that the time and century information is also stored internally. The
complete hire date for the second to last name Grant is January 13th, 2000 5:10:43
p.m.
• SYSDATE is a date function that returns the current date and time. You can use the
function in any SQL statement.
• When you add a date column into a table, the century information can be
extracted from the SYSDATE function. However, when the date column is
displayed, the century component is not displayed by default.
• For example when you add the current date into a date column, the year
will be stored as 2002. However, when the date is displayed, the year will
be 02.
• SYSDATE is a function that contains no arguments. You can use SYSDATE just as you
use a column name. To display the current date and time and employee hire dates,
you can select SYSDATE and HIRE_DATE from the EMPLOYEES table.
• The result of selecting SYSDATE and HIRE_DATE from the EMPLOYEES table displays
the current date and time and values of the hire date column. The current date
and hire dates are displayed in the default display format.
• If you want to display the current date only once, you can retrieve the SYSDATE
from the DUAL table. The DUAL table is a dummy table.
• The DUAL table is a useful feature of the Oracle server. The DUAL table
consists of one column named DUMMY. The datatype of this column is
VARCHAR2.
• You use the DUAL table when you want to return a value only once, such as the
value of a constant, an expression, or other value that is not derived from a
specific data table. The statement displayed extracts the first three letters from the
word 'ORACLE'. The DUAL table is used because the word is not stored in any
table.
• You can use the DUAL table for computing a constant expression with the SELECT
statement. Because DUAL has only one row, the constant is returned only once. In
the example, you use the DUAL table to compute the temperature in celsius with a
given temperature of 50 degrees fahrenheit.
• This topic described the SYSDATE function. The SYSDATE function displays
the current date and time.
FORMATO DATE RR
• The default display date format DD-MON-RR uses two digits to represent the
century of a date and the last two digits to represent the year. This topic describes
the RR date format.
• The RR date format element is similar to the YY element, but it allows Oracle to
calculate whether the date is in this century or the following one. The RR date
format element is the default instead of YY for the year. The century of the return
value varies based on the specified two-digit year and the digits of the current
year.
• If you use the RR format instead of YY to represent the year, the Oracle server uses
the current century and year when deciding on a century. The behavior of the RR
format varies depending on the year specified, the current year, and the current
century.
• If the two digits in the current year are between 50 and 99, and the specified
two-digit year is between 0 and 49, then the return date is in the century after
the current one. For example, if the current year is 1998 and you specify a
date of 18-JUL-24, then that date is interpreted as July 18, 2024.
• If the two digits in the current year are between 50 and 99, and the specified two-
digit year is between 50 and 99, then the return date is in the current century. For
example, if the current year is 1998, and you specify a date of 18-JUL-98, then that
date is interpreted as July 18, 1998.
• If the two digits of the current year are between 0 and 49, and the specified two-
digit year is between 0 and 49, then the return date is in the current century. For
example, if the current year is 2002, and you specify a date of 18-JUL-24, then that
date is interpreted as July 18, 2024.
• If the two digits in the current year are between 0 and 49, and the specified two-
digit year is between 50 and 99, then the return date is in the century before the
current one. For example, if the current year is 2002, and you specify a date of 18-
JUL-98, then that date is interpreted as July 18, 1998.
• Identifique el año interpretado por el formato RR si
especificas la fecha como 20-OCT-17
A. 1947
B. 1817
C. 2017
D. 2117
• This topic described the use of the RR date format, which you can use to
specify different centuries when using a two-digit year in a date format.
Alternatively, you can avoid any question of the century in your data by
always specifying all four digits of the year.
Aritmética de fechas
• You can use arithmetic operators, such as addition and subtraction, to perform
arithmetic on dates. This topic describes how to perform arithmetic operations on
dates.
• The Oracle server stores dates in an internal format. You can perform calculations
on dates by using arithmetic operators.
• You can add a number of days to a date by adding a number to a date value. For
example, if the current date is 10-JAN-02 the expression SYSDATE + 3 results in the
date value 13-JAN-02. Similarly, the expression SYSDATE - 2 subtracts two days
from the current date and results in the date value 08-JAN-02.
• To find the number of days between two dates, you can subtract one date
value from another. The result is a numeric value. For example, if the
current date is 10-JAN-02 and that an employee's hire date is 06-JAN-02
the expression SYSDATE - HIRE_DATE results in the numeric value four.
• Consider a situation where you want to schedule a performance review for all
employees 90 days after their hire date. You can use date arithmetic to perform
this task.
• If you subtract a more current date from an older date, the difference is a negative
number. Subtracting the SYSDATE from values in the HIRE_DATE column produces
a list of negative numbers representing the number of days between the dates.
The numbers to the right of the decimal point represent part of a day.
• This topic discussed how to perform arithmetic with dates. By using arithmetic
operations on date values, you can quickly calculate date information.
Tipos de funciones de Fecha
• Date functions enhance your ability to calculate information involving dates. This
topic describes common date functions used to produce information about dates.
• Common DATE functions are displayed. The functions include MONTHS_BETWEEN,
ADD_MONTHS, NEXT_DAY, LAST_DAY, ROUND, and TRUNC. These functions
operate on DATE datatypes and return date, datetime, or number values.
• MONTHS_BETWEEN finds the number of months between two dates. The result
can be positive or negative. If date1 is later than date2, the result is positive. If
date1 is earlier than date2, the result is negative. The value on the right of the
decimal place represents a fraction of the month.
• The ADD_MONTHS function adds a number of calendar months to a
specified date. The number specified in the function must be an integer
and can be negative.
• The result of using the ADD_MONTHS function to add six months to the hire date
is different from adding 180 days to the hire date. You can use the ADD_MONTHS
function or date arithmetic according to your needs.
• The NEXT_DAY function returns the date of the next specified day of the week
from a given date. In the function, you can specify the day of the week as a
character string, such as 'Friday', or as a number with one representing Sunday
and seven representing Saturday.
• The LAST_DAY function finds the date of the last day of the month, for a specified
date.
• You can use the ROUND and TRUNC functions with date values. When
used with dates, these functions round or truncate a date value to a
specified unit, such as day, month, or year.
• ROUND returns a date rounded to the unit specified. If you omit the unit, the date
is rounded to the nearest day. TRUNC returns a date truncated to the unit
specified. If you omit the unit, the date is truncated to the beginning of that day.
• This topic covered the use of common date functions. The functions described
represent only a subset of the total date functions available in SQL. You can use
date functions to display information about dates to aid the forecasting and
scheduling of dates based on date values in a database.
LECCIÓN V:
Funciones de Conversión de Tipos de
Datos
Objetivos
• Identify datatypes used in implicit datatype
conversion.
• Match the explicit datatype conversion functions
with their appropriate description.
• Convert a date value to a character string for display
by using the TO_CHAR function.
• Convert a number to a character string for display by
using the TO_CHAR function.
• Identify functions used to convert characters to other
datatypes.
Conversión implícita
• In some instances you might require to convert one datatype to another. Oracle
converts certain datatypes implicitly. In contrast, certain datatypes are needed to
be explicitly converted by using the conversion functions. In this topic, you learn to
identify the datatypes that can be used for implicit conversion.
• The three most common datatypes used by Oracle database are NUMBER,
VARCHAR2, and DATE. Oracle converts certain datatypes implicitly. For example,
when a condition compares a character value and a numeric value, the Oracle
database implicitly converts the character value to a NUMBER value.
• Alternatively, you can also explicitly convert one datatype to another. Conversion
functions are used to explicitly convert the data to the expected datatype.
• Implicit datatype conversion means that the Oracle server automatically
converts data from one datatype to another. However, explicit datatype
conversion is recommended to ensure reliability of your SQL statements.
• Implicit datatype conversions work according to specific rules. If you write an
expression in your SQL code that includes data of different types, then the Oracle
server tries to resolve that difference and finds a common datatype.
• When comparing a character value with a NUMBER value, Oracle converts the
character data to NUMBER. When comparing a character value with a DATE value,
Oracle converts the character data to DATE. For example, the literal '10' has
datatype CHAR. Oracle implicitly converts it to the NUMBER datatype if it appears
in a numeric expression.
• The Oracle server implicitly converts one datatype to another datatype. The Oracle
server can convert the VARCHAR2 or CHAR datatype to the NUMBER or DATE
datatype. Alternatively, the server can also convert the NUMBER or DATE datatype
to the VARCHAR2 datatype.
• Implicit character to number conversions succeed only if the character string
represents a valid number. Implicit character to date conversions succeed only if
the character string has a specified default format, such as DD-MON-RR.
• In this topic, you learned to identify the datatypes that can be implicitly converted
by the Oracle server. By knowing about these datatypes you need not convert
them explicitly.
Conversión explícita
• You convert datatypes explicitly to ensure the reliability of the SQL statements. In
this topic, you learn to match the explicit datatype conversion functions with their
uses.
• You can explicitly convert a value from one datatype to another by using the
conversion functions in a statement. Generally, the function names follow the
convention DATATYPE TO DATATYPE. The first datatype is the input datatype and
the last datatype is the output.
• You can perform explicit datatype conversion between the most common
datatypes by using three functions available in SQL. These functions convert a
value from one datatype to another. The conversion functions are TO_NUMBER,
TO_DATE, and TO_CHAR.
• The TO_CHAR conversion function converts a number or date to a
VARCHAR2 character string with the format model that you specify. In the
syntax displayed, the format model is represented by FMT. A format model
is a character literal that describes the format of DATE or NUMBER data.
• If you use the TO_CHAR function for number conversion, the NLSPARAMS
parameter specifies decimal character, group separator, local currency symbol, and
international currency symbol that are returned by number format elements. If the
parameter is omitted, this function uses the default parameter values.
• In the case of date conversion, the NLSPARAMS parameter of the TO_CHAR
function specifies the language in which month and day names, and abbreviations
are returned. If this parameter is omitted, the function uses the default date
languages.
• The TO_NUMBER conversion function converts a character string containing digits
to a number with an optional format that you specify. In the syntax displayed, the
optional format model is represented by FMT. The NLSPARAM string has the same
purpose as it does in the TO_CHAR function for number conversions.
• The TO_DATE conversion function converts a character string to a date value
according to a format that you specify. If you do not specify a format, the default
format DD-MON-RR is assumed and the character string must match that format.
The NLSPARAM has the same purpose as in the TO_CHAR function for date
conversion.
• In this topic, you learned to match the datatype conversion functions with their
uses. You can use these functions in SQL statements to communicate explicitly
with the Oracle server about how to interpret data.
Funcion TO_CHAR con fechas
• You can use the TO_CHAR function to convert a date from the default date format
to a character format that you specify. This topic describes how to use the
TO_CHAR function with dates.
• The common default format for displaying dates stored in the Oracle9i server is
DD-MON-RR. If you want to display dates in a different format, you can use the
TO_CHAR function to convert a date into a specified character format.
• In the example displayed, the TO_CHAR function identifies the month in which the
employees were hired. The first parameter to the TO_CHAR function is the
HIRE_DATE column. The second parameter is the format model. The format model
specifies the way that you want the date to look when displayed.
• Many format models are available. You are already familiar with the default format
DD-MON-YY, which is one example of a format model.
• The format model can include any valid date format element. The
common format model elements are displayed. They are YYYY, YEAR, MM,
MONTH, MON, DY, and DAY. You can combine these elements into a
format model of your choice.
• There are many valid date formats that you can use to create a date format model.
Format model elements representing days and weeks are displayed. They are WW
or W, DDD or DD or D, and J.
• The elements of format models related to years and month are displayed. These
include SCC or CC, RM, YYY or YY or Y, Y,YYY, IYYY or IYY or IY or I, B.C., A.D., and Q.
• When you specify a format model in the TO_CHAR function, you enclose the
format model in single quotation marks. The format model is case sensitive and
can include any valid date format element. You separate the date value from the
format model with a comma.
• To display hire dates with the month spelled out, you can use the MONTH format
element with the TO_CHAR function. In the result, the full name of the month is
displayed such as SEPTEMBER or FEBRUARY.
• You can add the day of the week by including the DAY element in the format
model. You can also add a comma to separate the day of the week from the rest of
the date. You specify punctuation by simply adding the desired punctuation to the
format model. The screen displays the first set of records.
• The window has been scrolled down for you. You can view the full name of the
day, followed by a comma and the rest of the date information. The names of days
and months in the output are automatically padded with blanks. To remove
padded blanks or suppress leading zeros, you use the fill mode element, FM.
• You can change the case of the names of days and months by changing the case in
the format element. The SQL statement on the screen capitalizes the first letter of
the name of the day and the month as indicated in the TO_CHAR function. You can
view the first set of records.
• The Oracle server stores a time element with dates in its internal format. The time
element is not part of the default date display. However, you can include time
elements in a date format model using TO_CHAR to display time information.
Common time elements are displayed. They are AM or PM, A.M. or P.M., HH or
HH12 or HH24, MI, SS, and SSSSS.
• You can add the TH suffix in the format model to display ordinal numbers,
such as 4th. You can spell out a number using the SP suffix. You can use
these suffixes in combination to produce spelled-out ordinal numbers,
such as FOURTH.
• You can add character strings to a date format model by enclosing them in double
quotation marks in the date format model. For example, you can display FOURTH
of JULY as an output. Remember to add the FM element to your format model to
suppress blanks and leading zeros.
• This topic described how to convert a date value to a character string by using the
TO_CHAR function. You can use the TO_CHAR datatype conversion function to
display dates in a wide variety of formats.
Funcion TO_CHAR con números
• You can use the TO_CHAR datatype conversion function to convert other datatype
values to characters. This topic describes how to convert a number to a character
string by using the TO_CHAR function.
• You can customize the display of numeric values by converting number values to
character strings using the TO_CHAR function. The TO_CHAR function translates a
number value to a character string and displays the result in a format that you
specify.
• In the example displayed, the TO_CHAR function accepts two arguments. First is
the column SALARY. The second argument is the format model that you use to
display the salary value.
• Common format model elements for converting a number to a character datatype
are displayed. The element 9 represents a digit and 0 displays leading zeros. The
element $ places a floating dollar sign. The period displays a decimal point, and
the comma displays the thousand indicator.
• The Oracle server displays a string of # symbols in place of a number that is larger
than the number of digits provided in the format model. For example, if you
specified only two digits in the format model for displaying salaries, the result
displays # symbols as indicated.
• Additional format model elements are displayed on the screen. The MI and PR
offer two alternatives for displaying negative values. Four Es are used to display
information in scientific notation, and a V is used to multiply values by a specified
power of 10. You can use a B to display zero values as blanks, rather than as zeros.
• This topic discussed the conversion of a number to a character string by using the
TO_CHAR function. You can use the TO_CHAR datatype conversion function to
display numbers in whatever format you specify.
Otras Funciones de conversión
• You may want to convert a character string to either a number or a date. To
perform this task, you use the TO_NUMBER or TO_DATE functions. In this topic,
you learn about the TO_NUMBER and TO_DATE datatype conversion functions.
• To convert a character string to a number, you use the TO_NUMBER function. You
specify two input arguments in the function. First is the character string that you
want to convert and second is an optional format model. The format model
provides information about how to interpret the character string.
• For example, you have a character string representing a number value, such as
revised salary in the format $4, 850. If you try to evaluate this character string as a
number, you receive an error message.
• To compare this column of character values to the SALARY column of NUMBER
datatype, you must use the TO_NUMBER function. The statement displayed uses
the TO_NUMBER function in the WHERE clause to convert the characters into
numbers before comparing the resulting values to those in the SALARY column.
• You use the TO_DATE function to convert a character string to a date format. This
function accepts two arguments.
• As arguments to the TO_DATE function, you insert the character string that you
want to convert, followed by a format model. The format model provides
information about how to interpret the character string. You use the same format
model elements used with the TO_CHAR function.
• For example, you have a character string representing a date value, in the format
April 24, 2000. If you try to compare this character string to a date value, such as
an employee's hire date, you receive an error message.
• To compare this string of characters to the HIRE_DATE column, you must use the
TO_DATE function. The example displays employees who were hired on April 21,
2000. The TO_DATE function converts the character string into a date before
comparing the resultant value to those in the HIRE_DATE column.
• This topic described how to convert character values to NUMBER or DATE
datatypes by using datatype conversion functions. You can use these conversion
functions to convert a value of one datatype to another.
LECCIÓN VI:
Funciones generales y expresiones
CASE
Objetivos
• Convert a null value to an actual value for display by using the
NVL function.
• Return an expression based on the evaluation of NULL value
by using the NVL2 function.
• Compare two expressions by using the NULLIF function.
• Compare multiple expressions by using the COALESCE
function.
• Implement conditional processing by using the CASE
expression.
• Decode an expression using the DECODE function.
• Evaluate single-row functions that are nested.
Función NVL
• You use the NVL function to convert a NULL value to an actual value. In this topic,
you learn to display actual values in place of NULL values by using the NVL
function.
• You use the NVL function to convert a null value in a column of any datatype into
an actual value for display purposes. The NVL function has two arguments: expr1 is
the source value or expression that may contain NULL, and expr2 is the target
value or the result.
• The arguments expr1 and expr2 can have any datatype. If their datatypes are
different Oracle converts expr2 to the datatype of expr1 before comparing them.
The datatype of the return value is always the same as the datatype of expr1.
• The SQL statement displayed calculates the annual compensation of all employees
by multiplying the monthly salary by 12 and adding the commission. The annual
compensation will be calculated only for those employees who earn commission.
• In the result, the annual compensation for the employees is blank because their
commission is NULL. An expression with any column value of NULL results in NULL.
The screen has been scrolled down for you to view the records.
• This topic described how to convert null values to actual values by using the NVL
function. You can use this function when displaying data from columns that may
contain null values.
• This topic described how to convert character values to NUMBER or DATE
datatypes by using datatype conversion functions. You can use these conversion
functions to convert a value of one datatype to another.
Función NVL2
• You use the NVL2 function to evaluate whether a column is NULL and return a
value based on this result. In this topic, you learn to use the NVL2 function to
return an expression based on the evaluation of NULL value.
• The NVL2 function accepts three expressions. The function initially examines the
first expression. If the first expression is not null, then the function returns the
second expression. If the first expression is null, then the third expression is
returned.
• The first expression in the NVL2 function can have any datatype. The second and
the third expressions can have any datatype except LONG. If the datatypes of
expr2 and expr3 are different, the Oracle server converts expr3 to the datatype of
expr2 before comparing them. If expr3 has a null value, no conversion is
performed by Oracle.
• The datatype of the return value is always the same as the datatype of the second
expression. If the second expression is a character data, the return value's
datatype is VARCHAR2.
• In the example displayed, you examine the COMMISSION_PCT column. If a value is
detected, the second expression of Earns Commission is returned. If the
COMMISSION_PCT column holds null values, the third expression of No
Commission is returned.
• The example code is executed. The screen has been scrolled down for you to view
the first few records. Notice that the result displays the expression No Commission
or Earns Commission based on the evaluation of the commission earned by the
employees.
• The screen has been scrolled down for you to view a few more records. The screen
displays the expression Earns Commission.
• In this topic, you learned to use the NVL2 function. You use this function to return
an expression based on the evaluation of NULL value. You can display your
expressions or messages by using the NVL2 function.
Función NULLIF
• You may want to compare two expressions and return a NULL value or an
expression. In this topic, you learn to compare two expressions by using the
NULLIF function.
• The NULLIF function compares expr1 with expr2. When both the expressions are
equal, the function returns NULL. If the expressions are not equal, the function
returns expr1. You cannot specify the literal NULL for the first expression.
• The example displayed retrieves the employee's first name and last name. You use
the NULLIF function to compare the length of the first name and last name. If the
length of the column values is same, the NULLIF function returns a NULL value. If
the length is not same, the first column value is returned by the NULLIF function.
• The result displays the first name and the last name of the employees. In the
RESULT column, if the length of both the columns is not the same then the length
of the FIRST_NAME column is displayed. The fifth row contains a NULL value
because the length of first name and last name is the same.
• In this topic, you learned to compare two expressions by using the NULLIF
function. You use the NULLIF function to compare two expressions and return a
null value or the first expression based on the result of comparison.
Función COALESCE
• You may want to compare multiple expressions and return a value based on the
result of the comparison. In this topic, you learn to return the first non-NULL
expression in the list by using the COALESCE function.
• The COALESCE function returns the first non-NULL expression in the list. If the first
expression is not NULL, the function returns that expression otherwise the
function does a COALESCE of the remaining expressions. The last expression is
returned if all the preceding expressions are NULL.
• The NVL function compares only two expressions. The advantage of the COALESCE
function over the NVL function is that the COALESCE function can take multiple
alternate values.
• In this topic, you learned to return the first non-NULL expression in the list by
using the COALESCE function. You use the COALESCE function to compare multiple
expressions.
• In this topic, you learned to compare two expressions by using the NULLIF
function. You use the NULLIF function to compare two expressions and return a
null value or the first expression based on the result of comparison.
Expresiones CASE
• You can use two methods to implement the IF-THEN-ELSE logic within a SQL
statement. They are the CASE expression and the DECODE function. In this topic,
you learn to implement conditional processing by using the CASE expression.
• Many programming languages use IF-THEN-ELSE logic to specify different
outcomes based on different conditions. For example, IF condition1 is true, THEN
produce result1; ELSE IF condition2 is true, THEN produce result2; ELSE IF none of
the above, THEN produce result4.
• The CASE expression is new in the Oracle9i server release. The CASE expression
complies with ANSI SQL. CASE expressions let you use IF-THEN-ELSE logic in SQL
statements without having to invoke procedures
• In a simple CASE expression, Oracle searches for the first WHEN.....THEN pair for
which expr is equal to comparison_expr and returns return_expr. If none of the
WHEN...THEN pairs meet the condition, and an ELSE clause exists, then Oracle
returns else_expr. Otherwise, Oracle returns null.
• You cannot specify the literal NULL for all the return_exprs and the else_expr. All
the expressions ( expr, comparison_expr, and return_expr) must be of the same
datatype, which can be CHAR, VARCHAR2, NCHAR, or NVARCHAR2.
• In the example, the value of JOB_ID column is evaluated. If the job ID is IT_PROG,
the salary increase is 10%. If the job ID is ST_CLERK, the salary increase is 15%. If
the job ID is SA_REP, the salary increase is 20%. For other job IDs there is no
increase in salary.
• In this topic, you learned to implement conditional processing by using the CASE
expression. You use the CASE expression to implement IF-THEN-ELSE logic with
SQL statements.
• In this topic, you learned to compare two expressions by using the NULLIF
function. You use the NULLIF function to compare two expressions and return a
null value or the first expression based on the result of comparison.
Función DECODE
• The DECODE function is a powerful single-row function that can do the
work of IF-THEN-ELSE queries. This topic describes how to facilitate
conditional queries by using the DECODE function.
• You can use the DECODE function to perform conditional queries. The
DECODE function decodes the expression after comparing the column or
expression to each search value. If the expression is the same as search,
result is returned.
• The default value represents the final ELSE condition. If you
omit the default value, a null value is returned where a search
value does not match any of the result values.
• You want to calculate salary increases for employees. Assistant-admins receive a
10 percent increase, clerks receive a 15 percent increase, and managers receive a
20 percent increase. All other employees receive a 5 percent increase. This
information is expressed in an IF-THEN-ELSE format on the screen.
• You can use the DECODE function to specify any number of conditions. The
example displayed illustrates the DECODE function that determines the tax
rate for each employee based on their monthly salary.
• The result lists employee name, salary, and tax rate based on
conditions specified in the DECODE function. The screen has
been scrolled down for you to view the records.
• This topic described the application of IF-THEN-ELSE logic using the
DECODE function. You can use the DECODE single-row function to achieve
different results based on specified search conditions.
Función Anidadas
• You can use single-row functions within other single-row functions to
create complex and flexible statements that retrieve exactly the data that
you need. Functions within functions are called nested functions. This
topic discusses how to evaluate single-row functions that are nested.
• You can nest single-row functions to any level. You
evaluate nested functions starting with the innermost
level and working toward the outermost level.
• The expression on the screen is nested. To evaluate this expression, you go to the
innermost set of parentheses to evaluate 6 + 2 = 8. Then you go to the next outer
level of parentheses and evaluate 4 * 8 = 32. Finally, you evaluate the expression
within the outermost parentheses to produce the result of 32 + 2 = 34.
• You have a table that contains a column called FIRST_NAME which
includes an employee's full name, in the format lastname_firstname. You
want to create a list of employee email names by combining the first letter
of each employee's first name with that person's employee ID.
• The nested functions in the statement displayed extract the first letter of
the first name. The INSTR function is evaluated first to find the numeric
position of the underscore character in the first name column. By adding 1
to this value, you have the numeric position of the first letter of the first
name.
• The SUBSTR function is evaluated after the INSTR function. The SUBSTR
function extracts one character in the FIRST_NAME column starting at the
numeric position resulting from the INSTR function.
• By concatenating the nested functions with the EMPLOYEE_ID column, you
create the list of e-mail names. Each e-mail name consists of the first
letter of an employee's first name and the employee number.
• Another example of the nested function that is used to display the
manager IDs of all employees is displayed. If the employee has no
manager, instead of the null value, you want to display the words, 'No
Manager' in the result.
• To display the string 'No Manager', you use the NVL function to replace the null
value with the character string. However, because manager ID is a number and 'No
Manager' is a character string, you must first convert manager ID to have a
character datatype using the TO_CHAR function.
• The result displays the value, No Manager, in the MANAGER_ID column for
the employee who had a null value in the MANAGER_ID column. The
screen has been scrolled down for you to view the record.
• The example displayed nests date functions with the TO_CHAR datatype
conversion function. The result displays the date of the next Friday that is six
months from the hire date. The resultant dates appear in a specified date format,
ordered by hire date, under the given alias.
• This topic described how to evaluate single-row functions that
are nested. You can nest single-row functions to retrieve the
output that you want to display.
ORACLE 9i

Mostrando información de varias


tablas
Temas a tratar
• Lección 1: Accesos a múltiples tablas
• Lección 2: Recuperando Filas con juntura
• Lección 3: Junturas: otros tipos de junturas
• Lección 4: SQL 1999 – Junturas complejas
• Lección 5: Creando consultas compuestas
LECCIÓN I:
Accesando a múltiples tablas
Objetivos
• Identificar los cuatro tipos de
junturas usadas para mostrar
información de mas de una tabla.
• Identificar un producto cartesiano
Junturas: Tipos de juntura Oracle
• Puedes mostrar información de mas de una tabla usando
junturas. Este tema describe 4 tipos de junturas Oracle usadas
para mostrar información de múltiples tablas.
• La Base de datos Oracle9i proporciona nuevas sintaxis fáciles de junturas ANSI SQL
1999. Mientras la sintaxis de junturas SQL:1999 difiere en propiedades de la
sintaxis de junturas de Oracle, el concepto de varios tipos de junturas permanece.
Las junturas SQL 1999 son estudiadas en una lección aparte.
• Una condición de juntura especifica una relación que existe entre datos en
columnas. Usando la sintaxis Oracle, estableces una condición de juntura
en la cláusula WHERE. Los 4 tipos mas comunes de junturas de Oracle son
equijoins, nonequijoins, outer joins y self join
• Usas un equijoin para mostrar información de mas de una tabla cuando los valores
en una columna corresponden directamente a los valores de otra columna en
diferentes tablas. Este tipo de correspondencia directa de valores usualmente
existe en las relaciones de llaves primarias y foráneas. Puedes identificar un
equijoin por el operador igual a (=) en la cláusula WHERE.
• Usas un nonequijoin para mostrar información de mas de una tabla cuyos valores
en una columna corresponden indirectamente a valores en otra columna o
columnas. Puedes establecer una relación en este caso especificando un operador
en la condición que no sea el operador igual a.
• Usas una condición outer join para asegurar que todas las filas sean devueltas,
incluyendo las filas que no satisfacen la condición de juntura, cuando muestras
información de múltiples tablas. Usas un outer join en un equijoin o nonequijoin
para mostrar las filas que tienen una correspondiente fila y las que no lo tienen.
• Usas un self join para enlazar valores en diferentes columnas de una misma tabla
usando una condición de juntura.
• Que tipo de juntura puedes usar para mostrar
información de mas de una tabla, cuando los
valores de una columna corresponden
indirectamente a los valores de otra columna
o columnas?
1. Self Join
2. Outer Join
3. Equijoin
4. Nonequijoin.
• Algunas veces necesitas recuperar información de mas de una tabla para mostrar
la información que deseas. Por ejemplo, suponga que desea una lista de
empleados IDs, IDs de departamentos, y nombres de departamentos.
El Id del empleado reside en la tabla EMPLEADOS.
• Los nombres de los departamentos residen en la tabla DEPARTAMENTOS.
• El Id del Departamento reside en tanto en la tabla EMPLEADOS como en la tabla
DEPARTAMENTOS.
• Para producir un reporte, necesitas enlazar las tablas EMPLEADOS y
DEPARTAMENTOS y acceder a la información de ambas. Puedes mostrar la
información de ambas tablas estableciendo un enlace basado en los valores
comunes contenidos en la columna DEPARTMENT_ID.
• Este tema describió 4 tipos comunes de junturas en Oracle usadas para mostrar
información de múltiples tablas. Las junturas posibilitan que puedas mostrar
exactamente la información que necesitas de la Base de datos.
Junturas: Producto Cartesiano
• Si muestras información de múltiples filas sin especificar una condición de juntura
válida, entonces el resultado es un Producto Cartesiano. Este tema identifica las
características de un Producto Cartesiano que resulta cuando omites una
condición de juntura válida en la Sentencia SELECT.
• Al omitir una condición de juntura de la cláusula WHERE el resultado es un
producto cartesiano en el que son mostradas todas las combinaciones de filas. En
un producto cartesiano todas las filas de una tabla son juntadas a todas las filas de
la segunda tabla. Un producto cartesiano normalmente no es una manera correcta
de mostrar datos de múltiples tablas
• Considere una situación donde debes mostrar los nombres de los empleados de la
columna LAST_NAME en la tabla EMPLEADOS y los nombres de los departamentos
de la columna DEPARTMENT_NAME en la tabla DEPARTAMENTOS.
• El window de trabajo ha sido desplazado para mostrar la ultima página de la
consulta anterior. Note que el resultado contiene 2,889 filas porque hay 107
empleados en 27 departamentos.
• Un producto Cartesiano genera un número grande de filas, y el resultado es
raramente útil, a menos que tengas la necesidad específica de combinar todas las
filas de las diferentes tablas. Usando una condición de juntura, puedes mostrar
datos de las tabla EMPLEADOS y DEPARTAMENTOS en un solo resultado que
satisface mejor sus necesidades.
• Este tema identificó las características de un producto cartesiano que resulta
cuando omites una condición de juntura de la sentencia SELECT. Puedes evitar la
generación de un producto cartesiano incluyendo una condición de juntura en tu
sentencia SELECT cuando muestres información de múltiples tablas.
LECCIÓN II:
Recuperando Filas con Equijoins
Objetivos
• Recuperar Filas de dos tablas usando un
Equijoin
• Especificar condiciones de búsqueda
adicionales en un equijoin usando el operador
AND en la cláusula WHERE.
• Simplificar una consulta usando un alias de
tabla en un equijoin.
• Recuperar filas de mas de 2 tablas usando un
equijoin
• Puedes usar un equijoin para mostrar información de múltiples tablas, cuando un
valor en una columna de una tabla corresponde directamente al valor en otra
columna de otra tabla. En este tema, aprenderás como mostrar información de
dos tablas usando un equijoin.
• En un equijoin cada tabla puede incluir una columna que contiene los valores que
se relacionan directamente a los valores en otra columna. Frecuentemente, este
tipo de junturas involucran las columnas primary key y foreign key. Los Equijoins
son llamados también como junturas simples o inner joins.
• Por ejemplo, puedes enlazar la información de las tablas EMPLEADOS y
DEPARTAMENTOS usando un equijoin porque ambas tablas contienen valores en la
columna DEPARTMENT_ID.
• Las tablas EMPLEADOS y DEPARTAMENTOS tienen una llave primaria y una llave
foránea relacionadas, basados en los valores de la columna DEPARTMENT_ID. Una
llave foránea puede ser usada para formar una relación con una llave primaria o
una llave única de la misma tabla o de otra tabla.
• Para mostrar información de dos tablas, debes especificar las columnas que deseas
recuperar en la cláusula SELECT y las tablas que contienen la información en la
cláusula FROM.
• Para dar mayor claridad a la sentencia SELECT, prefijas el nombre de la columna
con su nombre de la tabla. Separas el prefijos de la tabla con el nombre de la
columna usando un punto (.)
• Añades una cláusula WHERE que define la condición de juntura. En la cláusula
WHERE, especificas las columnas de las dos tablas que tienen valores comunes. En
un equijoin, expresas la relación entre las columnas comunes que el operador
igual a (=). De nuevo, prefijas el nombre de la columna con su nombre de tabla.
• Considere una situación donde deseas employee_ID, department_ID y los
nombres de los departamentos de las tablas EMPLEADOS y DEPARTAMENTOS.
• Ambas tablas contienen la columna DEPARTMENT_ID. Eliges la tabla que
deseas recuperar la información. El prefijo de la tabla especificada en la
lista SELECT define la tabla que contiene la columna DEPARTMENT_ID. En
el ejemplo, las columnas son mostradas de ambas tablas.
• Para evitar la ambigüedad, califique los nombres de columnas en la cláusula
WHERE con el nombre de la tabla. Sin el prefijo de la tabla, la columna
DEPARTMENT_ID en el ejemplo mostrado podría ser de la tabla EMPLEADOS o
DEPARTAMENTOS. Sin el prefijo de la tabla, ocurre un error y la consulta no se
ejecutará.
• En el ejemplo mostrado, solo una de las columnas DEPARTMENT_ID ha
sido calificada. La otra columna DEPARTMENT_ID podría ser de la tabla
EMPLEADOS o DEPARTAMENTOS. Para evitar un error, asegúrese de
agregar los prefijos de tabla a ambas columnas en la cláusula WHERE.
• Si no hay ninguna columna con los mismos nombres en las tablas de donde está
recuperando los datos, entonces no tiene que prefijar las columnas con el nombre
de la tabla. Sin embargo, siempre mejora el rendimiento usando el prefijo de la
tabla porque dice exactamente al servidor de Oracle dónde encontrar las
columnas.
• Si no calificas los nombres de las columnas ambiguas
en las cláusulas SELECT y ORDER BY usando el prefijo
de tabla, ocurre un error.
• Suponga que quiere saber el título del trabajo de los empleados que han trabajado
más tiempo para la compañía. Quieres recuperar los datos de las columnas
LAST_NAME y HIRE_DATE de la tabla de EMPLEADOS y la columna JOB_TITLE de la
tabla TRABAJOS. También quieres ordenar los datos por la fecha de contrato.
• La pantalla de trabajo se ha desplazado para ver la última página de la
consulta anterior. Usaste un equijoin para desplegar los nombres y fecha
de contrato de la tabla EMPLEADOS y el título del trabajo de la tabla
TRABAJOS.
• En este tema, aprendiste a mostrar los datos de dos tablas usando un
equijoin. Puedes usar este tipo de juntura para desplegar datos de dos
tablas cuando una columna en una tabla corresponde directamente a una
columna en la otra tabla.
Condiciones adicionales de búsqueda
• When displaying data from multiple tables using an equijoin, you can specify
additional search conditions in the WHERE clause. This topic describes how to
specify additional search conditions in an equijoin by using the AND operator in
the WHERE clause.
• When you need additional search criteria to restrict the rows retrieved, you can
use the AND operator in the WHERE clause. For clarity, you commonly specify the
join conditions first.
• You can then add the AND keyword followed by the additional search criteria.
• When you add multiple search conditions in the WHERE clause using AND and OR,
you can add parentheses to clarify your statement.
• If the additional search condition is not enclosed in parentheses, the Oracle server
evaluates the AND operator before the OR operator.
Alias de Tablas
• If the additional search condition is not enclosed in parentheses, the Oracle server
evaluates the AND operator before the OR operator.