Вы находитесь на странице: 1из 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

Вам также может понравиться