Sentencia DDL | Objetivo |
Alter procedure | Recompilar un procedimiento almacenado. |
Alter Table | Añadir o redefinir una columna, modificar la asignación de almacenamiento. |
Analyze | Recoger estadísticas de rendimiento sobre los objetos de la BD para utilizarlas en el optimizador basado en costes. |
Create Table | Crear una tabla. |
Create Index | Crear un índice. |
Drop Table | Eliminar una tabla. |
Drop Index | Eliminar un índice. |
Grant | Conceder privilegios o papeles, roles, a un usuario o a otro rol. |
Truncate | Eliminar todas las filas de una tabla. |
Revoke | Retirar los privilegios de un usuario o rol de la base de datos. |
Sentencia DML | Objetivo |
Insert | Añadir filas de datos a una tabla. |
Delete | Eliminar filas de datos de una tabla. |
Update | Modificar los datos de una tabla. |
Select | Recuperar datos de una tabla. |
Commit | Confirmar como permamentes las modificaciones realizadas. |
Rollback | Deshacer todas las modificaciones realizadas desde la última confirmación. |
Operadores de Comparación
Operador | Operación | Ejemplo |
= | Igualdad | select * from emp where cod_dep = 100; |
!=, <>, ^= | Desigualdad | select * from emp where cod_dep != 100; |
< | Menor que | select * from emp where cod_dep < 200; |
> | Mayor que | select * from emp where cod_dep > 200; |
<= | Menor o igual que | select * from emp where cod_dep <= 200; |
>= | Mayor o igual que | select * from emp where cod_dep >= 200; |
in | Igual a cualquiera de los miembros entre paréntesis | select * from emp where cod_dep in (100, 300); |
not in | Distinto a cualquiera de los miembros entre paréntesis | select * from emp where cod_dep not in (200); |
between | Contenido en el rango | select * from emp where cod_emp between 100 and 199; |
not between | Fuera del rango | select * from emp where cod_emp not between 100 and 199; |
like '_abc%' | Contiene la cadena 'abc' a partir del segundo carácter y luego cualquier cadena de caracteres | select * from emp where nombre like 'Ma%'; |
Operadores de Aritméticos
Operador | Operación | Ejemplo |
+ | Suma | select nombre, salario+comision from emp where oficio='VENDEDOR'; |
- | Resta | select nombre from emp where sysdate-fecha_alta > 365; |
* | Producto | select nombre, salario*12 from emp; |
/ | División | select nombre, salario/31 from emp; |
Operadores de Cadenas de Caracteres
Operador | Operación | Ejemplo |
|| | Concatenación | select nombre||oficio from emp; |
Funciones Aritméticas
Función | Cometido | Ejemplo | Resultado |
ABS(n) | Calcula el valor absoluto de n. | select abs(-15) from dual; | 15 |
CEIL(n) | Calcula el valor entero inmediatamente superior o igual a n. | select ceil(15.7) from dual; | 16 |
FLOOR(n) | Calcula el valor entero inmediatamante inferior o igual a n. | select floor(15.7) from dual; | 15 |
MOD(m,n) | Calcula el resto resultante de dividir m entre n. | select mod(11,4) from dual; | 3 |
POWER(m,n) | Calcula la potencia n-esima de m. | select power(3,2) from dual; | 9 |
ROUND(m,n) | Calcula el redondeo de m a n decimales. Si n<0 el redondeo se efectua a por la izquierda del punto decimal. | select round(123.456,1) from dual; | 123.5 |
SQRT(n) | Calcula la raíz cuadrada de n. | select sqrt(4) from dual; | 2 |
TRUNC(m,n) | Calcula m truncado a n decimales (n puede ser negativo). | select trunc(123.456,1) from dual; | 123.4 |
SIGN(n) | Calcula el signo de n, devolviendo -1 si n<0, 0 si n=0 y 1 si n>0. | select sign(-12) from dual; | -1 |
Funciones de Cadenas de Caracteres
Función | Cometido | Ejemplo | Resultado |
CHR(n) | Devuelve el carácter cuyo valor codificado es n. | select chr(65) from dual; | A |
ASCII(cad) | Devuelve el valor ascii de cad. | select ascii('A') from dual; | 65 |
CONCAT(cad1,cad2) | Devuelve cad1 concatenada con cad2. Esta función es esquivalente al operador ||. | select concat(concat(nombre,' es '),oficio) from emp; | Cano es Presidente, etc. |
LOWER(cad) | Devuelve la cadena cad con todas sus letras convertidas a minúsculas. | select lower('MinUsCulAs') from dual; | minusculas |
UPPER(cad) | Devuelve la cadena cad con todas sus letras convertidas a mayúsculas. | select upper('maYuSCulAs') from dual; | MAYUSCULAS |
INITCAP(cad) | Devuelve cad con el primer caracter en mayúsculas. | select initcap('isabel') from dual; | Isabel |
LPAD(cad1,n,cad2) | Devuelve cad1 con longitud n, y ajustada a la derecha, rellenando por la izquierda con cad2. | select lpad('P',5,'*') from dual; | ****P |
RPAD(cad1,n,cad2) | Devuelve cad1 con longitud n, y ajustada a la izquierda, rellenando por la derecha con cad2. | select rpad('P',5,'*') from dual; | P**** |
REPLACE(cad,ant,nue) | Devuelve cad en la que cada ocurrencia de la cadena ant ha sido sustituida por la cadena nue. | select replace('digo','i','ie') from dual; | diego |
SUBSTR(cad,m,n) | Devuelve la sudcadena de cad compuesta por n caracteres a partir de la posicion m. | select substr('ABCDEFG',3,2) from dual; | CD |
LENGTH(cad) | Devuelve la longitud de cad. | select length('cadena') from dual; | 6 |
Funciones de Manejo de Fechas
Función | Cometido | Ejemplo | Resultado |
SYSDATE | Devuelve la fecha y hora actuales. | select sysdate from dual; | 14-MAR-97 |
ADD_MONTHS(d,n) | Devuelve la fecha d incrementada en n meses. | select add_months(sysdate,4) from dual; | 14-JUL-97 |
LAST_DAY(d) | Devuelve la fecha del último día del mes de d. | select last_day(sysdate) from dual; | 31-MAR-97 |
MONTHS_BETWEEN(d1, d2) | Devuelve la diferencia en meses entre las fechas d1 y d2. | select months_between(sysdate,'01-JAN-97') from dual; | 2.43409424 |
NEXT_DAY(d,cad) | Devuelve la fecha del primer día de la semana cad después de la fecha d. | select next_day(sysdate, 'sunday') from dual; | 16-MAR-97 |
Funciones de Conversión de Tipos
Función | Cometido | Ejemplo | Resultado |
TO_NUMBER(cad,fmto) | Convierte la cadena cad a un número, opcionalmente de acuerdo con el formato fmto. | select to_number('12345') from dual; | 124345 |
TO_CHAR(d, fmto) | Convierte la fecha d a una cadena de caracteres, opcionalmente de acuerdo con el formato fmto. | select to_char(sysdate) from dual; | '14-MAR-97' |
TO_DATE(cad,fmto) | Convierte la cadena cad de tipo varchar2 a fecha, opcionalmente de acuerdo con el formato fmto. | select to_date('1-JAN-97') from dual; | 01-JAN-97 |
Con las fechas pueden utilizarse varios formatos. Estos formatos permiten modificar la presentación de una fecha. En la siguiente tabla se presentan algunos formatos de fecha y el resultado que generan.
Máscaras de Formato Numéricas
Formato | Cometido | Ejemplo | Resultado |
cc ó scc | Valor del siglo. | select to_char(sysdate,'cc') from dual; | 20 |
y,yyy ó sy,yyy | Año con coma, con o sin signo. | select to_char(sysdate,'y,yyy') from dual; | 1,997 |
yyyy ó yyy ó yy ó y | Año sin signo con cuatro, tres, dos o un dígitos. | select to_char(sysdate,'yyyy') from dual; | 1997 |
q | Trimestre. | select to_char(sysdate,'q') from dual; | 1 |
ww ó w | Número de la semana del año o del mes. | select to_char(sysdate,'ww') from dual; | 11 |
mm | Número del mes. | select to_char(sysdate,'mm') from dual; | 03 |
ddd ó dd ó d | Número del día del año, del mes o de la semana. | select to_char(sysdate,'ddd') from dual; | 073 |
hh ó hh12 ó hh24 | La hora en formato 12h. o 24h. | select to_char(sysdate,'hh') from dual; | 12 |
mi | Los minutos de la hora. | select to_char(sysdate,'mi') from dual; | 15 |
ss ó sssss | Los segundos dentro del minuto, o desde las 0 horas. | select to_char(sysdate,'sssss') from dual; | 44159 |
Máscaras de Formato de Caracteres
Formato | Cometido | Ejemplo | Resultado |
syear ó year | Año en Inglés | select to_char(sysdate,'syear) from dual; | nineteen ninety-seven |
month o mon | Nombre del mes o su abreviatura de tres letras. | select to_char(sysdate,'month') from dual; | march |
day ó dy | Nombre del día de la semana o su abreviatura de tres letras. | select to_char(sysdate,'day') from dual; | friday |
a.m. ó p.m. | El espacio del día. | select to_char(sysdate,'a.m.') from dual; | p.m. |
b.c. ó a.d. | Indicador del año respecto al del nacimiento de Cristo. | select to_char(sysdate,'b.c.') from dual; | a.d. |
Otras Funciones
Función | Cometido | Ejemplo | Resultado |
DECODE(var, val1, cod1, val2, cod2, ..., defecto) | Convierte el valor de var, de acuerdo con la codificación. | select decode(oficio, 'Presidente', 'P', 'Director', 'D', 'X') from emp; | P, D, X, ... |
GREATEST(exp1, exp2, ...) | Devuelve el mayor valor de una lista. | sin ejemplo. | sin ejemplo. |
LEAST(cad,fmto) | Devuelve el menor valor de una lista. | sin ejemplo. | sin ejemplo. |
NVL(val, exp) | Devuelve la expresión exp si val es NULL, y val si en otro caso. | select salario+nvl(comision,0) from emp; | 450000, 350000, ... |
Funciones de Agrupamiento
Función | Cometido | Ejemplo |
COUNT(col) | Cuenta el número de filas agrupadas. | select count(nombre),oficio from emp group by oficio; |
AVG(col) | Calcula el valor medio de todos los valores de la columna col. | select avg(salario),oficio from emp group by oficio; |
MAX(col) | Calcula el valor máximo de todos los valores de la columna col. | select max(salario),oficio from emp group by oficio; |
MIN(col) | Calcula el valor mínimo de todos los valores de la columna col. | select min(salario),oficio from emp group by oficio; |
SUM(col) | Calcula la suma de los valores de la columna col. | select sum(salario), oficio from emp group by oficio; |
STDDEV(col) | Calcula la desviación típica de los valores de la columna col sin tener en cuenta los valores nulos. | select stddev(salario), oficio from emp group by oficio; |
VARIANCE(col) | Calcula la varianza de los valores de la columna col sin tener en cuenta los valores nulos. | select variance(salario), oficio from emp group by oficio; |
La evaluación de las diferentes cláusulas en tiempo de ejecución se efectúa en el siguiente orden:
Si se hacen cambios en los privilegios de la base de datos se deberá ejecutar esto para que se apliquen los cambios:
flush privileges;