Activa JavaScript para disfrutar de los vídeos de la Mediateca.
Consultas XQuery - Contenido educativo
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
Bueno, pues estamos aquí en la unidad 6 en la que vamos a tratar xQuery.
00:00:00
Ya os hice un vídeo de Basics, que es la herramienta que vamos a utilizar para las xQuery.
00:00:06
Es una herramienta que está especializada en xQuery y además es gratuita y ya veréis que es muy intuitiva y es fácil de usar.
00:00:13
Es la herramienta que vamos a utilizar también para la tarea, así que sería conveniente que os vierais este vídeo
00:00:23
y instalará es basics y bueno os dejo también claro el código de x query que es como en todas
00:00:28
las unidades que es el que vamos a tomar de referencia para para explicar un poco cómo
00:00:39
funciona todo esto entonces si abrís el archivo comprimido que os he subido veréis que tiene
00:00:44
dos archivos. Uno es el XML del cual vamos a hacer las consultas y luego las consultas
00:00:53
propiamente dichas. Vamos a echarle un ojo en el Visual Studio Code al XML que os he
00:01:00
subido. Entonces, tenemos una etiqueta raíz que es biblioteca. En la biblioteca lo que
00:01:07
vamos a tener son libros y cada libro pues tenemos dos atributos edición y publicación y luego una
00:01:15
serie de elementos propios de cada libro entonces con x query lo que vamos a poder hacer es
00:01:25
posicionarnos en el nodo que nos interese y para posicionarnos nos vamos a valer de xpath no que
00:01:31
que es la tecnología que utilizábamos ya en la unidad anterior.
00:01:39
Entonces haremos lo mismo, biblioteca barra libros barra libro, y nos posicionaremos en libro.
00:01:45
Y una vez posicionados en libro, por ejemplo, podremos sacar los valores de los que se compone el libro.
00:01:51
Podemos hacer consultas
00:02:03
De que por ejemplo las páginas
00:02:06
Tengan un determinado valor
00:02:07
O sea mayor o menor
00:02:11
Podemos utilizar estos datos
00:02:12
Para funciones
00:02:14
Y podemos ver si hay campo vacío
00:02:15
Si no, etc
00:02:18
¿Vale?
00:02:20
Pues como consultas básicas de SQL
00:02:21
Básicamente
00:02:24
Entonces, venga, vamos con ello
00:02:25
Ejecutamos BaseX
00:02:29
y lo primero que vamos a hacer va a ser cargar nuestra base de datos que en este caso es el xml de libros
00:02:32
yo aquí ya tengo la ruta puesta, vosotros tendréis que descargar el archivo comprimido, descomprimirlo
00:02:43
y luego aquí buscar el xml de libros
00:02:51
si lo cargamos pues ya lo carga la herramienta y está bastante bien porque aquí tenéis un visor
00:02:55
que os podéis situar en cada
00:03:06
nodo y ver lo que tiene
00:03:08
los elementos
00:03:10
de cada nodo y
00:03:13
está guay, vale
00:03:14
luego tenéis esta
00:03:17
pequeña editor de texto
00:03:19
que es donde vamos a
00:03:21
ir construyendo nuestras consultas
00:03:23
entonces
00:03:25
las consultas ya las tengo yo aquí
00:03:28
vale, que es del otro fichero
00:03:31
de este de consultas
00:03:33
vale, os, me voy a valer
00:03:35
de un notepad y vamos a ir viendo las consultas una a una. Vale. Como veis aquí los comentarios
00:03:38
se hacen con estas caritas sonrientes, entonces se abre paréntesis, dos puntos, comentario,
00:03:48
dos puntos, se cierra paréntesis. Así es como se hacen los comentarios. Entonces, ¿cómo
00:03:57
¿Cómo manejamos las consultas de XQuery? Vamos a estar recorriendo nodos. Para recorrer nodos nos tenemos que hablar de un bucle for y de una variable. Las variables en XQuery se crean con el dólar. Primero se pone el dólar y luego el nombre de la variable. Esto indica que es una variable.
00:04:02
Aquí lo que vamos a hacer es repetir este broker for de 1 a 5, que son los valores que va a coger nuestra variable x.
00:04:25
Y lo que vamos a devolver va a ser una etiqueta text con el valor de la variable.
00:04:33
Y para que salga el valor de la variable lo que lo vamos a poner es entre llaves.
00:04:40
Entonces, para ejecutar esta consulta le damos aquí al play y como vemos nos da el resultado esperado.
00:04:46
Que es 5 veces el test con los valores que va cogiendo de 1 a 5. ¿De acuerdo? Vale, vamos a seguir con la... Ya con consultas directamente al XML. Vale, a ver... Perfecto.
00:04:53
Aquí lo que hacemos es que la variable x nos valemos de un xpath para situarnos en el nodo que nos interesa, que en este caso es libro, ¿vale? Va de biblioteca, libros, libro.
00:05:17
Entonces, el valor que está cogiendo X es hasta libro
00:05:31
¿Vale?
00:05:37
Entonces, si queremos sacar el título y la editorial
00:05:39
Ponemos X porque está cogiendo el valor hasta libro
00:05:41
Y luego sacamos el título, ya que está dentro del libro
00:05:45
Y sacamos la editorial, ya que está dentro de la editorial
00:05:48
Y como estamos recorriendo un bucle for
00:05:51
Mientras existan libros, va a seguir recorriéndolo
00:05:54
¿De acuerdo?
00:05:57
También tenemos la función test y la función data. Esto lo utilizamos para que saque solo el valor. En este caso, el título sería LearningXML y la editorial O'Reilly.
00:05:58
¿Qué es lo que pasa si, por ejemplo, le quito aquí el test?
00:06:13
Que en vez de sacar solo el valor, lo que nos va a sacar son las etiquetas también
00:06:20
O sea, va a sacar todo esto
00:06:23
Las etiquetas, el valor, en vez de solo el valor
00:06:25
Muchas veces, pues igual querremos que aparezcan las etiquetas
00:06:28
Entonces lo pondremos así
00:06:32
Otras veces solo queremos que aparezca el valor
00:06:34
Y para que aparezca el valor, pues es con barra test o utilizando la función data
00:06:36
entonces vamos a ver lo que aparece
00:06:42
como veis aquí
00:06:44
como hemos sacado el título
00:06:47
sin el barra test ni en el data
00:06:49
tenemos
00:06:50
esto con el título
00:06:53
con las etiquetas
00:06:55
sin embargo para la editorial solo saca el valor
00:06:57
¿de acuerdo?
00:06:59
vale, vamos con otra
00:07:01
función
00:07:03
con otra consulta
00:07:05
a ver, de acuerdo
00:07:09
Vale, aparte de consultar datos directamente
00:07:18
Lo que podemos utilizar son condiciones
00:07:23
Entonces, aquí lo que estamos haciendo también es posicionándonos
00:07:25
En libro, en el nodo libro
00:07:29
Y lo que vamos a hacer es que vamos a sacar
00:07:32
Solo los libros que tengan menos de 100 páginas
00:07:36
Vale, entonces, dentro del libro
00:07:41
Hay un elemento que es páginas
00:07:43
que es el que estamos consultando con la función number.
00:07:46
La función number la ponemos para cerciorarnos de que está entendiendo que el valor que hay aquí dentro es un número.
00:07:51
¿De acuerdo?
00:07:59
Entonces le ponemos de libro las páginas, le indicamos que es un número
00:08:00
y vamos a sacar solo las que tengan menos de 100 páginas.
00:08:06
Y vamos a sacar el valor.
00:08:10
Por eso utilizamos la función data.
00:08:13
Entonces aquí solo nos saca una, porque si vamos aquí al XML vemos que solo LearningXML tiene menos de 100 páginas, que tiene 16.
00:08:15
Si, por ejemplo, le ponemos menos de 500, ya nos saca 3, porque menos de 500 tenemos el XQuery, que es este de aquí, tenemos menos de 500 el XMLSem y el LearningXML.
00:08:28
¿De acuerdo? Entonces, con esto veis que podemos también hacer consultas con condiciones muy sencillitas, pero que es muy fácil de hacer. Simplemente es posicionarse en el nodo y poner la condición con el web.
00:08:51
¿De acuerdo? Vamos con la siguiente
00:09:08
Aquí nos hemos posicionado en libros
00:09:13
Entonces, como nos hemos posicionado en libros y no en libro
00:09:29
Lo que tenemos que hacer para consultar elementos de dentro del libro es ir al libro
00:09:34
¿Vale? Esto podríamos poner aquí libro y entonces le quitaríamos aquí el libro como hemos hecho en la anterior
00:09:40
Entonces, a ver, esta consulta es parecida a la anterior, lo único que veis es que utilizamos let
00:09:50
Let se utiliza para inicializar variables
00:10:00
Con el let estamos declarando la variable y y estamos diciendo que le asignamos este valor
00:10:04
¿Vale? Esta lista de valores, porque puede haber más de uno, como hemos visto antes
00:10:10
Entonces, luego simplemente con el count contamos los valores que hay dentro de esta lista
00:10:15
Aquí estamos buscando los libros que tengan menos de 100 páginas, los almacenamos con el let en la variable y y aquí contamos el número de libros.
00:10:22
Que va a salir 1, claro. Si ponemos como antes 500 salen 3.
00:10:33
¿De acuerdo? Entonces con el let inicializamos también variables y luego podemos hacer operaciones sobre ellas.
00:10:41
Seguimos. A ver... Entonces, esta consulta es muy parecida. Lo único que en vez de hacerla sobre el número de páginas, lo hacemos sobre la editorial.
00:10:51
Y como veis, aquí estamos buscando libros cuya editorial sea O'Reilly. También lo que hacemos es ordenarla por título, de manera alfabética.
00:11:09
Y lo ponemos en una lista
00:11:22
¿De acuerdo?
00:11:25
Vamos con esta
00:11:27
Vale, estoy viendo que estas dos
00:11:28
Realmente son iguales
00:11:42
Así que
00:11:46
Vamos a
00:11:46
Vamos a coger el comentario de aquí
00:11:49
Lo ponemos aquí
00:11:54
Y esta la borramos
00:11:55
No, espérate
00:11:57
No, no, esta es diferente
00:12:02
Espera, vamos a coger esta de aquí
00:12:08
¿De acuerdo?
00:12:16
Bueno, aquí hay alguna cosilla que falla. Si esta paréntesis no tendría que estar aquí. Vale, perfecto. Entonces, ¿qué es lo que tenemos aquí? Aquí estamos... Vale, nos hemos posicionado en libro porque con el arroba lo que hacemos es consultar los atributos.
00:12:16
¿De acuerdo? Entonces, la x la inicializamos hasta libro, que es donde está el atributo
00:12:49
Y luego, dentro de x, lo que hacemos es arroba publicaciones
00:12:56
Cuando decimos arroba, entiende que estamos refiriéndonos a un atributo
00:13:03
Que está en el mismo nivel en el cual nos hemos posicionado
00:13:09
Y entonces lo que queremos buscar aquí son los libros cuya publicación, que es un atributo al cual accedemos con un arroba, es igual a 2002.
00:13:12
Aquí salen estos dos, porque si nos vamos aquí al XML vemos que ese atributo lo tiene en el 2002 XMLSEM y XPath, que son justo los que salen.
00:13:26
Exactamente. Entonces, de aquí nos tenemos que quedar que con el arroba accedemos a los atributos, pero nos tenemos que posicionar primero en el atributo para ello.
00:13:42
Seguimos
00:13:54
Sí, con este lo que hacemos
00:13:57
Es sacar
00:14:01
Vamos a ponerlo aquí
00:14:04
Vale
00:14:09
Vale
00:14:14
Aquí lo que estamos mirando
00:14:16
Son los autores
00:14:18
Entonces
00:14:21
Nos estamos posicionando en libro
00:14:23
Y contamos
00:14:25
El número de autores
00:14:30
Entonces lo que queremos son las filas que tengan más de un autor. Vamos a verlo aquí en el Visual Studio que se verá mejor. Aquí hay uno, aquí hay dos. ¿Ves? Aquí son dos. Aquí hay uno, aquí hay uno también.
00:14:33
En principio solo tendría que sacar ese. Entonces, aquí pongo editorial hacia Capón para que salga un poco más separado y se pueda leer mejor. ¿Ves? Igual que el libro aquí. O sea, podemos poner texto, pero el texto tiene que estar fuera de las llaves. ¿De acuerdo?
00:14:52
O sea, aquí ponemos la etiqueta libro y luego dentro del libro podemos poner lo que nos dé la gana escribiéndolo, pero una vez que, cuando queramos poner la información del XML es cuando tenemos que abrir las llaves, por eso pongo aquí libro y abro y cierro la llave, editorial y abro y cierro la llave, ¿de acuerdo?
00:15:16
Entonces, solo me saca este porque es el único que tiene dos autores, como hemos visto antes. ¿Qué es este de aquí? XML imprescindible. Exacto, este mismo. ¿Vale? Con el count. Sigamos. A ver...
00:15:37
Y bueno, este que es también de cajón que podemos consultar elementos que estén vacíos, ¿vale? Si por ejemplo, en este caso, títulos de los libros que no tienen versión electrónica, entonces tenemos un campo que es versión electrónica, entonces con un where not lo que hacemos es seleccionar los que no tengan, los que es donde ese elemento esté vacío, ¿vale?
00:15:55
Aquí por ejemplo está vacío y es donde salen. Y por último vamos a ver las funciones. Vamos a bajar esto un poquito para que se vean los dos. Si os habéis dado cuenta tenemos dos elementos que son precio y descuento.
00:16:30
¿Vale? Entonces, esto es una función que lo que hace es conseguir el precio después del descuento
00:17:10
Tenemos dos variables que son los parámetros que metemos
00:17:19
El precio y el descuento, ¿vale? Con P y D
00:17:23
Y lo que vamos a sacar es un decimal
00:17:27
Entonces, verificamos que lo que nos han metido
00:17:32
Que los parámetros que nos han incorporado tienen información, ¿vale?
00:17:37
Que no están vacíos.
00:17:43
Entonces, si el precio está vacío o el descuento está vacío, no devolvemos nada.
00:17:44
¿Vale?
00:17:50
Pero si no, lo que hacemos es inicializar la variable descuento con el descuento obtenido por el porcentaje.
00:17:52
¿Vale?
00:18:02
O sea, el precio por el descuento dividido entre 100.
00:18:03
Que es el descuento que vamos a obtener por ese libro.
00:18:06
Y lo que devolvemos es el precio menos el descuento.
00:18:10
¿Vale? Bastante facilita la función. Y entonces aquí tenemos los campos precio y los campos descuento en cada libro. Precio y descuento.
00:18:14
Lo que hacemos aquí es situarnos en el nodo libro
00:18:25
Para recorrer todos los libros como hemos hecho antes
00:18:32
Y entonces la devolvemos
00:18:37
Para devolver dos elementos tenemos que enclobarlo en uno más grande
00:18:41
En este caso es libro
00:18:48
Libro va a coger estos dos elementos
00:18:50
Que es el título
00:18:53
Y con el test metemos el valor sin las etiquetas y luego el precio mínimo. Y aquí es donde llamamos a la función, ¿vale? Con las llaves llamamos a la función con el prefijo xs decimal, porque aquí lo que estamos haciendo es diciendo que esto va a ser un decimal, ¿vale?
00:18:54
para que lo interprete bien y no tenga problemas y aquí le estamos metiendo la variable libro que hemos dicho que está posicionada aquí
00:19:21
y dentro del libro tenemos precio y dentro del libro tenemos descuento, entonces aquí lo que estamos metiendo es que el precio son 2000
00:19:30
y el descuento es el 10%, con lo cual nos tendría que devolver 1.800, ¿verdad?
00:19:41
Porque el descuento, el 10% de 2.000 son 200, que es lo que le deducimos, 1.800.
00:19:49
Y así con todos los demás.
00:19:56
Vamos a ver.
00:19:59
Exacto, 1.800.
00:20:02
Y en los demás, pues ya ha aplicado el descuento y es así como se utilizan las funciones.
00:20:04
Entonces como veis es bastante sencillito lo que estamos dando aquí
00:20:08
Obviamente se pueden hacer cosas más avanzadas
00:20:13
Pero es lo que más o menos se va a pedir en la tarea
00:20:15
Os aconsejo eso, que os descarguéis el código que os he puesto
00:20:20
Que instaléis el BaseX
00:20:25
Como os he dejado detallado en el otro vídeo
00:20:28
Por si tenéis algún problema podéis ver el vídeo y ver cómo se instala
00:20:31
y pues eso, cargáis aquí en Database New el XML de libros y luego vais probando las consultas
00:20:35
y podéis ir modificándolas o haciendo vuestras propias consultas, leeros también el contenido
00:20:45
y con el contenido podéis ir probando aquí y luego la tarea que os he puesto es bastante parecido a todo esto
00:20:51
así que lo podréis ir practicando también vosotros, ¿de acuerdo?
00:21:02
Pues nada, ya la próxima unidad será para después de Semana Santa
00:21:05
Así que nada, os deseo que tengáis buenas vacaciones
00:21:12
Y eso, nos vemos después de Semana Santa
00:21:15
Adiós
00:21:17
- Materias:
- Tecnología
- Etiquetas:
- Innovación
- Niveles educativos:
- ▼ Mostrar / ocultar niveles
- Formación Profesional
- Ciclo formativo de grado básico
- Primer Curso
- Segundo Curso
- Ciclo formativo de grado medio
- Primer Curso
- Segundo Curso
- Ciclo formativo de grado superior
- Primer Curso
- Segundo Curso
- Ciclo formativo de grado básico
- Subido por:
- Alberto S.
- Licencia:
- Reconocimiento - Compartir igual
- Visualizaciones:
- 4
- Fecha:
- 25 de marzo de 2026 - 21:54
- Visibilidad:
- Público
- Centro:
- IES CIFP a Distancia Ignacio Ellacuría
- Duración:
- 21′ 19″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1280x720 píxeles
- Tamaño:
- 65.51 MBytes