Академический Документы
Профессиональный Документы
Культура Документы
Introduccin. .......................................................................................................... 5 Conceptos bsicos. ................................................................................... 5 Por q ! este texto" ................................................................................. # Con$iciones $e so.................................................................................. # Nociones bsicas de diseo. ................................................................................. 7 Etapas bsicas $e% $ise&o. ....................................................................... ' (n primer e)emp%o................................................................................... ' *ntro$ ccin a% mo$e%o Enti$a$+,e%acin. ............................................ .ia/rama EE, $e n estro e)emp%o......................................................... Convirtiendo el diseo a tablas. .........................................................................11 0!to$o /enera%. ......................................................................................11 Con2irtien$o a tab%as n estro e)emp%o. ................................................12 3ipos $e $atos existentes........................................................................14 Prob%emas q e hemos e2ita$o con n estro $ise&o. .............................14 Prob%emas q e a5n tiene n estro $ise&o. .............................................15 Crean$o %a base $e $atos con 6tar7ase 86tar9::ice;. ............................1# Crean$o n estra 7. con <ccess. ...........................................................22 Crean$o n estra 7. con =in6>?. ........................................................2@ Crean$o n estra 7. con $7ase ***A. .....................................................32 Un segundo ejemplo paso a paso. ......................................................................3 En ncia$o $e% se/ n$o e)emp%o. ..........................................................32 .ise&o $e% se/ n$o e)emp%o. .................................................................33 *mp%ementacin $e% se/ n$o e)emp%o. .................................................33 !isuali"ando datos# consultas bsicas $ relaciones..........................................33 Cons %tas bsicas en 6>?, con =in6>?. ..............................................33 Cons %tas senci%%as con <ccess. .............................................................35 Cons %tas en 6>?, con <ccess. ..............................................................3' *ntro$ ccin a %as re%aciones B a s so $es$e <ccess.........................3@ %istados e in&ormes desde 'ccess.......................................................................() Un tercer ejemplo paso a paso.............................................................................(3 En ncia$o $e% tercer e)emp%o. ...............................................................43 .ise&o $e% tercer e)emp%o. ......................................................................43 *mp%ementacin $e% tercer e)emp%o. ......................................................44
*ormularios de introduccin de datos con 'ccess. ...........................................(( +tras notaciones en ,ntidad-.elacin. ..............................................................(( +tras posibilidades... ...........................................................................................(( !ersiones de este te/to .........................................................................................(( 0ndice 'l&ab1tico. .................................................................................................(2
Introduccin.
Conceptos bsicos.
En e% senti$o ms amp%io, se po$rCa consi$erar q e n con) nto $e in:ormacin. na base $e $atos es simp%emente
En n or$ena$or, esta in:ormacin norma%mente ser bsicamente na serie $e D:ichasE. Por e)emp%o, na base $e $atos m B senci%%a po$rCa ser na a/en$a $e $irecciones en %a q e anotemos $atos $e n estros ami/os. 3en$rCamos na :icha para ca$a no $e estos ami/os. En ca$a :icha, a s 2eF, existir na serie $e aparta$os, como e% nombre, %a $ireccin, e% te%!:ono, etc. Esto nos permite intro$ cir $os primeros conceptos q e ti%iFaremosG ca$a na $e estas D:ichasE recibe e% nombre $e DregistroE, B ca$a no $e %os Daparta$osE q e componen %as :ichas se %%ama DcampoE. E% con) nto $e %as :ichas 8re/istros; :orma n Db%oq eE $e in:ormacin, q e %%amaremos Dtabla3, B q e se s e%e representar escribien$o ca$a :icha 8re/istro; en na :i%a B ca$a aparta$o 8campo; en na co% mna, asCG Nombre Hos! Hes5s H an Direcc CI ,ana, 1 CI 6apo, 2 CI 7oa, 3 Ciudad <%icante 0a$ri$ 7arce%ona Tlf 111+11+11 222+22+22 333+33+33
Pero en %a prctica, na Dbase de datosE rea% s e%e estar :orma$a por ms $e na tab%a. Por e)emp%o, %a base $e $atos q e ti%iFa na empresa Dnorma%E para s /estin $eber a%macenar $atos sobre c%ientes, pro2ee$ores, artCc %os, :act ras, etc. Ca$a no $e estos Db%oq esE $e $atos ser na tab%a, B estas tab%as estarn re%aciona$as entre sC 8por e)emp%oG n artCc %o ser s ministra$o por n cierto pro2ee$or, B ese artCc %o aparecer en ciertas :act ras, ca$a na $e %as c a%es correspon$er a n cierto c%iente;. 3o$o este con) nto $e in:ormacin q e :orman %as tab%as B %as re%aciones entre e%%as 8B a%/ na cosa ms q e Ba 2eremos; ser n estra Dbase $e $atosE. En concreto, se tratar $e %o q e se conoce como na Dbase de datos relacionalE. En este texto 2eremos %as nociones bsicas $e cmo se crea B se mane)a na base $e $atosG cmo $ise&ar %as tab%as B %as re%aciones, cmo intro$ cir %os $atos B como b scar in:ormacin en %a base $e $atos. *ntentar! ap%icar%o a a%/ na $e %as bases $e $atos ms habit a%es, como <ccess para =in$oJs 8para q ien ten/a n or$ena$or Dmo$ernoE; o $7ase ***A 8para %os q e ten/an n or$ena$or Danti/ oE;. 3ambi!n $ar! nas nociones bsicas $e %en/ a)e 6>?, n %en/ a)e $e cons %ta a bases $e $atos q e %a maBorCa $e %os sistemas act a%es permiten ti%iFar.
Condiciones de uso.
Este texto se p e$e imprimir B se p e$e $istrib ir %ibremente, tanto en s :orma e%ectrnica como impresa, 6*E0P,E M C(<N.9 N9 6E 09.*N*>(E B se conser2e e% nombre $e% a tor. 6i este texto se $esea ti%iFar como base para c a%q ier otro texto, artCc %o o simi%ar, tambi!n se p e$e hacer %ibremente 6*E0P,E M C(<N.9 6E 0ENC*9NE <? <(39, $e% texto ori/ina% 8Hos! */nacio ONacho+ Cabanes;. E% a tor no po$r ser en nin/5n caso consi$era$o responsab%e $e nin/5n prob%ema $ebi$o $irecta o in$irectamente a %a in:ormacin conteni$a en este texto. E% s ario acepta to$as %as responsabi%i$a$es. Es decir, que si por experimentar algo de lo que aparece en el texto, tu disco duro salta en pedazos (cosa que veo muy difcil), sera responsabilidad exclusivamente tuya. E? (69 .E E63E 3EP39 6(P9NE ?< <CEP3<C*QN 393<? .E E63<6 C9N.*C*9NE6. 6i $esc bres c a%q ier error en e% texto, ro/arCa q e me %o com nicases por correo e%ectrnico a %a $ireccinG
ncabanes@pobox.com
Este texto es 45racias6are3. Esto q iere $ecir q e si te / sta BIo te res %ta 5ti%, basta con q e me man$es n correo e%ectrnico a mi $ireccin
ncabanes@pobox.com 6i 2eo q e ten/o apoBo mora%, proc rar! ir me)oran$o este texto B %anFan$o n e2as 2ersiones, ca$a 2eF ms amp%ia$as.
n pri!er e"e!plo.
Vamos 2er n primer e)emp%o, q e nos aB $ar a %%e2ar a %a prctica to$o esto B a intro$ cir e% mo$e%o DEnti$a$+,e%acinE. 6 pon$remos q e nos proponen e% si/ iente prob%emaG
Se desea informatizar un centro de estudios de pequeo tamao. Interesa controlar exclusivamente los asuntos acadmicos: qu alumnos tenemos, qu cursos/asi naturas !an realizado, qu profesores tenemos en plantilla, quin !a impartido cada uno de los cursos, etc".
Estas serCan %as in$icaciones q e nos $arCa e% c%iente 8o q e nosotros pensarCamos, si %o rea%iFamos para nosotros mismos;. <hora ten$rCamos q e pensar si 2emos q e :a%ta a%/o 8B pre/ ntar a% c%iente, si proce$e, cosas como si $esea / ar$ar %a $ireccin B $ems $atos posta%es $e %os
a% mnos B $e %os pro:esores, o si q iere saber %a nota q e ca$a a% mno obt 2o en ca$a c rso; o inc% so si sobra a%/o 8porq e res %te $emasia$o $i:Cci% $e %%e2ar a cabo +difcil, para nosotros?... lo dudo+;. Pasamos a $es/%osar en b%oq es $e in:ormacin. .e momento to$a2Ca no hab%aremos $e tab%as, sino $e Dentidades3 8 n nombre ms ambi/ o pero ms a$ec a$o; B $e Drelaciones3 entre estas enti$a$es. En n estro caso, %as DcosasE 8enti$a$es; q e tenemos son bsicamente !stasG R <% mnos. R C rsos. R Pro:esores. M %as re%aciones q e haB entre estas enti$a$es sonG R ?os pro:esores *0P<,3EN c rsos. R ?os a% mnos <6*63EN a c rsos. R 8*n$irectamente, %os a% mnos B %os pro:esores tambi!n estn re%aciona$osG n a% mno ha asisti$o a n c rso q e ha imparti$o n cierto pro:esorS esta re%acin Ba q e$a re:%e)a$a a partir $e %as otras $os, asC q e no es necesario $eta%%ar%a;. < n comentaremos a%/o ms sobre %as re%aciones. (na caracterCstica importante $e %as re%aciones es s DcardinalidadEG por e)emp%o, en %a re%acin $e q e D%os a% mnos asisten a %os c rsosE, es importante si a ca$a c rso s%o p e$e asistir n a% mno o 2arios, B si n a% mno p e$e asistir a n so%o c rso o a 2arios. 3en$remos c atro posibi%i$a$esG R > e ca$a a% mno asista no B so%o no $e %os c rsos 8se expresa como 1G1 + no a no+; R > e ca$a a% mno p e$a asistir a m chos c rsos, pero en ca$a c rso s%o p e$e haber n a% mno 81G0 + no a m chos+; R > e ca$a a% mno p e$a asistir a n 5nico c rso, pero p e$a haber 2arios a% mnos en n c rso 80G1 +m chos a no+;. R > e ca$a a% mno p e$a asistir a 2arios c rsos, B en ca$a c rso p e$a haber 2arios a% mnos 80G0 +m chos a m chos+; En n estro caso, %a re%acin DasistirE es na re%acin $e Dm chos a m chosE 80G0;. Po$rCamos pre/ ntarnos %a car$ina%i$a$ $e %a otra re%acin 8D%os pro:esores imparten c rsosE;. En este caso, ca$a pro:esor p e$e impartir 2arios c rsos, B s pon$remos q e ca$a c rso es imparti$o por n 5nico pro:esor 8estoB $an$o por s p esto q e se consi$era $istinto n c rso $e D7ases $e .atosE imparti$o en na :echa B otro $e %a misma temtica pero imparti$o en :echa $istinta;. 6e tratarCa $e na re%acin D$e no a m chosE 1G0. (na obser2acinG en %as re%aciones es importante e% senti$o en e% q e se %een. Por e)emp%o, %a re%acin D%os pro:esores imparten c rsosE es na re%acin 1G0 8 no a m chos;, mientras q e %a re%acin op esta D%os c rsos son imparti$os por pro:esoresE es na re%acin 0G1 8m chos a no;. Estas re%aciones q e hemos comenta$o son Dre%aciones binariasE 8entre $os enti$a$es;. Por e% carcter intro$ ctorio $e este texto, no entraremos en %as re%aciones q e en/%oban ms enti$a$es 8como %as ternarias;, ni en cierto tipo $e
restricciones 8como %as $e existencia o 2a%or no n %o;, asociaciones ni a/re/aciones... al menos por a ora...
ni
en
/enera%iFaciones,
Enti$a$
(!ota" e visto las relaciones expresadas tambi#n de otras formas, por otros autores$ de momento, emplear# esta notaci%n y m&s adelante comentar# otras notaciones que es posible utilizar o encontrar en otros textos).
Pro:esores
<% mnos
C rsos
*mpartir <sistir
<sC $e senci%%oG tenemos 3 enti$a$es 8pro:esores, c rsos, a% mnos; B $os re%aciones 8impartir, entre pro:esores B a% mnos, 1G0, B asistir, entre a% mnos B c rsos, 0G0;.
,ea%mente, Ba a este ni2e% se s e%e in$icar %os Daparta$osE q e haB en ca$a enti$a$ 8%o q e sern %os DcamposE $e n estras tab%as;. < estos Daparta$osE %es %%amaremos Datributos3, B se representan como peq e&as e%ipses q e sa%en $e %as enti$a$es. Vamos a pensar primero q ! atrib tos nos po$rCa interesar para n estras enti$a$esG <% mnosG R R R R R R R R .N* 8.oc mento Naciona% $e *$enti$a$; Nombre .ireccin Ci $a$ 3e%!:ono Necha $e nacimiento Necha $e a%ta en e% centro Noto/ra:Ca
Pro:esoresG R R R R R R R R C rsosG R R R R R Nombre $e% c rso Necha $e comienFo . racin 8horas; *mporte 8e ros; N5mero mximo $e a% mnos .N*. Nombre .ireccin Ci $a$ 3e%!:ono Conocimientos 6 e%$o C enta bancaria
Es s%o n e)emp%o. *nsisto en q e $e momento no estamos pensan$o en tab%as, sino simp%emente en q ! in:ormacin q eremos a%macenar. 6e/5n e% sistema $e bases $e $atos q e emp%eemos rea%mente, p e$e oc rrir q e sea incmo$o 8o inc% so imposib%e; traba)ar con a%/ nos $e estos $atos q e hemos pre2isto 8por e)emp%o, %a D:oto/ra:CaE $e% a% mno;. Pero eso Ba nos %o p%antearemos $esp !s. ?o q e sC 2amos a pensar Ba es c a% $e esos $atos nos permitir distinguir una &ic8a de otra. Esto se hace porq e po$emos tener $os a% mnos con e% mismo nombre, pero c%aramente son personas $istintas, B $ebemos saber q ! c rsos ha rea%iFa$o ca$a no $e e%%os sin posibi%i$a$ $e con: sin, para no $ar a no e% $ip%oma q e correspon$a a otro, ni cobrar%e n $inero $e otro. En e% caso $e %os a% mnos, no son $atos 5nicos %os si/ ientesG e% nombre 8p e$e repetirse, inc% so con ape%%i$os;, %a $ireccin 8$os hermanos o $os ami/os p e$en 2i2ir en %a misma casa;, e% te%!:ono 8oc rre %o mismo;, %a :echa $e nacimiento 8tambi!n po$emos encontrar $os a% mnos q e haBan naci$o e% mismo $Ca;, etc. ?o
q e rea%mente $istin/ ir a n a% mno $e otro es s n5mero $e .N* 8.oc mento Naciona% $e *$enti$a$; o pasaporte, q e sC es 5nico. P es bien, este $ato q e p e$e $istin/ ir na persona $e otra 8o en /enera% +re/istro+ $e otra; es %o q e %%amaremos %a Dclave3. na :icha
P e$e oc rrir q e no exista na$a q e nos sir2a c%aramente como c%a2e, como es e% caso $e %os c rsosG no es 5nico e% nombre 8po$emos impartir ms $e n c rso con e% mismo conteni$o;, ni %a :echa $e comienFo 82arios c rsos p e$en comenFar e% mismo $Ca;, ni %a $ racin, ni e% importe, ni e% n5mero mximo $e a% mnos. En estos casos se s e%e a&a$ir a%/o arbitrario, n cdigo, q e nos permita $istin/ ir n c rso $e otro 8en /enera% na :icha +re/istro+ $e otra;. En n estro caso, inc% irCamos n n e2o atrib to, %%ama$o DC$i/o $e c rsoE. (n 5%timo comentario antes $e 2er cmo q e$arCa n estro $ia/rama EE, con s s atrib tos. P e$e oc rrir q e n estra enti$a$ ten/a 2arios atrib tos 5nicos, to$os %os c a%es p e$an ser2ir como c%a2e. Entonces esco/emos na $e e%%as como Dclave principalE, B e% resto sern Dclaves alternativasE, q e no %%e/aremos a sar como c%a2es. En e% $ia/rama, e% atrib to q e 2aBa a ti%iFarse como c%a2e principa% aparecer s braBa$o. <hora Ba sC. N estro $ia/rama q e$arCa asC 8no inc% Bo to$os %os atrib tos q e habCamos pensa$o, s%o a%/ nos como e)emp%o, q e es con %os q e traba)aremos a partir $e ahora;G
.N*
Nombre
.N*
Pro:esores
<% mnos
C rsos
*mpartir
Co$C rso Nombre
<sistir
Necha*ni
R ?as re%aciones D$e no a m chosTE 81G0; se re:%e)arn ponien$o %a c%a2e $e% D noE en %a tab%a $e %os Dm chosE. 0e exp%icoG si n pro:esor imparte m chos c rsos 8B ca$a c rso es imparti$o por n 5nico pro:esor;, %o q e haremos es poner e% c$i/o $e% pro:esor 8s .N*; en %a :icha $e ca$a c rso q e imparte. R ?as re%aciones D$e m chos a m chosE 80G0; aparecern como na n e2a tab%a, en %a q e ca$a re/istro estar :orma$o por %as c%a2es $e %as tab%as q e se re%acionan. En n estro caso, %a re%acin D$e m chos a m chosE entre a% mnos B c rsos se con2ertir en na n e2a tab%a, en %a q e ca$a re/istro contiene $os camposG e% c$i/o $e% c rso a% q e se asiste B e% .N* $e% a% mno q e ha asisti$o. R ?as re%aciones D$e no a noE m chas 2eces son $ebi$as a n :a%%o $e $ise&o, B correspon$en a $atos q e $eberCan estar en na misma tab%a. Por e)emp%o, si s ponemos q e ca$a persona ten$r na 5nica $ireccin posta%, B ca$a $ireccin correspon$e a na 5nica persona, entonces e% $ato $e %a $ireccin posta% $eber ser no ms $e %a tab%a q e a%macena to$os %os $atos $e esa persona. Esta simp%i:icacin q e hemos hecho no es $e% to$o ciertaG a 2eces %as re%aciones 1G1 $ebern re:%e)arse como na n e2a tab%a, $epen$ien$o $e si existe restriccin $e existencia o no, pero no entraremos en tanto $eta%%e... al menos por a ora...
Ma s%o :a%ta na cosa. LaB q e $eci$ir %os tipos de datos $e %os campos B tambi!n %os tama&os $e %os campos. Esto es porq e a% or$ena$or habr q e $ar%e to$a %a in:ormacin m B c a$ric %a$a, para q e po$amos / ar$ar to$a %a in:ormacin q e nos interesa pero sin $esper$iciar $emasia$o espacio. ?os tipos $e $atos existentes p e$en 2ariar $e n sistema $e bases $e $atos a otro, asC q e 2amos a %imitarnos 8por ahora; a hacer na primera aproximacin, acercn$onos a% caso $e n estros camposG R E% nombre $e n a% mno, $e n pro:esor o $e n c rso, estar :orma$o bsicamente por %etras. 3o$os %os sistemas $e bases $e $atos ten$rn n tipo $e $atos a$ec a$o para a%macenar series $e %etras 8q e po$rn inc% ir a%/ na ci:ra n m!rica o a%/5n otro sCmbo%o;. 6er n tipo %%ama$o D3extoE, D<%:an m!ricoE, DCarcterE o a%/o simi%ar. En c anto a% tama&o, nos p e$e bastar con nas 40 %etras 8insistoG no $ebemos q e$arnos cortos, pero si nos exce$emos, estaremos $esper$ician$o espacio;. R ?a $ireccin ten$r tambi!n %etras, n5meros B a%/5n otro sCmbo%o, $e mo$o q e tambi!n ser tipo 3exto, B nas 50 %etras $e tama&o p e$e estar bien. R E% .N* $e% a% mno o $e% pro:esor conten$r ci:ras n m!ricas, pero posib%emente tambi!n a%/ na %etra, $e mo$o q e nos interesar q e tambi!n este $ato sea $e tipo D3extoE, B entre 10 B 15 %etras $e tama&o 8$epen$ien$o $e si 2amos a escribir p ntos en %os mi%%ares, / in antes $e %a %etra, etc.;. R E% te%!:ono $e% a% mno s%o conten$r ci:ras. 3en$remos n tipo $e $ato DN m!ricoE, q e nos p e$e ser2ir en este caso B q e ser imprescin$ib%e en e% caso $e q e q eramos hacer operaciones aritm!ticas con %os $atos a%macena$os en n campo. En e% caso $e% te%!:ono, no necesitamos hacer operaciones, B tambi!n es posib%e q e nos interese escribir par!ntesis, / iones o espacio, $e mo$o q e q iF sea ms interesante $e)ar%o como tipo D3extoE, $e nas 12+15 %etras. <$ems, es :rec ente q e se Di/norenE 8no se m estran ni se / ar$an; %os ceros a %a iFq ier$a $e na expresin n m!rica, B esto es a%/o q e no $eberemos permitir con n te%!:ono, q e po$rCa tener n pre:i)o pro2incia% o internaciona% q e comience por 0 8%o mismo oc rre con %os c$i/os posta%es;. R Para %a :echa $e inicio $e n c rso, casi to$os %os sistemas $e bases $e $atos nos permitirn ti%iFar n tipo $e $atos %%ama$o DNechaE. R E% c$i/o $e n c rso q e$a a n estra e%eccinG si q eremos q e est! :orma$o s%o por n5meros, serCa tipo $e $atos DN m!ricoES si q eremos q e p e$a contener %etras otros sCmbo%os, $eberCa ser $e tipo D3extoE. <%/ nos sistemas $e bases $e $atos 2an ms a%% B permiten n tipo D< ton m!ricoE, q e es n $ato n m!rico q e 2a incrementn$ose a tomticamente 8en e% primer re/istro q e intro$ Fcamos ser n 1, en e% se/ n$o n 2, B asC s cesi2amente;, para q e no ten/amos ni siq iera q e pensar q ! c$i/o q eremos para ca$a re/istro 8haB /ente a q ien esto %e parece m B cmo$o B otros q e %o consi$eran $emasia$o rC/i$o;.
R %gico, c an$o s%o haB $os posibi%i$a$es 82er$a$ero o :a%so, sC o no;. R *ec8a, para a%macenar :echas 8B, en ocasiones, tambi!n horas;. 6e ti%iFa para q e %as comparaciones B %as or$enaciones sean correctas 8por e)emp%o, si escribimos %as :echas 12I01I2000 B 31I10I1-'5 como DtextoE, e% or$ena$or consi$erarCa q e %a primera es menor +anterior+ a %a se/ n$a, %o c a% es c%aramente incorrecto;. R :emo, es n campo $e texto especia%, q e permite na %on/it $ i%imita$a, pero a cambio s acceso es ms %ento q e e% campo $e texto norma%, por %o q e s%o se sa en casos m B concretos, en %os q e %a %on/it $ $e% texto a / ar$ar sea m B 2ariab%e B no importe q e %as b5sq e$as sean %entas. Es e% caso $e n aparta$o $e Dobser2acionesE sobre n a% mno, o e% Dres menE $e na pe%Cc %a. R 9tros menos habit a%es nos permitirn / ar$ar im/enes o :icheros en /enera%, n5meros q e se incrementen a tomticamente, hiper2Cnc %os 8en%aces a na cierta $ireccin $entro $e n estro or$ena$or otro;, etc.
R R R R R R R
Nota<% mno2 <% mno3 Nota<% mno3 <% mno4 Nota<% mno4 <% mno5 Nota<% mno5
Esto es tan grave 8m cho; como &recuente 8he 2isto errores simi%ares en %os $atos manip %a$os por conoci$os pro/ramas $e contabi%i$a$;. Lemos $e)a$o espacio para 5 a% mnos en ca$a c rso. Veamos %os prob%emas q e esto p e$e pro2ocarG R 6i en a%/5n c rso haB menos $e 5 a% mnos, estamos $esper$ician$o e% espacio q e habCamos reser2a$o para %os $ems. R 6i necesitamos q e entren ms $e 5 a% mnos a n mismo c rso, estamos $esbor$an$o %o q e habCamos pre2isto B tenemos q e empeFar a hacer DparchesE 8$os :ichas para e% mismo c rso";. R 6i q eremos b scar q ! c rsos ha rea%iFa$o n cierto a% mno, ten$remos q e recorrer to$os %os re/istros, miran$o si s nombre aparece en %os campos 8atrib tos; a% mno1, a% mno2, a% mno3, a% mno4 o a% mno5. M se comp%ica to$a2Ca ms si en 2eF $e na simp%e b5sq e$a q eremos obtener n %ista$o q e inc% Ba 2arios $atos. En n estro $ia/rama po$emos 2er q e n estra base $e $atos permite q e n c rso ten/a 1 a% mno, 50 a% mnos o inc% so nin/ no, B en nin/5n caso estaremos $esper$ician$o espacio. Para b scar %os a% mnos q e han asisti$o a n cierto c rso o inc% so para crear n %ista$o con esta in:ormacin, s%o ten$remos q e recorrer %a tab%a D<sistirE.
8a$ems $e% .N*, q e nos permitirCa en%aFar %os $atos q e n a% mno tiene por ser a% mno con %os q e tiene por ser persona;. Pero esto es hi%ar $emasia$o :ino para nos principiantes como nosotros, asC q e %o $e)aremos como est. 3ambi!n se %e po$rCa b scar a%/ na otra cosa me)orab%e, pero tampoco %o haremos... por ahora.
Eso sC, esta 2entana tiene a%/o $esconcertanteG $ebemos in$icar e% nombre q e q eremos q e ten/a e% :ichero q e / ar$ar n estra base $e $atos, pero %a casi%%a para in$icar este nombre aparece a% p %sar %a pesta&a D3ipoEG
.eberemos escribir e% nombre 8inc% Ben$o $irectorios; en %a casi%%a q e $ice D<rchi2o base $e $atosE, o pre:erib%emente hacer%o $e %a :orma Dsenci%%aE, q e es p %sar e% botn DN e2a : ente $e $atosEG
.es$e esta 2entana res %tar ms cmo$o in$icar e% $irectorio 8o carpeta; en q e q eremos q e q e$e n estra base $e $atos, asC como e% nombre q e $eseamos para e%%a. Eso sCG habr q e tener en c enta q e m chos sistemas $e bases $e $atos 8B es e% caso $e 6tar7ase; %imitarn e% n5mero $e %etras q e po$emos ti%iFar para ese nombre, a$ems $e q e en m chos casos no permitirn ti%iFar espacios ni ciertos sCmbo%os $e p nt acinG
(na 2eF q e hemos intro$ ci$o n nombre correcto 8por e)emp%o CentrEst; nos aparecer %a panta%%a principa% $e 6tar7ase, $es$e %a c a% po$emos crear B manip %ar cons %tas, :orm %arios, in:ormes B tab%as.
?os tres primeros %os trataremos ms a$e%ante, pero %as tab%as Ba %as conocemos, asC q e 2amos a pasar a cmo se crearCan con 6tar7ase %as tab%as $e n estra base $e $atos 8e% centro $e est $ios;. No $eberemos hacer $ob%e c%ic sobre e% icono $e Dtab%asE, porq e asC %o q e conse/ irCamos serCa pasar a 2er %as tab%as q e Ba haB $isponib%es en n estra base $e $atosS como a5n no haB nin/ na tab%a crea$a, esta 2entana aparecerCa 2acCa 8eso sC, si hemos %%e/a$o hasta aq C por error o por precipitacin, po$rCamos 2o%2er atrs p %san$o e% botn D<nteriorE $e %a barra $e herramientas, q e m estra na :%echa hacia %a iFq ier$a;. ?o q e haremos ser p %sar na so%a 2eF sobre e% icono $e %as 3ab%as 8para se%eccionar esta opcin; B % e/o p %sar e% botn $erecho $e% ratn, %o q e nos mostrar %as $istintas opciones q e tenemos $isponib%es para tab%as. Entre estas opciones aparecer %a opcin DN e2oE, q e nos permitir crear na tab%a B nos $ar %a opcin $e crear%o $es$e e% D.ise&o $e tab%aE o $es$e n D<sistenteE. En n estro caso, como Ba hemos prepara$o e% $ise&o Dsobre e% pape%E, prescin$iremos $e% asistente B saremos e% D.ise&o $e tab%aEG
<cce$emos a na n e2a 2entana, en %a q e rea%mente $e:inimos n estra tab%a con 6tar7ase. ?a Fona $e traba)o $e esta 2entana tiene tres co% mnas, en %as q e in$icaremos e% nombre $e% campo, e% tipo $e $atos q e 2a a a%macenar B 8si q eremos; na $escripcin para ese campoG
Ca$a :i%a $e %a Fona $e traba)o $e esta 2entana representar no $e estos campos. En %a parte in:erior $e %a panta%%a po$emos in$icar e% tama&o q e q eremos para ca$a campo. <% :ina% $eberCamos obtener a%/o pareci$o aG
C an$o terminemos, p %samos e% botn $e DK ar$arE 8e% q e m estra n $isUette; B nos pre/ ntar e% nombre q e q eremos $ar a %a tab%a 8en n estro caso, D<% mnosE;G
Es cierto, habCamos pensa$o q e e% .N* $ebCa ser %a c%a2e primaria $e n estra tab%a, pero no se %o hemos in$ica$o a 6tar7ase. No q eremos q e sea 6tar7ase q ien pon/a %a c%a2e primaria q e %e p%aFca, sino nosotros mismos, asC q e $e momento %e $ecimos q e DNoE q eremos c%a2e primaria, B 2eremos cmo in$icar%e q e pon/a como c%a2e e% campo q e a nosotros nos interesa. <parecer n se/ n$o mensa)e $e a2isoG
6i h bi!ramos %%e/a$o a sa%ir $e% $ise&o $e %a tab%a, $eberCamos 2o%2er a entrar para in$icar %a c%a2e primaria. Para 2o%2er a% $ise&o, hacemos n c%ic en %a tab%a D<% mnosE, B p %samos e% botn $erecho, para % e/o esco/er %a opcin D.ise&o $e 3ab%aEG
?a :orma correcta $e in$icar q e n campo ser %a c%a2e primaria es se&a%an$o to$a %a :i%a 8hacien$o c%ic con e% ratn en %a co% mna /ris $e %a iFq ier$a; B p %san$o e% botn $erecho $e% ratn. Entre %as opciones $isponib%es, aparecer %a $e D?%a2e primariaEG
Entonces 6tar7ase mostrar na %%a2ecita amari%%a ) nto a% nombre $e% campo, para in$icarnos q e ese campo es e% q e 2a a act ar como c%a2e primariaG
<% sa%ir $e% $ise&o $e %a tab%a 8por e)emp%o, p %san$o %a P $e %a esq ina s perior iFq ier$a $e %a 2entana;, 6tar7ase se $a c enta $e q e hemos mo$i:ica$o e% $ise&o $e %a tab%a B nos pi$e con:irmacin para / ar$ar %os cambios 8$eberemos $ecir%e q e D6CE;G
<hora Ba po$emos entrar a %a tab%a 8con $ob%e c%ic, o esco/ien$o %a opcin D<brirE $e% men5 context a% +p %san$o e% botn $erecho $e% ratn+; B comenFar a intro$ cir re/istrosG
.e i/ a% :orma crearCamos %as otras tab%as, tanto %a $e a% mnos B c rsos, como %a q e representa a %a re%acin D<sistirE. <%/o ms a$e%ante 2eremos cmo sacar parti$o a estos $atos. ?a /ran ti%i$a$ $e %as bases $e $atos es %a :aci%i$a$ para rec perar in:ormacin $e entre m chCsimos $atos posib%es. Esto %o conse/ iremos bsicamente con %as cons %tas, q e 2eremos $esp !s. 3ambi!n 2eremos entonces cmo $eta%%ar %as re%aciones q e habCamos pre2isto en e% $ise&o.
<% i/ a% q e hicimos con 6tar7ase, 2amos a $ar por s p esto q e Ba hemos $ise&a$o n estra base $e $atos en pape%. Entonces e% primer paso es e2i$enteG entrar a <ccess. Nos aparecer na panta%%a como !staG En e%%a se nos pre/ nta si q eremos abrir na base $e $atos Ba existente 8no es n estro caso; o bien crear na n e2a 8q e sC es %o q e nos interesa;. .entro $e na Dn e2aE base $e $atos, tenemos $os opcionesG Emp%ear n DasistenteE. Este nos propon$rCa 2arios casos tCpicos, con bases $e $atos habit a%es, nos mostrarCa %a %ista $e %as tab%as q e consi$era a$ec a$as B %os campos q e po$emos inc% ir 8estos campo sC se p e$en mo$i:icar, pero no %as tab%as prop estas;, nos permitirCa esco/er na serie $e $ise&os para :orm %arios e in:ormes, etc. Veremos estos asistentes ms a$e%ante, c an$o Ba sepamos a%/o ms sobre $ise&o, B c an$o haBamos trata$o %os :orm %arios B %os in:ormes, $e mo$o q e po$remos comparar %o q e nosotros habrCamos hecho con %o q e <ccess propone. ?a otra opcin, %a q e nosotros emp%earemos, es %a $e crear na Dbase $e $atos en blancoE. Esto nos permitir partir D$e ceroE, para in$icar a <ccess exactamente q ! es %o q e $eseamos. En primer % /ar nos pre/ ntar e% nombre q e q eremos $ar a% :ichero $e base $e $atosG
Este nombre ser ms :%exib%e q e con 6tar7aseG sC po$r contener espacios B ms $e ocho %etras.
En %a Fona centra% $e %a panta%%a, %a DFona $e traba)oE, 2emos na serie $e pesta&as q e rec er$an a %as q e Ba habCamos comenta$o para 6tar7aseG 3ab%as, cons %tas, :orm %arios, in:ormes, macros B m$ %os. Estas $os 5%timas opciones son n e2as para nosotros, B tambi!n %as 2eremos ms a$e%ante. .e momento, 2amos a comenFar por crear las tablas. Para e%%o, comprobamos q e nos encontramos en %a pesta&a 3ab%a 8$eberCa ser asC;, B p %samos e% botn DN e2oE 8en estos momentos, $eberCa ser e% 5nico $isponib%e;. <parecen ms pre/ ntas...
Vamos a comentar bre2emente %as opciones q e tenemosG D!ista 8oja de datosE mostrarCa na c a$rCc %a en %a q e po$remos empeFar $irectamente a escribir $atos. No es %o q e nos interesa, Ba q e nosotros hemos p%ani:ica$o pre2iamente para q e n estra base $e $atos se a) ste %o ms posib%e a %o q e rea%mente necesitamos. D!ista diseoE es %o q e b scamos nosotros. Nos centraremos en e%%a n poco ms a$e%ante... 'sistente para tablas. Nos mostrarCa %as tab%as ms :rec entes, ) nto con %os campos q e <ccess nos recomien$a para ca$a na $e e%%as. <% i/ a% q e e% asistente para bases $e $atos, %o 2eremos ms
a$e%ante, c an$o ten/amos ms conocimientos B po$amos comparar %a opinin $e <ccess con %a n estra. Importar tablaG nos permitirCa apro2echar %os $atos existentes en na tab%a crea$a con otro sistema $e bases $e $atos ms anti/ o. <ccess crearCa na n e2a tab%a con campos eq i2a%entes a %os ori/ina%es, B con %os $atos q e esa tab%a contenCa. !incular tablaG es simi%ar a DimportarE, con %a $i:erencia $e q e no se crea na n e2a tab%a en <ccess, sino s%o n en%ace a %a Danti/ aE, $e mo$o q e %os cambios q e ha/amos en %a anti/ a se re:%e)arn en n estra base $e $atos $e <ccess 8a cambio, res %tar a%/o ms %ento, B $ebemos %%e2ar c i$a$o $e no borrar %a tab%a anti/ a, ni cambiar s sit acin, ni hacer nin/ na mo$i:icacin pro: n$a a s estr ct ra. En n estro caso, $eberemos se%eccionar %a opcin DVista $ise&oE B p %sar e% botn D<ceptarE. Entonces aparece na panta%%a 2acCa en %a q e, a% i/ a% q e oc rrCa con 6tar7ase, iremos intro$ cien$o e% nombre $e ca$a campo, e% tipo $e $atos q e contiene, B 8opciona%mente; na $escripcin para ese campo 8q e aparecerCa en %a parte in:erior $e %a panta%%a c an$o e% s ario est 2iera intro$ cien$o $atos;.
En %a parte in:erior $e %a panta%%a es $on$e in$icamos e% tama&o q e q eremos para ese campo. Por e)emp%o, como se 2e en %a :i/ ra anterior, nosotros q eremos q e e% campo .N* sea texto con na %on/it $ mxima $e 15 caracteres. (n poco ms a$e%ante 2eremos %os tipos $e $atos q e nos permite emp%ear <ccess. Como para esta tab%a s%o necesitaremos sar campos $e texto, 2amos antes a $ar %os pocos pasos q e nos :a%tan para comp%etar%a.
(na 2eF q e haBamos escrito %os nombres $e %os tres campos, s s tipos $e $atos correspon$ientes B s s tama&os, pasamos a in$icar c a% ser e% campo q e act5e como clave. ?o conse/ iremos se&a%an$o e% campo correspon$iente 8en este caso, e% .N*; B p %san$o e% botn q e m estra %a ima/en $e na %%a2e. <% i/ a% q e oc rrCa con 6tar7ase, <ccess mostrar e% $ib )o $e %a %%a2e ) nto a ese campo, para in$icarnos q e ese ser e% campo q e act ar como c%a2eG
8NotaG si en n campo no necesitsemos c%a2e, bastarCa con no in$icar%a ahora, B respon$er DNoE c an$o <ccess nos pre/ nte si q eremos q e a&a$a a tomticamente na c%a2e;. Para / ar$ar %a tab%a, basta con p %sar %a P $e s esq ina s perior iFq ier$a. <ccess se $a c enta $e q e 2amos a cerrar sin / ar$ar B nos pi$e con:irmacinG .iremos q e D6CE q eremos / ar$ar, B entonces nos pre/ ntar e% nombre q e ten$r %a tab%aG
!ota 'G <% i/ a% q e oc rrCa con e% nombre $e %a base $e $atos, e% nombre $e %a tab%a po$r contener espacios, e&es B 2oca%es acent a$as, B na %on/it $ s perior a %as ocho %etras. !ota (G 3ambi!n po$rCamos haber / ar$a$o sin necesi$a$ $e sa%ir, p %san$o e% botn q e m estra e% $isUette, en 2eF $e hacer c%ic sobre e% $e %a P. Nina%mente, %a panta%%a $e traba)o $e <ccess $eberCa tener na apariencia simi%ar a !staG
<ntes $e se/ ir a2anFan$o con %as cons %tas o con otras bases $e $atos $istintas, 2amos a echar n 2istaFo a %os tipos de datos q e permite <ccess. Es esta tab%a s%o hemos emp%ea$o campos $e tipo D3extoE, pero a% pinchar en %a casi%%a D3extoE 2emos q e aparece na :%echa hacia aba)o, in$icn$onos q e tenemos ms opciones q e po$emos esco/er. 6i $esp%e/amos esta %ista, aparecen to$os %os tipos $e $atos q e <ccess reconoceG
?a maBorCa $e e%%os %os hemos comenta$o Ba, pero 2amos a repasar to$os bre2ementeG R 9e/toG %etras, n5meros B otros sCmbo%os, con na %on/it $ mxima $e:ini$a, q e no po$r exce$er %os 255 caracteres. R :emoG simi%ar a% texto, pero $e %on/it $ in$e:ini$a 8ms 2ersti% pero ms %ento q e e% campo 3exto;. R Num1ricoG 2a%ores exc% si2amente n m!ricos, con o sin $ecima%es. R *ec8a=>oraG :echas BIo horas. R :onedaG (n 2a%or n m!rico con pocos $ecima%es pero con m chas ci:ras si/ni:icati2as. 6e sar para n5meros D/ran$esE B con pocos $ecima%es, como %os q e p e$e mane)ar n banco. R 'utonum1ricoG n n5mero q e a menta a tomticamente en ca$a n e2o re/istroG en e% primer re/istro 2a%$r 1, en e% se/ n$o 2a%$r 2, B asC s cesi2amente. LaB /ente a %a q e %e / sta sar este tipo $e campos como c%a2e primaria 8en n estro caso, po$rCa ser e% c$i/o $e a% mno;. R ;i=NoG n campo q e s%o p e$e tener n 2a%or entre esos $os. Es ms correcto q e sar na 6 o na N 8q e serCa n campo DtextoE con na %on/it $ $e na %etra;, por 2arios moti2osG oc pa menos espacio, no existir
prob%emas $e maB5sc %as B min5sc %as, ni siq iera $e Dinternacio+ na%iFacinE 8por e)emp%o, en n paCs $e hab%a in/%esa, se con2ertirCa a tomticamente en Mes B No;. R +bjeto +%,G c a%q ier otro tipo $e ob)eto Dincr sta$oE, Nos permitir / ar$ar im/enes, :ra/mentos $e 2i$eo, etc. Eso sC, e% tama&o $e% :ichero res %tante crecer rpi$amente. 89?E es %a abre2iat ra $e D9b)ect ?inUin/ an$ Embe$$in/E; R >iperv?nculoG n en%ace a% esti%o $e %os q e se emp%ean en *nternet. R <sistente para b5sq e$asG nos permitirCa q e en ese campo %o q e apareciese : ese na %ista $e 2a%ores pre$e:ini$os. Nosotros saremos bsicamente %os c atro primerosG texto, n m!rico, :echaIhora B memo. E% tama&o en %os campos $e texto no tiene $i:ic %ta$ 8ser e% n5mero $e %etras;, pero en %os campos n m!ricos sC, porq e <ccess no %os mi$e se/5n e% n5mero $e ci:ras, sino se/5n cmo se / ar$arn rea%mente %os $atos $entro $e% or$ena$or. Por eso, si esco/emos n tipo $e $atos num1rico B miramos en %a casi%%a $e Dtama&oE 2eremos q e aparece %a expresin DEntero %ar/oE. ?os posib%es 2a%ores sonG R 7BteG n5meros enteros 8sin $ecima%es; entre 0 B 255 8ambos inc% si2e;. E% espacio q e oc par ser $e n bBte, como s nombre in$ica. R EnteroG n5meros enteros entre O32.'#@ B 32.'#'. 9c pa 2 bBtes. R Entero %ar/oG n5meros enteros entre O2.14'.4@3.#4@ B 2.14'.4@3.#4'. 9c pa 4 bBtes. R 6imp%eG n5meros rea%es 8con $ecima%es; $e Dsimp%e precisinE, con 2a%ores posib%es entre 1,4T10O45 B 3,4T103@, con na precisin $e ' ci:ras. 9c pa 4 bBtes. R .ob%eG n5meros rea%es $e D$ob%e precisinE, con 2a%ores posib%es entre 1,'-T1030@ B 4,-4T10+324, con na precisin $e 15 ci:ras. 9c pa @ bBtes.
Mo he opta$o por 6in;@% 8 sar! %a 2ersin 3.2.';, q e es na base $e $atos para sistema operati2o =in$oJs, q e se ti%iFa me$iante %en/ a)e 6>?, B q e se p e$e $escar/ar /rat itamente $es$e *nternetG
<% entrar a =in6>? se nos pre/ nta q ! tipo $e bases $e $atos 2amos a ti%iFar. 3enemos m chas posibi%i$a$es $istintas, pero po$emos emp%ear :icheros $e D$7aseE, por e)emp%o. Esta es na base $e $atos q e to$a2Ca no hemos mane)a$o, pero es n a t!ntico estn$ar, B si creamos :icheros $e este tipo es casi se/ ro q e $esp !s po$remos Dapro2echar%osE $es$e c a%q ier otra base $e $atos ms mo$erna.
Entonces nos aparecer na 2entana 2acCa, en %a q e nosotros $eberemos escribir %as r$enes en lenguaje ;@%. Por e)emp%o, para crear n estra tab%a Da% mnosE, en %a q e ten/amos %os campos $ni 810 %etras;, nombre 840 %etras; B t%: 8te%!:ono, 15 %etras;, %a or$en q e se sarCa esG
Para q e n estro e)emp%o q e$e correcto, to$a2Ca :a%ta a%/o. En %a tab%a $e %os Da% mnosE, q erCamos q e e% .N* act ase como c%a2e primaria. Esto, en %a maBorCa $e %as 2ersiones $e 6>? se conse/ irCa a&a$ien$o %a si/ iente %Cnea a% :ina% $e %a or$en anterior 8antes $e% 5%timo par!ntesis;G
primary key #dni&
Pero res %ta q e =in6>? sa e% DmotorE $e bases $e $atos crea$o por 0icroso:t 8e% mismo q e emp%ea <ccess;, q e tiene a%/ na 8peq e&a; $i:erencia $e sintaxis con e% 6>? estn$ar, $e manera q e ten$remos q e hacer%o $e otra :orma. ?a manera ti%iFa$a por =in6>? es in$ican$o esa c%a2e primaria como DrestriccinE 8DconstraintE;, asCG
create table alumno #dni c!ar#$%&, nombre c!ar#'%&, tlf c!ar#$(& constraint dni primary key &
na
En c a%q ier caso, =in6>? respon$er con n mensa)e q e nos in$ica q e %o ha hecho, pero q e no haB $atos q e mostrar en panta%%a. Estos mensa)es $e resp esta aparecen en %a pesta&a D,es %tE, q e pasa a ser %a pesta&a 2isib%e ca$a 2eF q e
escribimos na or$en B p %semos e% botn D, n > erBE 8e% $e% trin/ %o 2er$e, q e hace q e se procese %a or$en q e hemos tec%ea$o;. < %a hora $e aadir datos, se sa %a or$en DinsertE. 6 :orma ms senci%%a consiste en in$icar e% nombre $e %a tab%a, B, entre par!ntesis, %os 2a%ores para ca$a no $e %os campos, en e% or$en en q e %os habCamos $e:ini$o a% crear %a tab%aG
insert into alumno values #)(((), )*uan), )$$$+$$+$$)&
?os 2a%ores %os he in$ica$o entre comi%%as porq e son texto 8ca$enas $e caracteres;S si a%/ no $e %os campos : era n m!rico, no habrCa q e poner esas comi%%as. Como hemos a&a$i$o n re/istro, =in6>? nos respon$er $icien$o q e na :i%a $e %a tab%a se ha 2isto a:ecta$o por estos cambiosG
6i/ ien$o este mismo esq ema po$rCamos a&a$ir a%/ na :icha ms.
Nina%mente, po$emos visuali"ar los datos obteni$os. Para e%%o se emp%ea %a or$en DselectEG
select , from alumno
Esta or$en mostrar to$os %os $atos 8es %o q e se in$ica con e% asterisco V; $e %a tab%a %%ama$a Da% mnoE. 9bten$rCamos n res %ta$o pareci$o a !steG
9 2o;#s& affected
3ambi!n po$rCamos pe$ir q e se nos m estre s%o a%/ no $e %os campos. Por e)emp%o, si q eremos 2er primero e% te%!:ono B % e/o e% nombre 8B q e no se m estre e% .N*; escribirCamos
select tlf, nombre from alumno
+++++++++++++++ +++++++++++++++++++++++
9 2o;#s& affected
?a or$en Dse%ectE permite hacer m chas ms cosas, pero %as 2eremos a s $ebi$o tiempo, c an$o tratemos %a :orma $e rea%iFar cons %tas a partir $e %os $atos.
cuando es la Cltima vez que se alquilD, o cuantas pel<culas se !an alquilado en formato -?-".
B para mostrar s%o %os 2a%ores $e a%/ nos $e %os campos, $eta%%arCamos c a%es son $ichos camposG
select tlf, nombre from alumno
Pero norma%mente no nos interesar 2er to$as %as :ichas 8re/istros; q e contiene %a tab%a, sino s%o aq e%%as q e c mp%en na cierta con$icin. Esta con$icin se in$ica $esp !s $e %a pa%abra DJhereE, asCG
select , from alumno where nombre E )*uan)
Con DWE nos respon$er q ! :ichas contienen exactamente ese 2a%or. 9tras comparaciones posib%es sonG 6Cmbo%o X Y XW YW YX E)emp%os $e s 6i/ni:ica$o 0aBor q e 0enor q e 0aBor o i/ a% q e 0enor o i/ a% q e .istinto $e so po$rCan ser
select , from alumno where edad FE $G select nombre from alumno where numero@ermanos H 9 select nombre, ciudad from alumno where ciudad HF )0adrid)
C an$o b scamos n texto, es :rec ente q e no nos interese %oca%iFar n cierto texto exactamente, sino q e s%o conoFcamos parte $e ese texto. 6erCa e% caso $e Da% mnos c Bo nombre empieFa por HE, o Dpersonas q e tienen ?peF como primer ape%%i$oE, o D$omici%ios en %os q e aparece %a pa%abra 7arce%onaE. Para e%%o se emp%ea %a pa%abra D%iUeE, se $eta%%a %a parte $e con$icin q e sabemos B se sa e% sCmbo%o Z para %a parte $e %a con$icin q e no sabemos. Por e)emp%o para Da% mnos c Bo nombre empieFa por HE harCamosG
select , from alumno where nombre like )*I)
M para Dnombre $e %os a% mnos en c Bo $omici%io apareFca %a pa%abra 7arce%onaE po$rCa ser
select nombre from alumno where domicilio like )I1arcelonaI)
Nina%mente 8por ahora;, con2iene in$icar q e %os res %ta$os $e esta cons %ta %os po$emos obtener or$ena$os n m!ricamente 8$e menor a maBor 2a%or; o a%:ab!ticamente 8$e %a < a %a [; si a&a$imos a% :ina% Dor$er bBE se/ i$o $e% nombre $e% campo q e q eremos sar para esa or$enacinG
select , from alumno where ciudad E )0adrid) order by nombre
9 po$emos or$enar $e manera $escen$ente 8%os n5meros $e maBor a menor B %os textos $e %a [ a %a <; B samos Dor$er bB .. $escEG
select , from alumno order by nombre desc
Vo%2eremos ms a$e%ante para 2er cmo rea%iFar cons %tas ms e%abora$as $es$e 6>?, pero antes 2eamos %a :orma en q e se conse/ irCa esto mismo $es$e <ccess.
.es$e aq C, haremos c%ic en e% botn DN e2oE, para crear na n e2a cons %ta. Nos pre/ ntar si q eremos basarnos crear na cons %ta $es$e %a DVista .ise&oE o ti%iFar a%/ no $e %os asistentes $isponib%es. Nosotros emp%earemos %a 2ista $e $ise&o.
Entonces aparecer na 2entana en %a q e se nos m estran %as tab%as q e tenemos $ispo+ nib%es en n estra base $e $atos, B $e :on$o %a c a$rCc %a 2acCa $e %o q e ser n estra con+ s %ta. .eberemos ir se&a%an$o ca$a na $e %as tab%as q e q ere+ mos q e :orme parte $e n estra cons %ta, B p %san$o e% botn D</re/arE. En n estro caso, to$a2Ca es senci%%o, porq e s%o tenemos na tab%a. C an$o haBamos inc% i$o to$as. P %samos e% botn DCerrarE B 2emos na panta%%a en %a q e se nos m estra en %a parte s perior %a8s; tab%a8s; q e hemos esco/i$o B en
%a parte in:erior %o q e ser %a $e:inicin $e %a cons %ta, to$a2Ca 2acCa. P es Ba s%o q e$a %o ms :ci%G R Para in$icar q ! campos q eremos q e se m estren B en q ! or$en, 2amos hacien$o $ob%e c%ic sobre ca$a no $e e%%os, B aparecern en ca$a na $e %as co% mnas $e n estra cons %ta. R Para in$icar e% 2a%or q e $ebe tener n cierto campo, %o escribimos en %a :i%a DCriteriosE. R 6i q eremos q e a%/5n campo se emp%ee para or$enar %os res %ta$os, e%e/imos D<scen$enteE o D.escen$enteE en %a :i%a D9r$enE.
Para 2er e% res %ta$o $e esta cons %ta, hacemos c%ic en e% botn DE)ec tarE $e %a barra $e tareas.
Nos mostrar %as tab%as q e tenemos $isponib%es, para q e esco)amos %as q e q eremos re%acionar..
.e esos campos q e sabemos q e se re:ieren a na misma cosa, pinchamos B arrastramos no $e e%%os hasta e% otro 8por e)emp%o, e% DCo$Pro2inciaE $e %a tab%a $e a% mnos hasta e% Dc$i/oE $e %a tab%a $e pro2incias;. <parecer na 2entana en %a q e <ccess nos pi$e q e con:irmemos c a%es son %os $os campos q e estn re%aciona$osG
C an$o p %semos e% botn DcrearE, aparecer na raBa nien$o esos $os campos, con %o q e <ccess nos in$ica q e ha enten$i$o n estra peticinG
Pero :a%tan n par $e $eta%%es $e %a 2entana anterior q e hemos pasa$o por a%toG ?a casi%%a $e DExi/ir inte/ri$a$ re:erencia%E se encar/arCa $e a2isarnos si intentamos tec%ear en %a tab%a $e a% mnos n c$i/o $e pro2incia q e no existe en %a tab%a $e pro2incias, para e2itar incon/r encias en %os $atos 8%a inte/ri$a$ re:erencia% en senti$o estricto tambi!n a:ecta a mo$i:icaciones B borra$os, pero nosotros no entraremos en tanto $eta%%e;. E% botn D3ipo $e combinacinE m estra %a pre/ nta q e aparece a %a $erecha, B q e se exp%ica por sC so%aG
?a primera pre/ nta q e nos hace este asistente es q ! campos q eremos q e apareFcan, B $e q ! tab%a se 2an a tomar. *nsisto en q e po$emos in$icar q e nos m estre s%o a%/ nos campos, pero no po$emos pe$ir q e %os $atos c mp%an ciertas con$icionesG $e eso se encar/a %a cons %ta.
Para in$icar %os campos q e q eremos a&a$ir, basta ir se%eccionn$o%os en or$en B p %san$o %a :%echa X, q e har q e apareFcan en e% %a$o $erecho 8campos se%ecciona$os;. 6i q eremos a&a$ir to$os, %a :orma ms rpi$a es p %sar %a $ob%e :%echa 8XX;. .e i/ a% manera, po$emos e%iminar c a%q iera $e %os campos se%ecciona$os si hacemos c%ic en %a :%echa hacia %a iFq ier$a 8Y;, o e%iminar to$os e%%os p %san$o en %a $ob%e :%echa hacia %a iFq ier$a 8YY;. < contin acin nos pre/ nta si q eremos a/r par %os $atos $e a%/ na :orma. Por e)emp%o, nos p e$e interesar q e n estros c%ientes apareFcan a/r pa$os se/5n %a ci $a$ en %a q e 2i2an. <$ems po$rCamos in$icar q e rea%iFara a%/ na operacin con %os $atos q e se han a/r pa$o. Por e)emp%o, $esp !s $e %os $atos $e ca$a ci $a$ nos p e$e aparecer %a s ma $e %os 2a%ores $e n cierto campo, para obtener, por e)emp%o, %a s ma $e %os importes $e %as 2entas rea%iFa$as a c%ientes $e ca$a ci $a$. 3ambi!n haB otras operaciones $isponib%es como e% prome$io 8nota me$ia $e n estros a% mnos, estat ra me$ia, etc;. < estas posibi%i$a$es %%e/amos con e% botn D9pciones $e a/r pamientoE.
?a si/ iente pre/ nta es si q eremos or$enar %os re/istros q e aparecern en e% in:orme. En caso a:irmati2o, $eberemos in$icar en q ! campos q eremos q e se base 8por e)emp%o, por ape%%i$os B en se/ n$o % /ar Osi coinci$en %os ape%%i$os+ por nombre;. (na obser2acinG 6i hemos pe$i$o q e %os $atos se a/r pen, %os /r pos aparecern or$ena$os, B con esta opcin or$enarCamos a s 2eF %a in:ormacin q e aparece $entro $e ca$a /r po. .esp !s nos pre/ ntar %a $istrib cin /%oba% q e ten$rn %os $atos en e% in:orme, B nos mostrar n peq e&o e)emp%o $e cmo q e$arCa ca$a na $e e%%asG
Nina%mente nos pi$e %a apariencia, en c anto a combinacin $e co%ores B tipos $e %etra, q e ten$r n estro in:orme, B q e tambi!n esco/eremos entre 2arias pre$e:ini$as.
Ma est %isto. Nos pi$e n nombre B nos pre/ nta si $eseamos 2er cmo q e$arCa e% in:orme 8D2ista pre2iaE; o mo$i:icar s $ise&o. En principio, s pon$remos q e nos basta con 2er%o, B ms a$e%ante 2eremos cmo mo$i:icar e% $ise&o. (n 5%timo $eta%%eG e% in:orme q e$a a%macena$o, B %o po$emos 2o%2er a 2er simp%emente hacien$o $ob%e c%ic en s nombre. Pero 8como parece %/ico;, e% in:orme no mostrar siempre %os mismos $atosG se reca%c %a ca$a 2eF q e pi$amos q e nos %o m estre, $e mo$o q e %os $atos q e 2eamos en panta%%a sern siempre %os act a%es, inc% Ben$o %os 5%timos re/istros q e haBamos a&a$i$o B %as 5%timas mo$i:icaciones q e po$amos haber rea%iFa$o.
-tras posibilidades...
> ieres q e este %ibro hab%e ms sobre e% $ise&o $e :orm %arios e in:ormes con <ccess" 9 %as macros" 9 %os m$ %os" 9 q e pro: n$ice ms en 6>?" ,e%aciones ternarias, narias B ms $eta%%es sobre Enti$a$+,e%acin" 9tros mo$e%os $e $atos" <%/o sobre norma%iFacin" 6i s! q ! es %o q e ms interesa a %a /ente, po$r! hacer q e este texto sea ms 5ti%.
Este texto es D5racias6are3. Esto q iere $ecir q e si te / sta BIo te res %ta 5ti%, basta con q e me man$es n correo e%ectrnico a mi $ireccin ncabanes@pobox.com 6i 2eo q e ten/o apoBo mora%, proc rar! ir me)oran$o este texto B %anFan$o n e2as 2ersiones, ca$a 2eF ms amp%ia$as. ?as versiones e/istentes hasta %a act a% han si$oG R 0.05, 20 Enero 2003. <&a$i$o n s baparta$o sobre cmo rea%iFar cons %tas senci%%as en %en/ a)e 6>? con <ccess, na intro$ ccin a %as re%aciones con <ccess, n aparta$o sobre in:ormes con <ccess B cmo po$rCa ser e% $ise&o $e% se/ n$o e)emp%o. 9c pa 4# p/inas. R 0.04, 03 9ct bre 2002. ,e$ ci$o %i/eramente e% tama&o $e% tipo $e %etra ti%iFa$o B e% tama&o $e a%/ na ima/en, con %o q e e% n5mero $e p/inas inicia% $e% $oc mento ba)a $e 3@ a 33. <&a$i$o n s baparta$o sobre cmo rea%iFar cons %tas senci%%as $es$e e% %en/ a)e
6>?, emp%ean$o =in6>?, B otro sobre cons %tas senci%%as $es$e <ccess. ,eescrito a%/5n prra:o b scan$o maBor c%ari$a$. 9c pa :ina%mente 3@ p/inas. R 0.03, 2- H %io 2001. <&a$i$o n s baparta$o sobre cmo crear %as tab%as $es$e e% %en/ a)e 6>?, emp%ean$o =in6>?. Prop esto e% en ncia$o $e% se/ n$o e)emp%o, q e to$a2Ca no est res e%to. <&a$i$a na nota sobre q e existen otras notaciones para e% mo$e%o Enti$a$+,e%acin, a nq e to$a2Ca no he $a$o ms $eta%%es sobre e%%as. 9c pa 3@ p/inas. R 0.02, 13 6eptiembre 2000. <&a$i$o n s baparta$o sobre cmo crear %as tab%as con <ccess. ,e2isa$a %a orto/ra:Ca, para e2itar a%/ na errata como D$irecotrioE, Daritm!ricasE o Dinc soE. Cambia$a %a n meracin $e %as p/inas 8para q e %a porta$a no c ente como p/ina 1;. 9c pa 33 p/inas. R 0.01, 0' </osto 2000. Primera 2ersin, oc pa 25 p/inas 8inc% Ben$o Cn$ices; B contiene %os tres primeros aparta$os 8intro$ ccin, nociones bsicas $e $ise&o, con2irtien$o e% $ise&o a tab%as;, hasta e% s baparta$o $e cmo crear %as tab%as con 6tar7ase. ?as pr/imas mejoras sernG R 0s $eta%%es sobre %as cons %tas. R Cmo re:%e)ar %as re%aciones en %a base $e $atos. R *ntro$ ccin a %os :orm %arios B %os in:ormes. R Cmo crear %as tab%as con $7ase ***A B otras bases $e $atos Danti/ asE.
;ndice 0l.abtico.
<ccess, 22 <sistente para tab%as, 24 atrib tos, 10 < ton m!rico, 2' base $e $atos, 5 campo, 5 car$ina%i$a$, @ char, 30 c%a2e, 11 c%a2e principa%, 11 c%a2es a%ternati2as, 11 constraint, 30 Cons %tas en 6>?, 33 create tab%e, 30 .ise&o bsico, ' EE,, enti$a$es, @ Enti$a$+,e%acin, ' Enti$a$+,e%acin Exten$i$o, Necha 8tipo $e $atos;, 14 NechaILora, 2' :rom, 31, 33 /enera%iFacin, 15 Kracias=are, # Liper2Cnc %o, 2@ *mportar tab%a, 25 in:ormes con <ccess, 40 insert into, 31 inte/ri$a$ re:erencia%, 3into, 31 %iUe, 34 %ista$os con <ccess, 40 ?/ico 8tipo $e $atos;, 14 0emo, 2' 0emo 8tipo $e $atos;, 14 0one$a, 2' N m!rico, 2' N m!rico 8tipo $e $atos;, 14 9b)eto 9?E, 2@ 9?E, 2@ primarB UeB, 30 re/istro, 5 re%aciona% 8base $e $atos;, 5 re%aciones, @ re%aciones en <ccess, 3@ se%ect, 31, 33 6K7., # 6iINo, 2' 6>?, 2@ 6>? en <ccess, 3' 6tar7ase, 1# 6tar9::ice, 1# tab%a, 5 3exto, 2' 3exto 8tipo $e $atos;, 14 tipos $e $atos, 13 2a% es, 31 Vinc %ar tab%a, 25 Vista $ise&o, 24 Vista ho)a $e $atos, 24 Vistas $e na cons %ta, en <ccess, 3' Jhere, 34 =in6>?, 2-