Upload
nguyendieu
View
215
Download
0
Embed Size (px)
Citation preview
CONSULTAS MYSQL
Ya disponemos de bases de datos, y sabemos cómo añadir y modificar datos. Ahora aprenderemos a extraer datos de una base de datos. (Consultas) Para ello utilizaremos la sentencia SELECT
Notación:
SELECT <nombre_columna o campo>
FROM <nombre_tablas>;
Ejemplo sobre la tabla productos :
SELECT código , descripción
FROM productos
SELECT permite recuperar datos de una o varias tablas.
FROM indicamos enqué tabla tiene que buscar la información
La palabra clave DISTINCT.Con ella podemos eliminar filas redundantes de un resultado SQL, por lo que permite obtener los distintos valores de un campo existentes en una tabla o grupo de registros seleccionados.
SELECT DISTINCT nombre FROM alumnos
En este caso si tuviéramos dos o más registros con el nombre José solo mostraría uno
Para mostrar todos los campos (columnas) de la tabla productos utilizamos
SELECT * Para mostrar todos los campos de la tabla dada
SELECT * FROM producto “ Nos muestra todos los campos de la tabla productos” como el examinar que utilizamos
SELECT clave_proveedor FROM producto
Filtros (WHERE). Sirven para aplicar condiciones (o restricciones) en la selección de datos.
Notación:
SELECT <nombre_cols>
FROM <nombre_tablas>
WHERE <condiciones>;
La cláusula WHERE selecciona únicamente las filas que cumplan la condición de selección especificada.
SELECT descripcion FROM producto WHERE codigo =12345
SELECT nombre FROM cliente WHERE clave_cliente = 1 o el numero que ustedes hayan utilizado en su ejercicio
SELECT código FROM detalle_compra WHERE código= 1 o el numero que ustedes hayan utilizado en su ejercicio
Operadores de comparación aplicables en la cláusula WHERE:
=
>
<
>=
<=
<>
Operadores lógicos aplicables en la cláusula WHERE:
AND / OR / NOT
Otros predicados aplicables en la cláusula WHERE:
<atributo> BETWEEN <limit_1>AND <limit_2> {Rango de valores}
<atributo> LIKE <expr> {cadena de caracteres } Comodines: ‘%’, ‘_’
( % ) Se usa junto con LIKE para encontrar datos o valores de cualquier cantidad de caracteres ejemplos LIKE 'J%' ←- todos los que empiezen con J. LIKE '%ANA' ←- todos los que terminen con ANA LIKE '%JUAN%' ←- todos los que lleven en medio del dato JUAN
<atributo> IS [NOT] NULL {consultar si el atributo tiene valor o no}
Una select puede usar alias mediante AS nombre_alias. El alias se usa como un nombre de columna en expresiones . Por ejemplo:Podemos asignar un alias a cualquiera de las expresiones select.
Ejemplo
Obtener una lista de productos indicando su descripción, crear nuevo campo precio con iva incluido que surgirá de multiplicar precio*.116, existencia
Podemos asignar un alias a cualquiera de las expresiones select. Esto se puede hacer usando la palabra AS,
SELECT descripcion, ( precio * 1.16) AS precio_iVA_Incluido, existenciaFROM producto
SELECT descripcion FROM producto WHERE codigo= 12345 AND PRECIO < 10
Funciones de columna
Tenemos las siguientes funciones de columna:SUM(expresión)
AVG (expresión)
MIN((expresión)
MAX (expresión)
El argumento de la función indica conqué valores se tiene que operar, por eso expresión suele ser un La funciónSUM() calcula la suma de losvalores indicados en el argumento. Los datos que se suman deben ser de tipo numérico (entero, decimal, coma flotante o monetario...). El resultado será del mismo tipo aunque puede tener una precisión mayor.
Ejemplo:SELECT SUM(precio)FROM productos
Obtiene una sola fila con el resultado de sumar todos los valores de la columna precio de la tabla productos.
La función AVG() calcula el promedio (la media arimética) de los valores indicados en el argumento, también se aplica a datos numéricos, y en este caso el tipo de dato del resultado puede cambiar según las necesidades del sistema para representar el valor del resultado.
Para sacar promedio de precio de la tabla producto
SELECT avg( precio ) FROM producto
Las funciones MIN() y MAX() determinan los valores menores y mayores respectivamente. Los valores de la columna pueden ser de tipo numérico, texto o fecha. El resultado de la función tendrá el mismo tipo de dato que la columna. Si la columna es de tipo numérico MIN() devuelve el valor menor contenido en la columna, si la columna es de tipo texto MIN() devuelve el primer valor en orden alfabético, y si la columna es de tipo fecha, MIN() devuelve la fecha más antigua y MAX() la fecha más reciente.
La función COUNT(nb columna) cuenta el número de valores que hay en la columna, los datos de la columna pueden ser de cualquier tipo, y la función siempre devuelve un número entero. Si la columna contiene valores nulos esos valores no se cuentan, si en la columna aparece un valor repetido, lo cuenta varias veces.
COUNT(*) permite contar filas en vez de valores. Si la columna no contiene ningún valor nulo, COUNT(nbcolumna) y COUNT(*) devuelven el mismo resultado, mientras que si hay valores nulos en la columna, COUNT(*) cuenta también esos valores mientras que COUNT(nb Columna) no los cuenta.
Ejemplo:¿Cuántos clientes tenemos?
SELECT COUNT(clave_cliente) FROM cliente
Se pueden combinar varias funciones de columna en una expresión pero no se pueden anidar funciones de columna
SELECT (AVG(precio) * 3) + SUM(existencia)FROM producto
Se puede mostrar la descripción del producto resultado del valor máximo , integrando una subconsulta SELECT
INNER JOIN
Las vinculaciones entre tablas se realizan mediante la cláusula INNER que combina registros de dos tablas siempre que haya concordancia de valores en un campo común
Una operación INNER JOIN en cualquier cláusula FROM. Éste es el tipo más común de combinación. La combinación interna combina registros de dos tablas siempre que haya valores coincidentes
CONSULTAS MYSQL
- Crear las Base de datos del ejercicio 2
MfraijoEjercicio2
- Crear las tablas
Camionero 6Cve_camionero
5
Nombre 40Dirección 45Teléfono 10Clave_Ciudad 5
Camiones 4Matricula_camion
5
Modelo 4Marca 20Kilometraje 12
Salario 10
PAQUETES 7Codigo_paquete
5
Descripción 30Destinatario 20Dirección 45Telefono 10Clave_ciudad 5Clave_camionero
5
Catalogo Ciudades
2
Clave_Ciudad 5Nombre 40
DETALLE ENTREGA
3
Cve_camionero
5
Matricula_camion
5
Codigo_ paquete
5
Realizando consultas responde las siguientes preguntas
1.- ¿Cual camionero tiene el mayor sueldo?
2.- ¿Que camión es el más antiguo?
3.- ¿Con cuantos camiones cuenta la empresa?
SELECT COUNT( matricula_camion ) FROM camiones
Utilizando INNER JOIN realiza la siguiente consulta
4 Se desea obtener: nombre, dirección y los códigos de paquete que distribuyeron los camioneros
SELECT Camionero.Nombre, Camionero.Dirección, Paquetes.Codigo_paqueteFROM CamioneroINNER JOIN Paquetes ON Camionero.clave_camionero = paquetes.clave_camionero