Lección 3
Consultas simples a la base de datos
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.