LA BASE DE DATOS PROVEEDORES TABLA VENDEDOR COLUMNAS ( numvend NUMBER(4), nomvend VARCHAR2(30), nombrecomer VARCHAR2(30), telefono CHAR(11), calle VARCHAR2(30), ciudad VARCHAR2(20), provincia VARCHAR2(20) ) ( numpieza VARCHAR2(16), nompieza VARCHAR2(30), preciovent NUMBER(9,2)) RESTRICCIONES Clave Primaria: (numvend) PRECIOSUM ( numpieza VARCHAR2(16), numvend NUMBER(4), preciounit NUMBER(9,2), diassum NUMBER(3), descuento NUMBER(2)) Clave Primaria: (numpieza, numvend) Clave Ajena: (numpieza)→ PIEZA, Clave Ajena: (numvend)→ VENDEDOR PEDIDO ( numpedido NUMBER(5), numvend NUMBER(4), fecha DATE ) Clave Primaria: (numpedido) Clave Ajena: (numvend)→ VENDEDOR LINPED ( numpedido NUMBER(5), numlinea NUMBER(2), numpieza VARCHAR2(16), preciocompra NUMBER(9,2), cantpedida NUMBER(4), fecharecep DATE, cantrecibida NUMBER(4)) Clave Primaria: (numpedido, numlinea) Clave Ajena: (numpedido)→ PEDIDO Clave Ajena: (numpieza)→ PIEZA INVENTARIO ( numpieza VARCHAR2(16), numbin NUMBER(10), cantdisponible NUMBER(5), fecharecuento DATE, periodorecuen NUMBER(2), cantminima NUMBER(5) ) Clave Primaria: (numbin) Clave Alternativa: (numpieza) Clave Ajena: (numpieza)→ PIEZA PIEZA Clave Primaria: (numpieza) INSERT INTO tabla [ (listaColumnas) ] VALUES (listaValores) INSERT INTO tabla [ (listaColumnas) ] (ordenSelect) DELETE FROM tabla [ WHERE condición ] UPDATE tabla SET asignaciones [ WHERE condición ] SELECT [ DISTINCT ] listaColumnas FROM listaTablas [ WHERE condición ] [ GROUP BY listaColumnas [ HAVING condición ] ] [ ORDER BY listaColumnas [ ASC | DESC ] ] RESUMEN DE OPERADORES Recopilamos todos los operadores y conectivas lógicas vistos hasta ahora para la construcción de expresiones condicionales: = > < >= <= <> IS NULL op ALL op SOME op ANY (op=comparación) AND OR NOT BETWEEN IN EXISTS LIKE {%,_} UNION UNION ALL INTERSECT MINUS expresión [NOT] BETWEEN expresión AND expresión expresión [NOT] IN (listaValores) columna [NOT] LIKE 'cadena' La cadena de caracteres cadena admite los comodines % y _ , equivalentes en uso a los comodines de MS-DOS * y ?, es decir, el primero indica una cadena de caracteres de cualquier longitud, y el segundo un carácter cualquiera. columna IS [NOT] NULL EJEMPLOS insert into T (c1, c2) values (1,'Hola'); insert into T values (1,'Hola'); insert into T (c1, c2) (select x, y from T); delete from T where c1 = 1; update T set c1=2, c2='Adiós' where c3>30; select x from T where z like 'V_Z%'; select t1.x, y from tabla1 t1, tabla2 t2 where t1.x=t2.x select x, count(*) from T where y=a group by x having sum(z) = 100; select x from T where z = select max(y) from T2; select x from T union select y from T2; select x, funcion(b) from T group by x having sum(z) => ALL (select ...); select x, funcion(b) from T where exists (select ...); FUNCIONES DE FECHA TO_CHAR(fecha [, formato]) Convierte la fecha de tipo DATE a un valor VARCHAR2 en el formato especificado en "formato" Convierte la cadena de caracteres "cadena" de tipo TO_DATE(cadena [, formato]) CHAR a un valor de tipo DATE con el formato especificado en "formato" SYSDATE Devuelve la fecha actual del sistema ADD_MONTHS(fecha,n) Devuelve la fecha especificada con n meses más MONTHS_BETWEEN(fecha1,fecha2) Devuelve los meses transcurridos entre fecha1 y fecha2 FORMATOS DE FECHA ELEMENTO - / ' . ; : 'texto' D DAY DD DDD DY MM MON MONTH Q YYYY Y,YYY YY SIGNIFICADO Marcas de puntuación y texto fijo que se reproduce en el resultado Día de la semana (1-7) Nombre del día de la semana Día del mes (1-31) Día del año (1-366) Nombre reducido del día de la semana (LUN, MAR, MIE...) Mes (1-12) Nombre abreviado del mes Nombre completo del mes Cuatrimestre del año (1-4) Año con 4 dígitos Año con punto de millar Año con 2 dígitos FUNCIONES DE AGREGACIÓN COUNT( * COUNT( DISTINCT expr SUM( [DISTINCT] expr AVG( [DISTINCT] expr MIN( expr MAX( expr ROUND( expr ABS( expr ) ) ) ) ) ) ) ) número de filas número de valores distintos en la columna expr suma de todos los valores en expr promedio de todos los valores en expr el más pequeño de todos los valores en expr el mayor de todos los valores en expr redondea expr valor absoluto de expr