Manual Completo de Funciones y Comandos SQL en Oracle
Funciones Numéricas, de Cadena, Fecha y Conversión en SQL
En este apartado se detallan las principales funciones integradas para el tratamiento de datos:
- Matemáticas y Numéricas:
abs,ceil(entero superior),floor(inferior),mod,power,round(x, n)(redondea a n decimales),trunc(x, n)(trunca a partir de n decimales),sign(devuelve 1 según el signo),sqrt,nvl(c, 0). - Funciones de Agregación:
avg,count,max,min,sum,greatest,least. - Cadenas de Caracteres:
chr(convierte número a carácter),concat,lower,upper,initcap,lpad,rpad(c1, n, c2)(rellena c1 hasta n con c2),ltrim,rtrim(c, s)(quita s de c),substr(c, m, n)(subcadena desde m hasta n),replace(c, cb, cn)(en c cambia cb por cn),ascii,instr(c1, c2, c, i, n)(busca desde i la n-ésima coincidencia de c2 en c1),length. - Fechas y Tiempo:
sysdate,add_months(a, b)(añade b meses a a),last_day(último día del mes),months_between. - Funciones de Conversión:
TO_CHAR(f, formato): Permite formatear fechas y números (ej. cc siglo, yyyy, yyy, yy, y, q trimestre, ww semana del año, w semana del mes, mm, dd día mes, d semana, hh, hh24, mi, ss, ssss desde medianoche, j, syear, month, mon, day, dy, am|pm,'9'ignora ceros,'0'muestra ceros, s signo, pr <>, D coma, G punto, RN|rn).TO_DATE(c, 'formato'): Convierte cadenas en fechas (ej. c='9/7/08' formato='dd/mm/yy' o c=8 formato='yy').TO_NUMBER(c, 'formato'): Convierte cadenas en números (ej. c='87.32' formato='99D99').
Consultas Avanzadas y Operadores de Conjuntos
Uniones y Consultas multitabla
tabla1.campo = tabla2.campo(+): Representa el producto natural más todas las tuplas no relacionadas (es decir, se tienen en cuenta tuplas de la tabla 1 que no están en la tabla 2).SELECT ... UNION SELECT ...: Une resultados eliminando duplicados.INTERSECT: Muestra los registros que están presentes en ambas consultas.MINUS: Resta conjuntos (los resultados deben tener el mismo tipo y número de campos).
Estructura General de la Sentencia SELECT
SELECT campos
FROM tablas
WHERE condiciones
GROUP BY agrupa(campos)
HAVING función_agregado y condición
ORDER BY campo;Reglas Fundamentales de Agrupación
- Todo lo que no está en el
SELECTo es una función de agregado, debe estar obligatoriamente en elGROUP BY. - No puede haber una diferencia de dos niveles de agregado en una misma expresión.
Lenguaje de Manipulación de Datos (LMD)
Conjunto de operaciones para gestionar la información dentro de las tablas:
- Inserción:
INSERT INTO tabla(campo1, campoN) VALUES(valor1, valorN);INSERT INTO tabla VALUES(valor1, valorN);INSERT INTO tabla(campo1, campoN) SELECT valor1, valorN FROM ...;
- Actualización:
UPDATE tabla SET campo1=valor1, campoN=valorN WHERE condicion;UPDATE tabla SET (campo1, campoN) = (SELECT valor1, valorN FROM tabla WHERE condicion_campos_in) WHERE condicion_filas_cambiar;
- Borrado:
DELETE FROM tabla WHERE condicion; - Transacciones: Operaciones lógicas unidas.
COMMITconfirma los cambios definitivamente, mientras queROLLBACKdeshace las operaciones.
Lenguaje de Definición de Datos (LDD)
Las tablas guardan información estructurada. Una vista es una forma de ver los datos, resultado de una consulta persistente con nombre propio que existe en la Base de Datos.
Creación y Estructura de Tablas
CREATE TABLE nombre (
campo1 tipo [CONSTRAINT ...],
campoN tipo [CONSTRAINT ...],
restriccion1,
restriccionN
) [TABLESPACE nombre_esp];Tipos de Restricciones (Constraints)
- Primary Key (Columna):
CONSTRAINT tabla_pk PRIMARY KEY - Primary Key (Global):
CONSTRAINT tabla_pk PRIMARY KEY(campo1, campoN) - Foreign Key (Columna):
CONSTRAINT tabla_ref_fk REFERENCES tabla_ref(campo) - Foreign Key (Global):
CONSTRAINT tabla_ref_fk FOREIGN KEY(campo1, campoN) REFERENCES tabla_ref(campo1, campoN) [ON DELETE CASCADE] - Not Null:
CONSTRAINT tabla_campo_nn NOT NULL - Valor por defecto:
DEFAULT valor - Check:
CONSTRAINT tabla_condicion_ch CHECK(condicion) - Unique (Columna o Global):
CONSTRAINT tabla_campo_unq UNIQUE(campo1, campoN)
Tipos de Datos Principales
char(255): Cadena de longitud fija.varchar2(2000): Cadena de longitud variable.number(p, s): Números con p dígitos enteros y s decimales.date: Fechas y horas.long: Campos de texto grandes (hasta 2 GB).rowid: Identificador único de registro físico.
Modificación y Gestión del Esquema
- Crear tabla a partir de otra:
CREATE TABLE nombre (campo1, campoN) [TABLESPACE nombre] AS SELECT campo1, campoN ...; - Eliminar tabla:
DROP TABLE nombre [CASCADE CONSTRAINTS]; - Consultar restricciones existentes:
DESC USER_CONSTRAINTS; - Consultar tablas creadas:
DESC USER_TABLES;o consultandoSELECT CONSTRAINT_NAME FROM USER_CONSTRAINTS WHERE TABLE_NAME = '...'; - Modificar tablas:
ALTER TABLE tabla ADD definicion_col | MODIFY columna_def | DROP COLUMN nombre | ADD CONSTRAINT def_restriccion | DROP CONSTRAINT nombre;
Vistas en Bases de Datos
Permiten abstraer consultas complejas y reutilizarlas como si fueran tablas reales.
- Creación:
CREATE [OR REPLACE] VIEW nombre_v(nombre_col1, nombre_colN) AS SELECT ...; - Eliminación:
DROP VIEW nombre; - Operatividad: Se pueden operar como tablas bajo ciertas condiciones:
SELECT: Siempre permitido.INSERT: Si se puede realizar directamente en la tabla subyacente.UPDATEyDELETE: Si cumplen con las restricciones estructurales de la tabla base.
Nota: Con múltiples tablas se incrementa la dificultad de las consultas, debiendo cumplirse las condiciones de relación de todas ellas. Los usuarios gestionan las vistas, mientras que los administradores gestionan las tablas.
ún>