Sunteți pe pagina 1din 21

SQL

OBJETIVOS. Adquirir los conocimientos suficientes para aplicar el SQL en: La definicin de datos El control de datos La manipulacin de datos ESTRUCTURA DEL SQL Con el lenguaje estructurado de consultas, se le indica a Oracle la informacin que se desea seleccionar, insertar, actualizar, o borrar. Estos son los cuatro trminos para dar instrucciones a Oracle. Tipos de Sentencia: las sentencias SQL pertenecen a dos categoras principales: - DDL Lenguaje de definicin de datos: El Lenguaje de Definicin de Datos (DDL) permite crear y eliminar todos los objetos que componen una base de datos: tablas, ndices, vistas, sinnimos, etc. Antes de llevar a cabo la creacin de una tabla es muy conveniente PLANIFICAR:

Nombre de la tabla. Nombre de cada columna. Tipo de datos almacenados en cada columna. Tamao de cada columna. Informacin adicional (columnas obligatorias, etc.).

Restricciones sobre el nombre de la tabla:


Longitud mxima, 30 caracteres. Comenzar con un carcter alfabtico, permite caracteres alfanumricos y subrayados. Maysculas y minsculas son indistintas. No puede haber nombres duplicados de tabla o vistas. DML Lenguaje de manejo de datos: Es el conjunto de sentencias que sirven para manejar los datos en la base de datos; permite realizar operaciones de:

o Insert: Insertar o Update: Actualizar

o Delete: Borrar o Select: Seleccionar CREACION DE: TABLAS: en Oracle cada estructura de informacin se denomina TABLA las cuales, junto a los ndices y al diccionario de datos del sistema, componen la base de datos.

Sintaxis: CREATE TABLE tabla ( especificacin _ columna { , especificacin _ columna } [ , [CONSTRAINT nombre ] restriccin_tabla { , [CONSTRAINT nombre ] restriccin_tabla } ] ); Especificacin de las columnas (especificacin _ columna): nombre _ columna tipo _ dato [ NOT NULL ] [ DEFAULT [ valor _ defecto ] ] [ [CONSTRAINT nombre ] restriccin_columna { [CONSTRAINT nombre ] restriccin_columna Implementacin de Restricciones de Integridad:

La definicin de restricciones al crear las tablas permite establecer reglas de validacin de datos, as como los controles necesarios para mantener la integridad referencial entre tablas a travs de las columnas claves. ALTER TABLE tabla ADD | DROP CONSTRAINT nombre restriccin_tabla; Restricciones de la tabla:

unique (nombre _ columna {, nombre _ columna) primary key (nombre _ columna {, nombre _ columna) foreign key (nombre _ columna {, nombre _ columna}) references tabla [(nombre _ columna {, nombre _ columna})] check (expresin_booleana)

Las restricciones que se pueden definir son: Valor obligatorio: En Oracle existe el concepto de valor nulo (NULL), como un valor indefinido o ausencia de valor y que es diferente al numero 0 o al carcter espacio. Por lo tanto, para que una columna siempre tenga valor (sea obligatoria) se define como NOT NULL.

Rango de valores: Sirven para chequear que el valor sea mayor a un valor determinado o para que se encuentre entre dos valores. Clave Candidatas: es una combinacin de una o ms columnas cuyos valores identifican de forma nica a cada fila de la tabla. Create table PROBLEMA ( Ciudad CHAR (13) NOT NULL, FechaMuestra DATE NT NULL, Medioda NUMBER (3, 1), Medianoche NUMBER (3, 1), Precipitacin NUMBER UNIQUE (Ciudad, FechaMuestra) ); La clave de esta es la combinacin de CIUDAD y FECHAMUESTA. Clave Primaria: Columnas que identifican de forma nica al registro, es un valor nico y no nulo (NOT NULL). Por ejemplo: el cdigo del cliente es una clave primaria que identifica de forma nica e irrepetible a cada cliente. Create table Problema ( Ciudad CHAR (13) NOT NULL, FechaMuestra DATE NOT NULL, Medioda NUMBER (3, 1), Medianoche NUMBER (3, 1), Precipitacin NUMBER PRIMARY KEY (Ciudad, FechaMuestra) ); Clave Externa: Columna de la tabla que hace referencia a un valor que tiene que estar registrado en otra tabla. Por ejemplo: la columna cdigo de la tabla VENTAS es una clave externa que hace referencia a un valor de la columna cdigo (clave primaria) de la tabla Clientes. Create table EMPLEADO ( Nombre CHAR (25) PRIMARY KEY, Edad NUMBER, Alojamiento CHAR (15) ); Comentarios de las columnas: las columnas estn predefinidas, cada una de ellas tiene un nombre especfico y un tipo de datos, habiendo un nmero limitado de ellas por tabla. Restricciones de las columnas:

Valor por defecto: default Obligatoriedad: not null Sin duplicados o clave primaria: unique | primary key Integridad referencial: references tabla [(columna)] [on delete cascade]

Restricciones que previenen contra inserciones, borrados o actualizaciones no vlidas, similares a las incluidas en un predicado del WHERE: check (condicin)

CREACIN DE: - SECUENCIAS create secuence { usuario. } secuencia { INCREMENT BY entero} { START WITH entero} { MAXVALUE entero | NOMAXVALUE } { MINVALUE entero | NOMINVALUE } { CYCLE | NOCYCLE } { CACHE entero | NOCACHE } { ORDER | NOORDER } INCREMENT BY: el valor es 1. Un nmero positivo producir un incremento ascendente del nmero de secuencia en un intervalo igual al entero. Un nmero negativo producir un decremento de la misma forma. START WITH: es el nmero con el que comenzar la secuencia. El valor por omisin para START WITH es MAXVALUE para secuencias descendentes y MINVALUE para ascendentes, utilizaremos START WITH para anular este valor por omisin. MAXVALUE: es el nmero ms alto que generar secuencia. MINVALUE: es el nmero ms bajo que generar la secuencia. CACHE: permite guardar en memoria un conjunto preasignado de nmeros de secuencias. El valor por omisin es 20. El conjunto de valores debe ser menor que MAXVALUE menos MINVALUE. ORDER: garantiza la asignacin de los nmeros de secuencia a las instancias que los requieran en el orden en que se reciban las peticiones. Secuencias: La secuencia es un objeto que genera valores enteros nicos y se emplean para crear claves primarias numricas, con el uso del siguiente mandato: Ejemplo: Create sequence codigo_cliente Increment by 1 Start with 1; La herramienta fundamental de SQL es la sentencia SELECT, que permite seleccionar registros desde las tablas de la Base de Datos, devolviendo

aquellos que cumplan las condiciones establecidas y pudiendo presentar el resultado en el orden deseado. Rodar la secuencia: Para registrar un nuevo cdigo con la secuencia definida anteriormente se usa la pseudo-columna codigo_cliente.NEXTVAL, la cual nos dar el siguiente valor que le corresponde a la secuencia, la forma en que esto se realiza se explicar ms adelante, cuando analicemos el ingreso de datos. Para conocer el valor actual de la secuencia, o sea, el ltimo cdigo asignado, se usa la pseudo columna codigo_cliente.CURRVAL, desde la tabla DUAL del sistema, cuyo fin es poder consultar pseudo _ columnas (como se muestra a continuacin): Select user, SysDate, codigo_cliente.currval From dual; Donde: 1.- User es el nombre del usuario 2.- SysDate es la fecha del sistema 3.- codigo_cliente.currval es el ltimo valor asignado a la secuencia. CREACIN DE - INDICES: El ndice es un instrumento que aumenta la velocidad de respuesta de la consulta, mejorando su rendimiento y optimizando su resultado. Es el propio sistema, al analizar la condicin de la consulta, quien decide qu ndice se necesita. Sintaxis: CREATE [UNIQUE] INDEX nombre _ ndice ON tabla (columna {, columna}); Tipos de ndices: ndice Concatenado: Es uno que se crea con ms de una columna de una tabla. Se puede utilizar para garantizar que esas columnas sean nicas para cada fila de la tabla y para acelerar el acceso a las filas por medio de esas columnas. ndice Comprimido: Es un ndice en el que nicamente se almacena la informacin de ndice necesaria para identificar entradas de ndices nicos; la informacin que almacena un ndice con la clave anterior o posterior se comprimen y no se almacena para reducir el almacenamiento suplementario necesario por un ndice. ndice nico: Es un ndice que impone uncida en cada valor que indexa. El ndice puede ser una columna simple o concatenada. - Reorganizacin de los ndices:

-Recuperar informacin de los ndices del diccionario de datos: un ndice bien situado en una tabla ayudara a la base de datos a recuperar los datos ms rpido. CREACIN DE: - SINNIMOS: es un objeto de base de datos que sirve para crear nombres alternativos para las tablas. Es recomendable definir sinnimos para una tabla. - Privados: el siguiente ejemplo: create synonym tostada for carta, Es un sinnimo privado porque solo lo puede utilizar el sinnimo de carta para acceder a la tabla. Pblicos: todos los usuarios podrn utilizarla.

create Public Synonym - Eliminar sinnimos Sintaxis: DROP [PUBLIC] SYNONYM nombre_sinnimo {, nombre_sinnimo }; Ejemplo: Eliminar el sinnimo matriculas: DROP SYNONYM matriculas; CREACIN DE: - VISTAS: Es una forma de ocultar la lgica que crea la combinada que se acaba de ver. Sintaxis: CREATE VIEW nombre AS sentecia_select; Explicacin:

vista

[(

columna

{,

columna

})]

Define una tabla virtual cuyo contenido ser el resultado de la ejecucin de la sentencia select La vista puede ser utilizada como tabla en posteriores consultas Una vista puede utilizarse para actualizar datos slo si cumplen determinadas condiciones

Ejemplo: CREATE VIEW INVASION as Select TIEMPO. Ciudad, Estado, Temperatura, Latitud, From TIEMPO, LOCALIZACION Where TIEMPO. Ciudad = LOCALIZACION. Ciudad; View created ALTERAR -TABLAS Adicionando campos: Las reglas para aadir una columna a una tabla son las siguientes: o Se puede aadir una columna en cualquier momento si no se especifica como NOT NULL. o Se puede aadir una columna NOT NULL mediante estos tres pasos: Aadir una columna sin especificar NOT NULL. Llenar cada fila de la columna con datos. Modificar la columna a NOT NULL. alter table PROBLEMA add ( Estado CHAR (9), Viento NUMBER (3) ); Table altered. Entonces se llena la columna con los datos para cada fila (con los datos hasta que se puedan obtener los verdaderos): update PROBLEMA set Estado = Soleado; Modificando campos: Entonces, finalmente, se modifican la tabla de nuevo con la opcin modify y se cambia la definicin de columna a NOT NULL. alter table PROBLEMA modify ( Estado CHAR (9) NOT NULL, Ciudad CHAR (17) ); Las reglas para modificar una columna son: o Se puede incrementar la anchura de una columna de CHAR en cualquier momento.

o Se puede incrementar el nmero de dgitos de una columna de tipo NUMBER en cualquier momento. o Se puede incrementar o decrementar el nmero de lugares decimales en una columna de tipo NUMBER en cualquier momento. Borrando campos: si aadimos la clusula ON DELETE CASCADE en la opcin REFERENCES, ORACLE borrar la fila dependiente cuando se borre la fila correspondiente en la tabla original. - RESTRICCIONES: constraints Con una restriccin de verificacin se puede dar un a expresin que tiene que ser cierta para todas y cada una de las filas de la tabla. Ejemplo: si Talbot da empleo exclusivamente a trabajadores entre 18 y 65 aos, la restriccin sera como sta: Create table EMPLEADO ( Nombre CHAR ( 25 ) PRIMARY KEY, Edad NUMBER CHECK ( Edad BETWEEN 18 AND 65 ), Alojamiento - ROLES rol: Un rol sirve para definir una funcin, es una forma de agrupar a los usuarios. Create ROLE funcin {( NOT IDENTIFIED | IDENTIFIED )( BY clave_acceso EXTERNALLY} TIENE TRES ROLES: - CONNECT: son los usuarios noveles y ocasionales, particularmente a aquellos que no necesitan crear tablas. - RESOURCE: son los usuarios mas sofisticados y regulares de la base de datos. Tienen derechos adicionales para crear sus propias tablas, secuencias etc. - DBA: este posee todo los privilegios, incluyendo espacio ilimitado en las tablas y la capacidad de asignar cualquier privilegio a otro usuario. PERFILES perfile: Es un conjunto de limitaciones en el uso de recursos que no pueden ser superadas por el usuario al que se le asigna el perfil. Los recursos incluyen sesiones por usuario, tiempo de CPU, tiempo de conexin, tiempo inactivo y lecturas lgicas. De este modo, se puede limitar el impacto de las consultas y proteger la seguridad del sistema limitando los recursos asignados a un usuario. Create profile perfil LIMIT {SESSIONS_PER_USER | CPU_PER_SESSION| -

CPU_PER_CALL | CONNECT_TIME | IDLE_TIME | LOGICAL_READS_PER_SESSION | LOGICAL_READS_PER_CALL | COMPOSITE_LIMIT | PRIVATE_SGA} {entero ( K | M ) | UNLIMITED | DEFAULT } BORRAR delete truncate - Borrado sin perder la estructura de la tabla. Para borrar una fila o filas de la tabla se usa la orden delete. La clusula where es esencial para borrar solo aquellas filas deseadas. Sin la clusula where, delete se borrar toda la estructura de la tabla. delete from CONFORT where Ciudad = WALPOLE; 4 records deleted. - Eliminado total del objeto: la orden delete from elimina todos lo objetos. - Eliminacin de Restricciones de Integridad: Sintaxis: DELETE FROM tabla [ WHERE condicin ] ; Explicacin:

Elimina las filas de la tabla especificada despus de la clusula FROM. En caso de no existir ningn predicado de seleccin se borrarn todas las filas de la tabla.

DCL (Lenguaje de Control de Datos) El Lenguaje de Control de Datos (DCL) nos permitir controlar, los permisos de acceso y la capacidad de accin sobre los objetos de la base de datos por parte de los usuarios. Los privilegios de sistema son permisos para realizar ciertas operaciones en la base de datos. El modo de asignar un privilegio es a travs de la instruccin GRANT y el modo de cancelar un privilegio es a travs de la instruccin REVOKE. - Asignacin de Permisos. Grants:

Conceder privilegios Sintaxis: GRANT [privilegios | roles] TO [usuarios | roles | PUBLIC] { WITH ADMIN OPTION }; Explicacin:

El propietario de una tabla o vista es el usuario que la crea. Los dems usuarios no pueden acceder a ella mientras no les sean concedidos los privilegios de acceso. Los privilegios de acceso pueden ser select, update, delete, insert o all Tambin es posible dar privilegios de sistema o roles, separndolos por comas. Tambin es posible asignarle uno (o varios) privilegios a varios usuarios, separndolos por comas.

- Para Tablas Cuando la parte de la palabra clave/privilegio consta de la palabra GRANT seguida por uno o varios privilegios, cuando en la sentencia Grant se especifican varios privilegios, estos deben ir separados por comas. Se empieza con la palabra clave on (sobre) e indica la tabla sobre la cual se conceden los privilegios. - Para Campos Cuando la parte de la palabra clave/privilegio consta de la palabra GRANT seguida por uno o varios privilegios, cuando en la sentencia Grant se especifican varios privilegios, estos deben ir separados por comas. Se enumeran uno o varios usuarios que van a recibir los privilegios concedidos - Eliminacin de permisos. Revoke: Revocar privilegios Sintaxis: REVOKE [ALL [PRIVILEGES] | <tbl_priv>(s) | <roles>] FROM [usuarios|roles| PUBLIC]; Explicacin:

Revoca privilegio/s a un usuario/s sobre un objeto/s. Es posible eliminar ms de un privilegio de sistema o rol, separndolos por comas. Tambin es posible eliminar uno (o varios) privilegios a varios usuarios, separndolos por comas. Si se le elimina el privilegio de un rol, se eliminar de todos los usuarios que tengan ese rol.

DML (Lenguaje de Manipulacin de Datos) - INSERTAR DATOS Insert - Con estructura de la tabla: Aade una o mas filas nuevas de informacin directa a una tabla. - Sin la estructura de la tabla: Es indirecta y se realiza es a travs de una vista TIPOS DE OPERADORES

- Operadores De Lgicos Operador + x

Operacin realizada Suma Resta Multiplicacin Divisin

Ejemplo Select ventas_anuales + ventas_actuales from cliente Select ventas_anuales ventas_actuales from cliente where cod_prov=OR. Select ventas_anuales x comisin from cliente Select ventas_anuales/12 from cliente

- Operaciones De Comparacin Operador = != ^= <> > < >= <= Misin Comprobar la igualdad Comprobar la desigualdad Igual que ! = Igual que ! = Mayor que Menor que Mayor igual que Menor igual que Igual a cualquiera de los miembros entre parntesis. ejemplo Select*from provincia cod_prov = MA. Select*from provincia cod_prov ! = MA. Select*from provincia cod_prov^= MA. Select*from provincia cod_prov < > MA. Select*from provincia where > 100 Select*from provincia where < 100 Select*from provincia where >= 100 Select*from provincia where <= 100 Select*from provincia cod_prov in (MA, OR). where where where where ventas ventas ventas ventas where

in

Distinto a cualquiera de los miembros entre parntesis. between Mayor o igual que A y AyB menor igual que B not bet No mayor o igual que A y ween A y B no menor o igual que B like %tin Contiene el texto % especificado (p. ej., tin). - Operadores Aritmticos Operador + x

not in

Select*from provincia where cod_prov not in (MA, OR). Select*from cliente where ventas between 1 and 50 Select*from cliente where ventas between 1 and 50 Select*from cliente where apellido like %tin%.

Operacin realizada Suma Resta Multiplicacin Divisin

Ejemplo Select ventas_anuales + ventas_actuales from cliente Select ventas_anuales ventas_actuales from cliente where cod_prov=OR. Select ventas_anuales x comisin from cliente Select ventas_anuales/12 from cliente

- SELECCIN DE DATOS Select - Clusulas: es una de las secciones principales de una sentencia SQL y comienza con una palabra clave como select, insert, update, delete, from, where, order by, group by o having. - De condicin: es una expresin cuyo valor se evala como TRUE (verdadero) o FALSE (falso). - De Agrupacin: SQL proporciona una forma eficiente para manejar la informacin con el agrupamiento de datos a travs de la formacin de grupos y las funciones correspondientes, dando la posibilidad de procesar no solo registros individuales como hemos hecho hasta ahora. Tambin podemos agrupar registros por un criterio determinado, como por ejemplo, agrupar por clientes las ventas realizadas. Cada grupo tendr como resultado de la consulta una fila resumen que contiene la informacin del grupo. Para la formacin de grupos adicionamos, a la forma bsica de la sentencia SELECT vista Anteriormente, la orden GROUP BY ubicada antes de ORDER BY, como se muestra a continuacin: SELECT Lista...

FROM Tabla, Tabla... WHERE Condiciones GROUP BY Expresin, Expresin,... ORDER BY Expresin, Expresin,... ; Terminador - De Ordenamiento: tiene en cuenta o Selecciona las filas segn la clusula WHERE o Agrupa estas filas segn la clusula GROUP BY o Calcula los resultados de las funciones de grupo para cada grupo o Selecciona y elimina grupos basndose en la clusula HAVING Ordena los grupos segn los resultados de las funciones de grupo de ORDER BY. La clusula ORDER BY debe usar funciones de grupo o columnas de la clusula GROUP BY. - Condicin de Agrupacin: Es una expresin lgica que contiene una consulta, Por ejemplo: Nombre IN (select). El nombre deriva la idea de que la condicin de consulta producir un conjunto de registros. - Subconsulta: Sintaxis: SELECT [ALL | DISTINCT] * | expresin {, expresin} FROM tabla WHERE expresin predicado (subselect) ; Explicacin:

Una subselect es una sentencia select que se sita como segundo operando en una expresin de comparacin de una clusula WHERE Los resultados devueltos por la subselect se utilizan para evaluar la condicin del WHERE El resultado de una subselect debe estar compuesto por una nica columna (excepto si se utiliza el predicado exists) Las subselects pueden a su vez contener subselects

Funciones para tipos de datos Numricos: Incluye los dgitos desde 0 a 9, el punto decimal y el signo menos; no se encierran entre comillas. Es posible realizar todas las operaciones aritmticas estndar: suma, resta, multiplicacin y divisin. Una columna contiene el numero 321, tendr el valor absoluto de 321. El valor absoluto se indica poniendo ente parntesis el nombre de la columna y con la palabra abs. Si intenta aplicar una funcin numrica a datos no numricos, Oracle emitir un mensaje de error.

FUNCIN (valor (, opcin)) Existen 3 clases de nmeros con los que se trabajan: - Valores Simples: es un nmero y puede incluir un nmero literal, una variable o un nmero de una columna y una fila de base de datos (Solo uno). - Grupo De Valores: es el conjunto de todos los nmeros de una columna que vienen de una serie de filas, como los precios. Esto indica algo sobre el total del grupo. - Listas De Valores: es una serie de nmeros que puede incluir nmeros literales, variables y columnas (varias). Cada funcin tiene solamente un par de parntesis, la funcin en si misma se pone en mayscula, los valores y opciones se ponen en minsculas cursivas. - Trigonometricas: las funciones Trigonometricas son cientficas y tcnicas y no se usan mucho. SIN, COS, TAN, dan los valores de estas funciones estndar para un ngulo expresado en radianes (grados multiplicados por pi dividido por 180). SINH, COSH, y TANH calculan las funciones hiperblicas de un ngulo. SIN (valor) - De grupos: dicen algo sobre el total del grupo (todas las filas de un conjunto). La funcin indica el promedio de unos nmeros o cual es el mayor de ellos, cuantos hay, etc. Select COUNT (DISTINCT Ciudad), COUNT Ciudad), COUNT (*) From CONFORT De Cadena: Es un grupo de cosas en lnea. Incluye cualquier letra del alfabeto, cualquier el nmero y cualquiera de los smbolos del teclado. La funcin se pone en maysculas. El objeto al que afecta se muestra en minscula y cursiva. Cada funcin debe tener un par de parntesis. FUNCIN (cadena (, opcin)) De Fecha: Es un formato que no incluye solamente el mes, da y ao, sino tambin la hora, minutos y segundos. Oracle extrae del sistema operativo de la computadora la fecha actual y la hora. Esto hace que est disponible en una columna especial llamada SysDate.

- Funciones Para Datos de tipo Numricos

Funcin ceil (n) floor (n) mod (m,n) power (m,n) round (n,m)

Devuelve El siguiente entero mayor o igual que n El mayor entero menor o igual que n Resto de m dividido entre n. si n=0, devuelve m. m elevado a n

Ejemplo Select ceil(10,6) from dual; Select floor(10,6) from dual; Select mod(7,5) from dual;

Muestra 11 10 2

Select power(3,2) from dual; 9 Select round(1234.5678,2) 1234,57 from dual; Select sign(12) from dual; Select sqrt(25) from dual; 1 5

Resultado redondeado a m cifras a la derecha del punto decimal sign (n) Si n = 0, devuelve 0; si n > 0, devuelve 1; si n < 0 devuelve 1 sqrt (m,n) Raz cuadrada de n

- Funciones Para Datos De Tipo De Character Funcin initcap(char) Devuelve Convierte el primer carcter de la cadena de caracteres a maysculas Convierte toda la cadena a minsculas Ejemplo Select initcap(mr. Teplow) from dual; Muestra Mr. Teplow mr. Donald briffet Boycott SMITH

Select lower (Mr. Donald Brif- fet) from dual; replace(char, Sustituye cad1 por Select replace(Scott, cad1, cad2) cad2 en la cadena de S, Boy) from dual; caracteres char. soundex(char) Representacin Select apellido from fontica de char. Suele empleado where utilizarse para realizar soundex(apellido) = bsqueda aproximada soundex(SMYTHE); de nombres. Pueden comparar palabras que se escriben diferentes pero se pronuncian igual (en ingles). Substr (char) Toma n caracteres de Select la cadena char substr(ABCDEF) from empezando en la dual; posicin m.

lower(char)

length(char)

Longitud de char.

Select length(Anderson) from dual;

Funciones Para Datos De Tipo Date Funcin sysdate last_day add_months (d, n) months_between(f, s) Next_day(d, da) Devuelve Fechas y horas actuales Ultimo da del mes Suma o resta n meses a la fecha d Diferencia en meses entre la fecha f y la fecha s. Fecha que corresponde al da especificado de la semana posterior a d. Ejemplo Select sysdate from dual; Select last_day (sysdate) from dual; Select add_months (sysdate,2)from dual; Select month_between (sysdate, 12MA97) from dual; Select next_day (sysdate, Monday) from dual; Muestra 30-FEB-97 31-MAR-97 18-MAY-98 13-ABRIL-98

04-SEP-95

Funciones de Conversin entre Tipos de Datos - De numrico a carcter: siempre un nmero se va a convertir en un carcter, como consecuencia, cualquier funcin de carcter puede usarse con columnas de Nmeros. Un Nmero literal no tiene que encerrarse en apstrofos. - De numrico a fecha: no se puede convertir. - De carcter a numrico: si contiene slo nmeros, puntos decimales o el signo menos a la izquierda. No debe haber espacios entre nmeros, ni otros caracteres. - De carcter a fecha: slo si est en formato DD-MM-YY. Esto cierto para todas las funciones salvo para GREATEST y LEAST, que las tratarn como una cadena, y ser cierto para BETWEEN slo si la columna a la izquierda de palabra BETWEEN es un DATE. - De Fecha a numrico: no se pueden convertir. - De Fecha a carcter: siempre una fecha ser convertida en carcter, como consecuencia, cualquier funcin de carcter puede usarse con columnas de Date. Un Date literal si tiene que encerrarse en apstrofos. - Especiales: hay varias funciones de conversin especializadas:

o CHARTOROWID (Cadena): convierte una cadena de caracteres a un identificador de filas. o ROWIDTOCHAR (Rowid): convierte un identificador de filas en una cadena de caracteres. o HEXTORAW: (Numerohex): convierte un nmero hexadecimal en binario. o RAWTOHEX (Fila): convierte un nmero binario a hexadecimal. o TO_MULTI_BYTE: convierte caracteres en bytes a caracteres multibyte. Funciones de Transformacin Sustitucin de caracteres: su sustitucin se hace a travs de TRANSLATE. Realiza una sustitucin de caracteres de acuerdo con un patrn que se especifica. Mira cada carcter de la cadena, y entonces busca el carcter si. Si est, anota su posicin y entonces busca esa misma posicin en entonces. El formato es: TRANSLATE (cadena, si, entonces). Sustitucin de valores: su sustitucin se hace a travs de DECODE. Para cada valor que ve en un campo, DECODE comprueba se coincide con un si y en ese caso lo cambia por el entonces. El formato es: DECODE (valor, si1, entonces1, si2, entonces2, si3, entonces3, si no) - Seleccionar datos de varias tablas: - Alias de nombre de tabla y de columnas: son nuevos nombres que se usan para enmascarar los nombres reales de las columnas subyacentes (que son compilados debido a que tienen funciones). Nunca ponga los alias entre comillas. - Saltos de registros: Un registro es una fila de informacin compuesta por todos los elementos de datos guardados en una tabla. - Formato para Reportes Sentencias Externas de: La pagina: la orden set linesize indica la anchura de la pagina. Los valores mas habituales son 80 y 132. Para definir una tamao de lnea de 80, deber introducir la orden set linesize 80. La orden set pagesize indica la longitud de pagina. Los valores mas habituales son 55 y 60.

La orden btitle sirve para incluir un texto en la parte inferior de cada pgina. Se recomienda incluir el nombre del programa en esa zona. Se debe especificar el lugar donde se quiere empezar porque si no Oracle la deja en el centro. - De fecha: Funcin Y o YY o YYY SYERAR o YEAR Q MM RM Month Devuelve Ejemplo Muestra 996 para todas las fechas de 1996 - 1112 para el ao 1112 BC 2 para todas las fechas de junio 12 para todas las fechas de diciembre IV para todas las fechas de abril May seguido por 6 espacios para todas las fechas de mayo. 24 para el 13 de junio de 1998 1 para el 1 de octubre de 1995 227 para el 1 de octubre de 1995 04 para el 4 de octubre de cualquier ao 1 para el 1 de octubre de 1995 FRI para el 8 de diciembre de 1995

Ultima cifra, dos ultimas Select o tres ultimas del ao. to_char(sysdate, YYY)from dual; Ao deletreado; con la S se incluye un signo antes de las fechas BC. Cuarto del ao (de enero a marzo ser = 1) Mes (01-12; diciembre = 12). Mes en romanos. nmeros Select to_char(sysdate, SYEAR)from dual; Select to_char(sysdate, Q) from dual; Select to_char(sysdate, MM) from dual; Select to_char(sysdate, RM) from dual; Select to_char(sysdate, Month) from dual;

Nombres del mes en formato de nombres de nueve caracteres.

WW W DDD DD D DY

Semana del ao

Select to_char(sysdate, WW) from dual; Semana del mes Select to_char(sysdate, W) from dual; Da del ao: el 1 de Select enero es 001, el 1 to_char(sysdate, febrero es 032, etc. DDD) from dual; Da del mes Select to_char(sysdate, DD) from dual; Da de la semana (1-7). Select to_char(sysdate, D) from dual; Nombre resumido del Select dia to_char(sysdate, DY) from dual;

HH

Hora del dia (1-12).

Select to_char(sysdate, HH) from dual;

HH24

Hora del da en un reloj Select de 24 horas to_char(sysdate, HH24) from dual;

MI SS

Minutes (0,59) Segundos (0,59)

Select to_char(sysdate, MI) from dual; Select to_char(sysdate, SS) from dual;

02 cuando son las 2 horas y 8 minutos despus de medianoche 14 cuando son las 2 horas y 9 minutos despus de medioda 17 cuando son las 4:17 de la tarde 22 cuando la hora es 11:03:22

De datos alfanumricos: es el mismo de los numricos. De nmeros: el formato para los nmeros es simplemente justificarlos a la derecha en una columna, sin comas y usando puntos decimales nicamente si el nmero no es un entero. De Ttulos: left, right y center definen donde se sita lo que sigue en la pgina. Un guin al final de la lnea quiere decir que sigue otra lnea de rdenes para ttulos. Skip indica cuantas lneas en blanco se deben colocar despus de imprimir la lnea. El texto entre apstrofos se imprime de forma literal. La orden Title dispone de muchas opciones, aunque la mayor parte de las veces nos conformaremos con los valores predeterminados: el texto del titulo aparece centrado en la lnea y en todas las pginas se imprime la fecha y el numero de pagina.

ACTUALIZACION DE DATOS: update Algunas veces es necesario actualizar los datos almacenados en una tabla. Esta operacin se realiza con la orden UPDATE, que tiene 3 partes: La palabra Update (actualizar) seguida por el nombre de la tabla que desea modificar. Esta parte es obligatoria. La palabra Set (definir) seguida por los nombres de una o varias columnas que desea modificar. Esta parte es obligatoria. La palabra Where (donde) seguida por los criterios de seleccin. Esta parte es opcional.

- BORRAR DATOS delete la orden DELETE sirve para borrar una o varias filas de datos de una tabla. Esta orden tiene 2 partes: las palabras Delete from (eliminar de) seguidas por el nombre de la tabla de que se desea borrar datos. Esta parte es obligatoria. Las palabras Where (donde) seguida por los criterios para la operacin delete. esta parte es opcional.

- TRANSACCIN DE PROCESOS Una transaccin es una secuencia de sentencias. GRABAR

Commit: se utiliza para validar trabajos en varios momentos dentro de un programa. Este debe utilizarse implcitamente para que un trabajo de programa completo sea considerado una transaccin. Sintaxis: COMMIT; // SQL EXEC SQL COMMIT; // SQL Inmerso Explicacin: La sentencia commit finaliza una transaccin haciendo que las actualizaciones realizadas en la base de datos sean permanentes Ejemplo: insert into alum_asi values ('7839293', '00012', 2001, 4, 7); insert into alum_asi values ('7839293', '00013', 2001, 5, NULL); commit DESHACER

Rollback: Este finaliza la transaccin actual, anula cualquier modificacin debida a la transaccin actual y libera cualquier bloqueo que permanezca, pero no afecta nada. SAVEPOINT: permite una restauracin a un punto de restauracin nombrado FORCE: anula de forma manual una transaccin dudosa identificada por un texto literal.

Toda la Transaccin:

Sintaxis: ROLLBACK; // SQL EXEC SQL ROLLBACK; // SQL Inmerso Explicacin: La sentencia ROLLBACK finaliza una transaccin haciendo que las actualizaciones realizadas en la base de datos no tengan efecto Ejemplo: insert into alum_asi values ('7839293', '00012', 2001, 4, 7); insert into alum_asi values ('7839293', '00013', 2001, 5, NULL); select * from alum_asi where dni = '7839293' and anno = 2001; rollback; select * from alum_asi where dni = '7839293' and anno = 2001; GLOSARIO: Dual: creada para probar funciones o para hacer clculos rpidos. TRANSLATE: es una funcin simple que hace una sustitucin ordenada, carcter a carcter de una cadena. DECODE: es una funcin increblemente poderosa, con un rango muy amplio de reas en las que se puede usar. Produce una sustitucin de valor a valor.

S-ar putea să vă placă și