# Consultas básicas sobre una base de datos en Coding Rooms

Aquí van unos pocos ejemplos de consultas básicas sobre una base de datos, para practicar sobre la herramienta <span style="text-decoration: underline;">[Coding rooms](https://app.codingrooms.com/)</span>.

Antes de nada, [aquí](https://drive.google.com/file/d/122-hVOyCTNviMjVoim3yGkkNDwCMT1lr/view?usp=sharing) puedes descarar la base de datos para ejecutarla en la herramienta que más abajo se explica paso a paso cómo hacerlo.

La base de datos es sobre recetas, tiene el siguiente diagrama relacional:

[![recetas relacional.png](https://libros.catedu.es/uploads/images/gallery/2022-09/scaled-1680-/FCTrecetas-relacional.png)](https://libros.catedu.es/uploads/images/gallery/2022-09/FCTrecetas-relacional.png)

#### Coding Rooms

Para utilizar Coding Rooms no se necesario registrarse si se accede directamente al workspace desde <span style="text-decoration: underline;">[este enlace](https://app.codingrooms.com/compiler/mysql)</span>. Pero si te registras se guardan los workspace que vayas utilizando, por lo que yo lo recomiendo.

Para iniciar el compilador solo hay que pulsar sobre el botón "Start coding MySQL for free now".

[![Coding Rooms start.png](https://libros.catedu.es/uploads/images/gallery/2022-09/scaled-1680-/coding-rooms-start.png)](https://libros.catedu.es/uploads/images/gallery/2022-09/coding-rooms-start.png)

Esto abre el Workspace de MySQL siguiente.

[![Workspace codingrooms mysql.png](https://libros.catedu.es/uploads/images/gallery/2022-09/scaled-1680-/workspace-codingrooms-mysql.png)](https://libros.catedu.es/uploads/images/gallery/2022-09/workspace-codingrooms-mysql.png)

Lo primero que tenemos que hacer es ejecutar el script descargado para crear la base de datos de recetas. Para eso, en el área de navegación de archivos, clicar sobre la flecha hacia arriba para subir el archivo.

[![coding rooms uploadfile.png](https://libros.catedu.es/uploads/images/gallery/2022-09/scaled-1680-/coding-rooms-uploadfile.png)](https://libros.catedu.es/uploads/images/gallery/2022-09/coding-rooms-uploadfile.png)

El archivo se carga y haciendo clic sobre él se abre en el escritorio. Ahora solo hay que desplegar los archivos del botón de ejecución y seleccionar el archivo que se desea ejecutar.

[![Ejecutar script.png](https://libros.catedu.es/uploads/images/gallery/2022-09/scaled-1680-/ejecutar-script.png)](https://libros.catedu.es/uploads/images/gallery/2022-09/ejecutar-script.png)

El resultado de la ejecución se carga en la consola de debajo. En el caso del script de creación de la base de datos de recetas, como no son consultas, no muestra nada por pantalla, así que si no muestra ningún error, es que todo ha ido bien.

[![image-1662366980077.png](https://libros.catedu.es/uploads/images/gallery/2022-09/scaled-1680-/image-1662366980077.png)](https://libros.catedu.es/uploads/images/gallery/2022-09/image-1662366980077.png)

Con esto ya deberíamos tener la base de datos creada en el servidor de coding rooms para empezar a hacer consultas.

#### Consultas SQL sencillas

En el archivo que podéis descargar [aquí](https://drive.google.com/file/d/16KHVSkkvYkAUoVP8CKM47EO4QjoF3DwC/view?usp=sharing), hay ejemplos de consultas que a continuación se explican.

##### Ejecutar consultas en Coding Rooms

Para ejecutar cada consulta en Coding Rooms, hay que poner la consulta en un archivo y ejecutar ese archivo.

Para crear un archivo nuevo hay que pulsar en el + del navegador de ficheros:

[![image-1662367796199.png](https://libros.catedu.es/uploads/images/gallery/2022-09/scaled-1680-/image-1662367796199.png)](https://libros.catedu.es/uploads/images/gallery/2022-09/image-1662367796199.png)

En ese nuevo archivo podéis ir escribiendo cada consulta, y el resultado se mostrará en la consola.

##### Ejemplos del archivo

***1. Mostrar todos los tipos de recetas que hay en la base de datos:***

```SQL
select * from tipo_receta;
```

La consola muestra el resultado:

[![image-1662368642075.png](https://libros.catedu.es/uploads/images/gallery/2022-09/scaled-1680-/image-1662368642075.png)](https://libros.catedu.es/uploads/images/gallery/2022-09/image-1662368642075.png)

***2. Mostrar el nombre de todas las recetas que no tienen anotaciones (en el campo notas)***

```SQL
select nombre from receta where notas is null;
```

Resultado:

[![Consulta ejemplo 2.png](https://libros.catedu.es/uploads/images/gallery/2022-10/scaled-1680-/consulta-ejemplo-2.png)](https://libros.catedu.es/uploads/images/gallery/2022-10/consulta-ejemplo-2.png)

***3. Queremos saber cómo se prepara la "Ensalada de verano"***

```SQL
select preparacion from receta where nombre like 'Ensalada de verano';
```

Resultado:

[![Consulta ejemplo 3.png](https://libros.catedu.es/uploads/images/gallery/2022-10/scaled-1680-/consulta-ejemplo-3.png)](https://libros.catedu.es/uploads/images/gallery/2022-10/consulta-ejemplo-3.png)

**Ahora vamos a ver cómo sacaríamos información que hay en varias tablas sin haber visto las consultas multitabla.**

***4. Queremos saber qué recetas llevan 'Ternera'.***

Los ingredientes están en la tabla **ingrediente**, la unión de recetas con ingredientes está en la tabla **receta\_tiene\_ingrediente**, pero el nombre de las recetas está en la tabla **receta**.

Primero hay que buscar cuál es el identificador del ingrediente 'Ternera' para buscarlo en la tabla **receta\_tiene\_ingrediente**. Así esta tabla nos dará los identificadores de las recetas que llevan ternera y con ese identificador podremos ir a buscar las recetas en la tabla **receta**.

Identificador del ingrediente 'Ternera':

```SQL
select id_ingrediente from ingrediente where nombre like 'Ternera';
```

Resultado:

[![Consulta ejemploe 4_1.png](https://libros.catedu.es/uploads/images/gallery/2022-10/scaled-1680-/consulta-ejemploe-4-1.png)](https://libros.catedu.es/uploads/images/gallery/2022-10/consulta-ejemploe-4-1.png)

Identificador de las recetas que llevan 'Ternera':

```SQL
select id_receta from receta_tiene_ingrediente where id_ingrediente=1;
```

Resultado:

[![Consulta ejemplo 4_2.png](https://libros.catedu.es/uploads/images/gallery/2022-10/scaled-1680-/consulta-ejemplo-4-2.png)](https://libros.catedu.es/uploads/images/gallery/2022-10/consulta-ejemplo-4-2.png)

Recetas que llevan 'Ternera':

```SQL
select nombre from receta where id_receta=9 or id_receta=1;
```

Resultado:

[![Consulta ejemplo 4_3.png](https://libros.catedu.es/uploads/images/gallery/2022-10/scaled-1680-/consulta-ejemplo-4-3.png)](https://libros.catedu.es/uploads/images/gallery/2022-10/consulta-ejemplo-4-3.png)

<div id="bkmrk-5.-contar-cu%C3%A1ntas-re">***5. Contar cuántas recetas tienen anotaciones (en el campo notas).***</div><div id="bkmrk--13"></div>```SQL
select count(*) from receta where notas is not null;
```

Resultado:

[![Consulta ejemplo 5.png](https://libros.catedu.es/uploads/images/gallery/2022-10/scaled-1680-/consulta-ejemplo-5.png)](https://libros.catedu.es/uploads/images/gallery/2022-10/consulta-ejemplo-5.png)

<div id="bkmrk--15"></div><div id="bkmrk--16"></div>{{@5685}}