Está en la página 1de 43

Acceso a datos con el lenguaje SQL

DESCRIPCIÓN DEL LENGUAJE SQL (Modulo I)

SQL= Structure Query Language, no es un lenguaje de programación, todo lo que se aprenda a partir de
este curso será un estándar, es decir nos servirá a cualquier base de datos estándar

Existen muchos perfiles de usuarios que necesitan acceder a base de datos relacionales.

INSTRUCCIONES DEL LENGUAJE SQL, mencionamos las esenciales instrucciones que se clasifican por
categorías

DML= Data Manipulation Language.-

Insert.- agregar filas a una bd

Update.- modificar los datos de una bd

Delete.- para eliminar datos de una bd

1
Select (DLR).- es la que se utiliza para solicitar información a una base de datos, y las 3 anteriores
para modificar una base de datos

DDL=Data Definition Language,sirven para crear modificar los objetos de una bd, los objetos son las
tablas, índices las consultas, etc.

Create.- creación de objetos

Alter

Drop

DCL = Data Control Language.- son las que gestión los permisos en una bd.

Grant

Revoke

Deny

Que tienen una serie de instrucciones diferentes.

Existen otras instrucciones

Commit

Rollback

Cada uno de estos puntos los desarrollaremos por separado

ELEMENTOS BASICOS DE LA SINTAXIS

Palabras clave o clausulas

Nombres de objetos (columnas, tablas)

Además de los operadores

2
Finalmente los valores absolutos

Inclusive true o false llamados también datos directo

Para la finalización, en el seguimiento a las diferentes instrucciones emplearemos la bd NEPTUNO.

Esta es la bd a emplear, que representa la gestión de una empresa comercial.

LAS BASES DE DATOS RELACIONALES (Modulo II)

Se hace necesario describir la estructura de la base de datos, las tablas, además de la distribución de los
datos en las tablas.

 La estructura de almacenamiento básica (La Tabla).- La tabla es el elemento esencial en el cual


se almacena la información se compone de: Columnas y de Filas, cuando se define la tabla se
debe especificar el tipo de datos que admite cada campo y las filas se van definiendo cuando se
comienza a ingresar datos a las tablas. A la hora de definir las tablas se tiene que basar en
entidades más que en objetos.
En definitiva lo que nos interesa para poder ejecutar instrucciones sobre una tabla es conocer el nombre
del campo y el tipo de dato que admite cada campo (numéricos, fechas, cadenas de texto, etc.)

 Las restricciones.- Las BD permiten definir restricciones.

3
- Not Null.- Llamada también restricción de campo obligatorio, podemos definir para una
columna que no admita valores nulos, esto hara que si un usuario ingresa una nueva fila
para una tabla sino llena el campo con los valores correspondiente, el sistema despliega
un mensaje de error.
- Unique.- Esta restricción, sirve para especificar que dentro de una columna no se puede
repetir el mismo valor entre las diferentes filas.
- De clave primaria (Primary Key).- Es el resumen de las dos anteriores, es decir las
restricciones: Not Null y Unique, donde no se pueden introducir valores nulos ni se
pueden repetir los valores entre las diferentes filas. El objetivo de este tipo de
restricciones, básicamente dentro de la tabla se pueden declarar una clave primaria,
pudiendo ser claves primarias simples o compuestas: Es decir que solo pueda ser un
campo o dos campos respectivamente, lo que no se puede repetir son los valores dentro
de estos campos, ¿para qué sirven las claves primarias?, sirven para identificar
inequívocamente al registro dentro de la tabla, si no existe claves primarias nos
podemos encontrar con registros repetidos, es decir completamente iguales.
- Check.- Son las restricciones más flexibles a la hora de definir normas, por ejemplo en un
campo obligar a nunca introducir un valor cero, en el caso de sueldos y salarios se tiene
un número que jamás se almacenaría un valor negativo, o el campo FechaEntrega, no
puede tener datos con una fecha posterior a la fecha actual.
- Foreign Key.- Está restricción se utilizan cuando se emplean dos tablas, se utiliza para
formalizar las relaciones entre tablas, el objetivo es que en ciertas tablas se puede
poner una norma que obligue para que un valor que se coloca en una tabla este valor
tiene que existir en la otra tabla, y es de lo que se hablara a continuación.

 La distribución de datos en distintas tablas: La relación.-

 La normalización de los datos.-

4
REALIZAR CONSULTAS A LA BASE DE DATOS (MODULO 3)

Lo primero que se establecerá es definir lo que es una consulta a la bd. De finiendo los siguientes puntos

- La necesidad de realizar consultas.- Empecemos definiendo que es una consulta:

o Seleccionar.- Que información se desea que devuelva esa consulta

o Filtrar.- Que filas se desea que aparezcan.

o Sumarizar.- Sumarizar la información

o Agrupar.- Para resumir la información, por ejemplo de 100 filas a 3 filas

o Ordenar.- Según un criterio concreto,

o Acceder a información de más de una tabla.- Que la información se halla ubicada en


más de una tabla.

Todo esto lo veremos a lo largo del curso.


5
- La instrucción SELECT.- Empecemos a conocer la estructura de SELECT:

- La cláusula SELECT y la cláusula FROM.- La clausula SELECT es la que usaremos para especificar
que campos aparezcan en la consulta, en cambio la clausula FROM para especificar la tabla de la
cual se va a obtener los campos.

Veamos el siguiente ejemplo:

6
La clausula select en el ejemplo define dos campos los cuales se hallan separados por una coma y de
debe notar que cuando aparece la clausula from significa que ya se acabaron los campos y de define la
tabla.

Con el asterisco es para desplegar todas las columnas de la tabla seleccionada, no es de uso común sino
para ver toda la información de la tabla.

- Operaciones con los campos seleccionados.- Para una comprensión, emplearemos la tabla
Producto. Del siguiente modo

Realizamos una operación de multiplicación entre dos campos preciounidad y unidadesenexistencia

Además determinamos que no se tiene un nombre de columna, para la operación de multiplicación ante
esta circunstancia empleamos el alias, consiste en establecer un nombre para las columnas que se
obtienen a través de otras columnas o simplemente tenemos la necesidad de renombrar alguna de las
columnas, para tal cometido empleamos la clausula AS, veamos los siguientes ejemplos.

- El alias de campo

7
- Las funciones de fila única

Se llaman funciones de fila única por que se aplica a una única fila por ejemplo se aplico a la fila
nombrecompañia

8
En el anterior ejemplo vimos que las operaciones en fila única, se tienen el manejo de parámetros desde
una posición determinada y cuantos caracteres quiere que se devuelvan

MODULO 4

Filtrar datos

Es el presente modulo veremos los siguientes conceptos:

- La cláusula WHERE
Siempre se ubicara la cláusula Where después de la cláusula From, no se puede filtrar sin antes
especificar los campos y la tabla, la sintaxis es la siguiente

Where condición

Como se ve en el ejemplo anterior siempre la cláusula Where va acompañada por una condición.

Tenemos el siguiente ejemplo:

Select NombreProducto, IdCategoria, IdProveedor, CantidadPorUnidad

From Productos

Where IdCategoría = 1

La consulta solo devuelve del campo IdCategoria todos los que tengan el valor uno (1), exactamente
devuelve 12 columnas. El valor 1 es un valor que nosotros lo determinamos.

A continuación vemos otro ejemplo, manejando cadenas de texto mediante el uso de comillas simples

9
Cuando se ejecuta solo vemos que 4 cumplen la condición

Para conocer qué tipo de condiciones se puede utilizar con Where, veremos los operadores de
desigualdad, es decir:

- Los operadores de comparación


Los mencionamos a continuación.

>, >=, <=, <>

Aplicados de la siguiente manera:

No solo se aplica a campos numéricos sino también a cadenas de texto, donde devuelven en el orden
alfabético, donde A=1, B=2,….,Z= 29.

- El operador LIKE
Se emplea los comodines % ya sea adelante o posteriormente de la siguiente manera, dadas las
circunstancias se puede dar que no se conozca por completo la cadena a buscar entonces se recurre al
operador LIKE

10
El símbolo de % significa que puede haber cualquier valor posible a la izquierda como a la derecha, es
similar a un comodín.

Veamos el siguiente ejemplo

Cuidado en otras bases de datos el símbolo % se maneja con un asterisco (*)

- El operador IS NULL
Es importante el conocer al operador IS NULL

Veamos el siguiente ejemplo

11
Lo que nos devuelve esta consulta es en el campo Región muchos datos que tienen el valor NULL,
entonces ¿cómo lo solucionamos?

Ejemplo:

12
No nos devolvió nada, por lo tanto lo cambiamos a la siguiente instrucción:

Select NombreCompañia, Región

From Clientes

Where Región is null

Para ver solo aquellos que tienen un valor null

Pero si solo quiero ver los que no tienen valores nulos entonces que hacer, veamos el siguiente ejemplo

13
Y a partir de esta consulta se despliega los datos con valores diferentes a NULL

- El operador IN
Este operador es útil en los siguientes escenarios.

Como leeríamos esta instrucción: Que nos muestre todos los registros cuyo campo Región es el
enumerado en la lista. Del ejemplo (BC, SP Y RJ)

14
Y si busco lo contrario es decir aquellos que no sean los campos mencionados, entonces la consulta
seria de la forma

15
Nótese que los valores null no se toman en cuenta.

- Los operadores Lógicos


Son el And y el Or, implicados en la cláusula Where y en otros filtros del siguiente modo:

16
Y con el operador Or se llevaría a cabo del siguiente modo.

17
18
Modulo 5

SUMARIZAR Y AGRUPAR DATOS

 Sumarizar datos con las funciones de fila múltiple.-

Por ejemplo si aplicamos la siguiente consulta de fila única

Select preciounidad

From productos

Nos devuelve

Pero si en cambio aplicamos a las funciones de grupo se aplicara a todas las filas del siguiente modo:

19
MUESTRA 91 REGISTROS AHORA AL EMPLEAR LA FUNCION DE GRUPO COUNT DEL SIGUIENTE MODO

NOS DESPLIEGA 31 REGISTROS

Y SI AHORA DESEAMOS VERLO TODOS INCLUSO LOS NULOS ENTONCES

AVG, SUM, MAX (HALLA EL ELEMENTO MAYOR), MIN Y COUNT (NO CUENTA LOS VALORES NULOS)

EN RESUMEN

ESTAS SON LAS CINCO ESENCIALES DE FUNCIONES DE GRUPO QUE NOS DEVUELVEN UNA UNICA FILA
DE GRUPO.

También se pueden aplicar filtros

LO QUE SE ESTA REALIZANDO LO 1RO ES LA FILTRACIÓN

20
Y LUEGO CUENTA DEVOLVIENDO EL VALOR 5

VEAMOS OTRO EJEMPLO

DEVUELVE 39.6448 QUE LA MEDIA DE LOS QUE


CUMPLEN LA CONDICION

 Porque es necesario agrupar

IMAGINEMOS LA SIGUIENTE CONSULTA

COMO DESPLEGARIAMOS, PARA SATISFACER AMBAS CONSULTAS? DA ERROR LO QUE TIENE QUE HACER
SERIA

 La cláusula GROUP BY

EN TODO CASO SE DEBE AGRUPAR DEL SIGUIENTE MODO

21
TAMBIÉN SE DEBE SEGUIR LA SIGUIENTE REGLA PARA LA CLÁUSULA GROUP BY.

VEAMOS LA REGLA A TRAVÉS DE UN EJEMPLO

22
Y PARA QUE USTEDES ANALICEN

23
 Filtrar después de agrupar. La cláusula HAVING

Filtrar después de agrupar la cláusula HAVING

La cláusula HAVING es necesario utilizarlo cuando se quiere filtrar después de agrupar

Veamos la siguiente consulta:

/* Devolver el código de categoría y la media del precio de sus productos, pero sólo en aquellos casos en
que dicha media sea superior a */

Select idcategoría, avg(preciounidad) as media

From productos

Where

Group by idcategoria

24
Lo que se debería es realizar es el filtrado empleando la condicional WHERE, pero debemos tomar en
cuenta que aún no se agrupo por tanto no sería posible tal situación.

Entonces utilizaremos la cláusula HAVING cuya estructura es similar al de la cláusula WHERE con la
salvedad de que se aplica después de la cláusula de agrupación es decir de gruop by de la siguiente
manera:

Select idcategoría, avg(preciounidad) as media

From productos

Group by idcategoria

HAVING avg(preciounidad) > 30

Y nos devuelve todos los campos donde la media es mayor a 30 tomando en cuenta que este filtro no se
puede realizar con la cláusula Where.

Pero también se puede filtrar con anterioridad es decir filtrar, agrupar y volver a filtrar, veamos el
siguiente ejemplo:

Select idcategoría, avg(preciounidad) as media

From productos

Where suspendido = 0

Group by idcategoria

HAVING avg(preciounidad) > 30

Bien hasta aquí lo relacionado a los filtrados y las agrupación de datos en las siguientes sesiones veremos
la consulta a varias tablas:

25
MODULO 6

CONSULTA A MÁS DE UNA TABLA

Vamos a dedicar los siguientes módulos, el primero a la teorización de las necesidades de acceder a
información de más de una tabla.

 La necesidad de acceder a información de más de una tabla.- la tabla de productos tiene toda la
información referente a los productos pero también almacena el idcategoria, donde ese campo
pertenece a la tabla Categorías y por lo tanto se me hace difícil el poder visulalizar mediante una
consulta los campos de la tabla Categorías es decir los campos NombreCategoría, Descripción,
etc.

Vemos la siguiente consulta:

Select nombreproducto, idcategoria

From productos

Where preciounidad > 40

Veamos otro ejemplo en la tabla Pedidos se tiene entre sus campos el IdCliente y como el caso
anterior cuando se realiza una consulta me brinda como resultado solo el IdCliente por que se
halla en tabla de Pedidos y no así los demás campos de la tabla Clientes por ejemplo
NombreCompañia, NombreContacto, CargoContacto, Dirección, etc. que son propios estos
campos de la tabla Clientes.

26
Lo que se deberá de conocer son las restricciones forenkey

 Los tipos de relación.- Podemos distinguir dos tipos de relación:


se tiene dos tablas Clientes y Pedidos, donde debemos realizarnos las siguientes preguntas.

¿Puede un cliente realizar varios pedidos? La respuesta es SI

¿Puede un pedido ser realizado por varios Clientes? La respuesta es NO

27
Entonces nos hallamos ante la relación UNO A INFINITO o denominado (MAESTRO – DETALLE

Donde las tablas actúan del siguiente modo: Maestro es Clientes y la tabla de Detalles esta dado por la
tabla Pedidos.

Casi en general se presenta este tipo de relación

Existen otros escenarios dadas del siguiente modo: Con la relación UNO a UNO donde la clave primaria
se establece en ambas tablas.

Veamos la siguiente relaciÓn denominada INDIRECTA, donde interviene una tabla de enlace donde en
esta última se añade las claves primarias de las dos tablas se establecen en esta tabla de enlace. En todo
caos intervienen tres tablas.

Es una relación de INFINITO A INFINITO volvemos a mencionar que se denomina una relación infinito a
infinito.

28
 El criterio de la relación.

EL Criterio de la relación: Simple. Que en el campo IDCliente de la tabla Clientes tiene que existir en la
tabla Pedidos, con el criterio de clave foránea

Tomando en cuenta que los datos necesariamente se tiene que repetir en ambas tablas.

La Relación Compuesta. El criterio similar a lo anterior solamente que tiene que coincidir mas de dos
campos, el campo IdPedido sea igual al Idpedido de la otra tabla y que el IdProducto se halle en una y
otra tabla como se muestra en la figura.

La Relación Compleja.

Se establece en función a relaciones de rango es decir que de la figura el campo FechaPedido de la tabla
Pedidos se llenara en función a los campos DesdeFecha y HastaFecha de la tabla Periodos. Entonces el

29
criterio se establece en función al rango que presenta la tabla periodos con los campos desdeFecha
hastaFecha y en la tabla pedidos FechaPedido

Observación: La regla de forenkey se aplica a las tablas Detalle siempre.

30
MODULO 7 CONSULTAS A MÁS DE UNA TABLA

 La combinación de dos tablas.- Empezamos definiendo la combinación de dos tablas, veamos un


ejemplo:

SELECT Clientes.NombreCompañia, Pedidos.IdPedido

From Clientes, Pedidos

En la cláusula from se detalla todas las tablas separadas por comas. Pero al realizar la consulta anterior
obtenemos el producto cartesiano, que es todas las combinaciones posibles de los campos de ambas
tablas, es decir es la multiplicación de los campos de las tablas.

¡SI NO SE COMBINAN LAS DOS TABLAS, APLICANDO EL CRITERIO DE RELACION, SE OBTIENE EL


PRODUCTO CARTESIANO!!!

Veamos cuantos registros tiene la tabla pedidos, mediante la siguiente consulta

Select count (*) from PEDIDOS

Y nos devuelve que hay 830 registros.

Del mismo modo para la de CLIENTES

Select count (*) from CLIENTES

Nos dice que hay 91 clientes

Ahora bien al realizar la consulta

SELECT Clientes.NombreCompañia, Pedidos.IdPedido

From Clientes, Pedidos

Nos devuelve que hay 75530 registros y eso no es lo que se quiere por lo tanto lo que sucedió fue que
se realizo el producto cartesiano de ambas tablas.

Veamos la siguiente consulta a las dos tablas pedidos y clientes donde en ambas tablas se halla el
campo IdCliente. Ejecutemos la siguiente consulta.

SELECT NombreCompañia, IdCliente, IdPedido

From Clientes, Pedidos

Al ejecutarlo nos devuelve un mensaje de ambigüedad por el hecho que en ambas tablas se halla el
campo IdCliente.

31
Ahora si especificamos el nombre de la tabla, del siguiente modo

SELECT NombreCompañia, Clientes.IDCLIENTE, IdPedido

From Clientes, Pedidos

No despliega error alguno, pero se establece el producto cartesiano entre las dos tablas.

Ahora para entenderlo de una mejor manera veamos el siguiente ejemplo:

SELECT NombreCompañia, CLIENTES.IdCliente,

PEDIDOS.IDCLIENTE, IdPedido

From Clientes, Pedidos

Al ejecutarlo no despliega ningún tipo de error pero si se establece el producto cartesiano

 Combinar dos tablas con la cláusula WHERE


Para combinar de una manera adecuada empleamos la cláusula where, que ya lo vimos con anterioridad
la empleamos para el filtrado. Del siguiente modo

SELECT NombreCompañia, CLIENTES.IdCliente,

PEDIDOS.IDCLIENTE, IdPedido

From Clientes, Pedidos

WHERE pedidos.Idcliente = clientes.idcliente

Lo que se hizo fue comparar los campos que son comunes a ambas tablas IDcliente de la tabla pedidos
como de la tabla clientes. Que nos devuelve los 830 registros.

Ahora lo podemos hacer mucho mas concreto nuestra consulta del siguiente modo:

SELECT NombreCompañia, IdPedido

From Clientes, Pedidos

WHERE pedidos.Idcliente = clientes.idcliente

Luego de la ejecución, devuelve del mismo modo que la anterior el resultado de la consulta. Es decir que
se combino que registro le pertenece al otro registro de la otra tabla.

Veamos el siguiente ejemplo:

Trabajaremos con las tablas Productos y Categorías, del siguiente modo

/* Obtener el nombre de cada producto, su precio, su stock, el nombre de la categoría a la que


pertenece, excluyendo los suspendidos */
32
Select nombreproducto, preciounidad, unidadesenexistencia,

Nombrecategoría

From productos, categorías

Where categorías.idcategoría = productos.idcategoría

And suspendido = 0

Lo que se tiene que tomar en cuenta es al filtro Where donde se tiene dos condiciones uno referido
específicamente a los campos idcategoría y al campo suspendido excluyéndoles mediante el operador
lógico and.

 El alias de tabla.- Para un entendimiento mejor veamos el siguiente ejemplo:

Select Nombreproducto, preciounidad, unidadesenexistencia, nombrecategoria


From productos AS P, categorías AS C
Where C.idcategoría = P.idcategoría

And suspendido = 0

Si al ejecutar la consulta nos devuelve con los mismos nombres de campo, pero lo que sucedió es que
me permite USAR LOS ALIAS DE TABLA EN EL FILTRADO MEDIANTE las letras que P y C respectivamente
pertenecientes a ambas tablas. Y luego se las puede emplear en el filtrado además en la selección de los
campos del siguiente modo:

Select p.Nombreproducto, p.preciounidad, p.unidadesenexistencia,


c.nombrecategoria
From productos AS P, categorías AS C
Where C.idcategoría = P.idcategoría

And suspendido = 0

 Combinar más de dos tablas con la cláusula WHERE


Ahora vamos a aprender a combinar mas de dos tablas, Veamos el siguiente ejemplo:

/* Obtener el nombre de cada producto, su precio, su stock, el nombre de la categoría a la que


pertenece, y el nombre del proveedor que nos sirve dicho producto.

*/

trabajaremos con las tablas PROVEEDORES (IdProveedor), se relaciona con la tabla productos que entre
sus campos se halla el campo IdProveedor, tenga el mismo valor en ambas tablas. Lo realizamos del
siguiente modo

Select p.nombreproducto, p.preciounidad, p.unidadesenexistencia,

33
c.nombrecategoría, pr.nombrecompañía

from productos as p, categorías as c, proveedores as pr

where c.idcategoría = p,categoría

and p.idproveedor = pr.idproveedor

NOTA.- siempre se tiene cuando son tres tablas a ser consultadas dos combinaciones, no se tiene que
olvidar alguna sino se obtiene el producto cartesiano.

Veamos otro ejemplo:

/*

obtener el código de pedido, el nombre del cliente, y el nombre y apellidos del empleado, pero sólo de
aquellos pedidos que se realizaron durante el año 1996

*/

que tablas participaran en esta consulta: Pedidos (IdPedido), Clientes(NombreCompañia) y la tabla


Empleados (Nombre y Apellidos)

Select p.IdPedido, c.NombreCompañía,

e.Nombre + ‘ ‘ + e.Apellidos as Empleado

from Pedidos as p, Clientes as c, Empleados as E

where p.IdCliente = c.IdCliente

and p.IdEmpleado = e.IdEmpleado

and p.fechaPedido >= ’01-01-1996’

and p.fechaPedido <= ’31-12-1996’

Se utilizo dos de las clausulas where para combinar las dos tabla y el resto para hacer cumplir lo que se
nos dio como consulta.

34
MODULO 8 CONSULTA A MÁS DE UNA TABLA Parte 3

Empezamos a utilizar la cláusula estándar Join

 La sintaxis Standard, la cláusula JOIN.- Si anteriormente empleábamos la cláusula where para


realizar el filtrado de tabla a tabla, pues no era la más correcta porque la norma ISO lo establece
de esta manera. Es por ello que en funcion a lo que establece al norma ISO a partir de ahora
emplearemos JOIN en vez de Where.

Veamos el siguiente ejemplo:

/*

Obtener el nombre del producto, y el nombre de la categoría.

*/

Select p.nombreProducto, c.NombreCategoría

From Productos as p, categorías as c

Where p.IdCategoría = c.IdCategoría

La norma ISO establece que solo se debe utilizar la cláusula Where solo para filtrar datos y NO PARA
COMBINAR DATOS, por lo tanto empleatemos la cláusula JOIN, que es una sub cláusula de FROM,
además por cada nueva tabla emplearemos el operador ON para establecer el criterio de combinación,
veamos el mismo ejemplo anterior pero empleando la subcláusula JOIN.

Para realizar la combinación empleamos la cláusula ON, Ahora la cláusula FROM abarca las dos líneas
últimas. Y cuando terminen todo lo referente a la cláusula Join empezara la cláusula Where solo para
filtrar y no para combinar, además join reemplaza a la coma para separar las tablas.

35
¿Por qué la sintaxis estándar se inclino por el estándar join, para combinar las tablas?

Los tipos de combinación

Trataremos se definirlos. Join como eje para definir la tabla de la izquierda o tabla de la derecha, veamos
el siguiente ejemplo.

36
Inner Join, veamos el siguiente ejemplo: Comenzamos verificando lo que se halla en la base de datos, del
siguiente modo

Notese que se tiene 78 registros donde el ultimo no tiene valores en algunos campos (NULL)

Por otro lado veamos lo siguiente:

37
Entonces de la tabla categorías el registro 9 del mismo modo no tiene valores

Y si ahora ejecutamos la consulta preparada tenemos:

Al realizar la consulta determinamos que existen 77 columnas donde no apareció el de las patatas fritas

Esto sucede porque aparece el que se halla en la derecha relacionado con el de la izquierda, pero se
debe tener cuidado, ya que la condición del ejercicio mencionaba.

/* Obtener el nombre del producto, y el nombre de la categoría. */

¿Pero ahora como solucionamos esta cuestión?

Con el left join o rigth join

Veamos el siguiente ejemplo, donde nos aparezcan todos de la izquierda

38
Nos aparece todos los productos Incluso el de las patatas fritas, y solo el que tienen un correspondiente
en la tabla categorías.

Pero que sucedería si lo realizamos del otro modo

En este caso no será el más apropiado, además existen la full join, veamos el siguiente ejemplo

39
Aparecen los 79 registros, full join no es de uso común pero ahí esta cuando se lo precise.

 Combinar más de dos tablas con la cláusula JOIN

Veamos el siguiente ejemplo

Si lo ejecutamos de esta forma no estamos cumpliendo con lo que establece el enunciado y por lo tanto
se halla mal planteada la consulta, veamos la modificación que la realizamos:

40
Ahora si al ejecutar la consulta nos devuelve lo que se pidió en el ejercicio, devolviéndonos todos los
registros incluso el de papas fritas. Por ultimo no se puede olvidar que podemos aplicar filtros, veamos el
siguiente ejemplo

 ¿Qué es una combinación Self Join?

Son combinaciones que ocurren en la misma tabla, veamos la tabla empleados de la base de datos
Neptuno:

41
Supongamos el siguiente enunciado

Nos muestra 8 filas cuando son 9 filas entonces lo que debería de hacerse es

42
43

También podría gustarte