Declaración DQL
La declaración DQL se usa para consultar los datos en la base de datos
DQL debe contener dos cláusulas:
La
cláusula SELECT, FROM SELECT se usa para especificar el campo a consultar, que puede
ser un campo en la tabla, y la
cláusula FROM de la función y expresión se usa para especificar la tabla de la fuente de datos
Ver los datos en la tabla emp
SELECCIONAR * DESDE emp
Ver esmalte, trabajo, sal, deptno
SELECCIONE esmalte, trabajo, sal, deptno de
emp
¿Ver la información del empleado del departamento 20? En
DQL, también puede usar la cláusula WHERE para agregar
condiciones de filtro , de modo que solo se consulten los registros que cumplan las condiciones
SELECCIONE esmalte, trabajo, sal, deptno
DESDE emp
DONDE deptno = 20
También puede usar funciones o expresiones en la cláusula SELECT para
ver cuál es el salario anual de cada empleado de la empresa.
SELECCIONE esmalte, sal, sal * 12
DESDE emp
Funciones de cadena
1: CONCAT (char1, char2)
Conecte dos cadenas de parámetros y devuelva
SELECT CONCAT (ename, sal)
FROM emp
SELECCIONE CONCAT (CONCAT (esmalte, ','), sal)
DESDE emp
"||" puede conectar la cadena
SELECT ename || ',' || sal
FROM emp
2: LENGTH (char)
devuelve la longitud de la cadena especificada
SELECCIONE esmalte, LONGITUD (esmalte)
DE emp
Pseudo tabla: la
pseudo tabla dual no es una tabla real. Cuando el contenido de la consulta no está
relacionado con ningún dato de tabla, se puede utilizar la pseudo tabla.
SELECCIONE SYSDATE DE dual
3: SUPERIOR, INFERIOR, INITCAP
convertirá la cadena a mayúsculas, minúsculas, mayúsculas
SELECCIONA
SUPERIOR ('helloworld'),
INFERIOR ('HELLOWORLD'),
INITCAP ('HELLO WORLD')
DESDE dual
Ver la información de scott?
SELECCIONE ename, sal, job, deptno
FROM emp
WHERE ename = UPPER ('scott')
4: TRIM, LTRIM, RTRIM
eliminan los caracteres especificados en ambos extremos de la cadena
SELECCIONAR TRIM ('e' DE 'eeeliteee')
DESDE dual
SELECCIONE LTRIM ('eddsdsesliteee', 'esd')
DESDE dual
SELECCIONE RTRIM ('eeeliteddsdses', 'esd')
DESDE dual
5: LPAD, función de complemento RPAD
Muestra la cadena especificada con la longitud especificada
y agrega varios caracteres especificados para alcanzar la longitud cuando es insuficiente
SELECCIONE ename, RPAD (sal, 5, '$')
DESDE emp
6: SUBSTR (char, m [, n])
intercepta la cadena especificada e intercepta n caracteres de m continuamente.
Si no se especifica o excede la longitud real, se
interceptará hasta el final de la cadena.
M es negativo , La intercepción comienza desde la posición de cuenta regresiva
, y todos los subíndices en la base de datos comienzan desde 1.
SELECCIONE
SUBSTR ('pensando en java', - 7,2)
DESDE
dual
7: INSTR (char1, char2 [, m [, n]])
Verifique la posición de char2 en char1
donde comenzar a buscar, no escriba el valor predeterminado es 1
n es el número de ocurrencias, no escriba el valor predeterminado es 1
SELECCIONE
INSTR ('pensando en java', 'en', 4,2)
DESDE
dual
Función numérica
1: ROUND (n, m) se
redondea para retener n dígitos después del punto decimal.
Si m no está escrito o 0, significa que está reservado a un dígito.
Si es negativo, está reservado a más de diez dígitos.
SELECCIONAR RONDA (45.678, 2) DE DOBLE
SELECCIONAR RONDA (45.678, 0) DE DOBLE
SELECCIONAR RONDA (55.678, -2) DE DOBLE
2: La función TRUNC tiene el
mismo significado que el parámetro ROUND, y su función es interceptar el número.
SELECCIONE TRUNC (45.678, 2) DE DUAL
SELECCIONE TRUNC (45.678, 0) DE DUAL
SELECCIONE TRUNC (55.678, -1) DE DUAL
3: Función MOD (m, n)
Encuentra el resto. Cuando n es 0, devuelve m directamente
SELECCIONE esmalte, sal, MOD (sal, 1000)
DESDE emp
4: TECHO, SUELO redondeado
hacia arriba y hacia abajo
SELECCIONE CEIL (45.678) DE DUAL; --46?
SELECCIONAR PISO (45.678) DE DOBLE; - 45
Tipo de fecha
Dos palabras clave de uso común
SYSDATE: corresponde a una función incorporada en la base de datos, devuelve
datos de tipo DATE, que indican la hora actual del sistema
SYSTIMESTAMP: devuelve
la hora actual del sistema de un tipo de marca de tiempo .
SELECCIONE SYSDATE DE dual
INSERT INTO emp
(empno, ename, HIREDATE)
VALORES
(1, 'jack', SYSDATE)
SELECCIONE SYSTIMESTAMP DE dual
Función de conversión de fecha
1: TO_DATE ()
puede
convertir la cadena de caracteres dada al valor de tipo DATE de acuerdo con el formato de fecha especificado .
SELECCIONE
TO_DATE ('1992-08-03 15:22:33',
'AAAA-MM-DD HH24: MI: SS')
DESDE
dual
En la cadena de formato de fecha, todos los
caracteres que no sean inglés y símbolos deben estar entre comillas dobles
SELECT
TO_DATE ('03 de agosto de 1992
15:22:33 ', 'AAAA "año" MM "mes" DD "día" HH24 "hora" MI "minuto" SS "segundo"'
DESDE
dual
La función TO_CHAR
puede convertir DATE a una cadena de acuerdo con el formato de fecha dado
SELECCIONE
TO_CHAR (SYSDATE, 'AAAA-MM-DD HH24: MI: SS')
DESDE
dual
SELECCIONE
TO_CHAR (TO_DATE ('58 -08-03 ',' RR-MM-DD '),
' YYYY-MM-DD ')
FROM
dual
Se puede calcular el tipo de fecha.
Sumar y restar un número a una fecha es equivalente a sumar y restar
dos días. Restando dos fechas, la diferencia es el número de días.
¿Verifica la fecha de mañana?
SELECCIONE SYSDATE + 1 DESDE dual
¿Ves cuántos días ha estado trabajando cada empleado?
SELECCIONE ename, SYSDATE-hiredate
FROM emp
Función de fecha:
1: LAST_DAY (fecha)
devuelve el final del mes de la fecha dada
Ver el fin de mes?
SELECCIONAR LAST_DAY (SYSDATE)
DESDE dual
2: ADD_MONTHS (fecha, i)
agrega el mes especificado a la fecha especificada.
Si i es negativo, resta el número de meses especificado
¿Verifica la fecha de transferencia de cada empleado?
SELECCIONE ename, ADD_MONTHS (hiredate, 3)
FROM emp
3: MONTHS_BETWEEN (fecha1, fecha2)
calcula la diferencia entre dos fechas especificadas
¿Verifica cuántos meses ha estado empleado cada empleado desde entonces?
SELECCIONE
ename, MONTHS_BETWEEN (SYSDATE, hiredate)
FROM emp
4: NEXT_DAY (fecha, i)
devuelve el día especificado de la semana a partir del segundo día de la fecha dada
. La fecha
puede ser 1-7, lo que significa domingo, lunes .. sábado
SELECCIONE NEXT_DAY (SYSDATE, 5)
FROM dual
5: MENOS, MAYOR
encontrar los valores mínimos y máximos
Para la fecha, el valor máximo es la fecha más reciente, el
valor mínimo es la fecha más temprana
SELECCIONAR
MENOS (SYSDATE,
TO_DATE ('1998-08-06',
'YYYY-MM-DD')
)
FROM
DUAL;
6: Función EXTRACT
Obtenga el valor del componente de tiempo especificado en una fecha
¿Vea qué año es este año?
SELECCIONE EXTRACTO (AÑO DE SYSDATE)
DE dual
¿Ves empleados que se unieron en 1980?
SELECCIONE ename, hiredate
FROM emp
WHERE EXTRACT (AÑO DESDE Hiredate) = 1980
Operación nula
CREATE TABLE student
(id NUMBER (4), name CHAR (20), gender CHAR (1) NOT NULL);
INSERTAR EN LOS VALORES DE LOS ESTUDIANTES (1000, 'Li Mochou', 'F');
INSERTAR EN LOS VALORES DE LOS ESTUDIANTES (1001, 'Lin Pingzhi', NULL);
INSERTAR EN LOS VALORES del estudiante (id, nombre) (1002, 'Zhang Wuji');
Actualizar NULL
ACTUALIZAR el conjunto de estudiantes
género = nulo
DONDE id = 1000
SELECCIONAR * DE estudiante
Para determinar si es NULL,
use IS NULL o IS NOT NULL
BORRAR DEL alumno
DONDE el género es NULO
Operación
NULL NULL y la concatenación de cadenas son iguales a no hacer
NULL y el resultado de la operación numérica o NULL
SELECCIONE ename || NULL
FROM emp
Ver los ingresos de cada empleado (salario + rendimiento)
SELECCIONE ename, sal, comm, sal + comm
DES de emp
Función nula
1: NVL (arg1, arg2)
Cuando arg1 es NULL, la función devuelve el valor de arg2; de lo
contrario, devuelve arg1 en sí.
El significado de la función: reemplazar el valor NULL con un valor no NULL
Ver los ingresos de cada empleado (salario + rendimiento)
SELECCIONE
ename, sal, comm,
sal + NVL (comm, 0)
FROM emp
2: NVL2 (arg1, arg2, arg3)
Cuando arg1 no es NULL, la función devuelve arg2
Si es NULL, la función devuelve arg3
Verifique si cada empleado tiene desempeño, es decir:
el desempeño muestra "tener desempeño", el NULL
muestra "no desempeño"
SELECCIONE
ename, comm,
NVL2 (comm, 'con rendimiento', 'sin rendimiento')
DESDE
emp