UTP
Unidad 3: Bases de datos con MySQL

Hasta este momento ya hemos construido la estructura de la Base de datos y la hemos llenado con información. A continuación aprenderemos como extraer o realizar consultas de información sobre esta.

La sintaxis para realizar una consulta simple sobre la base de datos es la siguiente:

Donde <campo_1>, <campo_2>, … , <campo_n> corresponde a cada uno de los campos de las diferentes tablas que se quieren mostrar en el resultado de la consulta.

<tabla_1>, <tabla_1>, … ,<tabla_n> corresponde a cada una de las tablas de donde se desea extraer la información.

Cada una de las condiciones: <condición_1>, <condición_2>, <condición_n>, tiene la siguiente estructura:

Donde <campo_x> y <campo_y> son campos de cualquiera de las tablas, y <valor_x> es un valor cualquiera a evaluar en el campo definido.

<operador> puede ser cualquiera de los operadores de comparación que se muestran a continuación.

Op Nombre Descripción
< Menor que Teniendo A<B, indica que A sea menor que B
> Mayor que Teniendo A>B, indica que A sea mayor que B
<= Menor o igual que Teniendo A<=B, indica que A sea menor o igual que B
>= Mayor o igual que Teniendo A>=B, indica que A sea mayor o igual que B
<> Diferente de Teniendo A<>B, indica que A sea diferente de B
= Igual a Teniendo A=B, indica que A sea igual que B

Entre dos condiciones va uno de los operadores lógicos AND ó OR. El operador AND indica que el par de condiciones que se están evaluando se deben cumplir para el resultado de la consulta, mientras que el operador OR solo requiere que uno de las 2 condiciones se cumpla.

Tomando como ejemplo la tabla de decanos original, realizaremos una consulta que nos muestre todos los decanos de apellido “Vélez”. Para esto realizaremos la siguiente consulta en MySQL:

El resultado de esta consulta sería el siguiente:

Cédula Nombres Apellidos Celular
5678546 Carlos Vélez 3126545678
1324459 Paula Vélez 3103858583

Si quisiéramos consultar todos los decanos de nombre “Diana” y los decanos de nombre “Mario” crearíamos una consulta con dos condiciones separadas del operador OR de la siguiente manera.

El resultado de esta consulta sería el siguiente:

Cédula Nombres Apellidos Celular
3242344 Mario Toro 3008464647
5373548 Diana Sánchez 3206766674

Algunos hubieran pensado usar el operador lógico AND, sin embargo su uso en este caso estaría mal. Recordemos que este operador exige que ambas condiciones se cumplan, y si analizamos bien, no hay posibilidad que se cumpla que al mismo tiempo una persona se llame Mario y Diana por lo cual no hubiéramos obtenido ningún resultado.

El operador OR funciona perfectamente en este caso, dado que si miramos el primer resultado de la consulta vemos que cumple una de las dos condiciones. Este decano se llama Mario o se llama Diana, y efectivamente su nombre es “Mario”. Para el segundo resultado sucede lo mismo.

Ahora realizaremos una consulta que traiga información de 2 tablas que se estén relacionando, para esto supongamos que la tabla facultad contiene la siguiente información.

Facultad

Número Nombre_facultad Ubicación Cedula_dec
001 Medicina Edificio 2 piso 1 9585835
002 Deportes Edificio 3 piso 1 5373548
003 Física Edificio 2 piso 2 1234234
004 Bellas Artes Edificio 1 piso 1 1324459
005 Química Edificio 3 piso 2 3242344
006 Ciencias Humanas Edificio 1 piso 2 1064933
007 Ingenierías Edificio 1 piso 3 5678546

La consulta que realizaremos nos mostrará todos los registros de la tabla “Decanos” con los campos cedula, nombres y apellidos. Y de la tabla “facultad” los campos nombre_facultad y ubicación, de esta manera sabremos que facultad dirige cada uno de los decanos.

Dado que estamos extrayendo información de 2 tablas que se están relacionando a través de las llaves “cedula” y “cedula_dec”, es obligatorio adicionar a la consulta una condición donde se iguale estos dos campos como lo haremos a continuación:

El resultado de la consulta seria el siguiente

cedula nombres apellidos nombre_facultad ubicacion
1234234 Juan Pérez Física Edificio 2 piso 2
5678546 Carlos Vélez Ingenierías Edificio 1 piso 3
3242344 Mario Toro Química Edificio 3 piso 2
9585835 Sandra Ruiz Medicina Edificio 2 piso 1
1064933 Pedro Flórez Ciencias Humanas Edificio 1 piso 2
5373548 Diana Sánchez Deportes Edificio 3 piso 1
1324459 Paula Vélez Bellas Artes Edificio 1 piso 1

Ahora vamos a consultar la misma información anterior pero solo para los decanos de apellido “Veléz”. Para esto construiremos la siguiente consulta:

El resultado sería el siguiente:

cedula nombres apellidos nombre_facultad ubicacion
5678546 Carlos Vélez Ingenierías Edificio 1 piso 3
1324459 Paula Vélez Bellas Artes Edificio 1 piso 1

En ambos casos fue necesario colocar la condición cedula=cedula_dec, y después de esta, las demás condiciones que fueran necesarias.