RESUMEN DE COMANDOS
TEMA3
SELECT * | {(DISTINCT] columna | expr
FROM tabla;
in [EAS] alias], ..}
OPERADORES
MAYOR QUE
MENOR QUE
MAYOR 0 IGUAL QUE
MENOR 0 IGUAL QUE
IGUALDAD
DISTINTO
DISTINTO
% SUSTITUYE A CUALQUIER SERIE DE CARACTERES
SUSTITUYE A UN CARACTER
SELECT {* | [DISTINCT] {columna | expresién} [AS] alias], ..}
FROM tabla
[WHERE condici6n]
[ORDER BY expresion! [expresién2....||{ASCIDESC} ]};
TEMA 4- FUNCIONES
NUMERICAS
ROUND(n,decimales)
TRUNC(n,decimales)
MOD(n1 n2)
POWER(valor,exponente)
SQRT(n)
SIGN(n)
ABS(n)
EXP(n)
LN(n)
Losin)
SIN(n)
Cos(n)
TAN(n)
FUNCIONES DE TEXTO
LOWER(texto)
UPPER(texto)
INITCAP(texto)
RTRIM(texto)
LTRIM(texto)
TRIM(texto)
TRIM(caracteres FROM texto)
SUBSTR(texto,n[,m))
LENGTH (texto)
INSTR(texto, textoBuscado [,posinicial [, nAparicién]])
REPLACE (texto, textoABuscar, [textoReemplazo])TRANSLATE(texto, caracteresACambiar, caracteresSustitutivos)
LPAD(texto, anchuraMéxima,[caracterDeRelleno]) —-RPAD(texto, _—_anchuraMaxima,
[caracterDeRetleno])
REVERSE(texto)
AScil(caracter)
CHR(nimero)
SOUNDEX(texto)
NVL(valor,sustituto)
NVL2(valor,sustitutot, sustituto2)
NULLIF(valort,valor2)
DECODE (columnajexpresién ,valorl, contenido| [,valor2, contenido2, ...] [,valor por defecto] )
FUNCIONES DE FECHA
SYSDATE
SYSTIMESTAMP
‘ADD_MONTHS(fechan)
MONTHS _BETWEEN(fechat, fecha2)
NEXT_DAY(fecha,dia)
LAST_DAY (fecha)
EXTRACT(valor FROM fecha)
GREATEST (fechat, fecha?,
LEAST(fechat, fecha2,...)
ROUND (fecha [, formato}]
TRUNC(fecha [formato])
FUNCIONES DE CONVERSION
yy ‘Afio en formato de dos cifras
yyy ‘Afio en formato de cuatro cifras
MM Mes en formato de dos cifras
MON Las tres primeras letras del_mes
MONTH Nombre completo del mes
by Dia de la semana en tres letras
DAY Dia completo de la semana
D Dia de la semana (del 1 al 7)
oy) Dia del mes en formato de dos
cifras (del 1 al 31)
ppp Dia del afio
Q Semestre
ww Semana del aio
AM Indicador AM
PM Indicador PM
HH12 Hora de 1 a 12
HH24 Hora de 0 a 23
Ml Minutos (0 a 59)
SS Segundos (0 a 59)
SSS Segundos desde medianoche
Posicién de los separadores,n donde se pongan estos
simbolos apareceran en el
resultado
‘TO_NUMBER
TO_DATE
TEMAS - DDL
CREAR TABLAS
CREATE TABLE [ESQUEMA.]NOMBREDETABLA
(NOMBRE_DE_COLUMNAI TIPODEDATOS [DEFAULT] [RESTRICCIONES] [,...])
RESTRICCIONES
NOT NULL
UNIQUE
PRIMARY KEY
CONSTRAINT nombre PRIMARY KEY
CONSTRAINT nombre PRIMARY KEY(campol,campo2,...)
REFERENCES nombre_tabla
REFERENCES nombre_tabla(campo)
CONSTRAINT nombre_constr REFERENCES tabla(campo)
CONSTRAINT nombre_cons FOREIGN KEY (campol, campo2) REFERENCES tabla
CONSTRAINT nombre_cons FOREIGN KEY (campol, campo2) REFERENCES tabla(campo)
[ON DELETE | ON UPDATE [SET NULL | CASCADE | DEFAULT ]]
CHECK (condicién)
CONSTRAINT nombre CHECK (condicion)
BORRAR TABLAS
DROP TABLE nombredetabla
RENOMBRAR TABLAS
ALTER TABLE nombreviejo RENAME TO nombrenuevo;
RENAME nombreviejo TO nombrenuevo;
ANADIR COLUMNAS A LAS TABLAS
ALTER TABLE nombre ADD (nombrecolumna Tipodedatos [propiedades] [, columna tipodedatos)
[propiedades]...)
BORRAR COLUMNAS
ALTER TABLE nombre DROP (columna [,columna, ....);
MODIFICAR COLUMNASALTER TABLE nombre MODIFY (columna tipo [propiedades] [columna tipo [propiedades}...]
RENOMBRAR COLUMNAS
ALTER TABLE nombre RENAME COLUMN nombreantiguo TO nombrenuevo
ANADIR/MODIFICAR CONSTRAINTS
ALTER TABLE nombre { ADD | MODIFY}}
(columna tipodatos [propiedades} {[CONSTRAINT nombrerestriccion J} tiporestriccion
(columnas) [, campo...] [, CONSTRAINT nombrerestriccion tiporestrice (columnas)...]
ANADIR CONS
AINTS
ALTER TABLE tabla ADD [CONSTRAINT nombre] tiporestriccion(columnas)
BORRAR RESTRICCIONES
ALTER TABL
[CASCADE]}
tabla DROP {PRIMARY KEY | UNIQUE (campos) | CONSTRAINT nombre
DESACTIVAR RESTRICCIONES
ALTER TABLE tabla DISABLE CONSTRAINT nombre [CASCADE]
ACTIVAR RESTRICCIONES
ALTER TABLE tabla ENABLE CONSTRAINT nombre [CASCADE]
CAMBIAR EL NOMBRE A LAS RESTRICCIONE:
ALTER TABLE tabla RENAME CONSTRAINT nombreviejo TO nombrenuevo
VISTAS CON INFORMACION DE RESTRICCIONES
USER_CONSTRAINTS , ALL_CONSTRAINTS.
TEMA 6- INSERTAR, ACTUALIZAR BORRAR
TABLAS
INSERT INTO tabla [(campo, campo...) VALUES ( valor [, valor, ....])
UPDATE tabla SET columna=valor [ , columna=valor ...] WHERE condicion]
DELETE [ FROM] tabla [WHERE condicion]
INSERTAR DATOS CON LA SENTENCIA SELECTINSERT INTO tabla (campor, campo2,.)
SELECT campoCompatibleCampor, campoCompatibleCampo2,.
FROM lista DeTablas
L..otras eldusulas del SELECT...
VISTAS
CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW vista
[Catiast, aliase...)))
AS consultaSELECT
[WITH CHECK OPTION [CONSTRAINT restriccién]]
[WITH READ ONLY [CONSTRAINT restriccién}]
OR
Mostrar vistas del usuario
SELECT * FROM USER.
EWS;
DROP VIEW nombreDeVisia;
-ANSACCIONES,
COMMIT
ROLLBACK
INDICES,
CREATE INDEX nombre ON tabla (columna [,columna ...])
DROP INDEX nombre
SECUENCIAS
CREATE SEQUENCE nombre [INCREMENT BY n] [ START WITH n] [{MAXVALUE n |
NOMAXVALUE}] [{MINVALUE n| NOMINVALUE}] [{CICLE | NOCICLE}]
SELECT nombresecuencia. NEXTVAL
SELECT nombresecuencia. CURRVAL
ALTER SEQUENCE nombre [INCREMENT BY n] [ START WITH n] [{MAXVALUE n
NOMAXVALUE] ] [{MINVALUE n | NOMINVALUE}] [{CYCLE | NOCYCLE}]
DROP SEQUENCE nombre
SINONIMOS
CREATE [PUBLIC] SYNONYM nombre FOR objeto;
DROP SYNONYM nombre;
TEMA 7 COSULTAS A VARIAS TABLAS Y RESUMEN DE GRUPO
CONSULTAS A VARIAS TABLAS
SELECT [columnal, columna2,...] FROM [tablal, tabla2,...) WHERE
[columnaTabla|=columnaTabla2] AND (columnaTabla3columnaTabla...]SELECT [columnal, columna2,...] FROM [tablal, tabla2,...] WHERE eondicionColumna
BETWEEN [columnaTablal =columnaTabla2] AND [columnaTabla3=columnaTabla...]
SELECT tablal.columnal, tabl1.columna2,
tabla2.columnal, tabla2.columna2,... FROM tablal
[CROSS JOIN tabla2]}
[NATURAL JOIN tabla2}]
[JOIN tabla2 USING(columna)}
[JOIN tabla? ON (tabla! .columa-tabla2.columna)]|
[LEFT|RIGHT|FULL OUTER JOIN tabla2 ON (tablal.columa=tabla2,columna)]
FUNCIONES DE GRUPOS DE VALORES
AVG(n)
COUNT (* | [DISTINCT | ALL] expresién)
MAX(expresion)
MIN(expresion)
SUM(expresion
SELECT listaDeExpresiones
FROM listaDeTablas
[JOIN tablasRelacionadas¥Coni
[WHERE condiciones]
[GROUP BY grupos}
[HAVING condicionesDeGrupo]
[ORDER BY columnas];
nesDeRelacién]
TEMA 8. SUBCONSULTAS
SELECT listaExpresiones
FROM tabla
WHERE expresién OPERADOR
(SELECT listaExpresiones
FROM tabla);
ANY > Compara con cualquier registro de la subconsulta.
ALL > Compara con todos los registros de la consulta.
IN > Comprueba si un valor se encuentra en el resultado de la subconsulta.
NOTIN > Comprueba si un valor no se encuentra en el resultado de la subconsulta.
EXISTS > Este operador devuelve verdadero si la consulta que le sigue devuelve
algim valor. Sino, devuelve falso.
TEMA 9 - DIAGRAMAS E}
DAD RELACION
TEMA 10 - PROGRAMACION
[DECLARE
declaraciones }
BEGINinstrucciones ejecutables
[EXCEPTION
instrueciones de manejo de errores ]
END;
DECLARE
identificador [CONSTANT] tipoDeDatos
[siguienteVariable...]
lorinicial];
TIPOS DE DATOS
CHAR(n) Texto de anchura fija
VARCHAR2(n) Texto de anchura variable
NUMBERT(L,s))] Numero. Opcionalmente puede indicar el
tamafio del ntimero (p) y el ntimero de
decimales (s)
DATE Almacena fechas
TIMESTAMP Almacena fecha y hora
INTERVAL YEAR TO MONTH Almacena intervalos de afios y meses
INTERVAL DAY TO SECOND Almacena intervalos de dias, horas, minutos
y segundos:
LONG Para textos de mas de 32767 caracteres,
LONG RAW Para datos binarios. PL/SQL no puede
mostrar estos datos directamente
INTEGER Enteros de -32768 a 32767
BINARY_INTEGER Enteros largos (de -2.147.483.647 a -
2.147.483.648)
PLS_INTEGER Igual que el anterior pero ocupa menos
expat
BOOLEAN Permite almacenar los valores TRUE
(verdadero) y FALSE (falso)
BINARY_DOUBLE Disponible desde la version 10g, formato
equivalente al double del lenguaje C.
Representa numeros decimales en coma
flotante.
BINARY_FLOAT Otro tipo afiadido en la versién 10g,
equivalente al float del lenguaje C.
DECLARACION DE VARIABLES
identificador variable | tabla.columna%TYPE;
DBMS_OUTPUT.PUT_LINE(a);
SELECT listaDeCampos
INTO listaDeVariables
FROM tabla
[JOIN ...)
[WHERE condici6n]
INSTRUCCIONES DE CONTROL DE FLUJO
IF condicion THEN
instruceiones
ENDIF;IF condicion THEN
instrucciones
ELSE,
instruceiones
ENDIF;
IF condiciont THEN
instruceionest
ELSIF condicién2 THEN
instrueciones3
(ELSIF... ]
[ELSE
instruccionesElse ]
END IF;
CASE selector
WHEN expresiont THEN resultadot
WHEN expresion2 THEN resultado2
[ELSE resultadoElse]
END CASE;
BUCLES
LOOP
instrucciones
EXIT [WHEN condicién]
END LOOP;
WHILE condicién LOOP
instrucciones
END LOOP;
FOR contador IN [REVERSE] valorBajo..valorAlto,
instrueciones
END LOOP;
CURSORES
CURSOR nombre IS sentenciaSELECT;
OPEN cursors
FETCH cursor INTO listaDeVari
CLOSE cursors
Cursor%ISOPEN
CURSOR%NOTFOUND.
CURSOR%FOUND
CURSOR%ROWCOUNT
BUCLE FOR DE RECORRIDO DE CURSORES
FOR variableRegistro IN cursor LOOP.
sinstrucciones
END LOOP;
CURSORES CON PARAMETROS,
CURSOR cu (parametror tipo_datos, parametr2 tipo2) IS
SELECT...
BEGINOPEN cu( valor, valor2);
CURSORES PARA ACTUALIZAR
CURSOR...
SELECT...
FOR UPDATE [OF campo] [NOWAIT]
UPDATE columnas SET .....+
WHERE CURRENT OF cursor;
EXCEPCIONES
EXCEPTION
WHEN excepci6ni [OR excepei6n2 ...| THEN
instrucciones que se ejcutan si suceden esas excepciones,
[WHEN excepciéng [OR...] THEN
instrucciones que se ejcutan si suceden esas excepeiones]
[WHEN OTHERS THEN
instrucciones que se ejecutan si suceden otras
excepciones]}
END;
EXCEPCIONES DE USUARIO
DECLARE
‘Nombre_excep EXCEPTION:
RAISE Nombre excep;
EXCEPTION
WHEN Nombre_excep THEN
CREAR PROCEDIMIENTOS:
CREATE [OR REPLACE] PROCEDURE nombreProcedimiento
[@arametro1 [modelo] tipoDatos
Lparametro2 [modelo] tipoDatos [,...])1
{IS|AS}
secciénDeDeclaraciones
BEGIN
instrucciones
[EXCEPTION
controlDeExcepciones]
END;
CREAR FUNCIONES
CREATE [OR REPLACE] FUNCTION nombreFuncién
[(parametrot [modelo] tipoDatos
Lpardmetro2 [modelo] tipoDatos [,...ID]
RETURN tipoDeDatos
ISAS
seceiénDeDeclaraciones
BEGIN
instrucciones
(EXCEPTION
controlDeExcepciones]
END;