Documente Academic
Documente Profesional
Documente Cultură
INTRODUCCIÓN
2. RECUPERACIÓN DE DATOS
Sintaxis
SELECT [DISTINCT] {*,columna [[AS] alias] [,columna [[AS] alias]...]}
FROM tabla
donde:
CODIGO NOMBRE
--------- ------------------------------
1 CONTABILIDAD
2 RECURSOS HUMANOS
3 PRODUCCION
4 SISTEMAS
5 MARKETING
6 COMERCIALIZACION
6 rows selected.
PROV NOMBRE
--------- -----------------------------
1 ATALAYA S.R.L.
2 ROCAMORA E HIJOS
3 LA PERUANA
4 RUTA S.A.
5 COMODINES
6 LA SEXTA
7 AGUSTINEZ Y HERMANOS S.A.
8 PEREZ, PEREZ, Y RODRIGUEZ
9 AGUSTIN FERNANDEZ Y ASOCIADOS
10 COMODO S.R.L.
11 PARIS
12 MIS LAPICES
12 rows selected.
2.1.1. Alias de Columna
12 rows selected.
FORDEN
---------
12-DEC-95
18-MAY-96
23-MAR-97
28-AUG-97
02-OCT-97
13-NOV-97
20-JAN-98
21-JAN-98
22-JAN-98
23-JAN-98
19-MAY-98
31-OCT-98
30-NOV-98
18-JAN-99
23-JAN-99
23-APR-99
16 rows selected.
FORDEN CODIGO_PRV
--------- ----------
12-DEC-95 12
18-MAY-96 12
23-MAR-97 6
28-AUG-97 6
02-OCT-97 8
13-NOV-97 8
20-JAN-98 1
20-JAN-98 3
21-JAN-98 4
22-JAN-98 2
23-JAN-98 5
19-MAY-98 9
31-OCT-98 7
30-NOV-98 7
18-JAN-99 11
23-JAN-99 5
23-JAN-99 12
23-APR-99 3
18 rows selected.
donde:
Operadores de Comparación
Los operadores = (igual a), != (distinto de, también pueden usarse !=, <>, ^=),
> (mayor a), >= (mayor o igual a), < (menor a), <= (menor o igual a) permiten
comparar expresiones de cualquier tipo de dato, y se utilizará en la
comparación la definición de orden correspondiente (orden numérico, orden
temporal, orden lexicográfico). En el caso de las cadenas de caracteres la
comparación contra literales es exacta, vale decir que debe prestarse atención
especial al uso de mayúsculas y minúsculas.
CODIGO NOMBRE
--------- ------------------------
8080801 BIROME TRAZO FINO
8080803 BIROME TRAZO GRUEZO
9002003 PIZARRA BLANCA
9002004 PIZARRON
9002005 PIZARRA BLANCA CON HOJAS
9002006 REPUESTO HOJAS PIZARRA
6 rows selected.
9 rows selected.
no rows selected
10 rows selected.
• Operador LIKE
NOMBRE DIRECCION
------------------------------ ----------------
ROCAMORA E HIJOS Av. Caseros 3567
RUTA S.A. Lacroze 892
CODIGO NOMBRE
--------- --------------------------
1000225 CUADERNO 50 HOJAS
1002024 CUADERNO 100 HOJAS
1034219 REPUESTO HOJA RALLADA
1034310 REPUESTO HOJA CUADRICULADA
1034311 REPUESTO HOJA PENTAGRAMA
9002005 PIZARRA BLANCA CON HOJAS
9002006 REPUESTO HOJAS PIZARRA
7 rows selected.
CODIGO NOMBRE
--------- -------------------------------
1000225 CUADERNO 50 HOJAS
1002024 CUADERNO 100 HOJAS
1034108 PLASTICOLA
6007023 CUADERNO ECOLOGICO CUADRICULADO
6007034 CUADERNO ECOLOGICO RAYADO
6008070 CRAYONES CAJA 12 UNIDADES
6 rows selected.
15 rows selected.
CODIGO NOMBRE
--------- ----------------------------------------
1000225 CUADERNO 50 HOJAS
1002024 CUADERNO 100 HOJAS
1002025 CARPETA NRO 6
1002106 CARTULINA
1034311 REPUESTO HOJA PENTAGRAMA
1100333 MARCADOR PUNTA FINA
1100334 MARCADOR PUNTA GRUESA
4555102 AGENDA MICKEY
4555104 AGENDA BARBY
4555106 AGENDA RICO MC.PATO
6007034 CUADERNO ECOLOGICO RAYADO
6007045 BLOCK ECOLOGICO LISO
6007066 BLOCK ECOLOGICO RAYADO
6008055 RESALTADOR FLUO
6008058 RESALTADOR FLUO DOS COLORES
6008070 CRAYONES CAJA 12 UNIDADES
7078080 CLIPS METALICOS
8080801 BIROME TRAZO FINO
8080803 BIROME TRAZO GRUEZO
9002004 PIZARRON
9002006 REPUESTO HOJAS PIZARRA
21 rows selected.
• Operador BETWEEN
Ejemplo: Seleccionar las órdenes de compra cuya fecha de emisión esté entre
el 20 y el 22 de Enero de 1998.
• Operador IN
10 rows selected.
• Operador IS NULL
no rows selected
9 rows selected.
no rows selected
NOMBRE
---------------------------------
Jaime Daniel
Cucagna Karina
Soria Laura
Scorza Miguel
Fernandez Maria Cristina
Coronda Ana Laura
Martinez Javier Alberto
Asalez Marcos
8 rows selected.
Operadores Lógicos
• Operador AND
Ejemplo: Seleccionar los precios cuyo precio es mayor a 2 pesos y cuya fecha
de vigencia es de 1998.
• Operador OR
El operador OR se utiliza para indicar que debe cumplirse por lo menos una de
las condiciones de búsqueda. Tiene la forma general: condición1 OR
condición2. La operación es verdadera cuando se condición1 es verdadera, o
condición2 es verdadera, o ambas condiciones son verdaderas para los valores
de la fila evaluada.
CODIGO NOMBRE
--------- -------------------------------
1000225 CUADERNO 50 HOJAS
1002024 CUADERNO 100 HOJAS
1002025 CARPETA NRO 6
1002106 CARTULINA
1034007 ESCUADRA PLASTICA
6007023 CUADERNO ECOLOGICO CUADRICULADO
6007034 CUADERNO ECOLOGICO RAYADO
6008070 CRAYONES CAJA 12 UNIDADES
7078080 CLIPS METALICOS
7078090 CLIPS PLASTICOS COLOR C023
7078092 CLIPS PLASTICOS COLOR C045
11 rows selected.
• Operador NOT
El operador NOT se utiliza para indicar que no debe cumplirse una de las
condición de búsqueda. Tiene la forma general: NOT condición. La operación
es verdadera cuando se condición es falsa para los valores de la fila evaluada.
CODIGO NOMBRE
--------- ----------------------------------------
1000225 CUADERNO 50 HOJAS
1002024 CUADERNO 100 HOJAS
1002025 CARPETA NRO 6
1002106 CARTULINA
1034311 REPUESTO HOJA PENTAGRAMA
1100333 MARCADOR PUNTA FINA
1100334 MARCADOR PUNTA GRUESA
4555102 AGENDA MICKEY
4555104 AGENDA BARBY
4555106 AGENDA RICO MC.PATO
6008055 RESALTADOR FLUO
6008070 CRAYONES CAJA 12 UNIDADES
7078080 CLIPS METALICOS
8080801 BIROME TRAZO FINO
8080803 BIROME TRAZO GRUEZO
9002004 PIZARRON
9002006 REPUESTO HOJAS PIZARRA
17 rows selected.
• Reglas de precedencia
Los operadores AND, OR, y NOT pueden utilizarse en una misma condición de
búsqueda. Los resultados de todas las condiciones se evalúan según el orden
determinado por la precedencia de operadores lógicos. Cuando los operadores
tienen igual precedencia se evalúan de izquierda a derecha. Pueden utilizarse
paréntesis para modificar el orden de evaluación.
Sintaxis
donde:
NOMBRE CIUDAD
------------------------------ ----------------
AGUSTIN FERNANDEZ Y ASOCIADOS Mar del Plata
AGUSTINEZ Y HERMANOS S.A. Bernal
ATALAYA S.R.L. Capital Federal
COMODINES Quilmes
COMODO S.R.L. Cordoba
LA PERUANA Capital Federal
LA SEXTA Cordoba
MIS LAPICES Munro
PARIS La Plata
PEREZ, PEREZ, Y RODRIGUEZ Capital Federal
ROCAMORA E HIJOS San Martin
RUTA S.A. Moreno
12 rows selected.
NOMBRE CIUDAD
------------------------------ ---------------
AGUSTINEZ Y HERMANOS S.A. Bernal
ATALAYA S.R.L. Capital Federal
LA PERUANA Capital Federal
PEREZ, PEREZ, Y RODRIGUEZ Capital Federal
COMODO S.R.L. Cordoba
LA SEXTA Cordoba
PARIS La Plata
AGUSTIN FERNANDEZ Y ASOCIADOS Mar del Plata
RUTA S.A. Moreno
MIS LAPICES Munro
COMODINES Quilmes
ROCAMORA E HIJOS San Martin
12 rows selected.
9 rows selected.
2.3. FUNCIONES DE FILA
Los operadores aritméticos son funciones numéricas que por su notación son
llamados operadores. Estos son + (suma), - (resta), * (multiplicación), /
(división). Tienen la precedencia usual, es decir, evalúan primero multiplicación
y división, y después suma y resta, y la misma puede ser modificada mediante
el uso de paréntesis.
NOMBRE DIRECCION
------------------------------ ---------------------------------
ATALAYA S.R.L. Maipu 385 , Capital Federal
ROCAMORA E HIJOS Av. Caseros 3567 , San Martin
LA PERUANA Tagle 1945 , Capital Federal
RUTA S.A. Lacroze 892 , Moreno
COMODINES Olazabal 675 , Quilmes
LA SEXTA Capitan Muinez 4334 , Cordoba
AGUSTINEZ Y HERMANOS S.A. Puente Paricci 42 Of.45 , Bernal
PEREZ, PEREZ, Y RODRIGUEZ Cochabamba 1152 , Capital Federal
AGUSTIN FERNANDEZ Y ASOCIADOS Guido 675 , Mar del Plata
COMODO S.R.L. Olazabal 7878 , Cordoba
PARIS Julian Alvarez 1275 , La Plata
MIS LAPICES Cafe Paris s/n , Munro
12 rows selected.
NOMBRE DIRECCION
------------------------------ ---------------------------------
ATALAYA S.R.L. maipu 385 , capital federal
ROCAMORA E HIJOS av. caseros 3567 , san martin
LA PERUANA tagle 1945 , capital federal
RUTA S.A. lacroze 892 , moreno
COMODINES olazabal 675 , quilmes
LA SEXTA capitan muinez 4334 , cordoba
AGUSTINEZ Y HERMANOS S.A. puente paricci 42 of.45 , bernal
PEREZ, PEREZ, Y RODRIGUEZ cochabamba 1152 , capital federal
AGUSTIN FERNANDEZ Y ASOCIADOS guido 675 , mar del plata
COMODO S.R.L. olazabal 7878 , cordoba
PARIS julian alvarez 1275 , la plata
MIS LAPICES cafe paris s/n , munro
12 rows selected.
NOMBRE DIRECCION
------------------------------ ---------------------------------
ATALAYA S.R.L. maipu 385 , Capital Federal
ROCAMORA E HIJOS av. caseros 3567 , San Martin
LA PERUANA tagle 1945 , Capital Federal
RUTA S.A. lacroze 892 , Moreno
COMODINES olazabal 675 , Quilmes
LA SEXTA capitan muinez 4334 , Cordoba
AGUSTINEZ Y HERMANOS S.A. puente paricci 42 of.45 , Bernal
PEREZ, PEREZ, Y RODRIGUEZ cochabamba 1152 , Capital Federal
AGUSTIN FERNANDEZ Y ASOCIADOS guido 675 , Mar del Plata
COMODO S.R.L. olazabal 7878 , Cordoba
PARIS julian alvarez 1275 , La Plata
MIS LAPICES cafe paris s/n , Munro
12 rows selected.
15 rows selected.
15 rows selected.
• Operadores de Fecha
ESTO ES ORACLE!!!
Los operadores de fecha permiten aplicar con notación infija, funciones de
fecha. Estas son:
Operación Tipo del Resultado Resultado
Fecha + Número Fecha Fecha obtenida de sumar la cantidad de
dias a la fecha inicial.
Fecha - Número Fecha Fecha obtenida de restar la cantidad de
dias a la fecha inicial.
Fecha - Fecha Número Cantidad de dias entre ambas fechas.
9 rows selected.
• Función SYSDATE
8 rows selected.
NOMBRE DIRECCION
------------------------ ---------------------------
Perez Carlos Alberto Parana 555 (casa)
Cucagna Karina Forest 856 PB
Fernandez Maria Cristina Cordoba 4885 1
Coronda Ana Laura Rawson 123 (casa)
Martinez Javier Alberto Del Solar 32 (casa)
Asalez Marcos Sarandi 455 6
6 rows selected.
AVG(SALARIO)
------------
1758.3333
COUNT(*) COUNT(P_COMISION)
--------- -----------------
18 10
SUM(P_REAL*Q_RENGLON)
---------------------
584.5
Sintaxis
SELECT [DISTINCT] {*,columna [[AS] alias] [,columna [[AS] alias]...]}
FROM tabla
WHERE condición
GROUP BY expresión [,expresión ... ]
ORDER BY lista_de_ordenamiento
donde:
Si se utilizan conjuntamente las cláusulas WHERE y GROUP BY, las filas son
eliminadas según la condición de búsqueda antes de formar los grupos. Por
defecto, las filas se ordenan en forma ascendente de acuerdo a la lista GROUP
BY. Esto puede modificarse utilizando la cláusula ORDER BY.
NRO_ORDEN TOTAL
--------- ---------
1 584.5
2 569.4
4 1055
Sintaxis
CODIGO_PRO AVG(PRECIO)
---------- -----------
1000224 4.2
1002025 3.8
1034219 4.5
1100333 2.1
1100334 2.1
Toda vez que en la cláusula FROM se indique más de una tabla, Oracle calcula
para la evaluación de las filas el producto cartesiano de dichas tablas. No todas
estas combinaciones tienen sentido, es por ello que se proveen condiciones de
join para eliminar filas. No es obligatorio incluir condiciones de join en la
cláusula WHERE.
Sintaxis
donde:
Para solucionar una situación tal se requiere utilizar el operador OUTER JOIN
que indica que una fila sea mostrada aún cuando no hayan filas que cumplan la
condición de join. El operador OUTER JOIN, que es un signo (+) (más entre
paréntesis) se aplica a la expresión a la cual podría faltarle información, en este
caso los empleados.
2.5.3. Subconsultas
SELECT lista_select
FROM lista_tablas
WHERE expresión operador (sentencia_select)
ORDER BY lista_ordenamiento
donde:
CODIGO NOMBRE
--------- -------------------------
1034007 ESCUADRA PLASTICA
4452023 RESMA PAPEL BLANCO A4
4555106 AGENDA RICO MC.PATO
6007034 CUADERNO ECOLOGICO RAYADO
6008055 RESALTADOR FLUO
6008059 MARCADOR PIZARRA BLANCA
8080801 BIROME TRAZO FINO
9002005 PIZARRA BLANCA CON HOJAS
8 rows selected.
Ejemplo: Obtener los precios de los productos que empiezan con 100 cuya
fecha de vigencia es la más actual.
SQL> select o.codigo_pro, o.precio, o.fvigencia
2 from precios o
3 where o.codigo_pro like '100%'
4 and o.fvigencia = (select max(i.fvigencia)
5 from precios i
6* where i.codigo_pro = o.codigo_pro);
6 rows selected.
3. MODIFICACIÓN DE DATOS
Sintaxis
donde:
Siempre que se intenta insertar una fila de datos en una tabla, la base de datos
Oracle comprueba todos los tipos de datos, rangos, y restricciones de
integridad existentes sobre dicha tabla. Si una de estas validaciones fracasa, la
fila no es insertada.
1 row created.
1 row created.
SQL> insert into renglones values
2 (26, 1, 8080803, 3.5, 2);
1 row created.
1 row created.
Sintaxis
donde:
En este caso se inserta cada fila retornada por la sentencia SELECT. La base
de datos Oracle verifica igualmente los tipos de datos, rangos, y restricciones
de integridad. Si la validación de una fila resulta en una falla, la sentencia de
inserción no se ejecuta, es decir que no se inserta ninguna fila aunque la que
hubiera fallado fuera la última.
Sintaxis
UPDATE tabla
SET columna = valor [,columna = valor...]
WHERE condición
donde:
1 row updated.
3 rows updated.
Sintaxis
donde:
Durante una transacción las filas afectadas son bloqueadas a otros usuarios
para evitar inconsistencias.
• COMMIT
1 row created.
1 row created.
1 row created.
1 row created.
SQL> commit;
Commit complete.
• ROLLBACK
18 rows deleted.
SQL> rollback;
Rollback complete.
1 row deleted.
4. ESTRUCTURAS DE DATOS
Todas las estructuras de datos son creadas bajo algún esquema. Un esquema
es precisamente una colección de objetos, los cuales hacen referencia a los
datos en una base de datos. Cuando un usuario quiere hacer referencia a un
objeto debe hacerlo por su nombre, en este caso se asume que el mismo está
en su propio esquema. Si un usuario quiere hacer referencia a objetos que
están en otro esquema, debe calificarse el nombre del objeto con el del
esquema.
4.2. TABLAS
• nombre de la tabla
• nombre de cada columna
• tipo de datos almacenados en cada columna
• tamaño de cada columna
• información adicional (restricciones, comentarios, propiedades de
almacenamiento, etc.)
Sintaxis
donde:
Ejemplo: Crear una tabla para guardar los proyectos en que trabaja cada
departamento. Cada proyecto tiene código, descripción, presupuesto, fecha de
inicio y de finalización, y una marca que indica si el proyecto está cerrado. Por
defecto, el presupuesto se inicializa en 0, con fecha de inicialización igual a la
del sistema.
Table created.
Ejemplo: Crear una tabla para guardar los proyectos en que trabaja cada
empleado. La tabla debe registrar fecha de ingreso al proyecto, que por defecto
es la fecha del sistema.
Table created.
SQL> desc empleados_proyectos
Name Null? Type
------------------------------- -------- ----
CODIGO_DEP NOT NULL NUMBER(3)
CODIGO_EMP NOT NULL NUMBER(6)
CODIGO_PRY NOT NULL NUMBER(4)
FINGRESO NOT NULL DATE
Sintaxis
donde:
Ejemplo: Volver a crear la tabla para guardar los proyectos creando las
restricciones de integridad necesarias. Garantizar además que el presupuesto,
dado que es un importe, sea siempre positivo.
Sintaxis
donde:
Cuando se define una restricción de tipo PRIMARY KEY sobre una tabla, se
garantiza que la combinación de valores de las columnas que la componen no
se repitan en la tabla, así como también que ninguna de las columnas de la
restricción tengan valores nulos.
Table created.
Sintaxis
donde:
esquema indica el usuario bajo el cual se crea la tabla.
nombre indica el nombre de la tabla.
columna indica el nombre dado a cada columna.
consulta indica una sentencia SELECT.
Si no se indica una lista de nombres de columnas, la tabla será creada con los
nombres indicados en la sentencia SELECT. Puede indicarse también un valor
por defecto. El tipo de dato de la columna se asume a partir del valor
seleccionado.
Ejemplo: Crear una tabla para guardar los productos dados de baja.
Table created.
Sintaxis
donde:
Debe tenerse en cuenta que al eliminar una tabla, otras estructuras de la base
de datos podrían dejar de ser válidas (por ejemplo, vistas, sinónimos, etc.).
Table dropped.