Lecc02 Oracle

download Lecc02 Oracle

of 34

description

Consultas

Transcript of Lecc02 Oracle

  • Restringiendo y Ordenando datosRestringiendo y Ordenando datos

    Copyright EDCON Tecnologas de Informacin, 2008.

  • ObjetivosObjetivos

    Al completar esta leccin podr realizar lo siguiente:

    Limitar registros recuperados por una consulta Ordenar registros recuperados por una bsqueda Usar la sustitucin (ampersand) en iSQL*Plus para

    2-2

    Usar la sustitucin (ampersand) en iSQL*Plus para restringir y ordenar la salida en tiempo de ejecucin.

  • Limitando registros usando una seleccinLimitando registros usando una seleccin

    EMPLOYEES

    2-3

    Recuperar todoslos empleados del departamento 90

  • Limitando los registros seleccionadosLimitando los registros seleccionados

    Restringir los registros retornados por el uso de la clusula WHERE.

    SELECT *|{[DISTINCT] column|expression [alias],...}FROM table[WHERE condition(s)];

    2-4

    La clusula WHERE va despus de la clusula FROM.

    [WHERE condition(s)];

  • Usando la clusula Usando la clusula WHEREWHERE

    SELECT employee_id, last_name, job_id, department_idFROM employeesWHERE department_id = 90 ;

    2-5

  • Cadenas de Caracteres y fechasCadenas de Caracteres y fechas

    Los valores de cadenas de caracteres y fechas son encerrados en comillas simples.

    Los valores de carcter son case sensitive, y los valores de fecha son de formato sensible .

    El formato de fecha por defecto es DD-MON-RR.

    2-6

    El formato de fecha por defecto es DD-MON-RR.SELECT last_name, job_id, department_idFROM employeesWHERE last_name = 'Whalen';

  • Condiciones de ComparacinCondiciones de ComparacinOperador Significado

    = Igual> Mayor que

    >= Mayor o igual que< Menor que

  • SELECT last_name, salaryFROM employeesWHERE salary
  • Usando la condicin Usando la condicin BETWEENBETWEEN

    Usar la condicin BETWEEN para desplegar registros basados en un rango de valores.SELECT last_name, salaryFROM employeesWHERE salary BETWEEN 2500 AND 3500;

    2-9

    Lmite Menor Lmite Mayor

  • SELECT employee_id, last_name, salary, manager_idFROM employeesWHERE manager_id IN (100, 101, 201);

    Usando la condicin Usando la condicin ININ

    Usar la condicin IN para probar los valores en una lista.

    2-10

  • Usando la Condicin Usando la Condicin LIKELIKE

    Usar la condicin LIKE para ejecutar bsquedas utilizando comodines para la bsqueda valida de cadenas de valores.

    Buscar condiciones que puedan contener literales de carcter o numricas:

    2-11

    de carcter o numricas: % denota cero o varios caracteres. _ denota un carcter.

    SELECT first_nameFROM employeesWHERE first_name LIKE 'S%';

  • Se puede combinar ambos comodines.

    Usando la Condicin Usando la Condicin LIKELIKE

    SELECT last_nameFROM employeesWHERE last_name LIKE '_o%';

    2-12

    Se puede utilizar el identificador ESCAPE para interactuar con los smbolos % y _ .

  • Usando la condicin Usando la condicin NULLNULL

    Probar nulos con el operador IS NULL.

    SELECT last_name, manager_idFROM employeesWHERE manager_id IS NULL;

    2-13

    WHERE manager_id IS NULL;

  • Condiciones LgicasCondiciones Lgicas

    Operador

    AND

    OR

    Significado

    Retorna TRUE si ambos componentes de la condicin son verdaderos

    Retorna TRUE si cada componente de la condicin es verdadero

    2-14

    NOTla condicin es verdadero

    Retorna TRUE si el la condicin siguiente es falsa

  • Usando el operador Usando el operador ANDAND

    AND requiere que ambas condiciones sean verdaderas.SELECT employee_id, last_name, job_id, salaryFROM employeesWHERE salary >=10000AND job_id LIKE '%MAN%';

    2-15

    AND job_id LIKE '%MAN%';

  • Usando el operador Usando el operador OROR

    OR requiere que una condicin sea verdadera.SELECT employee_id, last_name, job_id, salaryFROM employeesWHERE salary >= 10000OR job_id LIKE '%MAN%';

    2-16

  • SELECT last_name, job_idFROM employeesWHERE job_id

    NOT IN ('IT_PROG', 'ST_CLERK', 'SA_REP');

    Usando el operador Usando el operador NOTNOT

    2-17

  • Reglas de PrecedenciaReglas de Precedencia

    Orden Evaluado Operador1 Operadores Aritmeticos 2 Operadores de Concatenacin3 Condiciones de Comparacin4 , ,

    2-18

    Derogacin de la precedencia usando parntesis.

    4 IS [NOT] NULL, LIKE, [NOT] IN5 [NOT] BETWEEN6 Condicin lgica NOT7 Condicin lgica AND8 Condicin lgica OR

  • SELECT last_name, job_id, salaryFROM employeesWHERE job_id = 'SA_REP'OR job_id = 'AD_PRES'AND salary > 15000;

    Reglas de PrecedenciaReglas de Precedencia

    2-19

  • SELECT last_name, job_id, salaryFROM employeesWHERE (job_id = 'SA_REP'

    Reglas de PrecedenciaReglas de Precedencia

    Usar parntesis para forzar la prioridad.

    2-20

    WHERE (job_id = 'SA_REP'OR job_id = 'AD_PRES')AND salary > 15000;

  • SELECT last_name, job_id, department_id, hire_date

    Clusula Clusula ORDER BYORDER BY Ordenamiento de los registros con la clusula

    ORDER BY ASC: orden ascendente, por defecto DESC: orden descendente

    La clusula ORDER BY va de ltimo en la sentencia SELECT.

    2-21

    SELECT last_name, job_id, department_id, hire_dateFROM employeesORDER BY hire_date ;

  • Clasificando en orden DescendenteClasificando en orden Descendente

    SELECT last_name, job_id, department_id, hire_dateFROM employeesORDER BY hire_date DESC ;

    2-22

  • Ordenando por Alias de ColumnasOrdenando por Alias de Columnas

    SELECT employee_id, last_name, salary*12 annsalFROM employeesORDER BY annsal;

    2-23

  • El orden de la lista de ORDER BY es el orden de la fuente.SELECT last_name, department_id, salaryFROM employeesORDER BY department_id, salary DESC;

    Ordenando por Mltiples ColumnasOrdenando por Mltiples Columnas

    2-24

    Se puede ordenar por columnas que no estn en la lista del SELECT.

  • Sustitucin de VariablesSustitucin de Variables

    ... salary = ? department_id = ? ... last_name = ? ...Quiero hacer

    2-25

    ... last_name = ? ...Quiero hacer la misma consulta con diferentes valores.

  • Sustitucin de VariablesSustitucin de Variables

    Usar la sustitucin de variables de iSQL*Plus para: Almacenar valores temporales con un ampersand

    (&) y doble ampersand (&&). Usar la sustitucin de variables en:

    2-26

    Usar la sustitucin de variables en: Condiciones WHERE Clausula ORDER BY Expresiones en Columnas. Nombre de Tablas En toda una sentencia SELECT

  • Sustitucin de VariablesSustitucin de Variables

    Utilice una variable con el prefijo de ampersand (&) para capturar un valor:

    SELECT employee_id, last_name, salary, department_idFROM employeesWHERE employee_id = &employee_num ;

    2-27

    WHERE employee_id = &employee_num ;

  • Sustitucin de VariablesSustitucin de Variables

    2-28

  • Valores de tipo carcter y fecha con Valores de tipo carcter y fecha con sustitucin de variablessustitucin de variables

    Utilice comillas simples para valores de fecha y carcter.

    SELECT last_name, department_id, salary*12FROM employeesWHERE job_id = '&job_title' ;

    2-29

  • Especificando nombres de columna, Especificando nombres de columna, expresiones y textoexpresiones y texto

    SELECT employee_id, last_name, job_id,&column_nameFROM employeesWHERE &conditionORDER BY &order_column ;

    2-30

  • Usando las variables de Sustitucin &&Usando las variables de Sustitucin &&

    Use el ampersand doble (&&) si desea re-utilizar el valor de la variable sin que lo introduzca cada vez.

    SELECT employee_id, last_name, job_id, &&column_nameFROM employeesORDER BY &column_name ;

    2-31

  • Usando el comando DEFINE de Usando el comando DEFINE de iSQLiSQL*Plus*Plus

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

    Utilice el comando UNDEFINE para eliminar la variable.

    2-32

    DEFINE employee_num = 200SELECT employee_id, last_name, salary, department_idFROM employeesWHERE employee_id = &employee_num ;UNDEFINE employee_num

  • Usando el comando VERIFYUsando el comando VERIFY

    Utilice el comando VERYFY para mostrar el valor de la variable de sustitucin, antes y despus que iSQL*Plus remplace las variables de sustitucin con los valores:

    SET VERIFY ON

    2-33

    old 3: WHERE employee_id = &employee_numnew 3: WHERE employee_id = 200

    SELECT employee_id, last_name, salary, department_idFROM employeesWHERE employee_id = &employee_num;

  • ResumenResumenEn esta leccin habr aprendido acerca de: Uso de la clusula WHERE para restringir registros

    devueltos Uso de condiciones de comparacin Uso de condiciones BETWEEN, IN, LIKE, y NULL Aplicando los operadores lgicos AND, OR, y NOT

    2-34

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

    Aplicando los operadores lgicos AND, OR, y NOT Uso de la clusula ORDER BY para ordenara registros

    devueltos

    Uso del smbolo de sustitucin ampersand (&) para restringir u ordenar la salida en tiempo de ejecucin.