Upload
ivandramirez6507
View
219
Download
0
Embed Size (px)
Citation preview
8/17/2019 Iniciación Al Lenguaje Estructurado de Consultas
1/36
Iniciación al lenguaje estructurado de consultas (SQL)
El lenguaje estructurado de consultas, más comúnmente llamado SQL, lo conforman una serie de
comandos, cláusulas y funciones que permiten realiar cualquier operación so!re la información
almacenada en la !ase de datos"
SQL no es e#actamente un lenguaje de programación pero lle$a impl%cita la complejidad de estas&erramientas" En realidad, los sistemas gestores de !ases de datos como 'icrosoft ccess o el
mismo penffice *ase tienen como principal fin ocultar el lado oscuro de este lenguaje mediante
el uso de utilidades gráficas" unque si tu intención es llegar a dominar el mundo de las !ases de
datos es imprescindi!le conocer ciertos aspectos de SQL"
+otapenffice *ase tiene limitaciones que se pueden suplir mediante el uso de sentencias SQL"
no de los m-todos más sencillos para tra!ajar directamente con sentencias SQL en penffice
*ase es tener seleccionada la opción Consultas en la $entana principal de la !ase de datos y a
continuación &acer clic so!re el elemento denominado Crear consulta en vista SQL como puedes
$er en la figura ."/" 0espu-s te encontrarás ante una fr%a $entana so!re la que de!erás ir
escri!iendo las instrucciones necesarias"
8/17/2019 Iniciación Al Lenguaje Estructurado de Consultas
2/36
1igura ."/
+ota
'ediante los comandos disponi!les en el conjunto de elementos que agrupa SQL puedes realiarcualquier operación so!re una !ase de datos, desde seleccionar registros &asta crear una ta!la o
definir sus cla$es"
Seleccionar registros, sentencia SELE23
La sentencia SELECT $a a permitir realiar operaciones de selección, ordenación, agrupación y
filtrado de registros4 $eamos algunos ejemplos" Si lo deseas, &a clic aqu% para descargar una !ase
de datos con todo lo necesario para realiar las acti$idades siguientes"
cti$idad /
En primer lugar a!re la !ase de datos con la que deseas tra!ajar y dentro del apartado 2onsultas,
selecciona la opción Crear consulta en vista SQL" 0e esta forma tendrás acceso a la $entana
que puedes $er en la figura ."5 y podrás completar los pasos que se descri!en a continuación6
http://www.ite.educacion.es/formacion/materiales/93/cd/m6/BaseEjemplo.odbhttp://www.ite.educacion.es/formacion/materiales/93/cd/m6/BaseEjemplo.odbhttp://www.ite.educacion.es/formacion/materiales/93/cd/m6/BaseEjemplo.odb
8/17/2019 Iniciación Al Lenguaje Estructurado de Consultas
3/36
1igura ."5
/" &ora escri!e6 SELECT" 7ara que te resulte más sencillo distinguir entre aquellas pala!ras
que forman parte de la sinta#is de SQL y los parámetros que proporcionas, escri!e siempre en
mayúsculas las pala!ras reser$adas que utilia SQL"
5" continuación de!es indicar los campos de la ta!la que deseas mostrar en la consulta" Siescri!es un asterisco 89: le estás indicando al int-rprete SQL que muestre todos los campos"
;" La siguiente pala!ra reser$ada de la instrucción es6 FROM" Escr%!ela a continuación,
dejando un espacio en !lanco entre el elemento anterior"
8/17/2019 Iniciación Al Lenguaje Estructurado de Consultas
4/36
1igura .";
7ara seleccionar sólo algunos de los campos de la ta!la de!es enumerarlos tras la pala!ra
reser$adaSELECT y antes del FROM6
/" Selecciona de nue$o la opción Crear consulta en vista SQL para crear un nue$o dise?o"
5" &ora escri!e6 SELECT"
;" continuación de!es indicar los campos de la ta!la que deseas mostrar en la consulta"
Escri!eNombre, a?ade una coma, un espacio y escri!e el siguiente nom!re de campo Apellidos"
Siguiendo este patrón podrás incluir tantos campos como necesites"
8/17/2019 Iniciación Al Lenguaje Estructurado de Consultas
5/36
1igura ."<
Importante
2omo cualquier otro lenguaje de programación, no respetar la sinta#is de las instrucciones es uno
de los pro!lemas más &a!ituales" >e$isa cuidadosamente la sentencia completa antes de
ejecutarla"
+ota
En determinadas ocasiones puede ser necesario anteponer el nom!re de la ta!la al nom!re del
campo en la definición de la consulta del siguiente modo6
SELECT Alumnos!Nombre Alumnos!Apellidos FROM Alumnos
Si !ien es cierto que sólo es realmente necesario cuando &ay más de una ta!la en la consulta y se
&ace indispensa!le identificar el origen de cada campo"
8/17/2019 Iniciación Al Lenguaje Estructurado de Consultas
6/36
1iltrar registros, cláusula ABE>E
La función principal de una consulta es seleccionar sólo aquellos registros de la ta!la o ta!las
seleccionadas que necesites en cada caso" 7ues !ien, si quieres &acerlo mediante sentencias SQL
es imprescindi!le a?adir la cláusula ABE>E al comando SELE23"
7or ejemplo, a continuación mostramos cómo dise?ar la consulta SQL que nos permitir%aseleccionar aquellos alumnos cuya fec&a de nacimiento sea anterior al ;/ de 0iciem!re de /CC5"
/" Selecciona la opción Crear consulta en vista SQL"
5" Empiea escri!iendo SELECT"
;" continuación de!es indicar los campos de la ta!la que deseas mostrar en la consulta" En
este caso utilia el nom!re, los apellidos y la fec&a de nacimiento"
8/17/2019 Iniciación Al Lenguaje Estructurado de Consultas
7/36
1igura ."=
cti$idad 57ara practicar con todo lo comentado, dise?a una consulta SQL que permita seleccionar el nom!re
y apellidos de los profesores que $i$an en la pro$incia de *adajo"
peradores lógicos
Los operadores lógicos que puedes utiliar en sentencias SQL son los mismos que se encuentran
disponi!les para el dise?o de consultas en penffice *ase6
Operador Se lee Resultado
8/17/2019 Iniciación Al Lenguaje Estructurado de Consultas
8/36
=
Igual a Devuelve los registros que coinciden con la
condición.
< Menor que Muestra aquellos registros cuyos valores son
estrictamente menores que la condición.
>
Mayor que Muestra aquellos registros cuyos valores son
estrictamente mayores que la condición.
=
Mayor o igual que Devuelve los registros cuyos valores son
mayores o iguales a la condición.
Distinto de Sólo muestra aquellos registros que tienen
valores distintos a la condición.
nterior F Siguiente G
2ondiciones > en la cláusula ABE>E
l igual que ocurre con las consultas en el modo 0ise?o, mediante sentencias SQL tam!i-n
puedes utiliar los operadores H (+0) y (>) y por supuesto, no se $e alterada su lógica de
funcionamiento"
eamos en primer lugar un ejemplo práctico donde se utilia el operador >" 2oncretamente,
dise?aremos una consulta SQL que nos permita conocer las tutor%as que tienen lugar los 'artes o
los Jue$es"
cti$idad ;
/" Selecciona la opción Crear consulta en vista SQL y empiea escri!iendo SELECT"
http://www.ite.educacion.es/formacion/materiales/93/cd/m6/filtrar_registros_clusula_where.htmlhttp://www.ite.educacion.es/formacion/materiales/93/cd/m6/filtrar_registros_clusula_where.htmlhttp://www.ite.educacion.es/formacion/materiales/93/cd/m6/condiciones__or_en_la_clusula_where.htmlhttp://www.ite.educacion.es/formacion/materiales/93/cd/m6/condiciones__or_en_la_clusula_where.htmlhttp://www.ite.educacion.es/formacion/materiales/93/cd/m6/filtrar_registros_clusula_where.htmlhttp://www.ite.educacion.es/formacion/materiales/93/cd/m6/condiciones__or_en_la_clusula_where.html
8/17/2019 Iniciación Al Lenguaje Estructurado de Consultas
9/36
5" continuación de!es indicar los campos de la ta!la que deseas mostrar en la consulta" En
este caso utilia -ro.esor , Curso, /iaSemana y #oraTutoria"
;" La siguiente pala!ra reser$ada de la instrucción es FROM" Escr%!ela a continuación,
dejando un espacio en !lanco entre el elemento anterior"
8/17/2019 Iniciación Al Lenguaje Estructurado de Consultas
10/36
Quiás todos estos pasos te puedan parecer un poco complejos al principio pero si prestas un poco
de atención compro!arás que incluso se pueden leer6 SELECC3ONA LOS CAM-OS -ROFESOR
C4RSO /3ASEMANA #ORAT4TOR3A /E LA TA6LA T4TOR3AS /ON/E EL /3A /E LA
SEMANA ES MARTES O 24E7ES"
2ondiciones +0 en la cláusula ABE>Eeamos la siguiente posi!ilidad, el operador AN/" La idea es dise?ar una consulta que permita
conocer los encuentros que se disputarán entre dos fec&as concretas"
cti$idad <
/" Selecciona la opción Crear consulta en vista SQL y empiea escri!iendo SELECT"
5" continuación indica los campos de la ta!la que deseas mostrar en la consulta" En estecaso utilia 2ornada, Lu8ar , Fec$a, E9uipoA y E9uipo6"
;" Escri!e FROM, dejando un espacio en !lanco entre el elemento anterior y el siguiente"
8/17/2019 Iniciación Al Lenguaje Estructurado de Consultas
11/36
1igura ."@
na $e dise?ada la consulta y compro!ados sus resultados puedes utiliar el !otón =uardar para
dar un nom!re y arc&i$ar la consulta en la !ase de datos"
+ota2omo &as podido compro!ar el interprete SQL de penffice *ase tampoco utilia las
almo&adillas para representar las fec&as, como &ac%as en las consultas" En este caso, siempre
de!es usar comillas simples, separar con un guión el a?o, mes y d%a y escri!irlo en este orden"
Estas instrucciones son imprescindi!les a la &ora de incluir fec&as en tus sentencias SQL, y
teniendo en cuenta que es algo distinto de lo que conocemos, nuestra recomendación es que
practiques un poco con todo lo $isto &asta a&ora"
ImportanteBay que insistir en la importancia de las comillas simples a la &ora de e#presar las fec&as en una
consulta de criterios" 7or este moti$o para que no tengas ninguna duda en la figura ."D puedes $er
la tecla concreta a la que &acemos referencia"
8/17/2019 Iniciación Al Lenguaje Estructurado de Consultas
12/36
1igura ."D
2ondiciones +0 y > en la cláusula ABE>E
2on el o!jeti$o de a!arcar todas las posi!ilidades, $eamos a continuación cómo ser%a el dise?o de
una consulta donde se com!inen al mismo tiempo operadores AN/ y OR" 2oncretamente, el
o!jeti$o es conocer los encuentros que se juegan el d%a /5K55KK@ o el /
8/17/2019 Iniciación Al Lenguaje Estructurado de Consultas
13/36
D" continuación escri!e6 Lu8ar & 0-ista (1" 0e esta forma compones el primer criterio"
C" 0eja un espacio, escri!e OR y deja otro espacio"
/K" El criterio siguiente ser%a6 Fec$a & ';;'
//" &ora escri!e el operador lógico AN/ y deja un espacio"
/5" continuación escri!e6 Lu8ar & 0-ista (1" 0e esta forma compones el segundo criterio"
/;" 0espu-s de estos pasos la sentencia SQL quedar%a de la siguiente forma" >e$isa con
cuidado todo lo escrito y no ol$ides incluir los par-ntesis tal y como puedes $er a continuación6
SELECT 2ornada Fec$a Lu8ar E9uipoA E9uipo6 FROM Calendario "#ERE ??Fec$a &
';;
8/17/2019 Iniciación Al Lenguaje Estructurado de Consultas
14/36
rdenar registros, cláusula >0E> *H
tro aspecto importante cuando dise?as consultas son los criterios de ordenación" 2on ellos, el
resultado presentará los datos clasificados de la forma que necesites en cada caso" En SQL la
cláusula dedicada a este fin se denomina OR/ER 6 y de!es situarla despu-s de todos los
campos de filtrados asociados a la cláusula ABE>E"2omo siempre, lo mejor será $er un ejemplo pero en este caso no demasiado complicado6
o!tendremos un listado ordenado alfa!-ticamente de todos los alumnos que pertenecan al grupo
5"
/" Selecciona la opción Crear consulta en vista SQL y empiea escri!iendo6 SELECT"
5" continuación indica los campos de la ta!la que deseas mostrar en la consulta" En este
caso, utilia el* para a?adir todos los campos"
;" Escri!e FROM, dejando un espacio en !lanco entre el elemento anterior y el siguiente"
8/17/2019 Iniciación Al Lenguaje Estructurado de Consultas
15/36
1igura ."/K
+otaEl campo =rupo, al ser un $alor estrictamente num-rico, no necesita a?adirle comillas simples en
la sentencia SQL" 2uando quieras ordenar por más de un campo, escr%!elos uno a continuación de
otro y sepáralos con una coma"
cti$idad .0ise?a una consulta que nos permita conocer todos aquellos profesores que $i$en en *adajo o en
2áceres" demás, ordena el resultado en primer lugar por la pro$incia y en segundo lugar por el
apellido del profesor"
2am!iar el nom!re de los campos en el resultado con
LIS
penffice *ase utilia la propiedad Alias en el dise?o de consultas para modificar el nom!re de
cualquier campo en el resultado" En SQL tam!i-n se encuentra disponi!le esta caracter%stica,
compru-!alo en el siguiente ejemplo"
8/17/2019 Iniciación Al Lenguaje Estructurado de Consultas
16/36
cti$idad @
/" Selecciona la opción Crear consulta en vista SQL y empiea escri!iendo6 SELECT"
5" continuación indica los campos de la ta!la que deseas mostrar en la consulta" En este
caso, utilia el campo Nombre"
;" 0eja un espacio y escri!e la pala!ra reser$ada AS y despu-s el nom!re con el que
representarás el campo en la consulta, por ejemplo Nombre /epartamento"
8/17/2019 Iniciación Al Lenguaje Estructurado de Consultas
17/36
1igura ."//
ImportanteSi el nom!re utiliado como alias está compuesto por más de una pala!ra es imprescindi!le
escri!irlo entre comillas do!les" 2uando está compuesto por una única pala!ra no ser%a necesario"
+otaSQL permite utiliar en la cláusula OR/ER 6 el nom!re del alias en lugar del nom!re original del
campo" 0e este modo tam!i-n mejorarás la comprensión general de la instrucción" La sentencia de
nuestro último ejemplo quedar%a del siguiente modo6
SELECT Nombre AS Nombre del e9uipo FROM E9uipos OR/ER 6 Nombre del e9uipo
!tener información de $arias ta!las
0e igual modo que e#iste la posi!ilidad en la $ista 0ise?o de $incular dos o más ta!las para
o!tener resultados com!inados, SQL tam!i-n dispone de las &erramientas necesarias para realiar
este tipo de tareas" El proceso es sin duda más complicado que lo $isto con el dise?ador de
consultas, pero a cam!io tendrás muc&o más control so!re todo el proceso"
SQL propone un m-todo para identificar la ta!la asociada a cada uno de los campos cuando
tra!ajas con $arias ta!las" La sinta#is consiste en anteponer el nom!re de la ta!la al nom!re del
campo y separarlos por un punto6
NombreTabla!NombreCampo
ntes de $er el primer ejemplo, re$isemos los distintos tipos de relación que se pueden definir entre
las ta!las"
• 3nterna ?2O3N 3NTERNO@6 El resultado muestra sólo los registros en los que el campo
$inculado de am!as ta!las sea el mismo"
• 3B9uierda ?2O3N 3Q43ER/O@6 En este caso, el resultado muestra todos los registros de la
ta!la iquierda, y sólo aquellos de la ta!la derec&a donde coincida el campo $inculado"
• /erec$a ?2O3N /EREC#O@6 2on este modelo ocurrir%a justo lo contrario que en el anterior,
aparecer%an todos los registros de la ta!la derec&a y sólo aquellos de la ta!la iquierda en
los que coincidan los campos $inculados"
• Completa ?2O3N CR4A/O@6 'uestra todos los registros de am!as ta!las"
7or supuesto, en SQL tam!i-n e#iste la posi!ilidad de reproducir cada uno de estos tipos de unión
pero en estos momentos no es necesario a?adir este ni$el de complejidad al curso, as% que
8/17/2019 Iniciación Al Lenguaje Estructurado de Consultas
18/36
utiliaremos la fórmula más sencilla, la $inculación de ta!las mediante la cláusula "#ERE" Este
m-todo equi$ale a seleccionar aquellos registros donde am!as ta!las tengan coincidencia que, por
otra parte, es la situación más común cuando tra!ajes con !ases de datos"
En nuestro primer ejemplo, utiliaremos las ta!las Alumnos y Cursos para representar en una
consulta el grupo al que pertenece cada uno de los alumnos que forman nuestra !ase de datos"
/" Selecciona la opción Crear consulta en vista SQL y empiea escri!iendo6 SELECT"
5" continuación indica los campos de la ta!la que deseas mostrar en la consulta, pero
recuerda que a&ora de!es anteponer el nom!re de la ta!la" Incluye los
campos Nombre y Apellidos de la ta!laAlumnos"
;" 0e la ta!la 2ursos utilia sólo el campo Curso"
8/17/2019 Iniciación Al Lenguaje Estructurado de Consultas
19/36
1igura ."/5
cti$idad D
7ero puedes depurar un poco más el ejemplo" MQu- tal si ordenas el resultado alfa!-ticamente por los apellidos del alumnoN La figura ."/; muestra el resultado de la nue$a consulta" na $e
terminada, guarda la consulta"
8/17/2019 Iniciación Al Lenguaje Estructurado de Consultas
20/36
1igura ."/;
cti$idad C3am!i-n puedes a?adir una condición a la consulta anterior" 7or ejemplo, muestra únicamente los
alumnos de /*" 7ara ello, de!es a?adir una nue$a condición a la cláusula "#ERE, antes
de OR/ER 6 y enlaarla mediante el operador AN/" El resultado que o!tengas de!e ser similar
al que muestra la figura ."/
8/17/2019 Iniciación Al Lenguaje Estructurado de Consultas
21/36
1igura ."/<
cti$idad /K &ora ria un poco más el rio, y modifica la consulta dise?ada en la acti$idad C, para que muestre
los alumnos que pertenecan a / o a /*, pero esta $e los ordenarás primero por el grupo y a
continuación, por el apellido" La forma de conseguirlo es utiliar un nue$o criterio enlaado con el
anterior mediante el operador > ya que quieres mostrar cualquiera de las dos opciones" !ser$a
el resultado en la figura ."/= y guarda la consulta"
8/17/2019 Iniciación Al Lenguaje Estructurado de Consultas
22/36
1igura ."/=
+ota
Quiás te parecan un poco complicadas las últimas acti$idades, pero anal%alas con atención y
compro!arás que todas siguen una pauta lógica" En cualquier caso, es necesario adquirir ciertadestrea con este lenguaje para dominar su uso"
2onsultas de agrupación y totales con SQL
En el apartado anterior tratamos la forma de relacionar $arias ta!las en una sentencia SQL, pero
aún &ay más" 'ediante la cláusula =RO4- 6 puedes utiliar uno o $arios campos para agrupar
registros y realiar determinadas operaciones con ellos" lgunas de estas funciones son las
mismas que ya tratamos en el cap%tulo de consultas y permiten6
• CO4NT6 2uenta el total de elementos de un grupo"
• S4M6 Suma los $alores num-ricos de los registros agrupados"
• M3N6 'uestra el $alor más peque?o de un grupo"
• MAD6 'uestra el $alor má#imo de todo el conjunto de registros agrupados"
• A7ERA=E6 2alcula la media de todos los $alores seleccionados"
8/17/2019 Iniciación Al Lenguaje Estructurado de Consultas
23/36
continuación, dise?emos una nue$a consulta donde el o!jeti$o será contar el número total de
alumnos que componen cada grupo (/, /*, /2, 5O)6
/" Selecciona la opción Crear consulta en vista SQL y empiea escri!iendo6 SELECT"
5" continuación indica los campos de la ta!la que deseas mostrar en la consulta" Indica en
primer lugar el nom!re del grupo"
;" En segundo lugar, de!es escri!ir la sentencia que calcule el total de alumnos6 CO4NT
?Alumnos!Epediente@
8/17/2019 Iniciación Al Lenguaje Estructurado de Consultas
24/36
1igura ."/.
na !uena idea podr%a ser a?adir un alias al campo calculado y as% mejorar la comprensión de los
resultados6
SELECT Cursos!Curso CO4NT?Alumnos!Epediente@ AS Total Alumnos por =rupo FROM
Alumnos Cursos "#ERE Alumnos!=rupo&Cursos!3dCurso =RO4- 6 Cursos!Curso
Importante>ecuerda las do!les comillas en el nom!re de alias cuando se trata de más de una pala!ra"
2riterios de filtrado en consultas de agrupación y
totales, cláusula BI+P2uando se trata de consultas de agrupación y totales, la forma de utiliar criterios de ordenación es
algo distinta de lo que &as $isto &asta a&ora" La diferencia se encuentra en que de!es utiliar una
nue$a cláusula6#A73N= (figura ."/@)" 7or ejemplo, si sólo deseas contar los alumnos de /, la
consulta quedar%a del siguiente modo6
SELECT Cursos!Curso CO4NT ?Alumnos!Epediente@ FROM Alumnos Cursos "#ERE
Alumnos!=rupo&Cursos!3dCurso =RO4- 6 Cursos!Curso #A73N= Cursos!Curso & '(A'
8/17/2019 Iniciación Al Lenguaje Estructurado de Consultas
25/36
1igura ."/@
Si lo deseas puedes complicar los criterios a?adiendo nue$os filtrados mediante los
operadores AN/ y OR" La siguiente consulta es id-ntica a la anterior pero o!tiene el total de
alumnos de los grupos / y /*"
SELECT Cursos!Curso CO4NT?Alumnos!Epediente@ FROM Alumnos Cursos "#EREAlumnos!=rupo&Cursos!3dCurso =RO4- 6 Cursos!Curso #A73N= Cursos!Curso & '(A' OR
Cursos!Curso & '(6'
+ota
Es posi!le que llegados a este punto te est-s planteando, por qu- de!es complicarte tanto la $ida
con SQL si lo puedes &acer de forma muc&o más sencilla con el dise?ador de consultas" Lae#plicación la encuentras por una parte en las limitaciones que aún presenta penffice *ase y
que únicamente se pueden suplir mediante sentencias SQL" 3am!i-n es necesario tener ciertas
nociones de SQL ya que al tratarse de un lenguaje uni$ersal y estándar puedes utiliar las
consultas en cualquier otra !ase de datos"
Eliminar registros, comando 0ELE3E
8/17/2019 Iniciación Al Lenguaje Estructurado de Consultas
26/36
La $ersión actual de penffice no permite dise?ar $isualmente consultas de eliminación, inserción
o actualiación" 7or lo tanto, para realiar este tipo de tareas en la !ase de datos de!es recurrir a
SQL"
La sentencia /ELETE permite eliminar registros de una ta!la" Esta es sin duda una operación
delicada por lo que de!es estar muy seguro de lo que &aces pues una $e ejecutada no e#iste la
posi!ilidad de des&acer la operación"
Importantena !uena recomendación cuando realiamos procesos de eliminación de registros es realiar en
primer lugar una consulta de selección para compro!ar que estás seleccionando realmente los
datos que deseas eliminar"
Los comandos /ELETE, 3NSERT y 4-/ATE no se pueden ejecutar del modo que lo &as estado
&aciendo &asta a&ora con las consultas de selección (SELECT)" penffice *ase no permite
&acerlo, pero s% incluye una &erramienta que ofrece la posi!ilidad de ejecutar estas instrucciones yen general, cualquier sentencia SQL"
/" En la $entana principal del programa, en la parte superior, &a clic so!re el
menú #erramientas"
5" continuación, selecciona el comando SQL para tener acceso al cuadro de diálogo que
muestra la figura ."/D"
8/17/2019 Iniciación Al Lenguaje Estructurado de Consultas
27/36
1igura ."/D
En esta $entana encuentras en primer lugar el cuadro denominado Comando a eecutar " Será
aqu% donde de!as escri!ir la sentencia SQL que deseas aplicar so!re la !ase de datos" *ajo este
espacio se encuentra el !otón Eecutar que tendrás que utiliar para lle$ar a ca!o las operaciones
indicadas en el comando SQL"
continuación dispones de una lista desplega!le con las últimas sentencias SQL ejecutadas, una
especie de &istórico que puede ser$ir para no tener que escri!ir $arias $eces la misma instrucción
si ya la &as utiliado con anterioridad" !ser$a este elemento resaltado en la figura ."/C"
8/17/2019 Iniciación Al Lenguaje Estructurado de Consultas
28/36
1igura ."/C
7or último, la sección Estado que &emos resaltado en la figura ."5K, mostrará todos los mensajes
relacionados con la ejecución de la sentencia SQL"
8/17/2019 Iniciación Al Lenguaje Estructurado de Consultas
29/36
1igura ."5K
Sinta#is de las sentencias en el int-rprete SQL
Sinta#is de las sentencias en el int-rprete SQL
El ni$el de e#igencia del int-rprete SQL en cuanto a la sinta#is de las instrucciones es muy alto y
necesitas actuar de modo algo distinto a lo que &as &ec&o &asta a&ora" lgunos datos importantes
que de!es tener en cuenta son6
• Los nom!res de ta!las y campos de!en estar entre comillas do!les" 7or ejemplo6 SELECT
Nombre Apellidos FROM Alumnos
• En cuanto a las condiciones, los literales de!en estar incluidos entre comillas simples y
cada una de las condiciones encerradas entre par-ntesis" 7or ejemplo6 SELECT
Nombre Apellidos FROM Alumnos "#ERE ?Nombre & 'Antonio'@
8/17/2019 Iniciación Al Lenguaje Estructurado de Consultas
30/36
+otaEl t-rmino literal dentro del dise?o de consultas mediante lenguaje SQL &ace referencia al te#to de
una condición4 en el ejemplo anterior, ntonio ser%a un literal"
• Si la condición fuera una fec&a no &a!r%a demasiados cam!ios6 SELECT Nombre
Apellidos FROM Alumnos "#ERE ?Fec$aNacimiento & ';;G+(+;('@
• 2uando &ay $arias condiciones es con$eniente encerrar todo el contenido de la
cláusula "#ERE entre par-ntesis6 SELECT Nombre Apellidos FROM Alumnos
"#ERE ??Fec$aNacimiento & ';;G+(+;('@ AN/ ?Fec$aNacimiento & ';;G+(+
,('@@
+otaEs esencial que sigas al pie de la letra la sinta#is requerida por el int-rprete de SQL incluido en
penffice4 de lo contrario un mensaje indicará que algo no está !ien"
Ejemplo de eliminación de registros
continuación un ejemplo del proceso completo de eliminación de registros con penffice *ase"
Eso s%, aplicaremos el principio de prudencia, es decir, crearemos en primer lugar una consulta de
selección estándar y la con$ertiremos despu-s en una consulta de eliminación" 0e esta forma
podemos compro!ar si los registros que serán eliminados corresponden e#actamente con los que
deseamos !orrar de la !ase de datos" La idea es eliminar los alumnos cuya fec&a de nacimiento
sea inferior a ;//5/CCK" El resultado lo de!es ordenar alfa!-ticamente" Empecemos por dise?ar
la consulta"
cti$idad //
/" Selecciona la opción Crear consulta en vista SQL y empiea escri!iendo6 SELECT"
5" continuación indica los campos de la ta!la que deseas mostrar en la consulta" En este
caso, utiliarás los campos Nombre y Apellidos y Fec$aNacimiento de la ta!la Alumnos"
;" &ora a?ade la cláusula FROM y escri!e el nom!re de la única ta!la implicada6 Alumnos
8/17/2019 Iniciación Al Lenguaje Estructurado de Consultas
31/36
." La instrucción SQL queda del siguiente modo6 SELECT Nombre Apellidos
Fec$aNacimiento FROM Alumnos "#ERE Fec$aNacimiento %& '());+(+,(' OR/ER 6
Apellidos
!ser$a el aspecto de la $entana dise?o en la figura ."5/"
1igura ."5/
@" Ejecuta la consulta y comprue!a que los resultados mostrados corresponden realmente
con la información que deseas eliminar de la !ase de datos" Insistimos en que este paso pre$io es
muy importante para estar completamente seguro que eliminaremos los registros correctos"
D" na $e que est-s completamente seguro de que la selección es correcta, un peque?o
truco para a&orrar algo de tra!ajo6 Selecciona la instrucción SQL completa y despu-s utilia el
comando Copiar , ya sea con la com!inación de teclas 2ontrol2 o desde el menú Editar "
C" 2ierra la $entana de consulta, guarda el resultado si lo crees con$eniente y $uel$e a la
$entana principal de la !ase de datos"
/K" En el menú #erramientas selecciona el comando SQL como muestra la figura ."55"
8/17/2019 Iniciación Al Lenguaje Estructurado de Consultas
32/36
1igura ."55
/5" Ba clic dentro de la primera sección del cuadro de diálogo y ejecuta el comando -e8ar
?ControlH7@" l instante aparece la instrucción de selección"
/;" 7ero si lo que deseas es eliminar registros y no seleccionarlos, de!es &acer algunos
cam!ios" 2oncretamente de!es eliminar el comando SELECT y cam!iarlo por /ELETE" demáselimina los nom!res de campos y la cláusula OR/ER 6" na $e &ec&os todos estos cam!ios la
sentencia quedar%a de la siguiente forma6 /ELETE FROM Alumnos "#ERE
?Fec$aNacimiento %& '());+(+,('@
/
8/17/2019 Iniciación Al Lenguaje Estructurado de Consultas
33/36
/@" 1inalmente, en la parte inferior del cuadro de diálogo Eecutar comandos SQL de!e
aparecer un mensaje indicando que todo &a sido correcto como puedes $er en la figura ."5;"
1igura ."5;
3rucoSi quieres conocer la sentencia SQL asociada a cualquier consulta mientras tra!ajas en la $ista
0ise?o, ejecuta el comando 7er y despu-s selecciona Activar o desactivar la vista /iseJocomo
puedes compro!ar en la figura ."5
8/17/2019 Iniciación Al Lenguaje Estructurado de Consultas
34/36
1igura ."5<
Insertar nue$os registros, sentencia I+SE>3
El comando SQL de inserción de registros puede ser tremendamente útil a la &ora de llenar ta!las
cuya información o!tienes mediante otra fuente de datos como otras ta!las o consultas"
n ejemplo sencillo6 cómo a?adir un registro a la ta!la cti$idades que únicamente tiene un campo
ya que el identificador es autonum-rico y por lo tanto, se genera automáticamente al a?adir un
nue$o registro6
cti$idad /5
/" En la $entana principal de la !ase de datos &a clic so!re el menú #erramientas y
despu-s ejecuta el comando SQL"
5" En la primera sección del cuadro de diálogo escri!e la siguiente instrucción6 3NSERT 3NTO
Actividades ?Actividad@ 7AL4ES ?'7oleibol'@
;" 0espu-s de escri!ir la sentencia SQL, &a clic en el !otón Eecutar "
8/17/2019 Iniciación Al Lenguaje Estructurado de Consultas
35/36
=" >e$isa la ta!la Actividades y comprue!a que se &a a?adido el registro"
s% planteado quiás no te pareca demasiado interesante el comando I+SE>3 pero, Mqu- te
parecer%a a?adir una consulta a esta misma sentencia y que pudieras incluir en la ta!la
seleccionada el resultado de la consultaN 7or ejemplo, imagina que &as o!tenido una ta!la de
deportes ('is0eportes) y quieres utiliarla para rellenar la ta!la de acti$idades deporti$as
(cti$idades)"
La instrucción SQL de!er%a tener el siguiente aspecto6
3NSERT 3NTO Actividades ?Actividad@ SELECT Nombre/eporte FROM Mis/eportes
3ras &a!er ejecutado lo anterior, comprue!a que efecti$amente la ta!la Actividades, que
anteriormente sólo ten%a cuatro registros, tiene a&ora tam!i-n los registros de la
ta!la Mis/eportes"
7or supuesto, a la consulta que sir$e para a?adir registros puedes a?adirle tantas condiciones y
cláusulas como necesites" 7or ejemplo, puedes elegir todos aquellos deportes que no sean de tipo
indi$idual (3enis, tletismoO)
3NSERT 3NTO Actividades ?Actividad@ SELECT Nombre/eporte FROM Mis/eportes
"#ERE ?Tipo & '3ndividual'@
ImportanteLo más importante en este tipo de consultas es que el número de campos que de$uel$e la consulta
sea el mismo que intentas insertar" 3am!i-n es fundamental que los tipos de los campos coincidan"
ctualiar registros, sentencia 703E
El concepto de actualiación consiste en modificar algunos de los datos que contiene el registro"
7or ejemplo, imagina que necesitamos cam!iar la dirección de un alumno concreto o el grupo al
que pertenece" Este tipo de operaciones se pueden realiar mediante actualiaciones y más
concretamente, con el comando 4-/ATE"
2on las operaciones de actualiación mediante el comando 4-/ATE de!er%as tener las mismas
precauciones que ya $iste para el comando /ELETE" El moti$o es el mismo, es decir, las
modificaciones realiadas por la consulta no tienen posi!ilidad de des&acerse" En este sentido, se
recomienda de nue$o ejecutar en primer lugar una consulta de selección para compro!ar los
registros que se $erán afectados y una $e compro!ado que todo es correcto lle$ar a ca!o laactualiación"
penffice no dispone de ninguna &erramienta espec%fica para realiar cualquier consulta de
actualiación so!re la !ase de datos por lo que igual que ocurr%a en el apartado anterior de!es
recurrir al int-rprete de consultas" 0esde la $entana principal de penffice *ase, &a clic en el
menú #erramientas y despu-s selecciona el comando SQL"
8/17/2019 Iniciación Al Lenguaje Estructurado de Consultas
36/36
!ser$a en el siguiente ejemplo cómo cam!iar el nom!re del departamento 8Peograf%a: por
8Peograf%a e Bistoria:6
/" En la $entana principal de la !ase de datos &a clic so!re el menú #erramientas y
despu-s ejecuta el comando SQL"
5" En la primera sección del cuadro de diálogo, escri!e la siguiente instrucción6 4-/ATE
/epartamentos SET Nombre & '=eo8ra.Ka e #istoria' "#ERE Nombre & '=eo8ra.Ka'
;" 0espu-s de escri!ir la sentencia SQL &a clic en el !otón Eecutar "