(2) Oracle ------ función unidireccional y de mesas múltiples consultas

Función 1. Introducción SQL

2, función unidireccional

3, consultas multi-mesa

La función introduce SQL

1. ¿Cuál es la función de SQL?

Aquí Insertar imagen Descripción

2 Ambas funciones SQL:

función de un solo sentido y la función de varias líneas

función unidireccional

Aquí Insertar imagen Descripción

1, la función de control de capitalización

Aquí Insertar imagen Descripción
---- INITCAP (ename) primera letra en mayúscula, superior (mayúsculas), inferior (en minúsculas) ----
SELECT * A. Un énfasis de la DONDE INITCAP (a.ename) = 'James' y Alta (a.ename) = 'JAMES'

2, la función de control de carácter

Aquí Insertar imagen Descripción
Ejemplos:

---- nombres incluyen todos Una alternativa es 0 ----
seleccione Reemplazar (a.ename, 'A', '0') a partir de EMP ENAME A
---- salario 5, si no desde la izquierda 5 comenzar con añadido 0 ----
SELECT LPAD (a.sal,'. 5' , '0') A SAL de EMP

3, funciones numéricas
  • DUAL es un 'pseudo-tabla', que puede ser utilizado para probar la expresión y función

        ---- ronda: redondeo ----
        SELECT redondo (45,625, 2) de la doble; -> 45.63

        ---- trunc:截断 ----
        seleccione trunc (45,625, 2) de la doble; -> 45.62

        ---- mod:求余 ----
        seleccione mod (500, 300) de la doble; -> 200

4. Fecha
  • Fecha de tipo de datos en Oracle en realidad contiene dos valores: la fecha y la hora.
  • vuelve SysDate función: la fecha, la hora, por ejemplo: seleccione sysdate de la doble; -> 2020/3/12 00:00:00
  • Funciones de fecha
    Aquí Insertar imagen Descripción
    5, la función de transferencia

Aquí Insertar imagen Descripción

  • Oracle automáticamente después de la conversión (conversión implícita de tipo de datos)
    Aquí Insertar imagen Descripción
    Por ejemplo: seleccione '11' + 2 de dual; -> 13;

  • El convertidor de pantalla
    Aquí Insertar imagen Descripción
            ---- TO_CHAR rotación cadena de fecha, cadena de digital a analógica ----
            SELECT TO_CHAR (SYSDATE, 'MM-DD-AAAA'), TO_CHAR (2121.13, 'L000,999.99') de la doble; -> 03/12/2020, ¥ 002,121.13
            ---- TO_DATE fecha de transferencia de cadena ----
            SELECT TO_DATE ( '03/12/2020', 'el MM-dd-YYYY') de la doble; -.> 2020/3 / 12 es
            ---- TO_DATE cadena a digital ----
            to_number SELECT ( '¥ 002,121.13', 'L000,999.99') de la doble; -> 2121.13
    Aquí Insertar imagen Descripción

  • elemento de formato de fecha
    Aquí Insertar imagen Descripción

    6, función genérica
  • NVL (expr1, expr2) -----> Si expr1 es nulo, entonces el valor de la opción expr2, en caso contrario elegir su propio

        ---- tabla de consulta no tiene el número de empleado del departamento de personal, número de departamento para escribir ningún departamento ----
        la a.ename SELECT, NVL (el TO_CHAR (a.mgr), 'hay un departamento') de trabajo de una emp;

  • NVL2 (expr1, expr2, expr3) -----> Si la selección no está vacío expr2 expr1, si la selección está vacía expr3

        ---- consultas de sector no premio de bonificación de 1, además de que hay un bono ---- 0,5
        la a.ename SELECT, NVL2 (a.comm, a.comm + 0.5, 1) de emp A

  • NULLIF (expr1, expr2) -----> rendimientos iguales NULL, que van desde el retorno expr1
  • COALESCE (expr1, expr2, ..., exprN) -----> ventajas en comparación con COALESCE COALESCE NVL en que una pluralidad de valores se puede procesar simultáneamente alternativamente. Si la primera expresión está vacía, los siguientes rendimientos de expresión en otros parámetros Coalesce
7, la expresión condicional
  • Usando la lógica IF-THEN-ELSE en sentencias SQL
  • Hay dos maneras:
    el CASO expresión
    DECODE función

        ----- número de departamento para los empleados a información de consulta 10, 20, 10 de impresión de los salarios del sector 1,1 veces, 1,2 veces el salario en otros medios de comunicación impresos (el caso) ----
        el a.ename SELECT, a.deptno, Caso A .deptno cuando 10 entonces a.sal * 1,1 demás a.sal * 1.2 final new_sal de emp a;

        ----- (DECODE) ----
        seleccione a.ename, a.deptno, decodificar (a.deptno, 10, a.sal * 1.1, a.sal * 1,2) new_sal de emp a;

  • Una práctica de entrenamiento

        ---- 1. Imprima el "2020 de marzo de 12 09:05:08" la fecha actual del sistema y formato de hora (Nota: Use comillas dobles para agregar el carácter a la fecha)
        el Seleccione el TO_CHAR (sysdate, 'AAAA' en día "MM" mes "DD" "HH: MI: SS ') de la doble; ----> 2020 12 de marzo de 09:05:08

        ---- 2, los números de formato: 1,234,567.89 a 1,234,567.89
        SELECT TO_CHAR (1.234.567,89, '999,999,999.99') de la doble;

        ---- 3, a cadena digital, si no hay caracteres especiales en la cadena, una conversión implícita puede ser:
        SELECT '1.234.567,89' de + 100 Dual;

        ---- 4, si la cadena de caracteres especiales, por ejemplo "1,234,567.89", conversión implícita no es necesario utilizar to_number () para completar la
        seleccione to_number ( '1,234,567.89', ' 999,999,999.99') + 100 de la doble; - ---> 1,234,667.89

        ---- 5, la fecha para la consulta como una consulta, por lo general el uso to_date () para una cadena hasta la fecha, por lo que no tiene que centrarse en el formato de fecha
        de selección a.ename, a.hiredate de emp donde un a.hiredate = to_date ( '02/20/1981', ' aaaa-mm-dd');

        ---- 6, al final de cada mes penúltima consulta dos días reclutas información
        . Seleccione una emp * desde donde un a.hiredate = last_day (a.hiredate) - 2;

        ---- 7. empleados calculados salario
        seleccionar a *, a.sal * 12 + NVL (a.comm, 0) sueldo de emp A .;

Multi-tabla de consulta

1, producto cartesiano
  • Tabla empleados (20 filas), Tabla DEPARTAMENTOS (8 líneas), el conjunto cartesiana: 20x8 = 160 filas

  • Descartes repunte producido bajo las siguientes condiciones:

        condición de conexión omitido
        condición de unión no es válido
        en todas las filas de todas las tablas están conectados el uno al otro

  • ¿Cómo evitar conjunto cartesiana:

        Puede añadirse en las condiciones de conexión eficaz cuando.

2, tabla de alias
  • El uso de alias, simplificar la consulta. Uso prefijo de la tabla puede mejorar la eficiencia.
    Tales como:
SELECT e.employee_id,
       e.last_name,
       e.department_id,
       d.department_id,
       d.location_id
  FROM employees e, departments d
 WHERE e.department_id = d.department_id
3, una pluralidad de tablas de conexión
  • Conexión de los n-mesas, por lo menos n-1 conexiones condiciones. Por ejemplo: tres tabla de conexión, al menos dos condiciones de conexión.
4, la conexión no equivalente
  • tabla de consulta de personal (EMP) de los salarios pertenecen a la mesa escala salarial (sal_grades) en los primeros archivos:
select a.ename, a.sal, b.level
  from emp a, sal_grades b
 where a.sal between b.low_sal and hight_sal;
5, el interior y exterior se une
  • En :
    combinado con dos o más filas de la misma columna de una tabla, el conjunto de resultados no contiene una mesa y otros filas de la tabla que no coinciden

  • Conexión externa :
    dos mesas satisfacen la condición de unión en la línea de retorno Además, también regresa a la izquierda (o derecha) en la condición de fila de la tabla no se cumple durante la conexión, esta conexión se llama unen a la izquierda (o derecha) exterior. No fila coincidente, la tabla de resultados correspondiente está vacío (NULL). Condiciones WHERE cláusula son similares al exterior de conectar la conexión interna, pero está conectado a la parte posterior de la lista no coincide con la condición de aumentar el operador de línea de conexión exterior, es decir, con paréntesis signo más (+) de

Ejemplo (externa derecha):

select * from emp a, dept b where a.deptno(+) = b.deptno;
6, conexión natural
  • Cláusula NATURAL JOIN crea la conexión equivalente, con las condiciones que figuran en las dos tablas con el mismo nombre. En la consulta de datos de tabla para satisfacer las condiciones equivalentes. Si sólo el mismo nombre de la columna y los diferentes tipos de datos, se produce un error.
7, cláusula ON para crear una conexión
  • unirse a condición natural aparece como una conexión con el mismo nombre. cláusula ON puede especificar las condiciones de conexión adicionales. La condición de conexión es independiente de otras condiciones. cláusula ON hace declaraciones más alta legibilidad.
  • Cláusula ON para crear un multi-mesa se une
SELECT employee_id, city, department_name
  FROM employees e
  JOIN departments d
    ON d.department_id = e.department_id
  JOIN locations l
    ON d.location_id = l.location_id;
8, ya que la conexión
  • Conectarse a su propio

Por ejemplo:

  select m.*
  from employees e, employees m
  where e.manager_id = m.employee_id and e.last_name = 'Chen'  
9, a la izquierda (y derecho) combinación externa, y se une externa completa
  • Durante la conexión de las dos tablas, además de la línea de retorno de satisfacer aún más la condición de devolver la izquierda (o derecha) condición fila de la tabla no está satisfecho se unen, esta conexión se denomina izquierda (o derecha) combinación externa.

  • Durante la conexión de las dos tablas, además de la línea de retorno de satisfacer aún más la condición en el estado de la línea de retorno no se satisface dos tablas de combinación, esta conexión se denomina conexión externa completa.
    Aquí Insertar imagen Descripción


El siguiente capítulo, (3) Oracle ------ función de agrupamiento, sub-consultas, crear y manejar tablas y los datos de procesamiento

Publicado 67 artículos originales · ganado elogios 19 · vistas 9854

Supongo que te gusta

Origin blog.csdn.net/qq_41530004/article/details/104809399
Recomendado
Clasificación