Restricción y Ordenación de Datos
En este capitulo trataremos todo lo relacionado a:
- Limitacion de Filas recuperadas por una consulta
- Ordenación de Filas recuperadas por una consulta
1. Limitación Filas Seleccionadas
• Restrinja las filas devueltas utilizando la cláusula
WHERE.
• La cláusula WHERE sigue a la cláusula FROM.
SELECT *|{[DISTINCT] column|expression [alias],...}
FROM table
[WHERE condition(s)];
SELECT employee_id, last_name, job_id, department_id
FROM employees
WHERE department_id = 90 ;
3.Cadenas de Caracteres y Fechas
• Las cadenas de caracteres y los valores de fechas se
escriben entre comillas simples.
• Los valores de caracteres son sensibles a
mayúsculas/minúsculas y los de fecha, al formato.
• El formato de fecha por defecto es DD-MON-RR.
SELECT last_name, job_id, department_id
FROM employees
WHERE last_name = ’Whalen’;
Operadores: (=, >, >=, <, <=, <>)
Significado: (Igual que, Mayor que, Mayor o igual que, Menor que, Menor o igual que).
SELECT last_name, salary
FROM employees
WHERE salary <= 3000;
5.Condiciones de Comparación
Operador Significado
BETWEEN
...AND... (Entre dos valores (ambos inclusive),
IN(set) (Coincide con cualquiera de una lista de valores)
LIKE (Coincide con un patrón de caracteres)
IS NULL (Es un valor nulo).
Ejemplo: SELECT last_name, salary
FROM employees
WHERE salary BETWEEN 2500 AND 3500;
SELECT employee_id, last_name, salary, manager_id
FROM employees
WHERE manager_id IN (100, 101, 201);
SELECT first_name
FROM employees
WHERE first_name LIKE ’S%’;
Puede utilizar el identificador ESCAPE para buscar los
símbolos % y _ reales.
SELECT last_name, manager_id
FROM employees
WHERE manager_id IS NULL;
Operador Significado
AND Devuelve TRUE si las dos condiciones
componentes son verdaderas.
OR Devuelve TRUE si alguna de las
condiciones componentes es verdadera.
NOT Devuelve TRUE si alguna de las
condiciones componentes es verdadera.
10. Uso del Operador AND
SELECT employee_id, last_name, job_id, salary
FROM employees
WHERE salary >=10000
AND job_id LIKE ’%MAN%’;
11. Uso del Operador OR
SELECT employee_id, last_name, job_id, salary
FROM employees
WHERE salary >= 10000
OR job_id LIKE ’%MAN%’;
12. Uso del Operador NOT
SELECT last_name, job_id
FROM employees
WHERE job_id
NOT IN (’IT_PROG’, ’ST_CLERK’, ’SA_REP’);
Ordene filas con la cláusula ORDER BY
– ASC: orden ascendente, por defecto
– DESC: orden descendente
• La cláusula ORDER BY aparece en último lugar en la sentencia SELECT.
SELECT last_name, job_id, department_id, hire_date
FROM employees
ORDER BY hire_date ;
Ejemplo 2: SELECT last_name, job_id, department_id, hire_date
FROM employees
ORDER BY hire_date DESC ;
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
EJERCICIOS
select sysdate as fecha
from dual ;
seleccione los campoy y al salario increntelo con el 15% y redondee el salariy
select employee_id, last_name, salary as salario,round (salary*0.15) as "new salary"
from employees;
Agrege una columba con el inbremento del salaro
select employee_id, last_name, salary as salario,(salary +(salary*0.15)) as "nuevo salario ", (salary*0.15) as incremento
from employees;
Muestre el aplellido la primera en mayuscual y las demas en minusculas y muestre su tamaño de caracteres de los empleados q inician con A, J, M
select INITCAP (last_name), length (last_name) as tamaño
from employees
where last_name like ’J%’ or last_name like ’A%’ or last_name like ’M%’;
Muestra los empleados contradados desde la fecha de inicio hasta hoy em meses
select last_name, trunc (months_between (sysdate , hire_date)) as "meses trabajados"
from employees;
Concatene con || el apellido el salario y la frace pero le gustaria ganar y multiplique el salario por 3
select last_name || ’ gana $’||salary || ’ ’||’pero le gustaria ganar’|| ’ $’ || (salary*3) as "salario soñado"
from employees;
Muestra el apellido, el salario formateado con * hasta completar 15 caracteres.
select last_name, lpad (salary, 15, ’*’)
from employees;
select last_name, hire_date,to_char ( next_day( add_months (hire_date, 6),’lunes’), ’fmday ",the" ddspth "of" month "," yyyy’)
from employees;
select last_name, hire_date, day hire_date
from employees;