You are on page 1of 53

BENEMRITA UNIVERSIDAD AUTNOMA DE

PUEBLA
FACULTAD DE CIENCIAS DE LA COMPUTACIN
Apuntes Impresos
Bases de Datos en Informix
Primavera 2009
Dr. David Eduardo Pinto Avendao
INTRODUCCIN ................................................................................................................................................................ 1
BASE DE DATOS Y MODELOS DE DATOS ................................................................................................................. 1
OB1ETIVOS DE LOS SISTEMAS DE GESTIN DE BASE DE DATOS .................................................................. 1
SUBLENGUA1ES DEL SQL ............................................................................................................................................. 1
OB1ETIVOS SGBD ............................................................................................................................................................ 1
GESTION DE LOS ACCESOS CONCURRENTES ....................................................................................................... 2
CONCEPCIN DE UNA BASE DE DATOS ................................................................................................................... 2
PROBLEMAS ADQUIRIDOS POR UNA MALA CONCEPCION DE UNA BASE DE DATOS ............................. 2
EL MODELO RELACIONAL Y EL SQL ....................................................................................................................... 3
Operaciones sobre Tablas ...................................................................................................................................................... 3
SQL EN INFORMIX ........................................................................................................................................................... 5
LENGUA1E PROGRAMACION RDSQL ....................................................................................................................... 5
CREAR TABLAS ................................................................................................................................................................ 5
MODIFICACION DE LA EXTRUCTURA DE UNA TABLA ...................................................................................... 6
PERMISOS SOBRE BASE DE DATOS ........................................................................................................................... 6
INSTRUCCINES PARA DAR PRIVILEGIOS ............................................................................................................ 7
RETIRADA DE PRIVILEGIOS ........................................................................................................................................ 7
CREAR Y BORRAR SINONIMOS ................................................................................................................................. 8
INDICES ............................................................................................................................................................................... 8
LENGUA1E DE MANIPULACION DE DATOS (LMD/DML) ..................................................................................... 9
FUNCIONES DE GRUPO ................................................................................................................................................ 12
FUNCIONES DE FECHA ................................................................................................................................................ 14
CONDICIONES DE COMPOSICION ........................................................................................................................... 15
TIPOS DE ENLACES o UNIONES ................................................................................................................................. 15
INSERCIN DE DATOS ................................................................................................................................................. 16
MODIFICACIN DE DATOS ........................................................................................................................................ 17
BORRADO DE DATOS ................................................................................................................................................... 17
EXTRUCTURA DE UN ARCHIVO DE FORMATOS ................................................................................................. 17
ESPECIFICACION DE ATRIBUTOS ........................................................................................................................... 19
SQL EN ORACLE .............................................................................................................................................................. 40
TIPOS DE DATOS ............................................................................................................................................................ 41
OPERADORES DE SQL .................................................................................................................................................. 42
OPERADORES LGICOS .............................................................................................................................................. 44
OPERADORES DE UNIN ............................................................................................................................................. 44
COMANDOS GENRICOS DE SQL ............................................................................................................................. 45
Ingreso de datos ................................................................................................................................................................... 47
Borrar datos ......................................................................................................................................................................... 47
COMMIT y ROLLBACK ................................................................................................................................................... 47
FUNCIONES CON QUERIES ......................................................................................................................................... 48
BIBLIOGRAFA ................................................................................................................................................................ 50
INTRODUCCIN
BAS ! !ATOS " MO!LOS ! !ATOS
#na base de datos est$ general%ente de&inida co%o 'n con('nto integrado de datos )'e
%odeli*an 'n 'ni+erso dado. ste 'ni+erso est$ co%p'esto por ob(etos inter,relacionados- los
ob(etos de 'n %is%o tipo constit'yen 'na entidad y el la*o .abido entre entidades se le deno%ina
asociaci/n.
l proceso de descripci/n de asociaciones y entidades se lla%a %odeli*aci/n y se .ace con la
ay'da de 'n %odelo de datos- e0isten act'al%ente c'atro %odelos de datos di&erentes1
1. Modelo jerrquico.
2. Modelo en red
3. Modelo objeto
4. Modelo relacional: el principio b$sico de este %odelo consiste en representar tanto las
entidades co%o las asociaciones con la ay'da de relaciones deno%inadas ta%bi2n tablas. #na
tabla est$ co%p'esta por l3neas y col'%nas- cada l3nea representa 'n ob(eto 4pro+eedor,artic'lo5
las col'%nas representan los atrib'tos de dic.o ob(eto. #na tabla es 'na estr'ct'ra.
OB6TI7OS ! LOS SISTMAS ! 8STI9: ! BAS ! !ATOS
Las &'nciones de los S.8.B.!. son1
;. !ebe per%itir la de&inici/n de todos los datos
<. !ebe per%itir %anip'lar datos
3. !ebe establecer controles para la seg'ridad de estos datos
4. !ebe per%itir los accesos conc'rrentes.
S#BL:8#A6S !L S=L
L!!. Leng'a(e de descripci/n de datos.
LM!. Leng'a(e de %anip'laci/n de datos
LCM. Leng'a(e de control de datos.
OB6TI7OS S8B!
;. Definicin de datos 1 4%odi&ica la estr'ct'ra o a>ade ca%pos5. La %isi/n del L!! es describir y
de&inir todos los es)'e%as )'e participen en la base de datos. sto consiste en la descripci/n de
los ob(etos )'e +a%os a representar. La descripci/n de todas las estr'ct'ras )'e &or%en n'estra
base de datos.
!e&inici/n de +ista1 es 'na +isi/n parcial de la tabla. ?c'ando en 'na tabla alg'na parte de esta no
)'iero )'e tenga derec.o a %anip'larla nadie@
<. Manipulacin de datos: LM! recoge todas las operaciones de interca%bio de datos entre las
tablas- estas operaciones p'eden ser de cons'lta o de p'esta al d3a 4inserci/n- %odi&icaci/n-
s'presi/n5 estas operaciones se reali*an con la ay'da del deno%inado LM!.
,cons'ltas
;
Operaciones
, insertar datos
, p'esta al d3a , %odi&icar datos
, s'pri%ir datos
3. Sesguridad de los datos: consiste en garanti*ar )'e s/lo los 's'arios a'tori*ados p'edan
e&ect'ar operaciones correctas sobre la Base de !atos para ello se dispone de < tipos.
Control sobre la base de datos
Control sobre las tablas
8STIO: ! LOS ACCSOS CO:C#RR:TS
l principal ob(eti+o de la i%plantaci/n de 'na base de datos es poner a disposici/n de 'n
gran n'%ero de 's'arios en con('nto integrado de datos- estos datos podr$n ser %anip'lados por los
di&erentes 's'arios y es a.ora c'ando se debe garanti*ar la co.erencia de los datos desp'2s de las
di+ersas %anip'laciones. sto se garanti*a con la ay'da del concepto de transacci/n ?se de&ine
co%o transacci/n a 'na 'nidad l/gica de trata%iento )'e aplicada a 'n estado co.erente de 'na base
de datos restit'ye 'n n'e+o estado co.erente de la base de datos pero con estos %odi&icados-
Anica%ente p'ede ser %odi&icada co%pleta%ente an'lado@.
CO:CBCI9: ! #:A BAS ! !ATOS
l ciclo de +ida de 'na base de datos p'ede desco%ponerse en 3 etapas1
;. Concepcin: la &ase de concepci/n consiste en reprod'cir en el %'ndo real con ay'da de 'no de
los %odelos de datos conocidos 4relacional5. l res'ltado de esta &ase en 'n es)'e%a escrito
segAn 'n &or%alis%o c'al)'iera no interpretable por el S.8.B.!.
<. Creacin de la B.D. vaca: La <C &ase consiste en trad'cir este es)'e%a en ordenes
co%prensibles para el S.8.B.!. co%o res'ltado se obtiene la estr'ct'ra de la base de datos
despro+ista de c'al)'ier tipo de in&or%aci/n.
3. Explotacin: s en esta &ase donde los registros ser$n %anip'lados con la ay'da de los
leng'a(es de progra%aci/n. s a.ora c'ando los 's'arios p'eden cons'ltar los datos y ponerlos a
p'nto d'rante el resto de la +ida de la base de datos.
BROBLMAS A!=#IRI!OS BOR #:A MALA CO:CBCIO: ! #:A BAS ! !ATOS
n las tablas .ay )'e proc'rar )'e no .aya d'plicidad de datos1
;. Redundancia de datos: si 'n cliente .a reali*ado %$s de 'n pedido todos los datos de este
cliente estar$n repetidos tantas +eces co%o pedidos .aya- lo %is%o s'cede para los art3c'los esto
es op'esto al principal ob(eti+o de 'na base de datos )'e consiste en e+itar la repetici/n de los
%is%os.
<
<. Puestas al da mltiple: Bara poder aseg'rar la co.erencia de los datos es necesario e&ect'ar
p'estas a d3a %'ltiples. @C'ando 'n cliente ca%bia de direcci/n@
3. Incoherencia de los datos: S3 'na operaci/n de p'esta al d3a %Altiple no se .a reali*ado
co%pleta%ente el estado de la base de datos )'eda inco.erente y p'ede prod'cir errores
i%portantes.
4. Prdida de datos: La s'presi/n de 'na l3nea en la tabla de pedidos entra>a la p2rdida de todos
los datos relati+os a 'n cliente si no .a e&ect'ado ningAn otro pedido. sto es cierto ta%bi2n para
'n art3c'lo )'e no .a sido pedido por ningAn otro cliente. stas anor%alidades constit'yen lo
)'e se .a con+enido en lla%ar ?co%porta%iento anor%al de las tablas@- para e+itar esto e0iste 'n
proceso lla%ado ?nor%ali*aci/n@ )'e entre otras cosas intenta esclarecer los conceptos de
?dependencia &'ncional y estado de las tablas@.
D. Dependencia funcional: ste concepto se aplica a las col'%nas y consiste en .acer
corresponder 'n Anico +alor a a)'ella col'%na o col'%nas )'e considere%os %$s signi&icati+as.
E. Estado de la tabla: Se dice )'e 'na tabla esta en estado de ;C &or%a nor%al si toda col'%na de
esta tabla no p'ede tener %$s )'e +alores at/%icos- 'n +alor es at/%ica si 2l no es di+isible.
L MO!LO RLACIO:AL " L S=L
#n %odelo relacional posee tres grandes aspectos1
str'ct'ras1 !e&inici/n de ob(etos )'e contengan datos y )'e son accesibles a los 's'arios.
Operaciones1 !e&inir acciones )'e %anip'len datos ' ob(etos.
Reglas1 Leyes para gobernar la in&or%aci/n- co%o y )'ien %anip'lar.
#na base de datos relacional si%pli&ica y de&inida co%o 'n %odelo de in&or%aci/n es estricta%ente
+is'ali*able por los 's'arios %ediante tablas. #na tabla esta co%p'esta por 'na %atri*
bidi%encional de &ilas y col'%nas. n c'al)'ier ocasi/n la in&or%aci/n es ca%biada en 'na base de
datos relacional- c'al)'ier in&or%aci/n es el res'ltado de 'na cons'lta presentad por el 's'ario en el
&or%ato &ilasFcol'%nas.
Operaciones sobre Tablas
Todas las operaciones )'e poda%os reali*ar sobre las tablas- +istas o ele%entos de ellas- est$n
integradas en el S8!BR 4Siste%a 8estor de Bases de !atos Relacional5 co%o r'tinas. (e%plos de
operaciones son1
3
Seleccin1 Obtiene 'n s'bcon('nto de &ilas de la tabla o +ista- )'e c'%plen 'na deter%inada
condici/n.
Proyeccin1 Obtiene 'n s'bcon('nto de col'%nas de todas las &ilas de la tabla.
Unin1 Reali*a%os la 'ni/n de +arias tablas- c'yo res'ltado ser$ el con('nto de todas las &ilas de
las tablas origen. Las col'%nas respecti+as de dic.as tablas deben ser ig'ales entre s3.
Diferencia1 In+ersa a la anterior- de+'el+e las &ilas )'e est2n en 'na tabla y no pertene*can a
'na seg'nda tabla. !eben por tanto ser ig'ales ta%bi2n las col'%nas respecti+as entre s3.
Producto cartesiano1 l res'ltado ser$ 'na &ila por cada co%binaci/n entre cada &ila de 'na
tabla y todas las de la otra. Los +alores de a%bas &ilas se concatenar$n.
Interseccin1 Obtiene a)'ellas &ilas )'e sean id2nticas en a%bas tablas.
1oin1 s la operaci/n de 'nir &ilas de dos tablas a tra+2s de algAn ca%po co%An 4nor%al%ente la
cla+e5- dando co%o res'ltado &ilas con la s'%a de col'%nas de a%blas tablas c'ando se c'%pla
la condici/n del 6oin a tra+2s del ca%po 4o ca%pos5 relacionados.
S=L es 'na .erra%ienta para organi*ar- gestionar y rec'perar datos al%acenados en 'na base de
datos in&or%$tica. l no%bre GS=LG es 'na abre+iat'ra de Str'ct'red ='ery Lang'a(e 4Leng'a(e de
cons'ltas estr'ct'rado5. Co%o s' propio no%bre indica- S=L es 'n leng'a(e in&or%$tico )'e se
p'ede 'tili*ar para interaccionar con 'na base de datos y %$s concreta%ente con 'n tipo especi&ico
lla%ado base de datos relacional.
S=L es a la +e* 'n leng'a(e &$cil de aprender y 'na .erra%ienta co%pleta para gestionar datos.
Las peticiones sobre los datos se e0presan %ediante sentencias- )'e deben escribirse de ac'erdo con
'nas reglas sint$cticas y se%$nticas de este leng'a(e.
S' aprendi*a(e no solo sir+e para esta aplicaci/n sino - ta%bi2n- para todas las e0istentes en
el %ercado )'e soporten este leng'a(e ya )'e es 'n leng'a(e est$ndar por .aberse +isto consolidado
por el Instit'to A%ericano de :or%as 4A:SI5 y por la Organi*aci/n de st$ndares Internacional
4ISO5.
Ciertas de&iniciones ser$n necesarias y se presentan a contin'aci/n.
Base de datos: sta co%p'esta de 'n con('nto de tablas del siste%a creadas i%pl3cita%ente por
2l y por 'n con('nto de tablas y +istas creadas por el 's'ario.
Tablas: n in&or%i0 el 'ni+erso est$ descrito con la ay'da de tablas- cada 'na representa a 'na
entidad o a 'na asociaci/n entre entidades. Las tablas est$n co%p'estas de col'%nas o de l3neas
o &ilas lla%adas con+encional%ente ca%pos y registros. #na col'%na representa 'n atrib'to de
la entidad y para describirla es necesario especi&icar 'n no%bre y 'n tipo de datos- 'na
partic'laridad de las col'%nas es )'e p'eden per%itir o no +alores n'los.
Fila: s 'na co%binaci/n de los di&erentes atrib'tos del ob(eto 4registro5.
Vistas: s 'na tabla +irt'al de&inida sobre las tablas bases descritas por el 's'ario s' ob(eto es
per%itir a los 's'arios %anip'lar 'n s'bcon('nto de datos.
4
Usuarios: 'no de los ob(eti+os de 'n siste%a de gesti/n de base de datos es el de a&ian*ar la
seg'ridad de los datos- para .acer esto el leng'a(e de progra%aci/n genera todos los 's'arios y
s's per%isos de acceso para acceder a 'na base de datos- cada 's'ario debe disponer de s'
a'tori*aci/n correspondiente y es el propietario de la base de datos el )'e debe dar y retirar
per%isos de acceso.
Indices: Se 'tili*an para a'%entar el rendi%iento del siste%a y aseg'rar la integridad de los
datos. A cada tabla )'e se crea se la asocia a'to%$tica%ente 'na tabla 3ndice )'e contiene la
posici/n del registro segAn la col'%na especi&icada co%o 3ndice.
SQL EN INFORMIX
L:8#A6 BRO8RAMACIO: R!S=L
Cesacin de una Base de Datos
CRAT !ATABAS no%bre,base,datosH
Para borrar una Base de Datos
!ROB !ATABAS no%bre,base,datosH
Abrir Base de Datos
!ATABAS no%bre,base,e0tensi/n IJCL#SI7KH
CRAR TABLAS
CRAT TABL no%bre
Tipos de datos1
CHAR (N):!e&inen 'na cadena de caracteres desde 'na posici/n. A,3<7E7
SMALLINT: Bara 'n n'%ero entero corto c'yo +alor debe estar co%prendido entre 4L-,53<7E7
INTEGER: !e&ine 'n n'%ero entero largo- s' +alor esta co%prendido entre4L-,5 <.;DM.MMM.MMM
DECIMAL (M,N): Ber%iten nA%eros con &racciones deci%ales- el +alor %$0i%o de 4M5 )'e
indica las posiciones del ca%po es de 3< y 4n5 )'e indica posiciones deci%ales debe ser %enor o
ig'al )'e 4M5.
SMALLFLOAT: Bara 'n n'%ero corto en co%a &lotante- es e)'i+alente a !CIMAL 4N5.
FLOAT: Bara 'n n'%ero en co%a &lotante largo. s e)'i+alente a !CIMAL4;E5.
SERIAL (N)]: Indica 'n n'%ero entero Anico y sec'encial )'e se incre%enta de &or%a
a'to%$tica por de&ecto. l +alor inicial es ; a no ser )'e se le indi)'e lo contrario. S/lo p'ede
.aber 'no por tabla.
D
MONEY (M,N): Albergan nA%eros de tipo deci%al con dos ci&ras desp'2s de la co%a para
e0presar 'na %oneda 4sie%pre )'e no diga%os lo contrario5.
MONEY: s e)'i+alente a datos deci%ales.
Money 4N5 deci%al l 4N posiciones- < deci%ales5.
DATE: Sir+e para indicar 'n ca%po de &ec.a con el &or%ato 4dd,%%,AAAA5.
Crear una tabla temporal
CRAT TMB TABL no%bre,tabla 4no%bre,col'%na,ti%o I:OT :#LLK.
MO!IOICACIO: ! LA JTR#CT#RA ! #:A TABLA
ALTR TABL no%bre,tabla
A!! 4no%bre,col'%na,tipo IBOOR no%bre,col'%naK-...5H
Borrar columnas:
ALTR TABL no%bre,tabla
!ROB 4no%bre,col'%na-...5H
Modificar columnas:
ALTR TABL no%bre,tabla
MO!IO" 4no%bre,col'%na,tipo I:OT :#LLK-...5H
Borrar tablas:
!ROB TABL no%bre1 ?borra la tabla por co%pleto@
Renombrar el nombre de la tabla:
R:AM TALB no%bre.antig'o TO no%bre.n'e+oH
Renombrar el nombre de una columna:
R:AM COL#M: no%bre,tabla.no%bre,col'%na TO no%bre.n'e+oH
BRMISOS SOBR BAS ! !ATOS
La atrib'ci/n de pri+ilegios de acceso a 'na base de datos se agr'pan en tres operaciones. Se
p'ede as3 a'tori*ar a 'no o +arios 's'arios a conectarse a 'na base de datos y a %anip'lar s's
co%ponentes sin la %enor opci/n de %odi&icaci/n o creaci/n de estr'ct'ras- esta a'tori*aci/n se
reali*a con el pri+ilegio CO::CT )'e es la a'tori*aci/n %3ni%a )'e se p'ede dar a 'n 's'ario.
Ig'al%ente se p'ede atrib'ir a 'n 's'ario 'n pri+ilegio )'e le per%ita %anip'lar los ob(etos
de 'na base de datos y crear o %odi&icar s's estr'ct'ras- este pri+ilegio se le conoce co%o
RSO#RC.
E
l pri+ilegio de %$s alto ni+el es el !BA )'e signi&ica Ad%inistrador de Base de !atos- este
o&rece a s' bene&iciario la totalidad del poder sobre 'na base de datos- el poseedor de dic.o
pri+ilegio podr$ ade%$s atrib'ir y retirar pri+ilegios a los de%$s 's'arios.
I:STR#CCI9:S BARA !AR BRI7IL8IOS
8RA:T pri+ilegio,!B TO B#BLIC P 's'ario;- 's'ario<-...H
Bri+ilegios !B1
;. CONNECTER-DB: para todos los 's'arios
<. RESOURCE-DB: para +arios 's'arios en concreto.
3. DBA: para 'n 's'ario s/lo. Bara .acer lo )'e )'ieras.
Ejemplo:
!ar pri+ilegios a %$s de 'no1
8RA:T RSO#RC TO I:O;;M- I:O;;;H
RTIRA!A ! BRI7IL8IOS
l propietario o los bene&iciarios del pri+ilegio !BA tienen la posibilidad de retirar en todo
%o%ento a 'no o +arios 's'arios los pri+ilegios sobre dic.a base.
R7OK pri+ilegio,!B OROM B#BLIC P's'ario;-..H
PRIVILEGIOS SOBRE TABLAS: ~slo para la tabla que estamos trabajando.
Ade%$s de los pri+ilegios de acceso a 'na Base de !atos en S.=.L. per%ite conceder y
retirar pri+ilegios a ni+el de tabla- estos Alti%os los p'ede conceder por el ad%inistrador de la Base
o por el propietario- y deter%inan las operaciones )'e podr$n e&ect'ar s's tenedores sobre la tabla.
8RA:T pri+ilegio,tabla O: no%bre,tabla TO B#BLIC P LISTA #S#ARIOS IQRIT 8RA:T
OBCIO:KH
Privilegios tabla:
ALTER: este pri+ilegio concede %odi&icar la estr'ct'ra sobre 'na tabla. " s/lo %odi&icar la
estr'ct'ra. Boner- )'itar col'%nas o ca%biar caracter3sticas de la col'%na.
?6.@ 8RA:T ALTR O: clientes TO B#BLIC QITR 8RA:T OBCI9:H
DELETE: per%ite s'pri%ir datos de 'na tabla.
Borra registros. C'ando en 'na tabla 'na persona se +a- !LT borra s's datos.
INDEX: per%iso de creaci/n de 3ndices.
INSERT: per%ite insertar n'e+os datos en la tabla. Inserta registros- c'ando de da de alta
alg'ien I:SRT inserta s's datos en la tabla.
SELECT: 4lista de col'%nas5. Ber%ite cons'ltar 'na parte o la totalidad de la tabla.
?e(.@ 8RA:T SLCT O: clientes TO B#BLICH
7
Bara especi&icar los datos de la col'%na )'e yo )'iero )'e 'n 's'ario +ea.
8RA:T SLCT 4no%bre- ape;- ape<5 O: clientes TO In&;;EH
UPDATE: act'ali*ar poner al d3a. Ber%ite %odi&icar 'na parte o la totalidad de las col'%nas.
GS/lo en contenido@ no la estr'ct'ra.
ALL PRIVILEGES: per%iso para todos los pri+ilegios anteriores. Los pri+ilegios se los p'edo
dar a 'no o a todos.
RETIRADA DE PRIVILEGIOS:
REVOKE: Revocar el privilegio de tabla dado.
R7OK pri+ilegios,tabla O: no%bre,tabla OROM B#BLIC P LISTA #S#ARIOSH
Para retirar privilegios a todos los usuarios que se los hemos dado:
R7OK ALL BRI7IL8S O: clientes OROM B#BLICH
CRAR " BORRAR SI:O:IMOS
Son de gran 'tilidad por)'e &acilitan la &or%'laci/n de las sentencias. !eben ser di&erentes a los
no%bres de las tablas- +istas- etc. " tienen )'e ser Anicos dentro de la base de datos.
CRAT S":O:IM no%bre OOR no%bre,tablaH
#na +e* creado- c'ando )'ieres %odi&icar algo en la tabla en +e* de poner el no%bre de la tabla
pones el sin/ni%o )'e es ig'al.
ejemplo
R:AM COL#M: c.entidad TO entiH
R:AM COL#M: clientes.entidad TO entiH
!ROB S":O:IM no%bre,sinoni%oH
I:!ICS
Son 'tili*ados para acelerar el acceso a los datos y aseg'rar la 'nicidad de l3neas en la tabla.
#n 3ndice per%ite acceder r$pida%ente a las l3neas de la tabla- contienen la direcci/n &3sica de cada
'na de las l3neas de la tabla.
Bara b'scar 'na l3nea de esa tabla el siste%a accede al 3ndice donde el ta%a>o es %$s
pe)'e>o y enc'entran la direcci/n de la l3nea de bAs)'eda. n ese %o%ento accede a la tabla.
La otra 'tili*aci/n de los 3ndices es la de aseg'rar la 'nicidad de las l3neas en 'na tabla- el
S.=.L. no o&rece ning'na %anera )'e per%ita de&inir las cla+es de las tablas. :o se dispone %$s )'e
en esta opci/n para aseg'rar )'e los datos sean Anicos.
Crear INDICES:
N
CRAT I#:I=#F!ISTI:CTK ICL#STRK I:!J no%bre del 3ndice O: no%bre tabla
4no%bre,col'%na IASCF!SK-...5H
UNIQUE: los datos son Anicos sin +alores d'plicados.
DISTINCT:
CLUSTER: Son 3ndices agr'pados. O3sica%ente reorgani*a la tabla por las col'%naFas )'e yo .e
indicado. " s/lo p'ede .aber 'na por progra%a.
Modificar INDICES:
Sola%ente se 'tili*an para los 3ndices agr'pados y es &rec'ente%ente 'tili*ado ya )'e s/lo se nos
per%ite 'n 3ndice CL#STR pro base.
ALTR I:!J no%bre,indice
TO I:OTK CL#STRH
Con la opcin NOT CLUSTER desace%os el 3ndice agr'pado y se to%an co%o si &'ese 'n
3ndice nor%al lo )'e nos per%itir3a +ol+er a reorgani*ar la tabla con otro criterio.
Con la opcin TO CLUSTER e0ige )'e este 3ndice sea 'n 3ndice CL#STR liberado y )'e no
e0ista ningAn otro 3ndice CL#STR- +'el+e a crear el 3ndice agr'pado.
Borrar INDICES:
!ROB I:!J no%bre,indiceH
L:8#A6 ! MA:IB#LACIO: ! !ATOS 4LM!F!ML5
CONSULTA DE DATOS:
Se .ace a tra+2s de la instr'cci/n SLCT y e0isten dos tipos de cons'ltas di&erenciadas.
C'ando )'ieres +is'ali*ar alg'nas col'%nas en concreto
SLCT lista de col'%nas ?e(@ SLCT idcliente- no%bre- ape; ape<
OROM lista de tablasH OROM clientesH
C'ando )'ieres +is'ali*ar todas las col'%nas creadas de 'na Anica tabla1
SLCT S
OROM clientesH
C'ando )'ieres +is'ali*ar datos de dos o %$s tablas di&erentes ('ntas- )'e no tienen col'%nas
)'e se lla%an ig'al1
SLCT no%bre- ape;-ape<- idartic'lo- descripci/n
OROM clientes- art3c'losH
C'ando )'ieres +is'ali*ar datos de dos o %as tablas di&erentes ('ntas- y )'e tienen col'%nas
)'e se deno%inan ig'al1
SLCT clientes.no%bre- clientes.ape;- clientes.ape<- pro+eedores.no%bre- pro+eedores.ape;-
pro+eedores.ape<
OROM clientes- pro+eedoresH
T
CONSULTA CALIFICADA:
Se .ace a partir de 'na cons'lta si%ple y 'na cl$'s'la QRR- esta p'ede estar seg'ida de
'na o +arias condiciones )'e a s' +e* est$n relacionadas entre s3 por los operadores l/gicos A:! y
OR y el operador l/gico :OT- se p'ede 'tili*ar para especi&icar la negaci/n1
0isten 3 tipos de condiciones1
;. Condiciones de co%paraci/n.
<. Condiciones de co%binaci/n
3. Condiciones de s'bsistencia.
CONDICIONES DE COMPARACION:
Ber%ite co%parar 'na col'%na o 'na e0presi/n con otra col'%na e0presi/n o lista de col'%nas.
S' &or%ato es1
SLCT no%bre,col'%na
OROM lista de tablas
QRR condici/nH
Condiciones1
0p. Operador relacional 0p.
0p I:OTK BTQ: e0p. A:! e0p.
0p I:OTK I: 4lista de +alores5
:o%bre,col'%na I:OTK LIK ?cadena de caracteres@
:o%bre,col'%na I:OTK MATCRS ?cadena de caracteres@
:o%bre,col'%na IS I:OTK :#LL
Exp.: representa 'na e0presi/n )'e es 'n no%bre de col'%na 'na constante o 'na co%binaci/n de
las dos relacionadas por operadores arit%2ticos. Los operadores arit%2ticos 'tili*ados en S.=.L.
son1
4S- F- L- ,5
#na e0presi/n p'ede incl'ir dos &'nciones pre,de&inidas1
TODAY: Oec.a del siste%a.
USER: no%bre del 's'ario.
SLC:T S
OROM pedidos
QRR &ec.a pedidoUTO!A"H
Operadores generales: Ade%$s pode%os 'tili*ar los sig'ientes operadores de relaci/n1
4U- VW- W- V- WU- VU5
SLCT S
OROM pedido
QRR cantidad W ;MM A:! &ec.apedido U TO!A"H
;M
Predicado BETWEEN:
Ber%ite co%parar el +alor de la e0presi/n sit'ada a la i*)'ierda de la palabra BTQ:
con los +alores co%prendidos en el inter+alo de&inido por las e0presiones co%prendidas a la
i*)'ierda y derec.a de la palabra cla+e A:!.
Ejemplo
cons'ltar todas las col'%nas de la tabla art3c'los donde el precio 'nitario sea %ayor o ig'al )'e ;MM
y )'e sea %enor o ig'al )'e 3MM.
SLCT S
OROM art3c'los
QRR precio 'nitario WU;MM
A:! precio 'nitario VU3MMH
Predicado IN:
Ber%ite co%parar el +alor de la e0presi/n sit'ado a la i*)'ierda de la palabra I: con la lista
de +alores encerrados entre par2ntesis sit'ados a la derec.a de dic.a palabra.
SLCT S SLCT S
OROM clientes OROM clientes
QRR ci'dadU?Santander@ QRR ci'dad I: 4?Santander@-@Bilbao@-
Ci'dad U ?Bilbao@ ?Torrela+ega@5H
OR ci'dad U ?Torrela+ega@H
Predicado LIKE:
Ber%ite 'tili*ar 'na co%paraci/n de se%e(an*a entre el +alor de 'na col'%na y el de 'na
cadena de caracteres 'tili*ando caracteres gen2ricos de s'stit'ci/n- estos son1
( , _ ).
SLCT S
OROM clientes
QRR Ape; LIK ?AX@
: s'stit'ye a +arios caracteres.
_ : s'stit'ye a 'n solo car$cter.
SLCT S
OROM clientes
=RR ape; LIK ?YTIX@H
Predicado MATCHES:
;;
s 'n co%ple%ento al predicado LIK y o&recen los sig'ientes caracteres de s'stit'ci/n
4S- Z- X- Y5.
:os +a a per%itir .acer 'na selecci/n.
SLCT S SLCT S
OROM clientes OROM clientes
QRR ape; LIK ?AX@ QRR ape; MATCRS ?IA,CKS@H
OR ape; LIK ?BX@
OR ape; LIK ?CX@
Predicado IS NOT] NULL:
n S.=.L. el +alor n'lo tiene 'n +alor inde&inido di&erente de M y de 'na cadena +ac3a. l
S.=.L. per%ite 'na co%paraci/n sobre los +alores n'los.
SLCT no%bre- ci'dad
OROM clientes
QRR ci'dad IS :OT :#LLH
ORDENACION DEL RESULTADO:
l S.=.L. per%ite operaciones de ordenaci/n con los datos e0tra3dos con 'na cons'lta
SLCT. Se p'ede ordenar .asta por N col'%nas di&erentes en 'na %is%a instr'cci/n.
La sinta0is es la sig'iente1
OR!R B" IASCF!SCK lista de col'%nas
ejemplo:
SLCT S
OROM clientes
QRR ci'dad IS :OT :#LL
OR!R B" !SC ape;H
O#:CIO:S ! 8R#BO
S.=.L. o&rece cinco &'nciones b$sicas para reali*ar c$lc'los estad3sticos as3 se p'ede deter%inar
el n[ de l3neas por tabla o por gr'po )'e c'%ple 'na condici/n- calc'lar la s'%a y la %edia de
col'%nas n'%2ricas o deter%inar el +alor %$0i%o o %3ni%o de 'na col'%na.
COUNT (` [ DISTINCT [ nombre columna)
C'enta el n'%ero de l3neas )'e satis&ace la sentencia.
Bara sacar las distintas ci'dades )'e tengo. Si tengo < ig'ales s/lo %e c'enta ; al ser repetidas.
SLCT CO#:T 4S5 SLCT 4!ISTI:CT CI#!A!5 ci'dad
OROM art3c'los OROM clientes
;<
SUM ( DISTINCT] columna)
S'%a los +alores de la col'%na )'e satis&ace la sentencia.
La opci/n !ISTI:CT s'%a los +alores Anicos de la col'%na.
La col'%na debe de ser de tipo n'%2rico y p'ede ser 'na e0presi/n.
Idartic'los 0istencias precio
; ;M ;D
< D ;M
3 D ;M
='iero s'%ar la col'%na art3c'los.
SLCT S#M 4e0istenciasSpr'nitario5
OROM art3c'losH
S'%ar los +alores Anicos de todos los registros en todas las e0istencias.
SLCT S#M 4!ISTI:CT e0istencias5
OROM art3c'losH
AVG (DISTINCT] columna)
Calc'la la %edia de los +alores de la col'%na )'e satis&acen la sentencia.
La opci/n !ISTI:CT calc'la la %edia de +alores Anicos.
Ejemplo
calc'lar el precio de los art3c'los con precio Anico.
SLCT A78 4!ISTI:CT- precio5
OROM art3c'losH
MAX (columna)
7is'ali*a el %$0i%o de los +alores de la col'%na )'e satis&acen la sentencia.
La col'%na debe de ser de tipo n'%2rico y p'ede ser 'na e0presi/n.
Ejemplo
Calc'lar el precio %$0i%o )'e yo cobro por %is art3c'los.
SLCT MAJ 4precio5
OROM art3c'los
MIN (columna)
7is'ali*a el %3ni%o de los +alores de la col'%na )'e satis&acen la sentencia.
La col'%na debe de ser 'na e0presi/n y tiene )'e ser n'%2rico.
Ejemplo
Calc'lar el precio %3ni%o )'e yo cobro por %is art3c'los
SLCT MI: 4precio5
;3
OROM art3c'los
n presencia de +alores n'los la &'nci/n CO#:T to%a en c'enta estas l3neas las de%$s &'nciones
:O1
O#:CIO:S ! OCRA
l leng'a(e de progra%aci/n S.=.L. &acilita 'n con('nto de &'nciones aplicables a la &ec.a- )'e
per%iten por e(e%plo e0traer a partir de 'n dato tipo &ec.a al d3a del %es o de la se%ana as3 co%o
con+ertir 'na e0presi/n en tipo &ec.a.
DATE (expr)
Con+ierte 'na e0presi/n en &or%a de car$cter o col'%na n'%2rica en 'n +alor de tipo &ec.a.
SLCT !AT 4;M;MT75
OROM no%bre tabla
DAY (fecha)
!e+'el+e el d3a del %es de la col'%na &ec.a.
SLCT !A" 4&ec.a pedido5
OROM no%bre tabla
MONTH (fecha)
!e+'el+e el %es de la e0presi/n &ec.a
SLCT MO:TR 4&ec.a pedido5
OROM no%bre tabla
WEEKDAY (fecha)
!e+'el+e el d3a de la se%ana de la e0presi/n &ec.a.
SLCT QK!A" 4&ec.a pedido5
OROM no%bre tabla
YEAR (fecha)
!e+'el+e el a>o de la e0presi/n &ec.a.
SLCT "AR 4&ec.a pedido5
OROM no%bre tabla
MDY (Exp1, Exp2, Exp3)
Con+ierte las 3 e0presiones en 'n +alor de &ec.a. Las e0presiones deben de ser n'%2ricas y de
tipo entero y li%itadas a +alores entre ; y ;< para la ;C e0presi/n y entre ; y 3; para la <C e0presi/n.
SLCT MB" 4;,4-TD5 nos saldr$ 4M;.M4.;TTD5
;4
AGRUPACIN DE DATOS:
S.=.L. per%ite agr'par las l3neas de datos )'e tengan +alores co%'nes- las col'%nas
representan 'no o +arios no%bres de col'%nas separados por co%as y )'e deben obligatoria%ente
&ig'rar en la lista de selecci/n de la cl$'s'la SLCT. Se p'ede ree%pla*ar los no%bres de las
col'%nas por 'n entero )'e indi)'e s' posici/n relati+a.
Contar todos los clientes clasi&icados por ci'dad.
SLCT CO#:T 4S5- ci'dad
OROM clientes
8RO#B B" c'idadH
Listar el n'%ero de l3neas por cada pedido
SLCT CO#:T 4S5- n[pedido
OROM pedidos
8RO#B B" n[pedidoH
7is'ali*ar el i%porte de cada pedido.
SLCT :#MBR- S#M 4precioScantidad5
OROM lineaYpedido
8RO#B B" ;H
CO:!ICIO:S ! COMBOSICIO:
#na co%posici/n es 'n enlace entre dos tablas )'e dispongan al %enos de 'na col'%na en
co%An- la operaci/n de co%posici/n consiste en crear 'na tabla te%poral co%p'esta por las l3neas
de a%bas tablas )'e satis&agan la condici/n.
Formato SLCT lista de col'%nas
OROM lista de tabla
QRR condici/nH
C'ando en dos tablas )'e +as a co%parar
Ejemplo .ay 'na de ellas )'e la )'ieres +er y tienes )'e especi&icar de )'e tabla es
SLCT no%bre-ape;-ape<- clientes.idcliente- &ec.apedido
OROM clientes- pedidos
QRR clientes.idclienteUpedidos.idclienteH
TIBOS ! :LACS o #:IO:S
;. Equicomposicin1 es 'na co%posici/n donde la condici/n es 'na co%paraci/n de ig'aldad
entre dos col'%nas de di&erentes tablas.
<. Thetacomposicin: es 'na co%posici/n donde la condici/n es 'na co%paraci/n de < col'%nas
'tili*ando 'n operador distinto al de ig'aldad.
3. Composicin externa1 es 'na co%posici/n )'e &a+orece 'na tabla con respecto a otra as3 las
l3neas de la tabla do%inante ser$n seleccionadas a'n)'e la condici/n no se .aya c'%plido.
;D
UNION DE SENTENCIAS:
S.=.L. per%ite la &'si/n de datos pertenecientes a +arias sentencias SLCT &or%'ladas
sobre 'na o +arias tablas- 'na condici/n esencial para e&ect'ar esto es la necesidad de la %is%a lista
de selecci/n.
B'ede a s' +e* incl'ir 'na col'%na de ordenaci/n y debe si se codi&ica obligatoria%ente
.acer re&erencia a 'na posici/n relati+a de la lista de col'%nas.
SLCT ?lista de col'%nas@
#:IO: 4ALL5
SLCT ?lista de col'%nas@
OR!R B"
ejemplo
tene%os dos tablas clientes y clien.santander )'ere%os +is'ali*ar las dos tablas a la +e*.
SLCT ape;- ape<- no%bre
OROM clientes
#:IO:
SLCT ape;-ape<-no%bre
OROM clien.santander
OR!R B" ;H
I:SRCI9: ! !ATOS
La inserci/n de n'e+os datos se .ace con dos tipos de sentencias- 'na per%ite la inserci/n de
datos pro+enientes del %'ndo e0terior y otra per%ite la inserci/n de datos entre tablas.
1. Insercin datos del exterior:
I:SRT I:TO ?no%bre tabla@ I4?lista col'%nas@5K
7AL#S 4datos de las col'%nas %etidos por orden5
ejemplo
I:SRT I:TO clientes
7AL#S 4D.@6orge@-@!ia*@-@Cabe*as@....5H
2. Insertar datos entre tablas:
I:SRT I:TO ?no%bre tabla@ I4lista col'%nas5K
Sentencia SLCT
La sentencia SLCT debe recoger el %is%o n [ de col'%nas )'e se .an especi&icado en la
lista de col'%nas si esta est$ e0pl3cita o el %is%o n[ de col'%nas especi&icadas en la creaci/n de
la tablas si esta se .a o%itido.

;E
La sentencia SLCT no p'ede contener 'na cl$'s'la OR!R B" ni 'na cl$'s'la I:TO
TMB.
ejemplo
Copiar todos los clientes )'e sean de Santander de la tabla clientes a la tabla CliYsantander.
I:SRT I:TO cliYsantander 4idcliente-no%bre5
SLCT idcliente-no%bre
O
S
OROM clientes
QRR ci'dadU@santander@H
MO!IOICACI9: ! !ATOS
S.=.L. per%ite %odi&icar los datos e0istentes en c'al)'iera de los registros e0istentes1
#B!AT no%bre tabla
ST no%bre col'%naU0pr-...
IQRR condici/nK
ejemplos
A'%entar en 'nDX el p'nitario de %is art3c'los c'ando p'nitario sea %enor de ;MMM.
#B!AT art3c'los
ST p'nitarioUp'nitarioS;.MD
QRR p'nitarioV;MMMH
BORRA!O ! !ATOS
!LT OROM no%bre tabla
IQRR condici/nK
ejemplo
Borrar al cliente n[ 3
!LT OROM clientes
QRR idclienteU3H
JTR#CT#RA ! #: ARCRI7O ! OORMATOS
#n &or%ato p'ede ser %onotabla o %'ltitabla dependiendo de las tablas a las )'e .ace re&erencia
pero en a%bos casos est$ co%p'esto obligatoria%ente de1
;. !ATABAS
<. SCR:
3. TABLS
4. ATTRIB#TS
D. Instr'ctions esta secci/n no es obligatoria es 4opcional5.
;7
;. DATABASE: per%ite especi&icar el no%bre de la base de datos donde est$ especi&icado el
&or%ato- es obligatoria.
!ATABAS gesti/n IQITRO#T :#LL IMB#TK
ISCR: SI\ <4 B" NMK
I:!K
<. SCREEN: !escribe el aspecto e0terno del &or%ato- es decir- la &or%a co%o +a a %ostrase
d'rante la e(ec'ci/n- cada oc'rrencia de la palabra SCR: se corresponde con la descripci/n
de 'na p$gina y todo lo )'e est$ entre las dos lla+es constit'ye el aspecto de la pagina.
C'ando todas las p$ginas se .an especi&icado se acaba la secci/n con la palabra :!.
SCR:
]YYYYY A)'3 se ponen los
^YYYYY ca%pos de las tablas
:!
3. TABLES: en esta secci/n se indican las tablas 'tili*adas en el &or%ato p'ede contener 'no o
+arios no%bres de tablas dependiendo de si el &or%ato es %o%otabla o %'ltitabla. Ter%ina
opcional%ente con la palabra :!.
TABLS
Clientes
Art3c'los
:!
4. ATTRIBUTES: tiene 'n doble co%etido1
s per%itir reali*ar 'n enlace entre los ca%pos designados en la secci/n TABLS.
!eter%inar las caracter3sticas o atrib'tos de cada ca%po. stas caracter3sticas se re&ieren a1
Introd'cci/n obligatoria ' optati+a de datos en 'n ca%po.
Lista de +alores aceptables.
7alor por de&ecto.
Mensa(es de ay'da.
Con+ersi/n a'to%$tica de 'na cadena de caracteres en %ayAsc'las o %inAsc'las.
sta secci/n de especi&icaciones de ca%po. Cada 'na de estas especi&icaciones describe 'no de los
ca%pos de la secci/n SCR:. n orden de la aparici/n de las especi&icaciones en esta secci/n
deter%ina el orden de despla*a%iento del c'rsor d'rante la e(ec'ci/n del &or%ato.
Attrib'tes
Identi&icador de ca%po U identi&icador de col'%na- ILista de Atrib'tosKH
Identi&icador de ca%po OMMM- &MM;- &MM<- ...
;N
Identi&icador de col'%na tabla.col'%na e(. Clientes.idcliente
Lista de atrib'tos Se p'eden poner tantos co%o se )'ieran.
IA K
AU display only T"B CRAR 4IT5- RSR7H
SBCIOICACIO: ! ATRIB#TOS
;. AUTONEXT: I%plica )'e d'rante la e(ec'ci/n del &or%ato el c'rsos pasa a'to%$tica%ente al
ca%po sig'iente c'ando se llena el ca%po act'al.
Se 'tili*a c'ando1
l ca%po tenga sie%pre la %is%a longit'd.
C'ando el ca%po est$ partido.
OMM7 U clientes.codpostal- A#TO:JTH
<. COMMENTS: Ber%ite especi&icar 'n %ensa(e de ay'da )'e ser$ %ostrado c'ando el c'rsor se
posiciona sobre el ca%po d'rante la e(ec'ci/n del &or%ato.
OMM7 U clientes.codpostal- COMM:TS U @introd'cir c/digo postal@- A#TO:JTH
3. DEFAULT: Ber%ite atrib'ir 'n +alor por de&ecto a 'n ca%po. Se 'tili*a con los ca%pos )'e
p'eden tener 'n +alor probable.
OMM7 U clientes.ci'dad- !OA#LT ?SA:TA:!R@- A#TO:JT- COMM:TS U ?introd'cir la
ci'dad@H
4. VPSHIFT: S/lo se per%ite en los ca%pos de tipo car$cter y trans&or%a a'to%$tica%ente todos
los caracteres en %ayAsc'las.
OMM7 U cliente.ci'dad- !OA#LT ?SA:TA:!R@- A#TO:JT- COMM:TS U ?introd'cir la
ci'dad@- 7BSRIOTH
D. DOWNSHIFT: S/lo para datos de tipo car$cter y per%ite trans&or%ar a'to%$tica%ente todos
los caracteres a %inAsc'las.
OMM7 U cliente.ci'dad- !OA#LT ?SA:TA:!R@- A#TO:JT- COMM:TS U ?introd'cir la
ci'dad@- !OQ:SRIOTH
E. REQUIRED: .ace )'e la entrada de datos sea obligatoria- no se p'ede 'tili*ar con el atrib'to
!OA#LT.
7. NOENTRY: s 'tili*ado para i%pedir la entrada de datos en 'n ca%po- esta pro.ibici/n s/lo se
aplica en el caso de a>adir n'e+as l3neas- es a %en'do 'tili*ado con el atrib'to !OA#LT y est$
aplicado por de&ecto a los ca%pos de tipo SRIAL.
;T
N. NOUPDATE: I%pide la %odi&icaci/n de los datos del ca%po )'e lle+en el atrib'to asociado
c'ando se e(ec'te 'n &or%ato en %odo de act'ali*aci/n. :o i%pide la entrada de datos en %odo
inserci/n y es la poci/n to%ada por de&ecto en los ca%pos de tipo SRIAL.
T. RESERVE: La especi&icaci/n de este atrib'to entra>a la aparici/n del ca%po en +3deo
in+ertido- tiene e&ecto en las c'atro &'nciones del generador de &or%atos.
;M. RIGHT: ste atrib'to entra>a la ('sti&icaci/n a la derec.a de los datos introd'cidos en %odo
adici/n o %odi&icaci/n- s/lo es aplicable en los datos de tipo CRAR.
;;. ZEROFILL: Se 'tili*a para ('sti&icar los datos n'%2ricos a la derec.a y co%pletar el resto del
ca%po a ceros.
;<. INCLUDE: n ciertos ca%pos se debe no a'tori*ar la entrada %$s )'e de ciertos +alores
conocidos. ste atrib'to per%ite %ediante 'na lista de +alores c'%plir este ob(eti+o.
I:CL#! U 4;MM TO 4MM5
;3. VERIFY: 7eri&ica la correcta introd'cci/n de 'n dato para ello obliga a repetirlo < +eces.
;4. FORMAT: Se 'tili*a para los ca%pos de tipo !CIMAL- OLOAT- SMALLOLOAT y de tipo
!AT. La cadena de caracteres es 'na serie de signos _ y e+ent'al%ente 'n p'nto deci%al si es
necesario el n'%ero es redondeado antes de s' +is'ali*aci/n.
OORMATU ?cadena de caracteres@
OMM;U clientes.art3c'los- OORMAT U ?___._@
Bara los ca%pos de tipo &ec.a se 'tili*an los sig'ientes s3%bolos1
M%1 :'%ero del %es en dos ci&ras. 4;,;<5
M%%1 Abre+iat'ra del no%bre del %es. 4escribirla en ingles5.
!d1 :'%ero en el d3a del %es en < ci&ras. 4;,3;5.
!dd1 Abre+iat'ra del no%bre del d3a. 4escribirla en ingles5.
"y1 l a>o con dos ci&ras.
"yyy1 l a>o con c'atro ci&ras.
Se p'eden co%binar estos s3%bolos con el espacio en blanco y los caracteres especiales 4 `- F- ,5.
(. OMM;Upedidos.&pedido- OORMAT U ?s3%bolos@
;D. PICTURE: Tiene 'n e&ecto si%ilar a atrib'to &or%at- pero se 'tili*a para los ca%pos tipo
CRAR. La cadena de caracteres est$ co%p'esta por los caracteres ?A- _- J@- espacios en
blanco@ y caracteres especiales ?F- ,- 1- H@.
A1 #na letra c'al)'iera de la A,\- %inAsc'las y %ayAsc'las.
_1 Representa 'n d3gito c'al)'iera M,T.
J1 #n car$cter c'al)'iera.
OMM; U clientes.tel2&ono- BICT#RU ?4___5______@.
n pantalla saldr$
I4 5 K
<M
FORMATOS MULTITABLA:
A %en'do es necesario %anip'lar datos pro+enientes de %$s de 'na tabla- a estos &or%atos
se los deno%ina &or%atos %'ltitabla. Las tablas )'e constit'yen dic.os &or%atos deben pertenecer
obligatoria%ente a la %is%a base de datos.
8eneral%ente las tablas de 'n &or%ato %'ltitabla est$n relacionados entre s3- el enlace entre
las tablas de 'n &or%ato se reali*a con la ay'da de la noci/n ca%po co%An y la relaci/n %aestro
detalle.
#n ca%po co%An es 'n ca%po del &or%ato )'e se corresponde con col'%nas de di&erentes
tablas- para establecer esta relaci/n se describen 3 tipos di&erentes de enlace1
;. nlace si%ple o de co%posici/n.
<. nlace de +eri&icaci/n.
3. nlace de re&erencia.
1. Enlace simple o de composicin:
Bara precisar este tipo de enlace es necesario de&inir el ca%po de enlace y las col'%nas
asociadas en la secci/n de atrib'tos.
Identi&icador de ca%poU col'%na;Ucol'%na<H
sto signi&ica )'e al ca%po designado por identi&icador de ca%po ser$n asociadas las dos
col'%nas pertenecientes a < tablas di&erentes. C'ando 'n +alor se introd'ce en este ca%po sera
atrib'ida si%'lt$nea%ente a las < col'%nas.
OMMMUclientes.idclienteUpedido.idclienteH
2. Enlace de verificacin:
Mediante el atrib'to I:CL#! es posible i%poner 'na lista o inter+alo de +alores
aceptables para 'na col'%na dada. sta posibilidad no sie%pre es s'&iciente por)'e la lista de los
+alores aceptables es din$%ica y pro+iene de 'na tabla. Bara especi&icar 'n enlace de +eri&icaci/n se
especi&ica el no%bre del ca%po- la col'%na )'e +a a recibir el +alor a introd'cir y la col'%na con la
)'e ser$ reali*ada la +eri&icaci/n.
Identi&icador de ca%poUcol'%na;UScol'%na de +eri&icaci/nH
OMM;UlineaYpedido.idart3c'loUSart3c'los.idart3c'loH
3. Enlace de referencia:
ste enlace per%ite %ostrar los datos )'e tengan relaci/n con a)'ellos )'e acaban de
introd'cirse con el ca%po. A s' +e* ta%bi2n es posible +eri&icar la e0istencia de ese dato. Bara
de&inir 'n enlace de este tipo .ace &alta especi&icar en pri%er l'gar el ca%po de la col'%na- )'e
ser$ 'tili*ado co%o base de bAs)'eda- a contin'aci/n y para ca%po de re&erencia la col'%na de
re&erencia corresponde y a la col'%na )'e nos per%ita .acer el enlace.
<;
Identi&icador de ca%poUcol'%na,base
LOOK#B ca%po de re&erenciaUcol'%na de re&erencia
6OI:I:8 ISK col'%na de enlaceH
INSTRUCTIONS:
s la sec'encia opcional- co%ien*a con la palabra cla+e I:STR#CTIO: y ter%ina con :!
y per%ite las sig'ientes opciones.
;. legir co%o deli%itadores de ca%po otros distintos de los de por de&ecto.
<. !e&inir las relaciones %aestro detalle en las &or%as %'ltitabla.
3. !e&inir blo)'es de control )'e per%itan e(ec'tar ciertas acciones sobre los ca%pos a
contin'aci/n de 'n s'ceso dado.
1. Eleccin de delimitadores:
I:STR#CTIO:S
!LIMITRS ?J"@
Con esta opci/n pode%os ca%biar los deli%itadores1
J1 corresponde al deli%itador de apert'ra del ca%po. (. 4
"1 corresponde al deli%itador de cierre del ca%po. (. 5
Son per%itidos a'n)'e no aconse(ados los espacios en blanco.
2. Definicin de las relaciones maestro detalle:
#na relaci/n %aestro detalle o principal sec'ndaria entre dos tablas de 'n %is%o &or%ato
per%iten %anip'larlas con('nta%ente- esto es Atil en el caso en el c'al a 'na l3nea de 'na tabla le
corresponda 'n con('nto de l3neas de otra tabla. La ;C tabla es lla%ada %aestra o principal y la
seg'nda tabla detalle o sec'ndaria. Bara establecer este tipo de relaciones es necesaria la e0istencia
de 'n ca%po de enlace entre las tablas. #na tabla %aestro p'ede tener +arias tablas de detalle
%ientras )'e 'na tabla de detalle s/lo p'ede tener 'na tabla %aestra.
:!
I:STR#CTIO:S
!LIMITRS ?4 5@
Tabla %aestra MASTR OO tabla detalle
3. Generalidades de los bloques de control:
Los blo)'es de control per%iten de&inir acciones )'e ser$n e%prendidas d'rante la e(ec'ci/n
del &or%ato- desp'2s de la reali*aci/n de 'n s'ceso dado. stas acciones p'eden ser e(ec'tadas antes
o desp'2s de dic.o s'ceso- para indicar esto 'tili*a%os las palabras reser+adas1
BOOR1 antes.
<<
AOTR1 desp'2s.
BOOR P AOTR
Lista de s'cesos OO lista de col'%nas o tablas
Acci/n ;
Acci/n <
Listas de s'cesos1
;. !ITA!!
<. !IT#B!AT
3. RMO7
4. !ISBLA"
D. A!!
E. #B!AT
7. =#R"
EDITADD inserta datos nuevos EDITUPDATE modifica datos:
Corresponden a la entrada o %odi&icaci/n de datos en 'na tabla- per%iten e(ec'tar 'na serie
de acciones antes o desp'2s de la entrada de datos en 'n ca%po o en 'na tabla en %odo de entrada o
%odo de act'ali*aci/n.
Bara estos dos tipos de s'cesos se disting'en los sig'ientes casos1
;. La lista de tablas o col'%nas s/lo contiene no%bres de col'%nas.
Si el blo)'e es de tipo BOOR las acciones ser$n e(ec'tadas desde )'e el c'rsos est$ sit'ado
sobre el ca%po correspondiente a la col'%na.
BOOR !ITA!! OO no%bre- ape;
BOOR !ITA!! !IT#B!AT OO no%bre- ape;
Si el blo)'e es de tipo AOTR las acciones ser$n e(ec'tadas desp'2s de acti+ar la tecla de
retorno. Los controles &i(ados para los atrib'tos son e(ec'tados antes de las acciones.
<. La lista de tablas o col'%nas s/lo contiene tablas
Si el blo)'e es de tipo BOOR las acciones ser$n e(ec'tadas antes de )'e ningAn dato sea
introd'cido en el &or%ato.
BOOR !ITA!! OO clientes
,,,
,,,
BOOR !IT#B!AT OO clientes
<3
Si el blo)'e es de tipo AOTR las acciones ser$n e(ec'tadas c'ando todos los ca%pos .ayan
sido introd'cidos pero antes de insertar la l3nea en la tabla.
REMOVE: (borrar)
Ber%ite e(ec'tar las acciones antes o desp'2s de la s'presi/n de 'na l3nea en 'na
tabla- no se aplica %$s )'e a tablas.
(. I:STR#CTIO:S
!LIMITRS ?4 5@
Bedidos MASTR OO LYpedidos
AOTR !ITA!! !IT#B!AT OO cantpedida
LT C;UOMMNScantped +is'ali*ar en c;
AOTR RMO7 OO pedidos
COMM:TS ?no ol+idarse borrar s's correspondientes l3neas@
DISPLAY:
Corresponde a la salida de datos sobre pantalla con 'na de las opciones BROORM- no se
aplica %$s )'e a tablas y no p'ede estar precedido %$s )'e de la palabra cla+e AOTR.
AOTR !ISBLA" OO clientes
QUERY:
Corresponde a la cons'lta de 'na tabla- per%ite e(ec'tar las acciones desp'2s del e%pleo de
la opci/n =#R". :o se aplica %$s )'e a tablas y no p'ede estar precedido %$s )'e de la palabra
cla+e AOTR.
ATOR =#R" RMO7 OO clientes
LT C;UOMM;SOMM<
ADD:
Corresponde a la inserci/n de 'na l3nea en 'na tabla- per%ite e(ec'tar acciones desp'2s del
e%pleo de la opci/n A!! del %enA de BROORM- no se aplica %$s )'e a tablas y no p'ede estar
precedido %$s )'e de la palabra cla+e AOTR.
La di&erencia entre este s'ceso y el s'ceso !ITA!! es )'e para el pri%ero las acciones
ser$n e(ec'tadas desp'2s de la inserci/n de datos en la tabla- %ientras )'e para el seg'ndo las
acciones son e(ec'tadas antes de la inserci/n de datos en la tabla.
Se visualizar despus de que haya
AOTR !ITA!! OO clientes rellenado todos los datos de la tabla
COMM:TS ?cliente dado de alta@ pero antes hay que dar ESC.
AOTR A!! OO clientes se ejecuta despus de dar
COMM:TS ?cliente dado de alta@ ESC.
<4
UPDATE:
Corresponde a la %odi&icaci/n de 'na l3nea en 'na tabla- per%ite e(ec'tar acciones desp'2s
del e%pleo de la opci/n #B!AT- no se aplica %$s )'e a tablas y no p'ede estar precedido %$s )'e
de la palabra cla+e AOTR. La di&erencia entre el s'ceso #B!AT y !IT#B!AT es se%e(ante a
la e0istente entre A!! y A!ITA!!.
ACCIONES DE BLOQUE DE CONTROL:
Se p'eden de&inir en D tipos de acciones1 S ditadd
;. !espla*a%iento del c'rsor 4:JTOIL!5 S dit'pdate
<. 7is'ali*aci/n de 'n %ensa(e 4COMM:TS5.
3. Asignaci/n de 'n +alor a 'n ca%po 4LT5.
4. Alternati+a entre < opciones 4IO a TR: a LS5.
D. An'laci/n de las Alti%as %odi&icaciones y retorno al %enA.
1. Desplazamiento del cursor (NEXTFIELD):
Bor de&ecto el despla*a%iento del c'rsor sig'e el %is%o orden )'e el de los ca%pos en la
secci/n de atrib'tos. La acci/n :JTOIL! per%ite %odi&icar este orden y &or*ar al c'rsor a pasar
a 'n ca%po dado- esta acci/n no es 'tili*able %$s )'e con los s'cesos !ITA!! y !IT#B!AT.
S' &or%ato es1
:JTOIL!Uno%bre.ca%po IJIT:OQK
Exitnow: &'er*a a ter%inar la operaci/n en c'rso 4inserci/n o %odi&icaci/n y desp'2s retornar al
%enA principal.
(.1 !esp'2s de a>adir en el ca%po cantidad ir a ca%po &MM4.
AOTR !ITA!! OO cantidad
:JTOIL!UOMM4
2. Visualizacin de un mensaje (COMMENTS)
Ber%ite %ostrar 'n %ensa(e sobre la l3nea de estado- s' sinta0is es la sig'iente.
COMM:TS IBLLK IR7RSK ?%ensa(e@
(. BOOR RMO7 OO co%pras
COMM:TS BLL ?debe borrar...@
:JTOIL!UOMM;
3. Asignacin de un valor a un campo (LET).
<D
Ber%ite asignar 'n +alor si%ple o el res'ltado de 'na e0presi/n a 'n ca%po del &or%ato- el
ca%po p'ede ser 'n ca%po de solo salida ?!ISBLA"O:L"@ o c'al)'ier ca%po de la tabla acti+a.
Se p'ede 'tili*ar para atrib'ir +alores en 'n ca%po con el atrib'to :O :TR".
La sinta0is es la sig'iente1
LT ca%poUJBRSI9:.
. AOTR !ITA!! !IT#B!AT OO cantidad
LT c;U&MM7 S c<
#na e0presi/n p'ede ser1
#n identi&icador de ca%po1 4LT c;U&MM35.
#na constante incl'yendo TO!A" para la &ec.a act'al 4LT c;U;TTD5 o 4LT c;UTO!A"5.
Bara eso C; lo .e tenido )'e .aber descrito co%o ca%po tipo !AT.
#na &'nci/n de con('nto de la &or%a. 4LT c;UO#:CTIO: OO ca%po5
O#:CTIO:S1
S A78
S MAJ
S MI:
S CO#:T
S TOTAL
4. Alternativa entre 2 opciones (IF - THEN - ELSE)
Ber%ite e(ec'tar acciones en &'nci/n del contenido de ciertos ca%pos.
S' &or%ato es1
IO condici/n TR: accion; ILS accion<K.
La condicin: p'ede estar &or%'lada 'tili*ando los operadores 4U- V- W- VW- VU- WU5. Ade%$s de los
operadores l/gicos 4A:!- OR- :OT5 y los operadores 4IS :#LL- IS :OT :#LL5.
Las acciones: p'eden ser ele%entales o co%p'estas. n este seg'ndo caso debe de estar precedidas
por la palabra cla+e B8I: y ter%inar en :!.
(. Ca%po cantidadU&M3
AOTR !ITA!! !IT#B!AT OO cantpedida
IO OMM3 IS :#LL TR: :JTO#L!UOMM3
IO OMM3 IS :#LL TR: B8I:
COMM:TS ?no p'ede estar +ac3o el ca%po@
:JTOIL!UOMM3
:!
LS LT C;UOMM3 S C<
5. Anulacin de las ltimas modificaciones y retorno al men (ABORT)
<E
Ber%ite an'lar la acci/n en c'rso y retornar al %enA sin %odi&icar la tabla. Ber%ite an'lar la
inserci/n- %odi&icaci/n y s'presi/n )'e est2 en tr$%ite de reali*ar. Sola%ente se +a a poder 'tili*ar
con 3 s'cesos1
!ITA!!
!IT#B!AT
RMO7
(. BOOR RMO7 OO lineapedido
ABORT
BOOR !ITA!! !IT#B!AT OO lineapedido
ABORT
LISTADOS:
Secciones )'e pode%os 'tili*ar en el listado1
S !ATABAS
!OI:
I:B#T
O#TB#T
S SLCT
S OORMAT
SSon obligatorias.
DATABASE:
s obligatoria- sir+e para indicar el no%bre de la base de datos para la c'al se de&ine el
in&or%e. Co%o todas las de%$s secciones ter%inan con la palabra reser+ada :!.
l &or%ato de la secci/n es el sig'iente1
!ATABAS
:o%bre de la base de datos
:!
DEFINE:
Ber%ite de&inir los par$%etros 4+alores )'e se dan en el %o%ento de e(ec'tar la +ariable5 y
+ariables 'sadas en 'n in&or%e. Los par$%etros per%iten especi&icar +alores c'ando se to%a la
e(ec'ci/n del in&or%e a partir del Siste%a Operati+o. :o es posible 'sarolos desde el %enA de
S.=.L.
Las +ariables se 'tili*an para per%itir la entrada interacti+a de ciertos +alores- en el c'rso de
la e(ec'ci/n de in&or%e.
l &or%ato de de&inici/n de +ariables es el sig'iente1
!OI:
<7
7ARIABL I;K no%bre.tipo de datos
BARAM I;K no%bre.tipo de dato
Las +ariables y los par$%etros no p'eden ser de tipo SRIAL.
INPUT:
Secci/n opcional est$ estrec.a%ente ligada a la secci/n !OI:- dado )'e per%ite
introd'cir los +alores a las +ariables- consiste en in+itar al 's'ario a introd'cir 'n +alor )'e ser$
asignado a la +ariable. Bara .acer esto se %'estra 'n %ensa(e para indicar sobre el +alor a introd'cir.
l &or%ato es el sig'iente1
I:B#T
BROMBT OOR +ariable #SI:8 ?%ensa(e@
:!
(.
IMB#T
BROMBT OOR &ec.alistado #SI:8 ?introd'*ca &ec.a@
:!
OUTPUT:
s opcional- per%ite &i(ar las di%ensiones de 'na p$gina del listado as3 co%o el %edio de
salida- consta de las sig'ientes cl$'s'las1
TOP MARGIN n: Margen s'perior 4por de&ecto to%a +alor 35.
: n'%ero de l3neas al co%ien*o de la p$gina )'e %e de(e libres.
BOTTOM MARGIN n: Margen in&erior 4por de&ecto to%a +alor 35.
LEFT MARGIN n: Margen i*)'ierdo 4+alor por de&ecto D5
RIGHT MARGIN n: Margen derec.o 4+alor por de&ecto ;3<5
PAGE LENGTH n: Longit'd de la p$gina 4+alor por de&ecto EM5.
Por donde queremos que salga el listado
RBORT TO IBRI:TRP ?no%bre &ic.ero@K Ipor o%isi/n sale s/lo por pantallaK
Sale a la +e* por pantalla e i%presora.
:!
SELECT:
sta secci/n obligatoria per%ite de&inir los datos del in&or%e precisando las tablas- las
col'%nas- las condiciones y el orden de selecci/n e+ent'al.
<N
C'ando se 'tili*a la cl$'s'la OR!R B" no est$ per%itido la cali&icaci/n de las col'%nas-
si el no%bre de la col'%na no es s'&iciente para aseg'rar la identi&icaci/n Anica de la %is%a s2 dbe
asociar 'n alias a esta col'%na y 'tili*arlo posterior%ente en la cl$'s'la OR!R B".
(.
SLCT 0.idcliente identi&icaci/n- no%bre- npedido
OROM clientes.0- pedidos.y
QRR 0.idcliente U y.idcliente
OR!R B" identi&icaci/n- npedido
:!
FORMAT:
Secci/n obligatoria per%ite &i(ar la &or%a y el aspecto del in&or%e- es a)'3 donde se
especi&ica c'ales de los datos seleccionados en la secci/n SLCT ser$n presentados en el in&or%e.
sta presentaci/n consiste en1
;. !e&inir el contenido de la cabecera de la ;C p$gina y de las otras p$ginas del in&or%e.
<. !e&inir el contenido del Bie de p$gina.
3. !e&inir el contenido y la &or%a de cada l3nea del in&or%e.
4. !e&inir lo )'e ser$ %ostrado antes y o desp'2s de cada gr'po de l3neas.
sta secci/n tiene dos &or%atos1
l ;[ se le atrib'ye por de&ecto y per%ite presentar todas las col'%nas seleccionadas en la
secci/n SLCT- s' sinta0is es1
OORMAT
7R" ROQ
:!
l <[ &or%ato de esta secci/n es el %$s 'tili*ado ya )'e per%ite el &or%ateo de los datos de
salida. B'ede soportar las sig'ientes cl$'s'las1
OORMAT
OIRST BA8 RA!R
BA8 RA!R
BA8 TRAILR
O: 7R" ROQ 4es obligatoria5
O: LAST ROQ
BOOR 8RO#B OO
AOTR 8RO#B OO
:!
First page header: especi&icaci/n de la cabecera de la ;C p$gina- c'ya sinta0is es1
<T
OIRST BA8 RA!R 4acci/n5 es 'na instr'cci/n o serie de instr'cciones )'e per%ite i%pri%ir
general%ente el t3t'lo del in&or%e.
OORMAT
OIRST BA8 RA!R
BRI:T col'%n D- ?listado de clientes@
col'%n EM- &ec.a.listado
Page header: especi&icaci/n de la cabecera de cada p$gina- la cl$'s'la per%ite especi&icar el
contenido de la cabecera de cada p$gina- sal+o la ;C si se .a de&inido la cl$'s'la OIRST BA8
RA!R.
S' sinta0is es1
BA8 RA!R acci/n
Page trailer: especi&icaci/n del pie de p$gina- es general%ente 'sada para poner el nA%ero de
p$gina.
S' sinta0is es1
BA8 TRAILR acci/n c'enta el n[ de p$gina
&ec.a
BRI:T col'%n EM- BA8:O- col'%n 7M- TO!A"
On every row: 4es obligatoria5. La cl$'s'la O: 7R" ROQ per%ite especi&icar el contenido
de cada l3nea del in&or%e correspondiente a la secci/n de 'na l3nea de la tabla.
Las acciones de esta cl$'s'la son e(ec'tadas para cada l3nea del res'ltado de la sentencia
especi&icada en la cl$'s'la SLCT. Ber%ite &i(ar la &or%a y la disposici/n de cada 'no de los
+alores %ostrados.
Alg'nas de las col'%nas seleccionadas en la secci/n SLCT p'eden no ser %ostradas.
ON EVERY ROW accin no se ponen comillas para que salga el contenido de esos nombre.
BRI:T col'%n D- no%bre-
col'%n <M- ape;-
col'%n 4M- ape<-
col'%n EM- ci'dad-
On last row: per%ite especi&icar las acciones )'e ser$n e(ec'tados desp'2s de la salida de la
Alti%a l3nea del in&or%e.
8eneral%ente se 'tili*a para %ostrar los res'ltados de c$lc'los .ec.os sobre todo el in&or%e.
O: LAST ROQ acci/n
BRI:T col'%n <M- ?Total de pedidos@-
col'%n EM- TOTAL OO cantpedidaSprecio.
speci&icaci/n de la salida antes y desp'2s de cada gr'po.
C'ando la sentencia especi&icada en la secci/n SLCT contiene 'na cl$'s'la OR!R B"-
los datos %ostrados en el in&or%e ser$n agr'pados segAn las col'%nas dadas co%o arg'%ento en
esta cl$'s'la.
Las cl$'s'las BOOR- 8RO#B OO y AOTR 8RO#B OO per%iten e&ect'ar acciones
respecti+a%ente antes y desp'2s de cada gr'po de l3neas.
3M
Las acciones de la cl$'s'la BOOR 8RO#B OO son e(ec'tadas al inicio del in&or%e y cada
+e* )'e la col'%na dada co%o arg'%ento ca%bia de +alor.
BOOR 8RO#B OO no%bre SLCT no%bre- ape;- ape<- ci'dad
BRI:T col'%n ;M- ?pedidos clientes@ OROM clientes
col'%n EM- no%bre- QRR ci'dad U b pro+incia
col'%n 7M- ape;- OR!R B" no%bre
:!
Si se 'tili*a la cl$'s'la AOTR 8RO#B OO- las acciones ser$n e(ec'tadas cada +e* )'e la
col'%na asociada co%o arg'%ento en esta cl$'s'la ca%bie de +alor y al &inal del in&or%e.
Se 'tili*a a %en'do para %ostrar c$lc'los )'e se reali*an sobre 'n gr'po de l3neas.
AOTR 8RO#B OO npedido
BRI:T col'%n <M- ?Total del pedido@-
col'%n 4M- 8RO#B TOTAL OO cantpedSprecio
AOTR 8RO#B OO no%bre
BRI:T col'%n ;M- ?Total pedidos del cliente@-
col'%n 4M- 8RO#B OO cantpedSprecio
ACCIONES E1ECUTABLES EN UN INFORME:
l generador de in&or%es .ace- per%ite y e(ec'ta 'na gran +ariedad de acciones )'e p'eden
clasi&icarse en tres categor3as1
a5 Acciones de salida.
b5 0presiones de calc'lo
c5 str'ct'ras de control.
a) Acciones de salida.
l principal co%etido de 'n in&or%e es i%pri%ir los datos pro+enientes de la B. !e datos o
de c$lc'los e&ect'ados- esto se reali*a con la ay'da de la instr'cci/n BRI:T )'e s' &or%ato es1
BRI:T e0presi/nP col'%na nP n spacesP ascii n I'sing ?&or%ato@ P clipperK-...
Expresin: B'ede con+inar no%bre de col'%nas constantes- &'nciones y operadores arit%2ticos-
en el caso %$s nor%al la e0presi/n se red'ce a 'n no%bre de col'%na o a 'na constante.
O: 7R" ROQ
BRI:T no%bre
BRI:T ?no%bre@
Columna n: speci&ica )'e el pr/0i%o car$cter a describir se i%pri%ir$ en la col'%na n.
Contando a partir del %argen i*)'ierdo especi&icado en la secci/n O#TB#T.
BRI:T col'%n D- no%bre- col'%n 3M- ape;
3;
N spaces: ntra>a la salida de n espacios contando a partir de la col'%na act'al.
Ascii n: Ber%ite %ostrar 'n car$cter c'yo c/digo ascii es n- se 'tili*a para sacar caracteres de
control )'e per%itan %odi&icar el %odo de salida est$ndar 4s'brayado- registro- etc.5
ACTIVAR DESACTIVAR

NEGRITA ascii <7- ascii ET ascii<7- ascii 7M
SUBRAYADO ascii <7- ascii4D- ascii 4T ascii<7- ascii4D-
ascii4T
L. COMPRIMIDA ascii <7- ascii ;D ascii ;N
L. EXPANDIDA ascii ;4 ascii <M
Using: Ber%ite &or%atear la salida de 'n +alor n[ o tipo !AT- el &or%ato de salida se indica en
la cadena de caracteres )'e sig'e a la palabra cla+e #SI:8- esta cadena es 'na co%binaci/n de
+alores )'e p'eden estar &or%ados por los sig'ientes caracteres.
Tipo fecha: la %is%a co%binaci/n de caracteres )'e per%ita el generador de &or%atos1
dd- ddd- %%- %%%- yy- yyyy.
Valores n: 4L5- 4,5- 4H5- 4S5- 4_5- 4V5- 4c5.
(#): S'stit'ye 'na posici/n del ca%po n'%2rico )'e contenga ceros por espacios en blanco-
ade%$s per%ite indicar las posiciones )'e +an a oc'par en ese ca%po n'%2rico.
BRI:T col'%n 3M- n'%ero< #SI:8 ?__@
(+): Ber%ite %ostrar 'n signo 4L5 si el +alor es s'perior o ig'al a cero. #n signo 4,5 en caso
contrario.
BRI:T col'%n 3M- n'%ero< 'sing@L__@
(-): Se %ostrar$ este signo si el +alor es in&erior a cero- en caso contrario no se %ostrar$ nada.
(;): Se 'tili*an co%o separadores entre la parte entera y la parte deci%al de 'n nA%ero.
BRI:T col'%n ;E- precio #SI:8 ?____-__@
(`): S'stit'ye los blancos sit'ados a la i*)'ierda de 'n nA%ero. 4posiciones en blanco, ejemplo
un cheque)
BRI:T col'%n ;E- precio #SI:8 ?SS;.MMMSS
(): ste car$cter se %'estra a la i*)'ierda del nA%ero- lo %is%o )'e los signos 4L -,5.
(<): ste car$cter entra>a 'na ('sti&icaci/n del nA%ero a la i*)'ierda.
BRI:T col'%n ;E- precio #SI:8 ?VVV_@
3<
Clipped: Sit'ada a contin'aci/n de 'n no%bre de col'%na de tipo car$cter- per%iten la
i%presi/n de esta col'%na s'pri%iendo todos los espacios sit'ados a la derec.a .
Skip n LINES [ TO TOP OF PAGE] : Ber%ite saltar 'n gr'po de l3neas antes de escribir la
l3nea sig'iente.
n LINES: ntra>a 'n salto de 4n l3neas5 a partir de la l3nea act'al.
TO TOP OF PAGE: ntra>a 'n salto a la ;C l3nea de la p$gina sig'iente- esta opci/n no p'ede
ser 'sada ni en las cabeceras de p$gina ni en el pie de p$gina.
Need: n ciertos casos se desea )'e 'n gr'po de l3neas sea sacado en la %is%a p$gina- esta
acci/n per%ite c'%plir esa &'nci/n. S' &or%ato es el sig'iente1
:! n LI:S
Signi&ica )'e las 4n l3neas5 sig'ientes deben ser sacadas en la %is%a p$gina. Si el resto de la
p$gina act'al no es s'&iciente para albergar estas l3neas se pasa a la p$gina sig'iente
BOOR :! E lines 8RO#B OO id
BRI:T col'%n id- ?no%bre@
Pause: per%ite interr'%pir la salida del in&or%e ('sto .asta )'e se p'lsa la tecla :TR.
S' &or%ato es el sig'iente1
BA#S I?%essage@K
Message: s el te0to )'e se %'estra c'ando se e(ec'ta la acci/n- esta acci/n s/lo tiene e&ecto
c'ando la salida se .ace sobre la pantalla y per%ite e+itar 'na salida r$pida.
Print File: C'ando 'n te0to general%ente bastante largo se tiene )'e insertar en 'n in&or%e es
deseable escribir este te0to en 'n &ic.ero aparte y desp'2s incl'irle en el in&or%e.
l &or%ato es el sig'iente1
BRI:T OIL ?no%bre del &ic.ero@
O: 7R" ROQ
BRI:T col'%n ;M- ?Santander@-
TO!A" #SI:8 ?dd,%%,yy@
BRI:T col'%n ;M- no%bre- col'%n 3M- ape;- col'%n l DM- ape<
BRI:T col'%n ;M- direcci/n
Col'%n 4M- cod. Bostal
BRI:T OIL ?carta.cl@
33
EXPRESIONES DE CALCULO
Los datos )'e co%ponen 'n in&or%e p'eden ser de 3 tipos1
;. 7alores pro+enientes de la base de datos.
<. Constantes.
3. 7alores calc'lados.
stos Alti%os son los res'ltados de las e0presiones &or%'ladas en co%binaci/n con los
+alores pro+enientes de la Base de !atos- +ariables- constantes- operadores arit%2ticos y &'nciones.
stas e0presiones p'eden 'tili*arse bien con la opci/n BRI:T o con la acci/n LT- c'yo
&or%ato es el sig'iente1
LT +ariable U e0presi/n
La +ariable obligatoria%ente debe estar de&inida en la secci/n !OI:.
Los operadores arit%2ticos )'e se p'eden 'tili*ar son1
L- ,- S- F- SS
FUNCIONES MATEMTICAS:
l generador de in&or%es .AC dispone de ciertas &'nciones %ate%$ticas )'e per%iten
e&ect'ar c$lc'los tales co%o el TOTAL- la M!IA- MAJ.- MI:.- etc.
stas &'nciones p'eden aplicarse a todas las l3neas seleccionadas a 'n gr'po de ellas o a 'n
s'bcon('nto de l3neas )'e +eri&ican 'na condici/n dada.
l &or%ato de la 'tili*aci/n de estas &'nciones es el sig'iente1
I8RO#BK
ICO#:T P BRC:TK
ITOTAL P A78 P MI:. P MAJ. P OO JBRSI9:K
IQRR condici/nK
e(.
AOTR 8RO#B OO npedidos
BRI:T col'%n DM- ?Total Bedido@
BRI:T col'%n 7M- 8RO#B OO cantidadSprecio
#SI:8 ?VVVVV__-Btas.@
QRR npedidoU<
4el mismo pero de otra orma)!
AOTR 8RO#B OO idcliente
BRI:T col'%n DM- ?Total Cliente@-
Col'%n 7M- 8RO#B TOTAL OO cantidadSprecio
O: LAST ROQ
BRI:T col'%n 4M- ?Total 8eneral@
34
Col'%n EM- TOTAL OO cantidadSprecio
FUNCIONES DE MANIPULACIN DE FECHA:
DATE (expresin): con+ierte la e0presi/n en 'n +alor tipo !AT 4&ec.a5.
BRI:T col'%n ;M- !AT 4<N,M<,TN5
DAY (expresin): !e+'el+e el n'%ero del d3a del %es de la &ec.a dada co%o arg'%ento.
MONTH (expresin): !e+'el+e el n'%ero del %es de la &ec.a dada co%o arg'%ento.
YEAR (expresin): !e+'el+e 'n nA%ero representando el a>o de la &ec.a dada co%o
arg'%ento.
WEEKDAY (expresin): !e+'el+e 'n n'%ero entero correspondiente al d3a de la se%ana de la
&ec.a dada co%o arg'%ento. l M corresponde al do%ingo- el ; al l'nes- ...- y el E al s$bado.
VARIABLES PRE-DEFINIDAS:
Ade%$s de las +ariables de&inidas en la secci/n de&ine dispone%os de 'n cierto nA%ero de
ellas c'yo contenido es %odi&icado a'to%$tica%ente por in&or%es. l 's'ario no debe ni de&inir ni
asignar +alores a estas +ariables.
PAGENO: Contiene 2l n'%ero de p$gina act'al.
BA8 TRAILR
BRI:T col'%n 7M- BA8:O
#SI:8 ?pagina VV__@
LINENO: Contiene el n'%ero de la l3nea act'al en la p$gina.
TINE: Contiene la .ora act'al ba(o la sig'iente &or%a1
..1%%1ss
EXTRUCTURAS DE CONTROL:
Las acciones de&inidas en las di&erentes cl$'s'las de las acciones OORMAT se p'eden
e(ec'tar de 'n %odo sec'encial ba(o 'na condici/n dada o repetidas 'n cierto nA%ero de +eces.
La e(ec'ci/n sec'encial es la sec'encia nor%al de e(ec'ci/n- con ella las instr'cciones se
e(ec'tan segAn .an sido codi&icadas.
Con los di&erentes tipos de e(ec'ci/n debe%os de indicar las palabras cla+es1 4B8I:- :!5
para de&inir las acciones %Altiples.
Estructura condicional.
n ciertos casos es deseable e(ec'tar 'na acci/n o 'na serie de acciones c'ando 'na condici/n dada
se c'%ple- en otros casos la +eri&icaci/n de 'na condici/n- entra>a la e(ec'ci/n de 'n pri%er gr'po
3D
de acciones- %ientras )'e la no +eri&icaci/n de la condici/n entra>a la e(ec'ci/n de 'n seg'ndo
gr'po de acciones- se dice entonces )'e es 'na e(ec'ci/n condicional o alternati+a.
l &or%ato de la instr'cci/n )'e nos per%ite esta +eri&icaci/n de la condici/n es la sig'iente1
IO condici/n
TR: acci/n ;
LS acci/n <
!onde1
Accin: s 'na acci/n si%ple o 'na serie de acciones )'e ser$n e(ec'tadas c'ando la condici/n se
+eri&i)'e o no.
n el caso de 'na serie de acciones deben de estar deli%itadas por las palabras cla+es
4B8I:- :!5. Si 'na instr'cci/n de este tipo es 'tili*ada en 'na cabecera o 'n pie de p$gina y
tanto el c'%pli%iento o no de la condici/n lle+a la instr'cci/n BRI:T el %is%o nA%ero de l3neas de
salida deben de aparecer en cada 'na de las acciones.
(.
OIRST BA8 RA!R
IO co'ntUM
B8I:
BRI:T col'%n 3M- ?no e0isten pedidos@
SKIB < LI:S
:!
LS
B8I:
BRI:T col'%n<M- ?listado de pedidos@
SKIB < LI:S
:!
S4c'ando solo se .ace 'na instr'cci/n no .ace &alta poner 4begin end5 si son %$s de 'na .ay )'e
.acerlo5.
Estructura repetitiva:
l generador de in&or%es per%ite la e(ec'ci/n de 'na acci/n si%ple o 'na serie de acciones
'n n'%ero deter%inado de +eces o en tanto )'e 'na condici/n es +eri&icada.
stas posibilidades se o&recen con ay'da de las instr'cciones 4OOR- QRIL5.
El formato FOR:
OOR +ariable U +alor inicial TO +alor &inal ISTB incre%entoK
!O acci/n cuando es una sola acci"n
B8I:
3E
#uando hay ms Accion;
de una acci"n Accion<
:!
El formato WHILE:
QRIL condici/n
!O acci/n
B8I:
Accion;
Accion<
:!
TRANSACCIONES Y ACCESOS CONCURRENTES:
#na transacci/n es 'na 'nidad de l/gica de trata%iento )'e agr'pa 'n con('nto de
operaciones ele%entales- estas operaciones deben e(ec'tarse en con('nto o ning'na de ellas.
I:SRT I:TO l3nea pedido 7AL#S 4;MM.;-;<MM.3E5H
#B!AT art3c'los ST CA:STOCKUCA:STOCK a 3M QRR idart3c'loU<MMH
CREACION E INICIALIZACION DE UN DIARIO DE TRANSACCIONES:
#n diario de transacciones p'ede ser creado en el %o%ento de la creaci/n de la Base de
!atos.
CRAT !ATABAS no%bre.db& QITR LO8 I: ?:o%bre diario transacciones@H
C'ando tengo la base de datos ya creada y )'iero crear 'n diario de transacciones.
4antes de crear el diario es necesario )'e la base de datos
CLOS !ATABASH est2 cerrada.
STAR !ATABAS no%bre.db& QITR LO8 I: ?transacci/n@H
COMANDOS DE TRANSACCIONES:
B8I: QORK
Instr'cciones ;
? <
? 3
COMMIT QORK C'ando )'iero )'e las instr'cciones se e(ec'ten
ROLL BACK QORK C'ando no )'iero )'e se e(ec'ten las intr'cciones
CONTROL DE CONCURRENCIA:
37
In&or%i0 es 'n siste%a %'lti's'ario )'e per%ite a 'n n'%ero de 's'arios acceder al %is%o
tie%po a 'na base de datos. n estos casos y para e+itar operaciones con&licti+as In&or%i0 pre+ee 'n
control de conc'rrencia )'e son los sig'ientes1
;. Blo)'eo a ni+el de tablas.
<. Blo)'eo a ni+el de l3neas.
1. BLOQUEO DE TABLAS:
Con esta opci/n se per%ite i%pedir el acceso a los datos de 'na tabla a los de%$s 's'arios o
s/lo se les per%ite el acceso en %odo lect'ra. l co%ando para blo)'ear 'na tabla es el sig'iente.
LOCK TABL no%bre,tabla Los de%$s 's'ario no tienen ningAn acceso.
I: SRAR P JCL#SI7 MO!H
Modo co%partido los de%$s 's'arios p'eden leer.
Bara desblo)'ear la tabla el &or%ato es1
#:LOCK TABL no%bre,tablaH
2. BLOQUEO DE LINEAS:
Los blo)'eos de l3nea se obtienen %ediante el co%ando B8I: QORK si pre+ia%ente se .a
creado 'n diario de transacciones.
Cada l3nea de la tabla a&ectada en 'na transacciones est$ blo)'eada %ientras d'ra esa
transacci/n.
Los co%andos COMMIT QORK o ROLLBACK QORK liberan todos los blo)'eos de la
transacci/n. C'ando se 'tili*a indi+id'al%ente 'na instr'cci/n #B!AT- el blo)'eo de l3neas a las
)'e .aga re&erencia dic.a instr'cci/n es a'to%$tica%ente e&ect'ado por el siste%a.
COPIA DE SEGURIDAD DE LA BASE DE DATOS:
!ATABAS JCL#SI7
4copiar directorio base de datos en 'n directorio5.
TAR ,#7 gestion.dbs copiar todo en cinta
TAR a#7 transa copia diario transacciones
STAR !ATABAS no%bre QITR LO8 I: ?transa@
RECUPERAR BASE DE DATOS PARA ACTUALIZARLA:
Bara copiar de cinta a directorio.
TAR aJ7 gestion.dbs
TAR aJ7 .o%eFin&...Fgestion.dbs
ROLLOORQAR! !ATABAS gesti/n act'ali*a copia de base datos con diario transacciones
VISTAS:
3N
#na +ista es 'na tabla +irt'al )'e no tiene e0istencia &3sica co%o 'na tabla base a'n)'e es
percibida y tratada co%o si as3 &'era. Constit'ye 'na +entana sobre los datos de 'na o +arias tablas.
Bosee 'na de&inici/n an$loga al de 'na tabla y est$ al%acenada en el diccionario de datos
pero no tiene 'n arc.i+o &3sico )'e soporte los datos.
Creacin de Vistas:
CRAT 7IQ no%bre,lista I4Lista de col'%nas5K
AS
SLCT lista de selecci/n
IQITR CRCK OBCIO:K
La lista de col'%nas1 es opcional- pero se .ace obligatoria en el caso de presencia de
a%bigdedad de col'%nas. n caso contrario la +ista est$ co%p'esta de las col'%nas
seleccionadas en la cl$'s'la SLCT.
La sentencia SLCT no p'ede contener la cl$'s'la OR!R B" ni el operador #:IO:.
La opci/n QITR CRCK OBCIO: per%ite %antener la integridad re&erencial de los datos.
(e%plo.
Crear 7ISTA cliYsan.
CRAT 7IQ cliYsan
AS
SLCT S OROM clientes
QRR ci'dadU@Santander@
7is'ali*ar datos 7ISTA.
SLCT S
OROM cliYsan
4 es lo %is%o )'e si lo .aces desde la tabla clientes y reali*as 'na cl$'s'la
SLCT5
SLCT S
OROM clientes
QRR ci'dadU@santander@
3T
S=L : ORACL
Oracle es el %ayor y %as 'sado Siste%a Mane(ador de Base de !ato Relacional
4R!BMS5 en el %'ndo. La Corporaci/n Oracle o&rece este R!BMS co%o 'n prod'cto
incorporado a la l3nea de prod'cci/n. Ade%$s incl'ye c'atro generaciones de desarrollo de
aplicaci/n- .erra%ientas de reportes y 'tilitarios.
Oracle corre en co%p'tadoras personasles 4BC5- %icroco%p'tadoras- %ain&ra%es y
co%p'tadoras con procesa%iento paralelo %asi+o. Soporta 'nos ;7 idio%as- corre
a'to%$tica%ente en %$s de NM ar)'itect'ra de .ardeare y so&teare distinto sin tener la
necesidad de ca%biar 'na sola l3nea de c/digo. sto es por)'e %$s el NMX de los c/digos
internos de Oracle son ig'ales a los establecidos en todas las plata&or%as de siste%as
operati+os.
l %ane(ador de Base de datos ORACL- s'rgi/ a &inal de los a>os 7M y principio
de los a>os NM. 8eorge Koc. y s' e)'ipo de tropas de asalto de t2cnicos &'e el pri%ero en
dese%barcar en el terreno de Oracle en ;TN<- d'rante 'n proceso de e+al'aci/n de siste%a
de gesti/n de base de datos para 'na i%portante aplicaci/n co%ercial )'e 8eorge estaba
dise>ando y constr'yendo. C'ando ter%ino- la e+al'aci/n &'e descrita en Co%p'ter Qorld
co%o el est'dio %$s se+ero de S8B! )'e se .ab3a .ec.o n'nca. l est'dio &'e tan rig'roso
con los +endedores c'yos prod'ctos .ab3a est'diado 8eorge- )'e la prensa .i*o eco de s's
palabras en l'gares tan distantes co%o :'e+a \elandia y en p'blicaciones %'y ale(adas del
ca%po co%o el C.ristian Sciencia Monitor.
Oracle conocida entonces co%o Relational So&teare- ten3a poco %$s de <D
e%pleados en a)'el tie%po y solo 'nos pocos clientes i%portantes. Sin e%bargo- c'ando se
co%pleto el est'dio- Oracle &'e declarada +encedora. 8eorge a&ir%o )'e el S8B! Oracle
era t2cnica%ente el %e(or prod'cto del %ercado. stas declaraciones &'eron .ec.a en 'na
2poca en la )'e %'y poca gente conoc3a el signi&icado del t2r%ino ?Relacional@- y los )'e
lo conoc3an 4o cre3an conocerlo5 no ten3an %'c.as cosas &a+orables )'e decir de 2l.
La co%pa>3a de Oracle Corporation estaba traba(ando entonces para per&eccionar s'
(o+en prod'cto- para co%prender los tipos de caracter3sticas y &'ncionalidad )'e podr3a
.acerlo Atil y prod'cti+o en el %'ndo de los negocios. l es&'er*o contrib'yo a s'
re&ina%iento. Alg'nas de las caracter3sticas de Oracle- tales co%o las salidas de
S=LSOORMS &'eron el res'ltado de dic.o es&'er*o.
A contin'aci/n se presenta 'na serie de notas sobre la sinta0is 'tili*ada para reali*ar
las cons'ltas en Oracle.
Literales 4tipo de dato de +alor &i(o5- e0isten los sig'ientes tipos1
Te0to1 se escribe entre co%illas- por e(e%plo festo es 'n te0to +$lidof.
ntero1 nA%ero aco%pa>ado de 'n LF, con 'n %$0i%o de 3N d3gitos de precisi/n-
por e(e%plo ,;M.
4M
:A%ero1 ig'al )'e entero pero con deci%ales. B'ede estar en notaci/n cient3&ica-
por e(e%plo 25e-03.
Inter+alo1 inter+alo de tie%po- por e(e%plo I:TR7AL f;Mf RO#R.
TIBOS ! !ATOS
Caracteres (CHAR), e0isten 4 tipos1
1. CHAR: crea 'na col'%na de largo de ; a <MMM bytes.
2. NCHAR: si%ilar al anterior pero el dato )'eda al%acenado con el
correspondiente leng'a(e de la !B 4:LS5.
3. NVARCHAR2: si%ilar al anterior con 'n %$0i%o de 4MMM bytes.
4. VARCHAR2: si%ilar al anterior pero sin :LS.
Nmeros (NUMBER) con el &or%ato :#MBR4p-s5 donde p es la cantidad
%$0i%a de d3gitos con 'n %$0i%o de 3N y s es la escala de ,N4 a ;<7.
(e%plos1
7DE;<3.NT :#MBR 7DE;<3.NT
7DE;<3.NT :#MBR4T5 7DE;<4
7DE;<3.NT :#MBR4T-;5 7DE;<3.T
7DE;<3.NT :#MBR47-,<5 7DE;MM
7DE;<3.NT :#MBR4E5 y :#MBR4,7-<5 e0ceden la precisi/n
Ta%bi2n e0iste el tipo OLOAT.
Largo (LONG): para al%acenar strings de datos largos- con 'n %$0i%o de
car$cteres de .asta < gigabytes o <g3;,; bytes.
Fecha (DATE)
RAW y LONG RAW: datos no interpretados por Oracle.
Otros tipos %enos oc'pados
Large Ob(ect !atatypes 4LOB5- per%ite el al%acena%iento de arc.i+os co%o te0to-
i%agenes- +ideo .asta 4 gigabytes.
ROQI!1 al%acena la direcci/n de la 'bicaci/n de 'na col'%na.
#ROQI!1 ig'al a ROQI! pero )'e +iene de otra !B )'e no sea Oracle.
A:SI- !B<- S=LF!S1 tipos de datos de la !B !B< de IBM.
Ade%$s se p'eden crear datos creados por el 's'ario %ediante el co%ando
CRAT T"B )'e debe tener no%bre- atrib'tos y %2todos.
4;
0isten co%andos )'e per%iten el ca%bio de 'n tipo de dato a otro co%o
TOYCRAR4con+ersi/n de &ec.a5 o TOYCRAR4con+ersi/n de nA%ero5.
Otro tipo de dato de 'so co%An es :#LL para interpretar el +ac3o.
OBRA!ORS ! S=L
Aritmticos:
Operador Brop/sito (e%plo
L,
Operador 'nario- denota si es positi+a
o negati+a 'na e0presi/n
SELECT * FROM orders
WHERE qtysold = -1
SELECT * FROM e!" WHERE -
s#l $ 0
SF M'ltiplica di+ide- operador binario
%"d#te e!" SET s#l = s#l *
1.1
L, S'%a- resta- binario
SELECT s#l & 'o!! FROM e!"
WHERE S(S)*TE - +,red#te
- 3.5
Concatenadores: PP 'ne strings de datos. (e%plo1 SELECT /0#!e ,s / 11 e2#!e
FROM e!"
Comparadores:
Operador Brop/sito (e%plo
U Ig'aldad.
SELECT *
FROM e!"
WHERE s#l = 1500
hU- gU- VW- iU !esig'aldad.
SELECT *
FROM e!"
WHERE s#l 3= 1500
V- W Mayor- %enor.
SELECT * FROM e!"
WHERE s#l - 1500
SELECT * FROM e!"
WHERE s#l $ 1500
4<
VU- WU Mayor- %enor o ig'al.
SELECT * FROM e!"
WHERE s#l -= 1500
SELECT * FROM e!"
WHERE s#l $= 1500
I: Ig'al a c'al)'ier %ie%bro a
probar- ig'al a UA:".
SELECT * FROM e!"
WHERE 4o5 60
7/CLER8/9/*0*L(ST/:
SELECT * FROM e!"
WHERE s#l 60
7SELECT s#l FROM e!"
WHERE de"t2o = 30:
:OT I: Ig'al a hUA:".
SELECT * FROM e!"
WHERE s#l 0OT 60
7SELECT s#l FROM e!"
WHERE de"t2o = 30:
SELECT * FROM e!"
WHERE 4o5 0OT 60
7/CLER8/9 *0*L(ST/:
A:" SOM Co%para 'n +alor a cada +alor
en 'na lista- precedido por U- hU-
W- V- VU- WU.
SELECT * FROM e!"
WHERE s#l = *0(
7SELECT s#l FROM e!"
WHERE de"t2o = 30:
ALL Si%ilar al anterior.
SELECT * FROM e!"
WHERE s#l -=
*LL 7 14009 3000:
I:OTK BTQ: J
A:! "
ntre J e ".
SELECT * FROM e!"
WHERE s#l
;ETWEE0 2000 *0)
3000
JISTS 7erdadero si 'na s'b)'ery
entrega al %enos 'na &ila.
SELECT e2#!e9 de"t2o
FROM de"t
WHERE E<6STS
7SELECT * FROM e!"
WHERE de"t.de"t2o
= e!".de"t2o:
J I:OTK LIK "
ISCAB f*fK
7erdadero si 0 est$ en 'n
patr/n y. !entro de y el
car$cter GXG cal*a con
SELECT * FROM t#51
WHERE 'ol1 L68E
43
c'al)'ier car$cter %enos
:#LL. GYG cal*a con c'al)'ier
car$cter si%ple.
/*=C>?E?/ ESC*@E />/
IS I:OTK :#LL Br'eba si .ay Io noK :#LL
SELECT e2#!e9 de"t2o
FROM e!"
WHERE 'o!! 6S 0%LL
:OT I: Ig'al a hU
SELECT /TR%E/
FROM e!"
WHERE de"t2o 0OT 60
7591592All:
6BA#l #C
de"t2o 3= 5 *0)
de"t2o 3= 15 *0)
de"t2o 3= 2All
Otro operador i%portante es LIK- )'e b'sca patrones dentro de 'n string1
SELECT s#l
FROM e!"
WHERE e2#!e L68E /SM?/
ste e(e%plo entrega sal de los e%p )'e e%pie*an con SM.
OBRA!ORS L98ICOS
Los t3picos A:!- OR- :OT.
OBRA!ORS ! #:I9:
UNION: 'ne )'eries.
UNION ALL: %is%o- incl'yendo las )'e se repiten.
INTERSECT: 'ni/n de )'eries.
MINUS: las &ilas de la pri%era )'ery %enos los )'e est$n en la seg'nda.
Uso: ='ery; OperadorYdeY'nion ='ery<H
Creacin de operadores: e0iste el co%ando CRAT OBRATOR.
44
COMA:!OS 8:jRICOS ! S=L
7ere%os so%era%ente los co%andos %$s oc'pados en S=L.
Create
;. TABL1 crea 'n ob(eto tabla relacional. l &or%ato es darle 'n no%bre y
l'ego los tipos y ta%a>os de los datos )'e +a a contener.
<. TRI88R1 crea 'n disparador antes o desp'2s de 'na deter%inada acci/n
4se +er$ con %$s detalle en otro t'torial5.
3. BROC!#R1 crea 'na &'nci/n )'e p'ede reali*ar operaciones sobre datos
de 'na !B.
4. 7IQ1 crea 'na +ista basada en )'ery y )'e recibe 'n no%bre deter%inado
ba(o el )'e es in+ocado.
D. MATRIALI\! 7IQ1 si%ilar al anterior pero per%ite operaciones
%'c.o %$s co%ple(as.
E. I:!J1 pone 3ndice a alg'nos tipos de ob(etos de 'na !B para 'n acceso
%$s e0pedito.
La %ayor3a de estos co%andos p'eden ser %odi&icados con ALTR COMA:!O.
Drop1 per%ite borrar 'n ob(eto de la !B.
Create- drop y alter se clasi&ican en la categor3a de leng'a(e de de&inici/n de datos.
Insert1 per%ite insertar datos a 'na tabla ya creada.
Select1 el gran co%ando de )'eries.
Delete1 borra datos e0istentes en 'na &ila.
Update1 act'ali*a los +alores de 'na tabla.
stos datos &or%an parte del leng'a(e de %anip'laci/n de datos 4!ML5.
Otros co%andos co%o 8RA:T y R7OK pertenecen al leng'a(e de control de
datos 4!CL5.
stas tres &a%ilias de co%andos e0isten dentro de todo S=L- independiente%ente de
)'2 siste%a de !B se trate.
Ms ejemplos...
4D
Creacin de tablas
Creare%os la tabla MBLO" con los sig'ientes co%andos1
SQL> CREATE TABLE EMPLOYEE
(EMPNO NUMBER (4) NOT NULL PRIMARY KEY,
NAME CHAR (8) NOT NULL,
1OB CHAR (4) ,
SALARY NUMBER (8,2) NOT NULL,
COMM NUMBER (8,2) ,
DEPTNO NUMBER (4) NOT NULL,
SEX CHAR (1) );
L'ego re+ise la de&inici/n de la tabla MBLO" con1
SQL> DESCRIBE EMPLOYEE;
n general- 'sar$ CRAT TABL de la sig'iente %anera1
SQL> CREATE TABLE <table_name>
(column_name data_type not null],?
PRIMARY KEY (column_name, ?)
FOREIGN KEY (column_name, ?)
REFERENCES table2_name (table2column_name,?));
!onde < representa a datos en otra tabla.
Ta%bi2n se p'ede crear 'na tabla a partir de 'n )'ery- por e(e%plo1
SQL> CREATE TABLE MANAGER AS SELECT EMPNO, NAME FROM
EMPLOYEE WHERE 1OB 'Mngr';
B'ede alterar la estr'ct'ra de 'na tabla de la sig'iente %anera1
SQL> ALTER TABLE EMPLOYEE ADD TEST CHAR (2));
O p'ede %odi&icar la de&inici/n de 'n ca%po1
SQL> ALTER TABLE EMPLOYEE MODIFY (TEST CHAR(2) NOT NULL );
ste ca%bio p'ede ser ta%bi2n de cla+es pri%arias y &or$neas1
SQL>ALTER TABLE <nombre_tabla> ADD PRIMARY KEY (<nombre_columna,?
>);
4E
Ingreso de datos
73a I:SRT- por e(e%plo1
SQL> INSERT INTO EMPLOYEE VALUES
(106,'Spears','Slsm',3000,NULL,40,'M');
o de otra &or%a1
SQL> INSERT INTO EMPLOYEE (EMPNO, NAME, SALARY, DEPTNO)
VALUES (107,'Kiel',4000,50);
B'ede +eri&icar el contenido de s' tabla con SELECT ` FROM <nombre_tabla>H
Bara act'ali*ar 'n ca%po en 'na tabla 'se el co%ando UPDATE y SET co%binado
con 'na condici/n1
SQL> UPDATE EMPLOYEE SET SALARY 1000 WHERE EMPNO '214';
Otro e(e%plo1
SQL> UPDATE EMPLOYEE SET COMM 500 WHERE COMM IS NULL;
Borrar datos
Si )'iere borrar todos los datos de 'na tabla .$galo con DELETE FROM
<nombre_tabla>;
Si )'iere borrar s/lo alg'nos ca%pos- oc'pe 'n condicional1
SQL> DELETE FROM EMPLOYEE WHERE EMPNO 107;
COMMIT y ROLLBACK
stos co%andos no son per%anentes y se al%acenan te%poral%ente en 'n b'&&er.
Bara ingresarlos de&initi+a%ente a la !B debe e(ec'tar el co%ando COMMIT. Alg'nos
co%andos lle+an i%pl3cito el COMMIT- estos son =#IT- JIT- CRAT TABL-
CRAT 7IQ- !ROB TABL- !ROB 7IQ- 8RA:T- R7OK y ALTR. C'ando
pedi%os )'e nos %'estre 'na tabla- Oracle nos %ostrar$ la tabla act'ali*ada.
Bara +ol+er atr$s 'n COMMIT- p'ede 'sar el co%ando ROLLBACK.
Queries
Todas las )'eries y s'b)'eries se basan en el 'so del co%ando SELECT y
condiciones l/gicas.
Bara +er el contenido de 'na tabla debe ingresar1 SELECT ` FROM
<nombre_tabla>;
47
Bara +er 'na o +arias col'%nas- debe%os ingresar SELECT
<nombre_de_la_columna1, nombre_de_la_columna2,...> FROM <nombre_tabla>;
Bara ordenar al&ab2tica%ente a>ada 'n ORDER BY <nombre_de_la_columna> al &inal.
#na condici/n l/gica p'ede ser agregada desp'2s del no%bre de la tabla- esto es por
e(e%plo1
SQL> SELECT NAME, 1OB FROM EMPLOYEE
WHERE
SEX 'F' AND (1OB 'Slsm' OR 1OB 'Mngr'); <- condicin lgica
Otros SLCTs
1
SQL> SELECT DISTINCT 1OB FROM EMPLOYEE; <- muestra los valores
de la columna JOB que no aparecen ms de una vez en la tabla EMPLOYEE
SQL> SELECT NAME, EMPNO FROM EMPLOYEE WHERE 1OB NOT]
IN ('Slsm','Clrk'); <- muestra NMEs ! EMPNOs de la tabla EMPLOYEE en
los que JOB"#$%&'lsm& o JOB"#$%&(lr)&
La %ayor3a de los co%paradores ya &'eron descritos anterior%ente en 'na de las tablas.
Ta%bi2n se p'eden e&ect'ar c$lc'los entre col'%nas por &ila con los operadores
%ate%$ticos
O#:CIO:S CO: =#RIS
n +e* de S o no%breYdeYcol'%na- p'ede e&ect'ar operaciones sobre s' SELECT co%o1
AVG(no%breYdeYcol'%na): pro%edio de no%breYdeYcol'%na.
COUNT(S): c'enta el nA%ero de &ilas.
MIN(no%breYdeYcol'%na): el %enor de no%breYdeYcol'%na.
MAX(no%breYdeYcol'%na): el %$0i%o de no%breYdeYcol'%na.
SUM(no%breYdeYcol'%na): la s'%atoria de no%breYdeYcol'%na.
Claro )'e no es sie%pre de toda la col'%na- sino %$s bien )'e del res'ltado del )'ery.
Subqueries
B'eden ser de&inidas rec'rsi+a%ente co%o )'eries de )'eries. l )'ery principal 4el )'e se
desplegar$ en pantalla5 es el pri%ero )'e se ingresa1
SQL> SELECT NAME, SALARY FROM EMPLOYEE
4N
WHERE SALARY <-)'ery principal
(SELECT MIN(SALARY) FROM EMPLOYEE); V, )'ery seg'ndario
:os %'estra el :AM y SALAR" de la tabla MBLO" )'e tiene 'n SALAR"U 4.asta
a)'3 el )'ery principal5 al %enor SALAR" de la tabla MBLO".
4T
BIBLIOGRAFIA
Oracle 8i SQL Reference Release 2 (8.1.6) A76989-01.
Apuntes de Oracle/SQL 1. Warren, Kennesaw State University
SANTOS, E. et al; "Bases de Da!s"
Ed. Servicio Publicaciones de la E.U. de Informtica, 1998.

ELMASRI, R.A.; NAVATHE, S.B.; "F"#da$e#!s de S%se$as de Bases de
Da!s" (3 Edicin).
Ed Addison-Wesley 2002

DATE, C.1.; "I#&!d"''%(# a )!s S%se$as de Bases de Da!s" (Vol.I, 5 Edicin)
Ed. AddisonWesley Iberoamericana, 1990.

RIVERO CORNELIO, E. et al. "I#&!d"''%(# a) SQL *a&a Us"a&%!s +
,&!-&a$ad!&es" (2 edicin)
Ed. Thomson, 2002

DE MIGUEL, A.; PIATTINI, M.; "C!#'e*'%(# + D%se.! de Bases de Da!s. De)
M!de)! E/R a) M!de)! Re)a'%!#a)"
Ed. RaMa, 1993.

HURSCH, C.; HURSCH, 1.; "SQL. E) Le#-"a0e de C!#s")a Es&"'"&ad!" (2
edicin)
Ed. RaMa, 1998.

KORTH, H.F.; SILBERSCHATZ, A.; "F"#da$e#!s de Bases de Da!s" (4
edicin)
Ed. McGrawHill, 2002.

ULLMAN, 1.D.; ",&%#'%*)es !1 Daa2ase S+se$s" (2 edicin),
Ed. Computer Science Press, 1988.
DM

You might also like