Вы находитесь на странице: 1из 4

Ejercicios resueltos de SQL

' En la sintaxis SQL se debe de usar comillas simples en vez de dobles. 'Seleccionar todos los registros de una tabla con todos sus campos SELECT * FROM Ventas 'Seleccionar todos los registros, pero solo unos campos ' los nombres de campos con espacios en blanco deben ir entre corchetes. SELECT Articulo, Descripcion, [Precio Venta] FROM Ventas 'Seleccionar todos los campos de la tabla Ventas y los campos Descripcion ' y Minorista de la tabla de Articulos, relacionando ambas tablas por el ' codigo del articulo. SELECT Ventas.*, Articulos.Descripcion, Articulos.Minorista FROM Ventas, Articulos WHERE Ventas.Articulo = Articulos.Articulo 'Calcular el precio total de los articulos. Esta consulta crea un campo ' con el resultado de la multiplicacion SELECT Articulos.Minorista * Ventas.Cantidad FROM Articulos, Ventas WHERE Ventas.Articulo = Articulos.Articulo 'Crea una consulta con el apellido y el nombre de los clientes, separados ' por una coma, en un solo campo SELECT Apellido & ", " & Nombre FROM Clientes 'Crea un identificador de cliente utilizando las 3 primeras letras de los ' campos Apellidos y Nombre y pone todo en mayusculas SELECT UCASE$(MID$(Apellidos, 1, 3) & UCASE$(MID$(Nombre, 1, 3) FROM Clientes 'Crea un recordset con un nico registro con el stock mnimo, el mximo ' y el medio de los artculos as como el coste total de las existencias SELECT Min(Stock), Max(Stock), Avg(Stock), Sum(Stock * Articulos.Precio) FROM Articulos 'Crea una consulta compuesta de dos campos, una cantidas y la raiz cuadrada ' de esa cantidad. A estos campos les asigna un nombre alternativo SELECT Cantidad AS Cant1, SQR(Cantidad) AS Cant2 FROM Ventas 'Crea una consulta con datos de dos bases de datos diferentes SELECT Clientes.Apellido & Clientes.Nombre AS Nombre, [Codigos Postales].Ciudad, [Codigos Postales].Provincia FROM Clientes, [Codigos Postales] IN Codigos WHERE Clientes.[Codigo Postal] = [Codigos Postales].[Codigo Postal] 'Lo mismo que el anterior ejemplo, pero usando un alias para las tablas SELECT CS.Apellido & CS.Nombre AS Nombre, CP.Ciudad, CP.Provincia FROM CS, CP IN Codigos WHERE CS.[Codigo Postal] = CP.[Codigo Postal]

'No se seleccionan los registros que tengas todos los campos en ambas tablas ' iguales SELECT DISTINCTROW Articulo FROM Articulos, Ventas WHERE Articulos.Articulo = Ventas.Articulo 'Se genera un recordset con todos los registros de la tabla Clientes, exista ' o no el vendedor asociado, en la que no saldrn reflejados los vendedores ' que no tienen ningn cliente asignado SELECT CS.Apellido, CS.Nombre, VN.Apellido, VN.Nombre FROM Clientes AS CS, Vendedores AS VN CS LEFT JOIN VN ON CS.Vendedor = VN.Vendedor 'Selecciona todos los campos de los clientes que se apelliden Perez SELECT * FROM Clientes WHERE Apellido = "Perez" 'Selecciona todos los campos de los artculos con fecha mayor que 15/12/96 SELECT * FROM Articulos WHERE Fecha > #15/12/96# 'Selecciona todos los campos de los clientes que tengan como segunda letra ' del apellido, una letra a, b o c SELECT * FROM Clientes WHERE MID$(Apellido, 2, 1) LIKE "[a-c]" 'Selecciona todos los campos de los clientes que tengan un apellido que no ' empieze por una vocal y que la tercera letra sea una n SELECT * FROM Clientes WHERE LCASE$(Apellido) = "[!aeiou]?n*" 'Selecciona todos los campos de los clientes que sean gallegos SELECT * FROM Clientes WHERE Provincia IN ("C", "Lu", "Or", "Po") 'Selecciona los clientes con fecha de enero de 1997 SELECT * FROM Clientes WHERE Fecha BETWEEN #1/01/97# AND #31/01/97# 'Selecciona los clientes con apellidos que no estn entre la M y la P SELECT * FROM Clientes WHERE Apellido NOT BETWEEN "M" AND "P" 'Selecciona los clientes que se apelliden Martinez de Pontevedra y Orense SELECT * FROM Clientes WHERE Apellido = "Martinez" AND Provincia IN ("Po","OR") 'Selecciona los clientes ordenandolos por apellido (de forma descendente) y ' por el nombre (de forma ascendente) SELECT * FROM Clientes

ORDER BY Apellido DESC, Nombre 'Obtiene el total de ventas de las provincias SELECT Provincia, SUM(VentasTotales) FROM Clientes GROUP BY Provincia 'Obtiene el total de ventas de las provincias que tengan mas de 10 clientes ' y la venta maxima a un solo cliente no sea superior a 1000 SELECT Provincia, SUM(VentasTotales) FROM Clientes GROUP BY Provincia HAVING COUNT(*) > 10 AND MAX(VentasTotales) < 1000 'Obtiene una nueva tabla, Correos, con las direcciones de los clientes SELECT CS.Apellido & ", " & CS.Nombre AS Nombre, CS.Direccion, CP.Ciudad, CP.Provincia, CS.[Codigo Postal] INTO Correos FROM Clientes AS CS, [Codigo Postal] IN Codigos AS CP WHERE CS.[Codigo Postal] = CP.[Codigo Postal] 'Elimina todos los clientes que vivan en Sevilla DELETE FROM Clientes WHERE Provincia = "Se" 'Actualiza (aade nuevos registros) la tabla de direcciones de corro creada ' con la consulta SELECT INTO de mas arriba. INSERT INTO Correo SELECT CS.Apellido & ", " & CS.Nombre, CS.Direccion, CP.Ciudad, CP.Provincia, CS.[Codigo Postal] FROM Clientes AS CS, [Codigo Postal] IN Codigos AS CP WHERE CS.[Codigo Postal] = CP.[Codigo Postal] AND CS.Fecha > UltimoMes 'Aade un nuevo registro a la tabla de correo INSERT INTO Correo VALUES ("Perez, Jose", "Calle Mayor", "Vigo", "Po", "36201") 'Modifica el identificador de vendedor para todos los clientes que tengan ' el vendedor Perez. UPDATE Clientes SET Vendedor="GUTI" WHERE Vendedor="PEREZ" 'Aumenta el precio al por menor de todos los articulos en un 5% UPDATE Articulos SET Minorista=Minorista*1.05 'Ejecuta una consulta SQL DIM Db as Database DIM Qd as QueryDef Dim SQL as String SQL = "DELETE FROM Titles WHERE ISBN IS NULL" ' mediante el uso de ejecutar de la base de datos Db.EXECUTE SQL, dbFailOnError ' mediante la creacion de una QueryDef

Set Qd = Db.CreateQueryDef("Borrar libros sin ISBN", SQL) Qd.EXECUTE dbFailOnError ' ejecutar la consulta con el mtodo ejecutar base de datos Db.EXECUTE "Borrar libros sin ISBN", dbFailOnError

Вам также может понравиться