Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Contenido:
1. Consultas por Parámetros...................................................................................................................... 2
2. Consultas sobre múltiples tablas ........................................................................................................... 7
2.1. INNER JOIN ................................................................................................................................ 11
2.2. LEFT JOIN .................................................................................................................................. 14
2.3. RIGHT JOIN ................................................................................................................................ 15
3. Consultas de acción ............................................................................................................................. 16
3.1. Consultas de eliminación: DELETE ............................................................................................ 16
3.2. Consultas de registros: INSERT INTO ........................................................................................ 18
3.3. Consultas de actualización: UPDATE ......................................................................................... 22
Las consultas con parámetros son aquellas cuyas condiciones de búsqueda se definen
mediante parámetros. Si se ejecutan directamente desde la base de datos donde han
sido definidas aparecerá un mensaje solicitando el valor de cada uno de los parámetros.
Si deseamos ejecutarlas desde una aplicación hay que asignar primero el valor de los
parámetros y después ejecutarlas. Su sintaxis es la siguiente:
Parte Descripción
nombre Es el nombre del parámetro
Tipo Es el tipo de datos del parámetro
consulta Una consulta SQL
Los tipos de datos Microsoft Access SQL de motor de base de datos consisten en 13 tipos de
datos principales definidos por el motor de base de datos de Microsoft Access y varios
sinónimos válidos reconocidos para estos tipos de datos.
Los ejemplos mostrados en la presente guía se refieren a la base de datos para gestionar
las cuentas y préstamos de los clientes de una entidad bancaria.
SELECT codempleado, ape1empleado, cargo, salario, IIF( salario>1000, 100, 200) AS Bono
FROM Empleado
WHERE cargo = [Digite el cargo a consultar];
Observe que en el ejemplo anterior en las columnas a mostrar se ha utilizado la función IIF
para condicionar el bono a mostrar en la columna bono que no es parte de la estructura de
campos de la tabla Empleado. Por tanto la función IIF permite mostrar valores en una
columna que dependen de una condición.
Veamos el siguiente ejemplo, en el cual podemos observar el uso de una subconsulta que
devuelve el promedio de todos los balances. La consulta principal muestra número de
cuenta, balance, tipo de la tabla cuente y condiciona que únicamente se deben mostrar
aquellos registros de la tabla cuenta cuyo balance es mayor al promedio de todos los
balances y además la consulta principal filtra que solo se muestre los registros de un
determinado tipo de cuenta que se pide por parámetro.
Todas las consultas estudiadas hasta el momento se basan en seleccionar campos sobre
los datos almacenados en una única tabla. SQL también permite obtener resultados a
través de la combinación de múltiples tablas.
La Sintaxis es:
El resto de cláusulas estudiadas hasta ahora (WHERE, ORDER BY, GROUP BY,
HAVING...) siguen siendo válidas y utilizan el mismo formato. Las listas de campos
válidos son ahora cualquiera de los campos de las tablas utilizadas, como si se tratara de
una única tabla en la que existen todos los campos de todas las tablas. Puesto que es
posible que existan campos con el mismo nombre en las diferentes tablas, a la hora de
nombrar los campos será necesario especificar a qué tabla pertenecen con el formato
“<tabla>.<campo>”.
Combinando tablas:
A continuación se explica cómo diseñar consultas que muestren información de varias
tablas
Veamos el siguiente ejemplo de Combinación entre dos tablas:
Tabla1 Tabla2
PK1 FK1
Campo1 FK2
Campo2 Campo1
Notemos que en WHERE necesitamos expresar el vínculo que se establece entre las dos
tablas.
Tipos de combinaciones.
En Access se pueden realizar tres tipos de combinaciones:
1. INNER JOIN
2. LEFT JOIN
3. RIGHT JOIN
Para representar el resultado de una consulta combinando dos tablas sin exigir
coincidencia ente las columnas relacionadas se puede representar el resultado con un
diagrama de ven (esquemas usados en la teoría de conjuntos)
SELECT * FROM A, B;
Ejemplo para mostrar campos específicos de dos tablas con sus campos
combinados que tengan valores iguales y una condición.
INNER JOIN combina dos tablas con los campos combinados que tengan valores iguales:
SELECT *
FROM banco INNER JOIN sucursal
ON banco.codbanco = sucursal.codbanco;
Ejemplo para mostrar información de tres tablas combinando los campos que
relacionan las tres tablas por medio de una condición de igualdad de valores sin
utilizar INNER JOIN.
Con cuatro tablas se requiere una condición de igualdad para cada relación:
A continuación se presenta una consulta que muestra código y nombre del banco, nombre
de la sucursal, el código, nombre, apellido del cliente y el número de préstamo y la cantidad
prestada.
A continuación se presenta la consulta anterior pero la información que muestra debe cumplir
la condición para los clientes cuyo apellido es Arango:
La combinación LEFT JOIN muestra todas las filas de la tabla izquierda, sin importar la
existencia de coincidencias en la tabla de la derecha.
La combinación RIGHT JOIN muestra todas las filas de la tabla derecha, sin importar la
existencia de coincidencias en la tabla de la izquierda.
Las consultas de acción o manipulación de datos son aquellas que no devuelven ningún
registro, son las encargadas de acciones como añadir, borrar y modificar registros.
Para poder hacer esto, SLQ nos ofrece las siguientes sentencias: INSERT para insertar,
UPDATE para modificar y DELETE para borrar.
Crea una consulta de eliminación que elimina los registros de una o más de las tablas
listadas en la cláusula FROM que satisfagan la cláusula WHERE. Esta consulta elimina
los registros completos, no es posible eliminar el contenido de algún campo en concreto.
Su sintaxis es:
[WHERE condiciones];
Una vez que se han eliminado los registros utilizando una consulta de borrado, no puede
deshacer la operación. Si desea saber qué registros se eliminarán, primero examine los
resultados de una consulta de selección que utilice el mismo criterio y después
ejecute la consulta de borrado. Mantenga copias de seguridad de sus datos en todo
momento. Si elimina los registros equivocados podrá recuperarlos desde las copias de
seguridad.
La siguiente consulta de eliminación borra los registros de los empleados que pertenecen al
cargo Analista:
Como el código de sucursal 1088 está registrado en otras tablas con las cuales se relaciona
la tabla sucursal y no se ha establecido eliminar en cascada el gestor de base de datos no
permite eliminar el registro.
La sentencia INSERT INTO Agrega un registro en una tabla. Se la conoce como una
consulta de datos añadidos. Esta consulta puede ser de dos tipos: Insertar un único
registro ó Insertar en una tabla los registros contenidos en otra tabla.
INSERT INTO Tabla (campo1, campo2, .., campoN) VALUES (valor1, valor2, ..., valorN)
Los valores valor1, valor2, ..., valorN se deben corresponder exactamente con los campos
que posee la estructura de la tabla y deben estar en el mismo orden, a menos que las
volvamos a poner a continuación del nombre de la tabla. En este último caso, los valores se
deben disponer de forma coherente con el nuevo orden que hemos impuesto.
INSERT INTO Banco VALUES (“B15”, “Banco de los trabajadores”, “25 av. Norte,
#4678”)
O Bien:
INSERT INTO Banco (domicilio, nombre, codbanco) VALUES ('25 av. Norte,
#4678','Banco Azul', 'B16')
De esta forma los campos de TablaOrigen se grabarán en Tabla, para realizar esta
operación es necesario que todos los campos de TablaOrigen estén contenidos con igual
nombre en Tabla. Con otras palabras que Tabla posea todos los campos de TablaOrigen
(igual nombre e igual tipo).
En este tipo de consulta hay que tener especial atención con los campos contadores o
autonuméricos puesto que al insertar un valor en un campo de este tipo se escribe el valor
que contenga su campo homólogo en la tabla origen, no incrementándose como le
corresponde.
Se puede utilizar la instrucción INSERT INTO para agregar un registro único a una tabla,
utilizando la sintaxis de la consulta de adición de registro único tal y como se mostró
anteriormente. En este caso, su código específico, el nombre y el valor de cada campo del
registro. Debe especificar cada uno de los campos del registro al que se le va a asignar un
valor así como el valor para dicho campo. Cuando no se especifica dicho campo, se inserta
el valor predeterminado o Null. Los registros se agregan al final de la tabla.
Se pueden averiguar los registros que se agregarán en la consulta ejecutando primero una
consulta de selección que utilice el mismo criterio de selección y ver el resultado. Una
consulta de adición copia los registros de una o más tablas en otra. Las tablas que contienen
los registros que se van a agregar no se verán afectadas por la consulta de adición. En lugar
de agregar registros existentes en otra tabla, se puede especificar los valores de cada campo
en un nuevo registro utilizando la cláusula VALUES. Si se omite la lista de campos, la
cláusula VALUES debe incluir un valor para cada campo de la tabla, de otra forma fallará
INSERT.
En la tabla BANCO, se desea insertar todos los registros almacenados en una tabla llamada
BANCONEW .
Crea una consulta de actualización que cambia los valores de los campos de una tabla
especificada basándose en un criterio específico. Su sintaxis es:
El ejemplo siguiente incrementa los valores Cantidad pedidos en un 10 por ciento y los
valores Transporte en un 3 por ciento para aquellos que se hayan enviado al Reino
Unido.:
UPDATE [Detalles de Pedido] SET cantidad = cantidad * 1.1, Precio = precio * 1.03
WHERE [Id de Producto] = 1;
UPDATE Productos SET [Precio listado] =[Precio listado] * 1.1 WHERE ( [Categoría] =
"bebidas");