Vous êtes sur la page 1sur 42

UNIDAD 3 TALLER DE BASE DE DATOS

SINTAXIS

INSERT INTO nombre de la tabla VALUES (valores separadas por comas)


EJEMPLO

INSERT INTO clientes VALUES(juan,56,sat);

UPDATE nombre_de_la_tabla SET nombre_de_la_columna=nuevo_valor WHERE ..


EJEMPLO UPDATE cliente SET fecha="2003-06-01" WHERE ID=1

DELETE nombre_de_la_tabla WHERE ..


EJEMPLO DELETE FROM cliente WHERE ID=1

La

sentencia SELECT , obtiene registros de la base de datos y permite realizar la seleccin de una o varias filas o columnas de una o varias tablas.

La

clausula SELECT : Se usa para listar las columnas de las tablas que se desean ver en el resultado de una consulta. Esta clausula no puede omitirse. La clausula FROM: Lista las tablas que deben ser utilizadas en la evaluacin de las consultas. Esta clausula no puede omitirse.

La

clausula WHERE: Establece criterios de seleccin de ciertas filas, en el resultado de la consulta gracias a las condiciones de bsqueda. Puede omitirse La clausula GROUP BY: Permite agrupar un conjunto de columnas con valores repetidos. Esta clausula puede omitirse

La

clausula HAVING: Es la encargada de condicionar la seleccin de bsqueda para especificar en base a los valores resultantes en las funciones agregadas utilizadas con el WHERE, condiciona solo para la seleccin de filas individuales. La clausula ORDER-BY: permitir establecer la columna o columnas sobre las cuales las filas resultantes de la consulta debern ser ordenadas.

Ejemplo

No 1. Seleccionar todas las columnas y filas de la tabla alumno. SELECT * FROM ALUMNO
Ejemplo

No 2. Seleccionar columnas: Nombre del alumno y edad de la tabla alumno. SELECT nombre, edad FROM alumno

Ejemplo

No 3. Este ejemplo selecciona las columnas y las muestra con el titulo especificado con AS , es decir con un alias. SELECT nombre AS Nombre del alumno, edad AS Edad del alumno FROM alumno Ejemplo No 4. Seleccionar el nombre de los alumnos que estn inscritos. SELECT nombre FROM alumno ORDER BY nombre

Ejemplo

No 5. Realizar lo mismo que en el ejemplo 4 ahora que con la clausula DISTINCT. SELECT DISTINCT nombre FROM alumno ORDER BY nombre

Una

consulta SQL puede incluir en su clausula SELECT columnas calculadas cuyo valor se calculan a partir de los valores de las otras columnas almacenadas en las tablas. Estas columnas son una especie de columna virtual, pues no existen fsicamente en la tabla y sus valores calculados corresponden a los valores por fila.

Ejemplo

clientes. SELECT codigo,nomcli,(sal1+sal2+sal3) AS saldo FROM cliente WHERE (sal1+sal2+sal3)<> 0 Ejemplo No7. Calcular la venta de los vendedores. SELECT numven,nomve,(ventas cuotas) FROM vendedores WHERE (ventas cuotas) <> 0

No 6. Calcular el saldo de los

Ejemplo

No 8. Seleccionar a los clientes cuyo numero de cliente este contenido entre el rango 2 y 5. SELECT numcli, nomcli FROM cliente WHERE numcli >=2 and numcli <=5

Ejemplo

No 8. Seleccionar a los clientes cuyo numero de cliente este contenido entre el rango 2 y 5. SELECT numcli, nomcli FROM cliente WHERE numcli BETWEEN 2 AND 5. SELECT nomcli FROM cliente WHERE (nomcli BETWEEN A and F)

Ejemplo

No9.Seleccionar a los clientes cuyo numero de cliente esta contenido en determinado rango y su saldo sea igual a cero. SELECT NUMCLI,NOMCLI,SALDO FROM CLIENTE WHERE NUMCLI BETWEEN 2 AND 3 AND NOT SALDO=0;

Ejemplo

No10.Buscar un cliente que sea el numero 823 0 832 SELECT NUMCLI,NOMCLI FROM CLIENTE WHERE NUMCLI =823 O NUMLI=832; Ejemplo No.11.Seleccionar los vendedores cuyas ventas es mayor que la cuota que se espera deben vender y que sus ventas sean mayores a 800. SELECT NUMVEN,NOMVEN FROM VENDEDOR WHERE VENTA>CUOTA AND VENTA>800

Ejemplo

No12.Seleccionar todos los clientes cuyo nombre contenga la letra H SELECT NUMCLI,NOMCLI FROM CLIENTE WHERE NOMCLI LIKE %H%

Ejemplo

No13.Seleccionar todos los clientes cuyo nombre suene parecido al especificado en la funcin soundex(). SELECT NUMCLI,NOMCLI FROM CLIENTE WHERE SOUNDEX(NOMCLI)=SOUNDEX(DUIT);

Ejemplo

No.14.Consultar que las filas de la tabla cliente, tiene un valor nulo en alguna de sus columnas de nombre, saldo o edad SELECT * FROM CLIENTE WHERE NOMBRE IS NULL OR SALDO IS NULL OR EDAD IS NULL

Sentencia

Suma: SELECT SUMA(CANTIDAD) AS SUMA DE LAS CANTIDADES FROM DETA_PEDIDO Sentencia Promedio: SELECT AVG(CANTIDAD) AS PROMEDIO DE LA CANTIDAD PEDIDA FROM DETA_PEDIDO Sentencia Mnimo: SELECT MIN(CANTIDAD) AS MINIMA CANTIDAD PEDIDA FROM DETA_PEDIDO

Sentencia

Contar: SELECT COUNT(*) AS TOTAL DE CLIENTE FROM CLIENTE Sentencia Maximo: SELECT MAX(CANTIDAD) AS MAXIMA CANTIDAD PEDIDA FROM DETA_PEDIDO

FORMA

1: SELECT a1,a2,a3,b1,b2,b3,c1,c2,c3 FROM tabla1,tabla2,tabla3 WHERE tabla1.a1=tabla2.b2 and tabla2.b2=tabla3.c1


FORMA

2: SELECT a1,a2,a3,b1,b2,b3,c1,c2,c3 FROM tabla1 INNER JOIN tabla2 ON tabla1.a1=tabla2.b2 tabla2 INNER JOIN tabla3 ON tabla2.b1=tabla3.c1

Una subconsulta es una instruccin SELECT anidada dentro de una instruccin SELECT, INSERTINTO, DELETE, o UPDATE o dentro de otra subconsulta.

Puede utilizar tres formas de sintaxis para crear una subconsulta: comparacin [ANY | ALL | SOME] (instruccin sql) expresin [NOT] IN (instruccin sql) [NOT] EXISTS (instruccin sql) En donde: comparacin: Es una expresin y un operador de comparacin que compara la expresin con el resultado de la subconsulta. expresin: Es una expresin por la que se busca el conjunto resultante de la subconsulta. Instruccin sql : Es una instruccin SELECT, que sigue el mismo formato y reglas que cualquier otra instruccin SELECT. Debe ir entre parntesis.

Se

puede utilizar el predicado ANY o SOME, los cuales son sinnimos, para recuperar registros de la consulta principal, que satisfagan la comparacin con cualquier otro registro recuperado en la subconsulta. Ejemplo:
SELECT * FROM Productos WHERE PrecioUnidad > ANY (SELECT PrecioUnidad FROM DetallePedido WHERE Descuento >= 0 .25);

El

predicado ALL se utiliza para recuperar nicamente aquellos registros de la consulta principal que satisfacen la comparacin con todos los registros recuperados en la subconsulta.

El

predicado IN se emplea para recuperar nicamente aquellos registros de la consulta principal para los que algunos registros de la subconsulta contienen un valor igual. Ejemplo:
SELECT * FROM Productos WHERE IDProducto IN (SELECT IDProducto FROM DetallePedido WHERE Descuento >= 0.25);

NOT

IN se utiliza para recuperar nicamente aquellos registros de la consulta principal para los que no hay ningn registro de la subconsulta que contenga un valor igual. El predicado EXISTS (con la palabra reservada NOT opcional) se utiliza en comparaciones de verdad/falso para determinar si la subconsulta devuelve algn registro.

Obtiene

una lista con el nombre, cargo y salario de todos los agentes de ventas cuyo salario es mayor que el de todos los jefes y directores.

SELECT Apellidos, Nombre, Cargo, Salario FROM Empleados WHERE Cargo LIKE %Agente Ven%" AND Salario > ALL (SELECT Salario FROM Empleados WHERE (Cargo LIKE %Jefe%") OR (Cargo LIKE %Director%"));

Obtiene

una lista con el nombre y el precio unitario de todos los productos con el mismo precio que el almbar anisado.
SELECT DISTINCT NombreProducto,Precio_Unidad FROM Productos WHERE Precio_Unidad = (SELECT Precio_Unidad FROM Productos WHERE Nombre_Producto = "Almbar anisado");

Selecciona

el nombre de todos los empleados que han reservado al menos un pedido.


SELECT Nombre, Apellidos FROM Empleados AS E WHERE EXISTS (SELECT * FROM Pedidos AS O WHERE O.ID_Empleado = E.ID_Empleado);

Recupera

el Cdigo del Producto y la Cantidad pedida de la tabla pedidos, extrayendo el nombre del producto de la tabla de productos.
SELECT DISTINCT Pedidos.Id_Producto, Pedidos.Cantidad,(SELECT DISTINCT Productos.Nombre FROM Productos WHERE Productos.Id_Producto = Pedidos.Id_Producto) AS ElProducto FROM Pedidos WHERE Pedidos.Cantidad > 150 ORDER BY Pedidos.Id_Producto;

Recupera

numero de vuelos y capacidades de aquellos numero de vuelos con origen madrid y plazas libres.
SELECT numvuelo, plazas FROM vuelos WHERE origen=Madrid and EXIST (SELECT t1.numvuelo FROM vuelos AS t1 WHERE t1.plazaslibres > 0 and t1.numvuelo=vuelos.numvuelo ;

Mostrar

que productos no se pueden ofertar por falta de stock.


SELECT pedidospendientes.nombre FROM pedidospenientes GROUP BY pedidospendientes.nombre WHERE (pedidospendientes.cantidad > (SELECT porductos.stock FROM productos WHERE productos.idproducto=pedidospendientes.idepro ducto));

Mostrar

todas las mujeres de la tabla empleado, cuya edad sea mayor a la de cualquier hombre.
SELECT empleados.nombre FROM empleados WHERE sexo=F and edad > ANY (SELECT empleados.edad FROM empleados WHERE sexo=M );

Vous aimerez peut-être aussi