introduccion a base de datos Access

20
Bases de Datos Capítulo 2 Microsoft Access Sistemas de Gestión de Bases de Datos

Transcript of introduccion a base de datos Access

Page 1: introduccion a base de datos Access

7/23/2019 introduccion a base de datos Access

http://slidepdf.com/reader/full/introduccion-a-base-de-datos-access 1/20

Bases de Datos Capítulo 2

Microsoft Access

Sistemas de Gestión de Bases de Datos

Page 2: introduccion a base de datos Access

7/23/2019 introduccion a base de datos Access

http://slidepdf.com/reader/full/introduccion-a-base-de-datos-access 2/20

Índice de Contenidos

1.- Introducción a Access.....................................................................................3

2.- Base de datos para Access.............................................................................33.-Tablas...............................................................................................................4

3.1.- Definición de campos................................................................................4

3.1.1.-Tipos de datos......................................................................................

3.1.2.- !ropiedades de campo "len#$eta General%........................................&

3.2.- 'la(e principal...........................................................................................&

3.3.- )elaciones entre tablas............................................................................*

3.3.1.- )elaciones uno a muc+os "1 ,%........................................................*

3.3.2.- )elaciones muc+os a muc+os ",%..................................................*

3.3.3.- )elaciones uno a uno "1,1%.................................................................

4.- /peradores 0 epresiones..............................................................................

.- 'onsultas........................................................................................................

.1.- Introducción a las consultas......................................................................

.2.- Introducción al S.................................................................................15

.2.1.- 'onsultas de selección simple..........................................................15

.2.2.- Adición de campos............................................................................11

.2.3.- 6alores repetidos..............................................................................12

.2.4.- /rdenación de re#istros....................................................................12

.2..- A#rupamiento de datos.....................................................................13

.2.&.- 7iltrado de tuplas de salida...............................................................1

.3.- 'onsultas sobre (arias tablas.................................................................1&

.4.- 'onsultas de inserción............................................................................1

..- 'onsultas de actuali8ación.....................................................................1

.&.- 'onsultas de borrado..............................................................................1

Page 3: introduccion a base de datos Access

7/23/2019 introduccion a base de datos Access

http://slidepdf.com/reader/full/introduccion-a-base-de-datos-access 3/20

1.- Introducción a Access Access es un pro#rama comercial de la empresa Microsoft Corporation. Setrata de un sistema #estor de bases de datos dise9ado para ser utili8ado encomputadores personales tipo !'. Aun:ue no est; considerado como unsistema de B.D. eperto. Access puede funcionar en sistemas de ba<o costo 0

con pocos recursos computacionales= 0 es muc+o m;s barato :ue otrossistemas de B.D. Adem;s= dispone de un entorno mu0 ami#able. !or estara8ón= son muc+as las empresas pe:ue9as las :ue apuestan por este sistema.a instalación completa de Access proporciona una serie de +erramientas deapo0o al usuario 0 al pro#ramador :ue pueden facilitar la creación 0administración de una base de datos.

2.- Base de datos para Access>n Access una base de datos es un archivo :ue contiene datos "estructuradose interrelacionados% 0 los ob<etos :ue definen 0 mane<an esos datos, tablas=

consultas= formularios= informes= macros 0 módulos. Adem;s= se pueden definir estrate#ias de se#uridad 0 de inte#ridad. !ueden coeistir en un disco (ariasbases de datos= en (arios arc+i(os= absolutamente independientes entre s?. Acontinuación se enumeran los diferentes ob<etos :ue se permite crear en unabase de datos Access,

• Talas! son los almacenes de datos. Se trata de listas de re#istros. >l

dise9o de tablas consiste en la definición de los campos necesarios

para almacenar correctamente la información de la base de datos.

• Consultas! operaciones :ue pueden reali8ase sobre los datos de las

tablas, limitaciones de acceso= selección de datos= inserción=

modificación 0 borrado= c;lculos...

• "or#ularios! pantallas :ue se presentan a los usuarios de una base

de datos para :ue ten#an un acceso ami#able a los datos 0

operaciones.

• Infor#es! formatos de presentación de los datos para #enerar copias

impresas de la información re#istrada en la base de datos.

• Macros $ #ódulos! se#mentos de códi#o en len#ua<e de alto ni(el

"Access Basic= 6isual Basic= len#ua<e de macros=...% :ue permiten

reali8ar operaciones comple<as con los datos 0 ob<etos de la base de

datos.

os ob<etos en Access deben estar identificados mediante un nombre.Dentro de cada #rupo de ob<etos "tablas= consultas= formularios= etc.% losob<etos se or#ani8an como arc+i(os dentro de un directorio. )eferenciasposteriores a esos ob<etos se +acen a tra(@s de su nombre :ue le identifica.>l arc+i(o de una base de datos Access tiene etensión MDB "Microsoft DataBase%. Adem;s de este arc+i(o= puede eistir un arc+i(o con etensión LDB.>ste arc+i(o contiene información de blo:ueo de re#istros= :ue permite elacceso se#uro de mltiples usuarios de forma concurrente. >l arc+i(o de labase de datos permanece abierto mientras se traba<a con los datos= 0nicamente se cierra cuando se cierra la base de datos de forma epl?cita= conla opción correspondiente. Si por cual:uier problema= no se reali8a un cierreordenado= la base de datos puede da9arse.

Page 4: introduccion a base de datos Access

7/23/2019 introduccion a base de datos Access

http://slidepdf.com/reader/full/introduccion-a-base-de-datos-access 4/20

 Al crear una base de datos en blanco aparece la (entana principal deaccess para la creación de cada uno de los ob<etos como son tablas= consultas=etc. a fi#ura 1 muestra esta (entana principal.

Figura 1  Aspecto de la ventana principal de una base de datos vacía.

%.-TalasUno de los objetos más importantes que se pueden crear en una base de datos

Access son las tablas. Las tablas son las estructuras que permiten almacenar los datos de

la base de datos.

Una tabla es un conjunto de tuplas o registros. En este sentido podemosconsiderarla como una lista que contiene registros, tantos como se quiera. Cada registro

estará compuesto por una colección de campos. Cada campo tendrá un tipo que indica

la clase de datos que puede almacenar dicho campo. Y cada tipo tendrá unos atributos

de tipo  que limitan el dominio de los valores permitidos, as como una serie de

restricciones ! normas.

3.1.- Definición de campos

Una ve" que de#inimos los campos de in#ormación que necesitamos almacenar en

una tabla, se pasa a crear la tabla. $ara ello seleccionaremos la opción correspondienteen el men% o en la ventana principal de la base de datos. Access nos mostrará un

#ormulario para la de#inición de los campos. Esta ventana se denomina &de dise'o de

tabla( ver #igura ), #rente a la &de vista de tabla( que permitirá más adelante introducir 

los datos.

Page 5: introduccion a base de datos Access

7/23/2019 introduccion a base de datos Access

http://slidepdf.com/reader/full/introduccion-a-base-de-datos-access 5/20

Figura 2  Formulario de definición de campos (modo diseño de tabla)

%.1.1.-Tipos de datos.

'ada campo de una tabla de la B. de datos Access tendr; un tipo :ueindica la clase de datos :ue puede almacenar dic+o campo. os tipos de datos:ue permite Access asociar a los campos de una tabla se nombran 0 eplicana continuación.

• Te&to. 'ual:uier teto escrito entre 1 0 2 caracteres de lon#itud.

Se u ti li8a para representar nombre de productos= de clientes= de

pro(eedores 0= en #eneral= cual:uier dato sobre el :ue no se (a0ana reali8ar operaciones matem;ticas ni aritm@ticas.

• Me#o. Son cadenas de +asta &4.555 caracteres. tili8ados+abitualmente en campos de tipo descripti(o u obser(aciones.

• 'u#(rico. tili8ado para representar cantidades. >n laspropiedades de estos tipos de campo +abr; :ue definir elformato 0 los decimales :ue tendr; el nmero en cuestión.

• "echa)*ora. )epresentan fec+as 0 +oras. Al i#ual :ue en losnmeros= en las propiedades +a0 :ue definir la apariencia de lasfec+as.

• Moneda. )epresentan cantidades de dinero. as propiedades son lasmismas :ue las de los campos de tipo num@rico.

• Autonu#(rico. meros :ue se si#nan autom;ticamente 0 :uenunca cambian ni se reasi#nan al borrar. n e<emplo de aplicaciónser?a un nmero de factura o un nmero de epediente.

• +í)'o. Sólo representan (alores 6erdaderoC7also.

• ,eto ,/. Im;#enes= sonido o un documento de un

procesador de tetos.

• *ipervínculo. >nlace a una p;#ina eb.

Page 6: introduccion a base de datos Access

7/23/2019 introduccion a base de datos Access

http://slidepdf.com/reader/full/introduccion-a-base-de-datos-access 6/20

%.1.2.- 0ropiedades de ca#po len3eta 4eneral5

'ada uno de los campos creados para una tabla tienen propiedadesespeciales como por e<emplo la lon#itud del campo= la ne#ación depermitir (alor puntuales= entre otros= a continuación las propiedades m;simportantes definidas para los campos.

• 0er#itir lonitud cero. Si la opción es S?= se aceptar;= para ese

campo= el (alor (ac?o.

• Título. !ermite definir un nombre alternati(o para nombrar uncampo de modo :ue pueda utili8arse como eti:ueta del mismo.

• uares deci#ales. !ermite especificar el nmero de d?#itos :ueaparecer;n a la derec+a de la coma :ue separa los decimales.

• 6alor predeter#inado. )epresenta el (alor :ue= por defecto

aparecer; como contenido del campo.

• Ta#a7o ca#po. >specifica la lon#itud m;ima de teto permitido enun campo o la cantidad de nmeros aceptable.

• "or#ato. Define la apariencia de los datos de un campo.

• Inde&ado. !ermite ele#ir si el campo ser; un ?ndice de la tabla 0si puede +aber (alores duplicados en dic+o ?ndice.

• M8scara de entrada. Define un patrón de entrada para introducir 

(alores en un campo.

• 9e:uerido. 'on el (alor S? si#nifica :ue es obli#atorio introducir 

un (alor en el campo.

• 9ela de validación. >presa los l?mites dentro de los cuales sedebe incluir el (alor del campo.

• Te&to de validación. 'ontenido del mensa<e :ue aparecer; enpantalla cada (e8 :ue se introdu8ca un (alor erróneo en elcampo.

• ';#ero de colu#nas. mero de columnas de la tabla :ue se(er;n al desple#ar el cuadro de lista o el cuadro combinado.

3.2.- Clave principal 

>n toda tabla de una B. D. suele eistir una cla(e principal "tambi@nllamada cla(e primaria o cla(e maestra%. na cla(e principal es un campo ocon<unto de campos cu0os (alores no se repiten 0 a tra(@s de los cuales se

identifica de forma nica al re#istro completo. >s decir= :ue no +a0 dosre#istros en una tabla con la misma cla(e. na cla(e principal es un campo"o un con<unto formado por (arios campos% :ue identifican de formaun?(oca a cada uno de los re#istros :ue conforman una tabla. >s mu0importante definir cla(es en las tablas por:ue= de esta forma= no eistir;ndos re#istros repetidos= siempre mantendremos ordenados los re#istros=

Page 7: introduccion a base de datos Access

7/23/2019 introduccion a base de datos Access

http://slidepdf.com/reader/full/introduccion-a-base-de-datos-access 7/20

por defecto= con respecto a la cla(e 0 el proceso de bs:ueda de datos seacelera de forma considerable. a forma de asi#nar a un campo lacaracter?stica de cla(e es seleccionando dic+o campo o campos en lapantalla de definición de la tabla 0= a continuación seleccionar la opciónEdición / Clave principal.

Ea0 :ue ser cuidadosos a la +ora de ele#ir la cla(e principal= 0 esal#o :ue debe +acerse antes de introducir (alores en la tabla. >s cierto:ue del mismo modo :ue podemos modificar la estructura de la tablatambi@n podemos modificar el campo cla(e. !ero esto puede acarrear problemas si asi#namos la caracter?stica de campo cla(e a al#n campo "ocampos% :ue ten#an (alores repetidos o (alores nulos= 0a :ue el sistemanos lo impedir?a pero sin informarnos de dónde esta el duplicado o el (alor nulo.

3.3.- Relaciones entre tablas

>ntre las tablas :ue conforman una base de datos= pueden crearse

relaciones en cual:uier momento= siempre :ue las tablas cumplandeterminados re:uisitos para poder establecer la relación. Si bien puedencrearse en cual:uier momento las relaciones= con(iene +acer esto antes deintroducir datos en las tablas para e(itar problemas posteriores. asrelaciones :ue pueden establecerse entre dos tablas son de tres tipos,1,1= 1,= ,.

%.%.1.- 9elaciones uno a #uchos 1 !'5

!ara poder crear una relación 1, entre dos tablas= A 0 B Eemos deproceder como si#ue. >n la tabla muchos, B= a9adiremos un campo :ueser; del mismo tipo :ue la cla(e principal de la tabla uno, A. Si la cla(e

principal de A est; formada por m;s de un campo= dos por e<emplo= +abr;:ue a9adir esos dos campos= del mismo tipo= a la tabla B. >iste unaecepción a esta re#la. Si la cla(e principal de la tabla A es de tipoautonum@rico= el campo :ue a9adiremos en la tabla B ser; de tiponum@rico.

!ara crear una relación +a0 :ue diri#irse al men Herramientas / Relaciones 0 a#re#ar todas las tablas :ue (an a relacionarse entre si. Acontinuación se arrastra con el ratón la cla(e de la tabla uno (! " sesuelta el botón sobre el campo de la tabla muc+os "% con el cual +a0 :ueestablecer la relación. Si se :uiere :ue se manten#a la inte#ridadreferencial= se pulsa la casilla de (erificación indicada= indicando tambi@na Access cómo mane<ar las modificaciones 0 las eliminaciones de la tabla=

Si se :uiere :ue las actuali8aciones de una de las tablas se trasladenautom;ticamente a la tabla relacionada= acti(aremos la casilla :ue as? loind ica. Del mismo modo= si :ueremos :ue las eliminaciones producidas enuna tabla se realicen tambi@n en la tabla relacionada acti(aremos tambi@nla casilla :ue as? lo indica.

%.%.2.- 9elaciones #uchos a #uchos '!'5

>stas relaciones en Access se crean a partir de dos relaciones 1,.!ara crear una relación muc+os a muc+os entre A 0 B +a0 :ue proceder como si#ue. Se 'rea una nue(a tabla= ' :ue contendr; como atributos losatributos cla(e de A= los de B 0 los atributos propios de la relación entre A0 B. >n '= +abr; :ue seleccionar tambi@n una cla(e. A continuación seestablece entre A 0 ' una relación 1, 0 otra relación 1, ente B 0 ' de lasmismas caracter?sticas.

Page 8: introduccion a base de datos Access

7/23/2019 introduccion a base de datos Access

http://slidepdf.com/reader/full/introduccion-a-base-de-datos-access 8/20

%.%.%.- 9elaciones uno a uno 1!15

!ara establecer una relación 1,1 entre dos entidades A 0 B +a0 :uerelacionar los campos cla(e de ambas tablas entre si para lo cual deben cumplir :ue sean del mismo tipo.

<.- ,peradores $ e&presionesas epresiones en S son seme<antes a las utili8adas en la ma0or?a

de los len#ua<es.

Operador Significado Operador Significado

+ *uma aritm+tica " elimitador de cadenas

- -esta aritm+tica &Concatenación de

cadenas

* $roducto aritm+tico = Comparador igual

/ ivisión aritm+tica <> Comparador distinto

Mod ódulo > Comparador ma!or 

AND A/ lógico < Comparador menor 

OR 0- lógico >=Comparador ma!or o

igual

NOT  /egación lógica <=Comparador menor o

igual

XOR 0- e1clusivo lógico ( )elimitadores de

 precedencia

Sin embar#o merecen destacar los si#uientes,

Operador Significado

IS NULLComparador con valor nulo. 2ndica si un campo se ha dejado en blanco.

Ejemplo3 Alumnos cu!a edad se desconoce3

SELECT * FROM Alu!o #$ERE Ed%d IS NULL

IS NOT

NULL

Comparador con valor no nulo. 2ndica si un campo contiene un valor, ! no se

ha dejado en blanco. Ejemplo3 Alumnos cu!a edad no se desconoce3

SELECT * FROM Alu!o #$ERE Ed%d IS NOT NULL

LI'E

Comparador de semejan"a. $ermite reali"ar una comparación de cadenas

utili"ando caracteres comodines3

4 5 Un carácter cualquiera

6 5 Cualquier combinación de caracteres 7incluido ning%n carácter8

Ejemplo3 Alumnos cu!o apellido comien"a por &A(3

SELECT * FROM Alu!o #$ERE No LI'E "A*"

ET#EEN,,,

AND

Comparador de pertenencia a rango. $or ejemplo, alumnos cu!a edad est+

comprendida entre 9: ! );3

SELECT * FROM Alu!o #$ERE Ed%d ET#EEN . AND 0

Page 9: introduccion a base de datos Access

7/23/2019 introduccion a base de datos Access

http://slidepdf.com/reader/full/introduccion-a-base-de-datos-access 9/20

Operador Significado

1 2

elimitadores de identi#icadores. *irven para delimitar los nombres de

objetos 7campos, tablas, etc.8 cuando +stos inclu!en espacios. Ejemplo3

supongamos una tabla llamada &Alumnos nuevos(3

SELECT * FROM 1Alu!o !u3o2

=.- Consultas

5.1.- Introducción a las consultas

as consultas son operaciones :ue se reali8an sobre los datos de unabase de datos. >stas operaciones pueden ser de di(ersos tipos,

• Consultas de selección de datos!  permiten recuperar los datos

almacenados en las tablas en el formato 0 orden adecuados. Adem;s

permiten filtrar 0 a#rupar la información. >l resultado de estas consultas

consiste en una tabla F(irtual, una tabla :ue f?sicamente no ocupa

espacio "por:ue traba<a sobre los datos ori#inales de las tablas sobre

las :ue se define%= pero :ue permite ser mane<ada de la misma forma

:ue una tabla real.

• Consultas de inserción de datos! permiten a#re#ar re#istros a una

tabla.

• Consultas de #odificación! permiten modificar los (alores de los

campos de los re#istros de una tabla.

• Consultas de orrado! permiten eliminar re#istros de una tabla.

• Consultas de creación de tala! permiten crear nue(as tablas cu0os

campos 0 re#istros se obtienen a partir de los almacenados en otras

tablas.

Dentro de las consultas de selección podemos resaltar al#unos #ruposimportantes,

• Consultas de selección si#ple!  permite filtrar tuplas 0 a9adir o

descartar campos de los re#istros. Se utili8an para crear F(istas,

consultas :ue se utili8an como tablas para restrin#ir el acceso a losdatos a determinados usuarios.

• Consultas de unión! permiten relacionar los datos de distintas tablas

a tra(@s de campos cla(e.

• Consultas de arupa#iento!  permiten obtener resultados

estad?sticos de con<untos de re#istros= como medias de un campo=

totales= etc.

as consultas a los datos de las bases de datos se +acen a tra(@s de losdenominados Flen#ua<es de consulta. >l m;s utili8ado en B. de Datosrelacionales es el S "#tandard $uer" Lan%ua%e%. Access permite reali8ar consultas en S. !ero= dada la filosof?a (isual se#uida en Access= tambi@n sepermite la definición de consultas a tra(@s de una interfa8 (isual propia deaccess. Ambos m@todos son compatibles e intercambiables, se puede pasar de

Page 10: introduccion a base de datos Access

7/23/2019 introduccion a base de datos Access

http://slidepdf.com/reader/full/introduccion-a-base-de-datos-access 10/20

uno a otro sin problemas. Sin embar#o= S es un est;ndar :ue aparece enmultitud de sistemas sin (ariaciones= mientras :ue el desarrollo (isual dependedel fabricante.

5.2.- Introducción al SQ

na consulta S est; compuesta por una instrucción S :ue defineesa consulta. Se trata de un comando :ue puede ocupar cuantas l?neas de

teto se desee= terminado en punto 0 coma "H%. S es un len#ua<e sencillo eintuiti(o= las consultas se aseme&an al len%ua&e natural .

>isten al#unas palabras reser(adas= como en cual:uier len#ua<e,S>>'T= IS>)T= D>>T>= !DAT>= S>T= E>)>= I= DISTI'T= G)/!=/)D>)= B= etc.

=.2.1.- Consultas de selección si#plea consulta m;s simple posible consiste en la selección de campos 0

re#istros de una sola tabla. Se identifican los campos :ue nos interesan 0 unacondición :ue deben cumplir los re#istros seleccionados. >l resultado es unatabla :ue es un subcon<unto de la ori#inal.>l formato #en@rico de este tipo de consultas es,

SELECT <l45% d 6%7o> FROM <5%l%> #$ERE <6o!d4648!>

>sta instrucción recupera ciertos campos de los re#istros de una tabla:ue (erifican una condición. a cl;usula E>)> es opcional. Si se omite= seseleccionan todos los re#istros "se supone :ue la condición es siempre(erdadera%.

SELECT <l45% d 6%7o> FROM <5%l%>

Si nos interesan todos los campos podemos utili8ar el s?mbolo J paraidentificar a la lista completa,

SELECT * FROM <5%l%> #$ERE <6o!d4648!>

Si no= podemos especificar (arios campos identific;ndolos por susnombres 0 separ;ndolos por comas "=%.

SELECT 6%7o9 6%7o9 ,,,9 6%7oN FROM <5%l%> #$ERE<6o!d4648!>

Page 11: introduccion a base de datos Access

7/23/2019 introduccion a base de datos Access

http://slidepdf.com/reader/full/introduccion-a-base-de-datos-access 11/20

Supon#amos una tabla llamada Alumnos definida con los campos :uese muestran el la fi#ura 3.

Campo Descripción

-ut -ut alumno

 /ombre /ombre completo

Apellido

9

$rimer apellido

Apellido

)

*egundo apellido

Edad Edad

$arcial9 /ota obtenida en el primer parcial

$arcial) /ota obtenida en el segundo parcial

$rácticas /ota obtenida en las prácticas

Figura 3 “Campos tabla alumnos”

!odemos definir las si#uientes consultas de e<emplo,

Consulta SQL

*eleccionar los alumnos ma!ores de

)< a'os.

SELECT *

FROM Alu!o

#$ERE Ed%d>=:

*eleccionar los apellidos ! nombre de

los que han aprobado los dos parciales.

SELECT A7ll4do9 A7ll4do9 NoFROM Alu!o

#$ERE (;%64%l>=:) AND (;%64%l>=:)

=enerar un listado con los nombres !

apellidos de los alumnos ! sus notas.

SELECT No9 A7ll4do9 A7ll4do9

;%64%l9 ;%64%l9 ;6546%

FROM Alu!o

>s posible consultar= desde una base de datos= una tabla :uepertene8ca a otra base de datos.

>n este caso utili8aremos la sintais,

SELECT <l45% d 6%7o> FROM <5%l%> IN <% d d%5o>

a cl;usula I permite especificar otra base de datos como ori#en de latabla. ><emplo,

Consulta SQL

*eleccionar los alumnos ma!ores de

)< a'os, suponiendo que la tabla

 Alumnos está en otra base de datos quese llama

C:\COLEGIO\REGITSRO.!".

SELECT *

FROM Alu!o IN"CCOLE?IORE?ITSRO,MD"

#$ERE Ed%d>=:

>sta estructura permite tambi@n acceder a datos :ue se encuentren

Page 12: introduccion a base de datos Access

7/23/2019 introduccion a base de datos Access

http://slidepdf.com/reader/full/introduccion-a-base-de-datos-access 12/20

almacenados en otras bases de datos :ue no sean Kicrosoft Access= siempre 0cuando Access se encuentre correctamente instalado 0 confi#urado.

=.2.2.- Adición de ca#pos!odemos #enerar consultas en las :ue apare8can nue(os campos. !or 

e<emplo nos puede interesar una consulta en la :ue se muestre la notapromedio obtenida por los alumnos. >n tal caso podemos utili8ar la sintais

LepresiónM AS Lnombre campoM para cada columna a9adida como si setratara de un campo m;s de la tabla,

SELECT <l45% 6%7o>9 <@748!> AS <!o 6%7o>

FROM <5%l%> #$ERE <6o!d4648!>

 Al#unos e<emplos,

Consulta SQL

0btener los apellidos junto a la nota

media, suponiendo que la media de los parciales es el :;> ! el resto se

obtiene con las prácticas.

SELECT A7ll4do9 A7ll4do9

((;%64%l + ;%64%l) /) * 0,. +;6546% AS Md4%

FROM Alu!o

0btener los nombres completos de los

alumnos junto a su -ut.

SELECT No & " " & A7ll4do & " "

& A7ll4do AS NoCo7l5o9 Ru5

FROM Alu!o

=.2.%.- 6alores repetidosna consulta de selección puede recuperar tuplas id@nticas.

Supon#amos la si#uiente tabla Alumnos,

Rut Nombr

e

pellido

1

pellido

2

!da

d

"arcial

1

"arcial

2

"r#ctic

as

99.?:@.@9B

)

uan =óme" urado )D <,; @,: ),

:.D<D.:?)BD Alberto =arca a" )) ,; <, @,)

9D.:@.D<?B

?

uan 2"quierd

o

onoso )D <,; <,D 9,<

9?.<D.?:<B

9

os+ Lópe" Lópe" 9 D,? ?, ?,)

...

a si#uiente consulta de selección,

SELECT No9 Ed%d9 ;%64%l FROM Alu!o

Generar; dos tuplas con los datos, Nuan= 23= =5. !ara e(itar obtener 

tuplas "lista de campos mostrados en una consulta% repetidas= podemos utili8ar el modificador DIS!I"C! ,

SELECT DISTINCT No9 Ed%d9 ;%64%l FROM Alu!o

 A+ora la consulta no de(ol(er; tuplas repetidas. >iste otro modificador=

Page 13: introduccion a base de datos Access

7/23/2019 introduccion a base de datos Access

http://slidepdf.com/reader/full/introduccion-a-base-de-datos-access 13/20

DIS!I"C!R#$ . A diferencia del anterior= DISTI'T)/ no tiene en cuentatuplas :ue est@n completamente duplicadas en la tabla de ori#en "0 no sólopara los campos seleccionados%.

=.2.<.- ,rdenación de reistrosS permite especificar :ue las tuplas seleccionadas se muestren

ordenadas por al#uno o al#unos de los campos seleccionados= ascendente o

descendentemente. !ara ello se dispone de la palabra reser(ada /)D>) B=con el si#uiente formato,

SELECT <l45% d 6%7o l664o!%do> FROM <5%l%>

#$ERE <6o!d4648!> ORDER <l45% d 6%7o 7%% od!%>

a lista de campos para ordenar debe ser un subcon<unto de la lista de

campos seleccionados. !ara especificar un orden in(erso "decreciente% se

emplea la cl;usula D>S' :ue puede ser incluida tras el nombre del campo por 

el :ue se ordena de forma descendente. De la misma forma la cl;usula AS'

ordena de forma ascendente= aun:ue no es necesario especificarla= 0a :ue esla opción por defecto. ><emplos,

Consulta SQL

0btener un listado de alumnos

ordenados por apellidos.

SELECT * FROM Alu!o

ORDER A7ll4do9 A7ll4do9 No

0btener los alumnos con el primer 

 parcial aprobado, comen"ando por las

mejores notas.

SELECT * FROM Alu!o

#$ERE ;%64%l >= :

ORDER ;%64%l DESC

0btener los apellidos ! las notas de los

 parciales de los alumnos que han

sacado mejor nota en el primer parcial

que en el segundo, ordenando seg%n la

di#erencia entre ambas notas 7las

ma!ores di#erencias primero8. En caso

de empate, ordenar por apellidos de

#orma ascendente.

SELECT A7ll4do9 A7ll4do9 ;%64%l9

;%64%l

FROM Alu!o

#$ERE ;%64%l > ;%64%l

ORDER (;%64%l-;%64%l) DESC9

A7ll4do9 A7ll4do

=.2.=.- Arupa#iento de datosS permite definir consultas en la :ue se ofrecen tuplas :ue se

obten#an como resultado del a#rupamiento de (arias tuplas. !or e<emplo= (alor promedio de un campo= m;imo= m?nimo= cuenta= etc.!ara este tipo de consultas se proporcionan los si#uientes operadores= :ue sedenominan funciones de a%re%ado,

Operador Significado

COUNT(<6%7o>)

 /%mero de tuplas seleccionadas 7e1cepto las que contienen

valor nulo para el campo8. *i FcampoG es una lista de campos7separados por H8 o 6, la tupla se cuenta si alguno de los

campos que intervienen es no nulo.

SUM(<6%7o

>)*uma del conjunto de valores contenidos en el campo

especi#icado. Las tuplas con valor nulo no se cuentan.

Page 14: introduccion a base de datos Access

7/23/2019 introduccion a base de datos Access

http://slidepdf.com/reader/full/introduccion-a-base-de-datos-access 14/20

Operador Significado

AB?(<6%7o

>)edia aritm+tica del conjunto de valores contenidos en el

campo especi#icado. Las tuplas con valor nulo no se cuentan.

MAX(<6%7o

>)Ialor má1imo del conjunto de valores contenidos en el

campo especi#icado. Las tuplas con valor nulo no se cuentan.

MIN(<6%7o

>)

Ialor mnimo del conjunto de valores contenidos en el campo

especi#icado. Las tuplas con valor nulo no se cuentan.

>l formato de este tipo de consultas es,

SELECT COUNT/SUM/AB?/MAX/MIN (<6%7o>) AS <!o>

FROM <5%l%>

#$ERE <6o!d4648!>

Se pueden incluir (arias funciones de a#re#ado en la misma consulta.><emplos,

Consulta SQL

0btener la nota media de la clase para

el primer parcial.

SELECT AB?(;%64%l) AS Md4%;

FROM Alu!o

0btener la má1ima ! mnima nota

media de los ) parciales..

SELECT MAX(;%64%l+;%64%l)/ AS

MdM%@9

  MIN(;%64%l+;%64%l)/ AS

MdM4!

FROM Alu!o

0btener la má1ima nota del primer  parcial de entre los alumnos que no

tengan ; en las prácticas.

SELECT MAX(;%64%l) AS M%@;FROM ALUMNOS

#$ERE ;%6546% <> 0

0btener el n%mero de alumnos que

han aprobado el primer parcial.

SELECT COUNT(*) AS Nuo

FROM ALUMNOS

#$ERE ;%64%l >= :

>n todas las consultas (istas +asta a+ora= las funciones de a#re#ado seaplican sobre el con<unto total de re#istros de una tabla "ecepto lo :ue nocumplen la cl;usula E>)>= :ue son descartados%= 0 el resultado de tales

consultas es un nico (alor. S permite crear #rupos de re#istros sobre loscuales aplicar las funciones de a#re#ado= de manera :ue el resultado es uncon<unto de tuplas para cada una de las cuales se +a calculado el (alor a#re#ado. os #rupos se componen de (arios re#istros :ue contienen el mismo(alor para un campo o con<unto de campos. >l formato es,

SELECT <%%do> AS <!o>

FROM <5%l%>

#$ERE <6o!d4648!>

?ROU; <l45% d 6%7o>

De esta forma= para cada (alor distinto de la Llista de camposMsuministrada= se calcula la función de a#re#ado correspondiente= sólo con elcon<unto de re#istros con dic+o (alor en los campos "los re#istros :ue no(erifi:uen la condición E>)> no se tienen en cuenta%. ><emplos,

Page 15: introduccion a base de datos Access

7/23/2019 introduccion a base de datos Access

http://slidepdf.com/reader/full/introduccion-a-base-de-datos-access 15/20

Consulta SQL

0btener el n%mero de alumnos que

ha! con el mismo nombre 7sin

apellidos8 para cada nombre di#erente

7JCuántos Carlos, #e$ros,... ha!48

SELECT No9 COUNT(*) AS Cu%!5o

FROM Alu!o

?ROU; No

0btener el n%mero de personas que

han obtenido ;, 9, )...9; en el primer  parcial 7despreciando la parte decimal

de las notas8. 0rdenar el resultado por 

el n%mero de alumnos de #orma

descendiente.

SELECT INT(;%64%l) AS No5%9

COUNT(*) AS Cu%!5oFROM Alu!o

?ROU; INT(;%64%l)

ORDER COUNT(*) DESC

>l a#rupamiento de filas impone limitaciones ob(ias sobre los campos:ue pueden ser seleccionados= de manera :ue sólo pueden obtenerse ca#posresultado de una función de areado o la co#inación de ca#pos :ueapare>ca en la cl8usula 49,?0 B@ $ nunca otros ca#pos de la tala deorien. !or e<emplo la si#uiente consulta ser?a incorrecta,

SELECT No FROM Alu!o ?ROU; A7ll4do

a ra8ón de :ue sea incorrecta es tri(ial, O:u@ 'omre "de los (ariosposibles% se seleccionar?a para cada #rupo de  )pellidoP "!ara cada #rupo#enerado con G)/! B sólo se muestra una fila como resultado de laconsulta.%

=.2..- "iltrado de tuplas de salida>n estas consultas puede aparecer una condición E>)> :ue permitedescartar las tuplas :ue no deben ser tenidas en cuenta a la +ora de calculaslas funciones de a#re#ado. Sin embar#o E>)> no permite descartar tuplasutili8ando como condición el resultado de la función de a#re#ado. !or e<emplo=supon#amos la si#uiente consulta, Fseleccionar los nomres de alumnos paralos *ue ha"a m+s de alumnos con el mismo nomre (- edros, 0uanes,...!.Intuiti(amente podr?amos +acer,

SELECT No9 COUNT(*) FROM Alu!o WHERE COUNT(*)>2 ?ROU;

No

Sin embar#o esto no es correcto. a cl;usula E>)> no puedecontener funciones de a#re#ado. !ara este cometido eiste otra cl;usulaseme<ante a E>)>= EA6IG= :ue tiene el si#uiente formato,

SELECT <%%do> AS <!o>

FROM <5%l%>

#$ERE <6o!d4648!>

?ROU; <l45% d 6%7o>

$ABIN? <6o!d4648! d %%do>

!ara el e<emplo anterior la instrucción S adecuada es,

SELECT No9 COUNT(*) FROM Alu!o ?ROU; No  HAVING 

COUNT(*)>2

Page 16: introduccion a base de datos Access

7/23/2019 introduccion a base de datos Access

http://slidepdf.com/reader/full/introduccion-a-base-de-datos-access 16/20

>n resumen,*/9/ selecciona las tuplas :ue intervienen para calcular las funcionesde areado $ *A6I'4 selecciona las tuplas :ue se #uestran teniendo encuenta los resultados de las funciones de areado.

>n todos los casos= la cl;usula /)D>) B puede ser incluida.>(identemente esta cl;usula afectar; nicamente al orden en :ue se muestranlas tuplas resultado= 0 no al c;lculo de las funciones de a#re#ado. os campospor los cuales puede efectuarse la ordenación sólo pueden ser a:u@llossusceptibles de ser tambi@n mostrados= es decir= :ue los campos admisibles enla cl;usula /)D>) B son los mismos :ue sean admisibles en la cl;usulaS>>'T, funciones de a#re#ado 0 la combinación de campos :ue apare8ca enG)/! B.

)ecordemos el formato de una instrucción S de selección con todaslas opciones (istas +asta a+ora,

SELECT <l45% d 6%7o>

FROM <5%l%>

#$ERE <6o!d4648!>

?ROU; <l45% d 6%7o>

$ABIN? <6o!d4648! d %%do>

ORDER <l45% d 6%7o>

5.3.- Consultas sobre varias tablas

as consultas sobre (arias tablas utili8an la información almacenada enmas de una tabla para mostrar un listado de tuplas :ue cumplan con lascondiciones indicadas en la consulta S.

!or e<emplo si en nuestra base de datos tenemos tres tablas "Tablaalmacenes= eistencias 0 pie8as% relacionadas entre si a tra(@s de los camposmostrados por las flec+as en la fi#ura 3.

lmacen

es

!$istenci

as

"ie%as

&D lmac'n (ipo

Ciudad   (ipo  /ombr 

e

Cantidad

Kigura D Relaciones entre tablas

&odemos intuir lo si%uiente'

E1istencias.)lmac2n contiene un identificador del almac@n al :ue serefieren las eistencias "re:uiere inte#ridad referencial de al#n tipo con elcampo )lmacenes.3D%= 0 E1istencias.4ipo contiene un identificador del tipo al

:ue se refieren el re#istro de eistencias "re:uiere inte#ridad referencial con elcampo ie5as.4ipo%.

 Adem;s se puede intuir la si#uiente información,

•   Almacenes.I! es la clave principal de Almacenes.

Page 17: introduccion a base de datos Access

7/23/2019 introduccion a base de datos Access

http://slidepdf.com/reader/full/introduccion-a-base-de-datos-access 17/20

•   #ie%as.Tipo es la clave principal de $ie"as.

•   &E'itencias.Almac(n, E'itencias.Tipo) es la clave principal de E1istencias.

•   E'itencias.Almac(n es una clave e1terna de E1istencias sobre Almacenes.

•   E'itencias.Tipo es una clave e1terna de E1istencias sobre $ie"as.

!or e<emplo= si :ueremos relacionar las eistencias en un almac@n conel nombre de la ciudad donde se ubica ese almac@n= debemos crear lasi#uiente consulta en len#ua<e S.

SELECT Al%6!,C4ud%d9 E@45!64%,T47o9 E@45!64%,C%!54d%d

FROM Al%6!9 E@45!64%

#$ERE Al%6!,ID = E@45!64%,Al%6!

otar :ue al ser una consulta de selección :ue utili8a información dem;s de una tabla= debe indicarse en las instrucciones s:l de la consulta= lareferencia de el "nombredelatabla%."nombredecampo% a utili8ar.

>sta consulta nos proporcionar?a la si#uiente tabla,

lmacenes)Ciud

ad

!$istencias)(i

po

!$istencias)Canti

dad

Ialdivia 9 9;;

Ialdivia ) D;

0sorno 9 <;

emuco ? );;$ontt 9 9;

$ontt ) );;

$ontt D 9;;

De la misma forma podr?amos enla8ar las tres tablas mediante unaconsulta :ue nos muestre información referente a la ciudad donde seencuentra un almac@n= <unto a la cantidad de pie8as eistentes en el almac@n 0el nombre de dic+a pie8a con la si#uiente consulta S,

SELECT Al%6!,C4ud%d9 E@45!64%,C%!54d%d9 74%,!o

FROM Al%6!9 E@45!64%9 ;4%

#$ERE (Al%6!,ID = E@45!64%,Al%6!) AND

  (E@45!64%,T47o = ;4%,T47o)

>l resultado de tal consulta es la si#uiente tabla,

lmacenes)Ciud

ad

!$istencia)can

tidad

"ie%a)Nombre

Ialdivia 9; Circuitera

Ialdivia )D $antalla

0sorno Circuitera

emuco ? Carcasa

Page 18: introduccion a base de datos Access

7/23/2019 introduccion a base de datos Access

http://slidepdf.com/reader/full/introduccion-a-base-de-datos-access 18/20

lmacenes)Ciud

ad

!$istencia)can

tidad

"ie%a)Nombre

$ontt @ Circuitera

$ontt ? $antalla

$ontt 9D Altavo"

5.(.- Consultas de inserción

as consultas de inserción permiten a9adir re#istros a una tabla. paraeste tipo de consultas se re:uiere,

1% na tabla a la :ue a9adir los datos.

2% na consulta de selección de la :ue obtener los datos :ue se a9aden=

o bien una lista de los (alores a insertar.

>l formato S de una consulta de inserción de datos utili8ando una

consulta de selección como ori#en de los datos es,

INSERT INTO <5%l% d54!o> ( <l45% 6%7o d54!o> )

SELECT <l45% 6%7o o4!>

FROM <5%l% o4!>

a lista de campos destino es una lista de campos separados por comasH la lista de campos ori#en es una lista al estilo de la empleada en unaconsulta de selección cual:uiera. 'ada campo de la lista de ori#en debecorresponderse con otro en la lista de destino= en el mismo orden= de manera:ue las tuplas obtenidas en la consulta se a9aden a la tabla de destino. os

campos no especificados ser;n llenados con los (alores por defecto= a menos:ue no ten#an nin#n (alor predeterminado= en cu0o caso :uedar;n (ac?os"con (alores nulos%.a parte de la consulta de selección puede contener todas las opcionesestudiadas, a#rupamiento= funciones de a#re#ado= ordenamiento de tuplas=condiciones de filtrado= etc.

!ara a9adir datos a una tabla sin utili8ar otra tabla o consulta como ori#en

de datos= se puede utili8ar la si#uiente sintais,

INSERT INTO <5%l% d54!o> ( <l45% 6%7o d54!o> )

BALUES <l45% 6%7o o4!>

'omo en el caso anterior= debe eistir una correspondencia 0

compatibilidad eacta entre la lista de campos de ori#en 0 la lista de campos de

destino

><emplos de consultas de inserción,

Page 19: introduccion a base de datos Access

7/23/2019 introduccion a base de datos Access

http://slidepdf.com/reader/full/introduccion-a-base-de-datos-access 19/20

Consulta SQL

*upongamos una tabla #ersonas en la

que se almacena in#ormación sobre el

nombre, apellidos ! cargo 7en campos

 *ombre,  Apelli$os, Cargo8 de todas

las personas de la universidad. A'adir 

a esta tabla todos los alumnos de la

tabla Alumnos.

INSERT INTO ;o!% ( No9

A7ll4do9 C%o )

SELECT No9

A7ll4do & " " & A7ll4do AS

A7ll4doA9

  "Alu!o" AS C%oA

FROM Alu!o

*upongamos una tabla  +istoria en la

que se almacena in#ormación sobre el

n%mero de alumnos matriculados cada

a'o. Esta tabla tiene los campos3 A,o

7tipo #echa8 ! *-mero  7Entero largo8.

A'adir a esta tabla el n%mero de

alumnos actual con la #echa de este

a'o.

INSERT INTO $45o4% ( Ao9 NGo )

SELECT %(D%5()) AS E5Ao9 COUNT

(*) A To5%l

FROM Alu!o

A'adir el alumno &Krancisco $+re"*ols( , con -ut 9D.9)D.)D?M) a la

lista de alumnos.

INSERT INTO Alu!o (No9

A7ll4do9 A7ll4do9Ru5)

BALUES ("F%!646o"9 ";"9 ";"9

  "H,H,HJ")

5.5.- Consultas de actuali)ación

as consultas de actuali8ación de datos permiten modificar los datosalmacenados en una tabla. Se trata de modificar los (alores de determinadoscampos en los re#istros :ue cumplan una determinada condición. a sintais

de este tipo de consultas es,

U;DATE <5%l%>

SET <6%7o> = <!u3o 3%lo>9 <6%7o> = <!u3o 3%lo>9 <6%7o> =

<!u3o 3%lo>

#$ERE <6o!d4648!>

6eamos al#unos e<emplos,

Consulta SQL

Aprobar el primer parcial a todos los

alumnos que tengan una nota entre ?,<

! <.

U;DATE Alu!oSET ;%64%l = :

#$ERE (;%64%l >= ,:) AND (;%64%l

< :)

$oner un 9 en las prácticas a todos los

alumnos que no tengan ninguna nota

en prácticas ! tengan los dos parciales

aprobados ! con una nota media entre

ambos ma!or que .

U;DATE Alu!o

SET ;%6546% =

#$ERE (;%64%l >= :) AND (;%64%l >=

:) AND

(;%64%l+;%64%l > K) AND

(;%6546% IS NULL)

-edondear las notas de los alumnos

quitando los decimales.

U;DATE Alu!o

SET ;%64%l = INT (;%64%l)9

;%64%l = INT (;%64%l)9

;%6546% = INT (;%6546%)

$oner un ; en prácticas al alumnos con

-ut &9?.<D.?:<B?(

U;DATE Alu!o

SET ;%6546% = 0

#$ERE Ru5=",K:H,.:-"

Page 20: introduccion a base de datos Access

7/23/2019 introduccion a base de datos Access

http://slidepdf.com/reader/full/introduccion-a-base-de-datos-access 20/20

Consulta SQL

0lvidar el -ut de los alumnos que se

han presentado al segundo parcial.

U;DATE Alu!o

SET Ru5 = NULL

#$ERE ;%64%l IS NOT NULL

5.*.- Consultas de borrado

as consultas de actuali8ación de datos permiten eliminas tuplas de unatabla de forma selecti(a, los re#istros :ue cumplan una determinada condición.a sintais de este tipo de consultas es,

DELETE [<tabla>.*]

FROM 5%l%

#$ERE <6o!d4648!>

as consultas de borrado no permiten borrar camposH sólo tuplascompletas. !or eso la parte <5%l%>,* es opcional. !ara eliminar el (alor de

los campos debe utili8arse una consultas de actuali8ación= cambiando el (alor 

de los campos a .Si no se especifica nin#una condición= se eliminan todas las tuplas. 'o seeli#ina la tala= 0a :ue la estructura si#ue eistiendo= aun:ue no conten#anin#n re#istro.

 Al#unos e<emplos de consultas de borrado,

Consulta SQL

Eliminar a los alumnos que ha!an

aprobado todo.

DELETE FROM ALUMNOS

#$ERE (;%64%l >= :) AND (;%64%l >=

:) AND (;%6546% >=)

Eliminar a los alumnos cu!o apellido

se descono"ca total o parcialmente.

DELETE FROM ALUMNOS#$ERE (A7ll4do IS NULL) OR

(A7ll4do IS NULL)

Eliminar a todos los alumnos. DELETE FROM ALUMNOS