Sunteți pe pagina 1din 36

PRACTICA 03

PROCESANDO INFORMACIN
Restriccin y Ordenacin de Datos

OBJETIVOS

Despus de completar esta leccin, usted debera ser capaz de hacer lo siguiente:

Despus de completar esta leccin, usted debera ser capaz de hacer lo siguiente:
Limitar las filas recuperadas por una consulta.
Ordenar las filas que se recuperan mediante una consulta.
Utilizar sustitucin de ampersand para restringir y ordenar la salida en el tiempo de ejecucin

Al recuperar datos de la base de datos, puede que tenga que hacer lo siguiente:

Restringir las filas de datos que se muestran


Especificar el orden en que las filas se muestran

Esta leccin explica las sentencias SQL que se utilizan para realizar las acciones mencionadas
anteriormente.

LECCIN

Limitar las filas con:


La clusula WHERE
Las condiciones de comparacin que utilizan =, <=, BETWEEN, IN, LIKE y las condiciones
NULL
Condiciones lgicas utilizando AND, OR y NOT
Las reglas de precedencia para los operadores en una expresin
Las filas seleccin usando la clusula ORDER BY
Las variables de sustitucin
Definir y verificar los comandos

LIMITACIN DE FILAS MEDIANTE UNA SELECCIN

EMPLOYEE
"Recuperar todos los empleados del departamento 90"

La limitacin de filas mediante una seleccin

En el ejemplo de la diapositiva, suponga que desea mostrar a todos los empleados del
departamento 90. Las filas con un valor de 90 en la columna DEPARTMENT_ID son los nicos que
se devuelven. Este mtodo de restriccin es la base de la clusula WHERE en SQL.

LIMITAR LAS FILAS QUE SE HAN SELECCIONADO

Restringir las filas que se devuelven mediante el uso de la clusula WHERE:

SELECT * | {[DISTINCT] column | expression [alias],...}


FROM table
[WHERE condition(s)];

La clusula WHERE sigue a la clusula FROM.

Limitar las filas que se han seleccionado

Puede restringir las filas que se devuelven desde la consulta mediante la clusula WHERE. Una
clusula WHERE contiene una condicin que debe cumplirse y se sigue directamente a la clusula
FROM. Si la condicin es verdadera, la fila cumple la condicin se devuelve.

En la siguiente sintaxis:

WHERE Restringe la consulta a las filas que cumplen una condicin


Condition Que se compone de nombres de columnas, expresiones, constantes, y un
operador de comparacin. Una condicin especifica una combinacin de una o
ms expresiones y operadores lgicos (Boolean), y devuelve un valor de
FALSE TRUE, o UNKNOWN.

La clusula WHERE puede comparar los valores en las columnas, las expresiones literales,
aritmticas o funciones. Se compone de tres elementos:

Nombre de la columna
Comparacin de condiciones
Nombre de la columna, constante, o lista de valores

USO DE LA CLUSULA WHERE

SELECT employee_id, last_name, job_id, department_id


FROM employees
WHERE department_id = 90;
Uso de la clusula WHERE

En el ejemplo, la instruccin SELECT recupera los campos Employee ID, last name, job ID, y el
nmero de departamento de todos los empleados que estn en el departamento 90.

Nota: No se puede utilizar alias de columna en la clusula WHERE.

CADENAS DE CARACTERES y FECHAS

Las cadenas de caracteres y valores de fecha se escriben entre comillas simples.


Los valores de los caracteres son maysculas y minsculas y los valores de fecha tienen
formato de minsculas.
La fecha por defecto el formato de visualizacin es DD-MON-RR.

SELECT last_name, job_id, department_id


FROM employees
WHERE last_name =Whalen;

SELECT last_name
FROM employees
WHERE hire_date =17-FEB-96;

Cadenas de caracteres y fechas

Las cadenas de caracteres y fechas en la clusula WHERE debe estar encerrado entre comillas
simples (' ').

Nmero constantes, sin embargo, no deben encerrarse entre comillas simples.


Todas las bsquedas de caracteres distinguen entre maysculas y minsculas. En el siguiente
ejemplo, no se devuelven filas porque la tabla EMPLOYEES almacena todos los apellidos en
maysculas y minsculas:
SELECT last_name, job_id, department_id
FROM empleados
DONDE apellido = 'Whalen;
Las de bases de datos Oracle almacena fechas en un formato numrico interno, lo que representa
el siglo, ao, mes, da, hora, minutos y segundos. La visualizacin de la fecha por defecto es en el
formato DD-MON-RR.

Nota: Para ms detalles sobre el formato RR y sobre cmo cambiar el formato de fecha
predeterminado, consulte la leccin titulada "Uso de una sola fila para personalizar las funciones de
salida." Adems, aprender sobre el uso de funciones de una hilera, como superior e inferior para
anular el entre maysculas y minsculas en la misma leccin.

OPERADORES DE COMPARACIN

Operador Significado
= Igual a
> or que
>= Mayor que o igual a
< Menor que
<= Menor o igual a
<> No igual a
BETWEEN entre dos valores (ambos inclusive)
AND
IN (set) Coincidir cualquiera de una lista de valores
LIKE Coincide una patrn de caracter
IS NULL es un valor nulo

Operadores de comparacin

Los operadores de comparacin se utilizan en condiciones que comparan una expresin a otro
valor o una expresin. Se utilizan en la clusula WHERE en el formato siguiente:

Sintaxis
... WHERE expr operator valor

Ejemplo
... WHERE hire_date = '01-JAN-95 '
... WHERE salary> = 6000
... WHERE last_name = 'Smith'

Un alias no puede utilizarse en la clusula WHERE.

Nota: Los smbolos != y ^ = tambin puede representar el no es igual a la condicin


USO DE OPERADORES DE COMPARACIN

Uso de Operadores de comparacin

En el ejemplo, la instruccin SELECT recupera el apellido y el salario de la tabla Employees para


cualquier empleado cuyo salario es inferior o igual a $ 3.000. Tenga en cuenta que no es un valor
explcito suministrado a la clusula WHERE. El valor explcito de 3000 se compara con el valor del
salario en la columna SALARY de la tabla EMPLOYEES.

CONDICIONES DE RANGO UTILIZANDO EL OPERADOR BETWEEN

Utilice el operador BETWEEN para mostrar las filas sobre la base de un rango de valores:

SELECT last_name, salary


FROM employees
WHERE salary BETWEEN 2500 AND 3500;
Condiciones de Rango utilizando el operador BETWEEN

Puede mostrar las filas sobre la base de una serie de valores con el operador BETWEEN. El rango
que especifica contiene un lmite inferior y un lmite superior.

La instruccin SELECT en la diapositiva devuelve las filas de la tabla Employees para cualquier
empleado cuyo salario est entre $ 2.500 y $ 3.500.

Los valores que se especifican con el operador BETWEEN estn incluidos. Sin embargo, debe
especificar el lmite inferior en primer lugar.

Tambin puede usar el operador BETWEEN en los valores de caracteres:


CONDICIN DE MIEMBROS UTILIZANDO EL OPERADOR IN

Utilice el operador IN para poner a prueba los valores de una lista:

SELECT employee_id, last_name, salary, manager_id


FROM employees
WHERE manager_id IN (100, 101, 201);

Condicin de miembros utilizando el operador IN

Para poner a prueba los valores en un conjunto especfico de valores, utilice el operador IN. La
condicin definida mediante el operador IN tambin se conoce como la condicin de pertenencia.

El ejemplo de la diapositiva muestra el nmero de empleados, apellidos, salarios, y los nmeros de


los gerentes de los empleados de todos los empleados cuyo director es el nmero de empleado es
de 100, 101, o 201.

Nota: Los valores resultantes pueden ser especificados en cualquier orden por ejemplo, (201,
100, 101)

El operador IN puede ser utilizado con cualquier tipo de datos. El ejemplo siguiente devuelve una
fila de la tabla Empleados, para cualquier empleado cuyo apellido est incluido en la lista de
nombres en la clusula WHERE:

SELECT employee_id, manager_id, department_id


FROM employees
WHERE last_name IN (Hartstein', 'Vargas');
Si los caracteres o las fechas se utilizan en la lista, que debe estar encerrado entre comillas
simples ( '').

Nota: El operador IN est internamente evaluadas por el servidor de Oracle como un conjunto de
condiciones OR, tal como un = valor1 o un = valor2 o un = valor3. Por lo tanto, usando el operador
IN no tiene ventajas de rendimiento y slo se utiliza para la simplicidad lgica.

PATRN COINCIDENTE UTILIZANDO EL OPERADOR LIKE

Utilice el operador LIKE para realizar bsquedas con comodines de valores vlidos de la
cadena de bsqueda.
Las condiciones de bsqueda pueden contener tanto caracteres literales o nmeros:
% Denota cero o muchos personajes.
Denota un carcter.

SELECT first_name
FROM employees
WHERE first_name LIKE 'S%';

Patrn coincidente utilizado el operador LIKE

No siempre se puede saber el valor exacto que desea buscar. Puede seleccionar las filas que
coincidan con un patrn de caracteres utilizando el operador LIKE. El carcter de patrones
operacin se conoce como una bsqueda comodn. Dos smbolos pueden ser utilizados para
construir la cadena de bsqueda.

Smbolo Descripcin
% Representa cualquier secuencia de cero o ms caracteres
_ Representa cualquier Carcter sola

La instruccin SELECT en la diapositiva devuelve el nombre de la tabla Employees para cualquier


empleado cuyo nombre comienza con la letra "S" mayscula. Tenga en cuenta la "S" En
consecuencia, los nombres que comienzan con una s minscula no se devuelven.

El operador LIKE se puede utilizar como un atajo para algunos entre las comparaciones. El
siguiente ejemplo muestra los apellidos y las fechas de contratacin de todos los empleados que
se incorporaron entre enero de 1995 y diciembre de 1995:

SELECT last_name, hire_date


FROM employees
WHERE hire_date LIKE '%07';

LA COMBINACIN DE CARACTERES COMODN

Se pueden combinar los dos caracteres comodn (%, _) con caracteres literales de
coincidencia de patrones:

SELECT last_name
FROM employees
WHERE last_name LIKE '_o%';
Usted puede usar el identificador ESCAPE para buscar los actuales smbolos % real y _.

La combinacin de caracteres comodn

Los smbolos% y _ se puede utilizar en cualquier combinacin con caracteres literales. El ejemplo
de la diapositiva muestra los nombres de todos los empleados cuyos apellidos tienen la letra "o"
como el segundo carcter.

Identificador ESCAPE

Cuando usted necesita tener una coincidencia exacta de los caracteres reales % y _, utilice el
identificador de ESCAPE.

Esta opcin especifica lo que es el carcter escape. Si desea buscar cadenas que contengan SA_,
puede utilizar la siguiente sentencia SQL:

SELECT employee_id, last_name, job_id


FROM employees WHERE job_id LIKE '%SA\_%' ESCAPE '\';
El identificador ESCAPE identifica la barra invertida (\) como carcter de escape. En la sentencia
SQL, el carcter de escape precede al guin bajo (_). Esto hace que el servidor de Oracle
interpreter el guin de la letra.

USO DE LAS CONDICIONES NULL

Prueba de valores nulos con el operador IS NULL.

SELECT last_name, manager_id


FROM employees
WHERE manager_id IS NULL;

Uso de las Condiciones NULL

Las condiciones incluyen la condicin NULL es NULL y la condicin IS NOT NULL.

El IS NULL pruebas de condicin para valores nulos. Un valor nulo significa que el valor no est
disponible, sin asignar, desconocido o inaplicable. Por lo tanto, no se puede probar con =, debido a
un nulo no puede ser igual o diferente a cualquier valor. El ejemplo de la diapositiva recupera los
apellidos y los administradores de todos los empleados que no tienen un gerente.

Aqu hay otro ejemplo: Para mostrar los campos last_name, job_id, y comission para todos los
empleados que no tienen derecho a recibir una comisin, utilice la siguiente instruccin:

SELECT last_name, job_id, commission_pct


FROM employees
WHERE commission_pct IS NULL;

DEFINIR CONDICIONES USANDO LOS OPERADORES LGICOS

Operador Significado
AND devuelve TRUE si ambas condiciones son verdaderas componentes
OR Devuelve TRUE si cualquiera de estas condiciones es cierta
NOT Devuelve TRUE si la condicin es falsa

Definir condiciones usando los operadores lgicos

Una condicin lgica combina el resultado de dos condiciones de los componentes para producir
un resultado nico, basado en esas condiciones o se invierte el resultado de una condicin clave.
Una fila slo se devuelve si el resultado global de la condicin es verdadera.

Tres operadores lgicos estn disponibles en SQL:

AND
OR
NOT

Todos los ejemplos hasta el momento se han especificado en una sola condicin en la clusula
WHERE. Puede utilizar una serie de condiciones en una sola clusula WHERE con el operador
AND y OR.

USO DEL OPERADOR Y

AND requiere que tanto las condiciones de los componentes para ser verdad:
SELECT employee_id, last_name, job_id, salary
FROM employees
WHERE salary >= 10000
AND job_id LIKE '%MAN%' ;

Uso del operador AND

En el ejemplo, ambas condiciones de los componentes debe ser ciertas para cualquier registro a
seleccionar. Por lo tanto, slo aquellos empleados que tienen un puesto de trabajo que contiene
'MAN' de la cadena y gana $ 10,000 o ms son seleccionados.

Todas las bsquedas de caracteres entre maysculas y minsculas, es decir, no se devuelven


filas, si "MAN" no es mayscula.

Adems, las cadenas de caracteres deben escribirse entre comillas.

Tabla de Verdad AND

La siguiente tabla muestra los resultados de combinar dos expresiones con AND:

AND TRUE FALSE NULL


TRUE TRUE FALSE NULL
FALSE FALSE FALSE FALSE
NULL NULL FALSE NULL

USO DEL OPERADOR OR

OR requiere cualquiera de las componentes de las condiciones para ser verdad:

SELECT employee_id, last_name, job_id, salary


FROM employees
WHERE salary >= 10000
OR job_id LIKE '%MAN%' ;

Uso del operador OR

En el ejemplo, cualquiera de los componentes de las condiciones puede ser cierta para cualquier
registro a seleccionar. Por lo tanto, cualquier empleado que tiene un identificador de trabajo que
contiene 'MAN' de la cadena o gana $ 10.000 o ms se ha seleccionado.

Tabla de verdad OR

La siguiente tabla muestra los resultados de combinar dos expresiones con OR:

OR TRUE FALSE NULL


TRUE TRUE TRUE TRUE
FALSE TRUE FALSE NULL
NULL TRUE NULL NULL

USANDO EL OPERADOR NOT

SELECT last_name, job_id


FROM employees
WHERE job_id
NOT IN ('IT_PROG', 'ST_CLERK', 'SA_REP') ;
Usando el operador NOT

El ejemplo de la diapositiva muestra el apellido y el ID de trabajo de todos los empleados cuyo


trabajo no se IT_PROG ID, ST_CLERK o SA_REP.

Tabla de verdad NOT

La siguiente tabla muestra el resultado de aplicar el operador NOT a una condicin:

NOT TRUE FALSE NULL


FALSE TRUE NULL

Nota: El operador NOT tambin se puede utilizar con otros operadores de SQL, como BETWEEN,
LIKE y NULL.

... WHERE job_id NOT IN ('AC_ACCOUNT', 'AD_VP')


... WHERE salary NOT BETWEEN 10000 AND 15000
... WHERE last_name NOT LIKE '%A%'
... WHERE commission_pct IS NOT NULL

REGLAS DE PRIORIDAD

Operador Significado
1 Los operadores aritmticos
2 Operadores de concatenacin
3 Condiciones de comparacin
4 IS [NOT] NULL, LIKE, [NOT] IN
5 [NOT] BETWEEN
6 No es igual a
7 condicin lgica NOT
8 condicin lgica AND
9 condicin lgica OR
Usted puede utilizar parntesis para modificar las reglas de precedencia.

Reglas de prioridad

Las reglas de precedencia determinan el orden en que las expresiones se evalan y se calculan.
La tabla en la diapositiva muestra el orden de precedencia por defecto. Sin embargo, se puede
reemplazar el orden predeterminado mediante el uso de parntesis en las expresiones que desea
calcular en primer lugar.

REGLAS DE PRIORIDAD

SELECT last_name, job_id, salary


FROM employees
WHERE job_id = 'SA_REP'
OR job_id = 'AD_PRES'
AND salary > 15000;

SELECT last_name, job_id, salary


FROM employees
WHERE (job_id = 'SA_REP'
OR job_id = 'AD_PRES')
AND salary > 15000;
Reglas de precedencia (continuacin)

1. La precedencia del operador AND: Ejemplo


En este ejemplo, hay dos condiciones:
La primera condicin es que el campo job_ID es AD_PRES y el salario es mayor que $
15,000.
La segunda condicin es que el campo job_ID es SA_REP.

Por lo tanto, la instruccin SELECT es el siguiente:


"Seleccionar la fila si un empleado es un presidente Y gana ms de $ 15.000, O si el empleado
es un representante de ventas."

2. Uso de parntesis: Ejemplo


En este ejemplo, hay dos condiciones:
La primera condicin es que el campo job_ID es AD_PRES o SA_REP.
La segunda condicin es que el salario es mayor que $ 15,000.

Por lo tanto, la instruccin SELECT es el siguiente:


"Seleccionar la fila si un empleado es un presidente o un representante de ventas, y si el
empleado gana ms de $ 15.000."

USO DE LA CLUSULA ORDER BY

Ordenar recuperar filas con la clusula ORDER BY:


ASC: Ascendente orden predeterminado,
DESC: Orden descendente

La clusula ORDER BY ocupa el ltimo lugar en la instruccin SELECT:

SELECT last_name, job_id, department_id, hire_date


FROM employees
ORDER BY hire_date ;
Uso de la clusula ORDER BY

El orden de las filas que se devuelven en un resultado de la consulta no est definido. La clusula
ORDER BY se puede utilizar para ordenar las filas. Sin embargo, si se utiliza la clusula ORDER
BY, debe ser la ltima clusula de la sentencia SQL. Adems, puede especificar una expresin, un
alias, o una posicin de la columna como la condicin de clase.

Sintaxis

SELECT expr
FROM table
[WHERE condition(s)]
[ORDER BY {column, expr, numeric_position} [ASC|DESC]];

En la siguiente sintaxis:

ORDER BY Especifica el orden en que las filas recuperadas se muestran


ASC Ordena las filas en orden ascendente (este es el orden por defecto)
DESC Ordena las filas en orden descendente.

Si la clusula ORDER BY no se utiliza, el orden es indefinido, y el servidor de Oracle no puede


recuperar filas en el mismo orden para la misma consulta dos veces. Utilice la clusula ORDER BY
para mostrar las filas en un orden especfico.

Nota: Utilice palabras clave NULLS FIRST o NULLS LAST para especificar si las filas devueltas
que contengan valores nulos debe aparecer primero o el ltimo en la secuencia de orden.

ORDENANDO

Clasificacin en orden descendente:

SELECT last_name, job_id, department_id, hire_date


FROM employees
ORDER BY hire_date DESC ;

Clasificacin por alias de columna:

SELECT employee_id, last_name, salary*12 annsal


FROM employees
ORDER BY annsal ;

Ordenando

El orden predeterminado es ascendente:

Los valores numricos se muestran con el valor ms bajo primero (por ejemplo, de 1 a 999).
Los valores de fecha se muestran con el valor ms temprano como primer valor (por ejemplo,
01-ENE-92 antes del 01-ENE-95).
Los valores de caracteres se muestran en el orden alfabtico (por ejemplo, "A" primero y "Z"
pasado).
Los valores nulos son mostrados en ltima instancia para secuencias ascendentes y como
primera instancia para secuencias descendentes.
Tambin se puede ordenar por una columna que no est en la lista SELECT.

Ejemplos:

1. Para invertir el orden en el que las filas se muestran, especifique la palabra clave DESC
despus del nombre de columna en la clusula ORDER BY. El ejemplo de la diapositiva
ordena el resultado por el empleado ms recientemente contratado.

2. Tambin puede utilizar un alias de columna en la clusula ORDER BY. El ejemplo de la


diapositiva ordena los datos de salario anual (anual salary).

ORDENANDO

Clasificacin por uso de la posicin numrica de la columna:

SELECT last_name, job_id, department_id, hire_date


FROM employees
ORDER BY 3;

Clasificacin por varias columnas:

SELECT last_name, department_id, salary


FROM employees
ORDER BY department_id, salary DESC;
Ordenando (continuacin)

Ejemplos:

3. Puede ordenar los resultados de la consulta mediante la especificacin de la posicin numrica


de la columna en la clusula SELECT. Los gneros ejemplo de la diapositiva, el resultado por
el department_id como esta columna es en la tercera posicin en la clusula SELECT.

4. Puede ordenar los resultados de la consulta por ms de una columna. El lmite de tipo es el
nmero de columnas de la tabla dada. En la clusula ORDER BY, especifique las columnas y
separar los nombres de las columnas con comas. Si desea invertir el orden de una columna,
especifique DESC despus de su nombre. El resultado de la consulta de ejemplo se muestra
en la diapositiva est ordenada por department_id para el ascenso y tambin por el salario en
orden descendente.

VARIABLES DE SUSTITUCIN
Variables de sustitucin

Hasta ahora, todas las sentencias SQL se ejecutan con las columnas predeterminadas, las
condiciones y sus valores. Suponga que desea una consulta que muestra a los empleados con
puestos de trabajo diferentes y no slo aquellos cuya job_id es SA_REP. Puede modificar la
clusula WHERE para proporcionar un valor diferente cada vez que se ejecuta el comando, pero
tambin hay una manera ms fcil.

Mediante el uso de una variable de sustitucin en lugar de los valores exactos de la clusula
WHERE, puede ejecutar la misma consulta para diferentes valores.

Puede crear informes que se piden a los usuarios para suministrar sus propios valores para
restringir el intervalo de los datos devueltos, mediante el uso de variables de sustitucin. Puede
incorporar las variables de sustitucin en un archivo de comandos o en una nica sentencia SQL.
Una variable puede ser considerada como un recipiente en el que los valores se almacenan
temporalmente. Cuando se ejecuta la instruccin, el valor almacenado es sustituido.

VARIABLES DE SUSTITUCIN

Utilice las variables de sustitucin a:


Almacenar temporalmente los valores con un solo signo (&) y haga doble ampersand (&&)
la sustitucin

Utilice las variables de sustitucin para complementar lo siguiente:


Donde las condiciones
Clusulas ORDER BY
Expresiones de columna
Los nombres de tablas
Las sentencias SELECT enteras

Variables de sustitucin (continuacin)

Puede utilizar variables de sustitucin de un solo smbolo de unin (&) para almacenar
temporalmente los valores.

Tambin se puede predefinir variables con el comando DEFINE. DEFINE crea y asigna un valor a
una variable.

Distribucin ms restringida de datos: Ejemplos

Presentacin de informes nicamente de datos para el trimestre actual o rango de fechas


especificadoe
Presentacin de informes sobre datos relevantes slo para el usuario que solicita el
informe
Visualizacin de slo el personal dentro de un determinado departamento

Otros efectos interactivos

Los efectos interactivos no se limitan a la interaccin directa del usuario con la clusula WHERE.
Los mismos principios tambin se pueden utilizar para alcanzar otros objetivos, tales como:

La obtencin de los valores de entrada de un archivo y no de una persona


Pasar valores de una sentencia SQL a otro

Nota: Tanto SQL Developer y SQL * Plus de apoyo a las variables de sustitucin y los comandos
DEFINE / UNDEFINE. Aunque SQL Developer o SQL * Plus no es compatible con los controles de
validacin (excepto para el tipo de datos) en la entrada del usuario.

USO DE LA VARIABLE DE SUSTITUCIN DE UN SOLO AMPERSAND

Utilizar una variable precedido de un signo (&) para pedir al usuario un valor de:

SELECT employee_id, last_name, salary, department_id


FROM employees
WHERE employee_id = &employee_num ;
Uso de la variable de sustitucin de un solo Ampersand

Cuando se ejecuta un informe, los usuarios a menudo quieren restringir los datos que se devuelven
de forma dinmica. SQL * Plus o SQL Developer proporciona esta flexibilidad con las variables de
usuario. Utilice un signo (&) para identificar a cada variable en la instruccin SQL. Sin embargo, no
es necesario para definir el valor de cada variable.

Notacin Descripcin
&user_variable Indica una variable en una sentencia SQL, si la variable no existe, SQL * Plus o
SQL Developer solicita al usuario un valor (la nueva variable se desecha
despus de que se utilice.)

El ejemplo de la diapositiva crea una variable de sustitucin para desarrolladores de SQL Server
para un nmero de empleado. Cuando se ejecuta la instruccin, SQL Developer solicita al usuario
un nmero de empleado y despus muestra el nmero de empleado, el apellido, el salario y
nmero de departamento para ese empleado.

Con el smbolo de unin simple, se solicita al usuario cada vez que se ejecuta el comando si la
variable no existe.

Uso de la variable de sustitucin de un solo Ampersand

Uso de la variable de sustitucin de un solo signo (continuacin)

Cuando SQL Developer detecta que la sentencia de SQL contiene un signo, se le pedir que
introduzca un valor para la variable de sustitucin que se menciona en la sentencia SQL.

Despus de introducir un valor y haga clic en el botn Aceptar, los resultados se muestran en la
ficha Resultados de la sesin de SQL Developer.
CARCTER Y VALORES CON FECHA DE VARIABLES DE SUSTITUCIN

Use comillas simples para la fecha y los valores de caracteres:

SELECT last_name, department_id, salary*12


FROM employees
WHERE job_id = '&job_title' ;

Carcter y Valores con fecha de variables de sustitucin

En una clusula WHERE, los valores de fecha y el carcter debe estar encerrado entre comillas
simples. La misma regla se aplica a las variables de sustitucin.

Incluya la variable entre comillas simples dentro de la sentencia SQL.

La diapositiva muestra una consulta para recuperar los nombres de los empleados, nmeros de
departamento, y salarios anuales de todos los empleados basndose en el valor puesto de trabajo
de la variable de desarrollo de sustitucin de SQL.

ESPECIFICACIN DE LOS NOMBRES DE COLUMNAS, EXPRESIONES Y DE TEXTO

SELECT employee_id, last_name, job_id,&column_name


FROM employees
WHERE &condition
ORDER BY &order_column ;
Especificacin de los nombres de columnas, expresiones y de texto

Puede utilizar las variables de sustitucin no slo en la clusula WHERE de una sentencia SQL,
sino tambin como la sustitucin de nombres de columnas, expresiones o texto.
Ejemplo:

El ejemplo de la diapositiva muestra el nmero de empleado, last_name, job_id, y cualquier otra


columna que se especifica por el usuario en tiempo de ejecucin, de la tabla Employees. Para
cada variable de sustitucin en la instruccin SELECT, se le pedir que introduzca un valor, a
continuacin, haga clic en Aceptar para continuar.

Si no se introduce un valor para la variable de sustitucin, se obtiene un error al ejecutar la


sentencia anterior.

Nota: Una variable de sustitucin puede ser utilizada en cualquier parte de la instruccin SELECT,
a menos que la palabra entr por primera vez en el prompt de comando.

USO DE LA VARIABLE DE SUSTITUCIN DOBLE AMPERSAND

Utilice doble ampersand (&&) si desea volver a utilizar el valor de la variable sin preguntar al
usuario cada vez que:

SELECT employee_id, last_name, job_id, &&column_name


FROM employees
ORDER BY &column_name ;

Uso de la variable de sustitucin doble Ampersand


Usted puede utilizar el doble ampersand (&&) variable de sustitucin si desea volver a utilizar el
valor de la variable sin preguntar al usuario cada vez. El usuario ve el smbolo del sistema para el
valor de una sola vez. En el ejemplo de la diapositiva, el usuario se le pide que dan el valor para la
variable de column_name, slo una vez. El valor que es suministrada por el usuario
(department_id) se utiliza tanto para visualizacin y peticin de datos. Si ejecuta la consulta de
nuevo, no se le pedir el valor de la variable.

SQL Developer almacena el valor que se suministra con el comando DEFINE, sino que la usa de
nuevo cada vez que se hace referencia el nombre de la variable. Despus de una variable de
usuario est en su lugar, es necesario utilizar el comando UNDEFINE para eliminarlo:

UNDEFINE column_name

USO DEL COMANDO DEFINE

Utilice el comando DEFINE para crear y asignar un valor a una variable.


Utilice el comando UNDEFINE para eliminar una variable.

DEFINE employee_num = 200


SELECT employee_id, last_name, salary, department_id
FROM employees
WHERE employee_id = &employee_num ;
UNDEFINE employee_num

Uso del comando DEFINE

El ejemplo mostrado se crea una variable de sustitucin de un nmero de empleado con el


comando DEFINE. En tiempo de ejecucin, se muestra el nmero de empleado, nombre, salario y
nmero de departamento para ese empleado.
Debido a que la variable se crea con el comando DEFINE para programadores de SQL, el usuario
no se le pedir que introduzca un valor para el nmero de empleado. En cambio, el valor de la
variable se define automticamente sustituido en la instruccin SELECT.

La variable de sustitucin EMPLOYEE_NUM est presente en la sesin hasta que el usuario


undefines o sale de la sesin de SQL Developer.

USO DEL COMANDO VERIFY

Utilice el comando VERIFY para alternar la visualizacin de la variable de sustitucin, tanto antes
como despus de SQL Developer sustituye a las variables de sustitucin con los valores:

SET VERIFY ON
SELECT employee_id, last_name, salary
FROM employees
WHERE employee_id = &employee_num;

Uso del comando VERIFY

Para confirmar los cambios en la instruccin SQL, utilice el comando VERIFY. Configuracin de
SET VERIFY ON fuerzas para programadores de SQL para mostrar el texto de un comando
despus de que se sustituye a las variables de sustitucin de los valores. Para ver la salida
VERIFY, se debe utilizar la secuencia de comandos de ejecucin (F5) en el icono de la hoja de
trabajo SQL.

SQL Developer muestra el texto de un comando despus de que se sustituye a las variables de
sustitucin de los valores, en la ficha de salida de secuencia de comandos como se muestra en la
diapositiva.

El ejemplo de la diapositiva muestra el nuevo valor de la columna EMPLOYEE_ID en la sentencia


SQL seguido de la salida.

SQL * Plus Variables de sistema

SQL * Plus utiliza diversas variables del sistema que controlan el entorno de trabajo. Una de las
variables es VERIFY. Para obtener una lista completa de todas las variables del sistema, puede
ejecutar el comando SHOW ALL en el SQL * Plus smbolo del sistema.
EXAMEN
Cul de los siguientes operadores vlidos para la clusula WHERE?

1. >=
2. IS NULL
3. !=
4. IS LIKE
5. IN BETWEEN
6. <>

Respuesta: 1, 2, 3, 6
RESUMEN

En esta leccin, usted debe haber aprendido a:

Utilice la clusula WHERE para restringir las filas de salida:


Utilizar las condiciones de comparacin
Utilice el BETWEEN, IN, LIKE, NULL y los operadores
Aplicar los operadores lgicos AND, OR y NOT

Utilice la clusula ORDER BY para ordenar las filas de salida:

SELECT * | { [DISTINCT] column | expression [alias],...}


FROM table
[WHERE condition(s) ]
[ORDER BY {column, expr, alias} [ASC | DESC]] ;

Utilice sustitucin de ampersand para restringir y ordenar la salida en tiempo de ejecucin

Resumen

En esta leccin, usted debe haber aprendido acerca de restringir y ordenar las filas que se
devuelven por la sentencia SELECT. Tambin debera haber aprendido a poner en prctica los
diversos operadores y condiciones.

Mediante el uso de las variables de sustitucin, se puede dar mayor flexibilidad a las sentencias
SQL. Esto permite que las consultas para solicitar la condicin de filtro para las filas en tiempo de
ejecucin.
PRCTICA 2:
Introduccin

Esta prctica cubre los siguientes temas:


Seleccin de los datos y cambiar el orden de las filas que se muestran
Restriccin de filas mediante el uso de la clusula WHERE
Ordenacin de filas con la clusula ORDER BY
Utilizacin de variables de sustitucin para aadir flexibilidad a sus sentencias SELECT de
SQL

Prctica 2: Introduccin

En esta prctica, desarrollara ms informes, incluidas las declaraciones que utilizan la clusula
WHERE y ORDER BY. Usted hace las sentencias SQL ms reutilizables y genricos mediante la
inclusin de la sustitucin de ampersand.

PRCTICA 2

El departamento de recursos humanos necesita su ayuda en la creacin de algunas consultas.

1. Debido a problemas de presupuesto, el departamento de recursos humanos necesita un


informe que muestra el apellido y el salario de los empleados que ganan ms de $ 12.000.
Guardar la instruccin SQL en un archivo llamado lab_02_01.sql. Ejecutar la consulta.

2. Abra una nueva hoja de trabajo SQL. Crear un informe que muestra el apellido y el nmero de
departamento de nmero de empleado 176. Ejecutar la consulta.

3. El departamento de RRHH tiene que encontrar a los empleados de alto sueldo y bajo salario.
Modificar lab_02_01.sql para mostrar el apellido y el salario de cualquier empleado cuyo salario
no est en el rango de $ 5.000 a $ 12.000. Guarde su instruccin SQL como lab_02_03.sql.
4. Crear un informe para mostrar el ltimo nombre, ID de trabajo, y la fecha de inicio para los
empleados con los apellidos de Matos y Taylor. Pide la consulta en orden ascendente por la
fecha de inicio.

5. Mostrar el apellido y el nmero de departamento de todos los empleados de los


departamentos de 20 o 50 en orden alfabtico ascendente por su nombre.

6. Modificar lab_02_03.sql para mostrar el apellido y el salario de los empleados que ganan entre
$ 5.000 y $ 12.000, y se encuentran en el departamento 20 o 50. Etiquetar el Empleado
columnas y salario mensual, respectivamente. Vuelva a guardar lab_02_03.sql como
lab_02_06.sql. Ejecute la instruccin en lab_02_06.sql.

7. El departamento de recursos humanos necesita un informe que muestra el apellido y la fecha


de contratacin para todos los empleados que fueron contratados en 1994.
8. Crear un informe para mostrar el apellido y el ttulo del trabajo de todos los empleados que no
tienen un gerente.

9. Crear un informe para mostrar el ltimo nombre, salario y la comisin de todos los empleados
que ganan comisiones. Ordenar datos en orden descendente de sueldos y comisiones.
Utilice la posicin numrica de la columna en la clusula ORDER BY.

10. Los miembros del departamento de recursos humanos quiere tener ms flexibilidad en las
consultas que se estn escribiendo. A ellos les gustara un informe que muestra el apellido y el
salario de los empleados que ganan ms de una cantidad que especifica el usuario despus de
un sistema. Guarde esta consulta en un archivo denominado lab_02_10.sql. Si introduce 12000
cuando se le solicite, el informe muestra los siguientes resultados:

11. El departamento de Recursos Humanos quiere ejecutar informes basados en un gestor. Crear
una consulta que pide al usuario un identificador de administrador y genera la identificacin de
empleado, el apellido, el salario y el departamento para los empleados que gestor. El
departamento de Recursos Humanos quiere que la capacidad de ordenar el informe en una
columna seleccionada. Puedes comprobar los datos con los siguientes valores:

MANAGER_ID = 103, ordenados por apellidos:

MANAGER_ID = 201, ordenados por salario:


MANAGER_ID = 124, ordenados por employee_id:

Si tiene tiempo, siga los siguientes ejercicios:

12. Mostrar todos los nombres de los empleados ltimos en los que la tercera letra del nombre es
"a".

13. Mostrar los apellidos de todos los empleados que tienen tanto una "a" y una "e" en su apellido.

Si quiere un reto adicional, realice los siguientes ejercicios:

14. Mostrar el apellido, el trabajo y el salario para todos los empleados cuyos puestos de trabajo,
ya sea los de un representante de ventas o de un empleado de almacn, y cuyos sueldos no
son iguales a $ 2,500, $ 3,500, o $ 7.000.

15. Modificar lab_02_06.sql para mostrar el ltimo nombre, salario y la comisin para todos los
empleados cuya comisin es del 20%. Vuelva a guardar lab_02_06.sql como lab_02_15.sql.
Vuelva a ejecutar la sentencia en el lab_02_15.sql.

S-ar putea să vă placă și