Unidad 5 SQL Del MySQL
Unidad 5 SQL Del MySQL
http://www.infop.hn/infop/
OBJETIVO
Al Finalizar la unidad didctica, los participantes estarn en capacidad de: realizar consultas de
seleccin con criterios de seleccin.
CONSULTAS DE SELECCIN
Paso 1
Posicinese en el nombre de la base
2 de datos. En este caso clientes.
1
3 Paso 2
Dirjase a la pestaa SQL
Paso 3
Haga clic en la pestaa SELECT, por
si desea modificar la consulta.
SELECT *: en la pestaa SELECT * haga clic si desea ver todos los campos de la tabla.
SELECT: en la Pestaa SELECT haga clic si desea ver ciertos campos del SELECT.
INSERT: en la pestaa INSERT haga clic si desea hacer una insercin en la tabla.
UPDATE: en la pestaa UPDATE haga clic si desea hacer una actualizacin a la tabla.
Paso 4
Haga clic en la pestaa SELECT
por si desea modificar, consultar
ciertos campos o bien si desea
consultar todos los campos
detallados.
Paso 5
4
Haga clic en Continuar.
5
Paso 6
Veamos que muestra la consulta
de todos los registros que
seleccionamos en el select.
6
CONSULTAS BASICAS DEL SQL
SELECT campos FROM Tabla; En donde campos es la lista de campos que se deseen recuperar y tabla es el origen de los
mismos, por ejemplo:
- SELECT nombre, telfono from CLIENTES; Esta consulta devuelve el nombre y el telfono de la tabla Clientes
Adicionalmente se puede especificar el orden en que deseen recuperar los registros de las tablas mediante la clusula ORDER BY Lista
de campos. En donde Lista de Campos representa los campos a ordenar. Ejemplo:
SELECT nombre, Primer_apellido, segundo_apellido, telfono FROM clientes ORDER BY nombre; Esta consulta devuelve los
campos nombre, primer_apellido, segundo_apellido de la tabla clientes ordenados por el campo nombre.
Se pueden ordenar los registros por ms de un campo, como por ejemplo: SELECT cdigo postal, nombre, telfono FROM
Clientes arderbycdigo_postal, nombre; Incluso se puede especificar el orden de los registros ascendente mediante la clusula
(ASC se toma este valor por defecto) o descendente (DESC).
SELECT cdigo_postal, nombre, telfono FROM clientes ORDER BY cdigo postal DESC, nombre ASC.
CRITERIOS DE SELECCIN DE LAS CONSULTAS
El Primero de ellos es que cada vez que se desee establecer una condicin referida a un campo de texto la condicin de
bsqueda debe ir encerrada entre comillas simples.
El segundo de ellos es que cada vez que desee establecer una condicin referida a un campo numrico la condicin de
bsqueda no debe de ir encerrada entre comillas.
La clusula WHERE puede usarse para determinar que registros de las tablas enumeradas en la clusula FROM aparecern en los
resultados de la instruccin SELECT.
Los operadores lgicos soportados son: AND, OR, XOR, EQV, IMP, IS Y NOT a excepcin de los dos ltimos, todos poseen la
siguiente sintaxis:
En donde expresin 1 y expresion2 son las condiciones a evaluar, el resultado de la operacin vara en funcin del operador lgico.
- SELECT * from empleados WHERE (edad>25 AND edad<50) or sueldo = 3000; Muestra los empleados con edad mayor de
25 y edad menor de 30 aos o los que tienen un sueldo igual a 3000.
- SELECT * from empleados where (sueldo> 3000 AND sueldo <5000) or (departamento = 01 AND estado = Casado );
Muestra los empleados que tienen un sueldo entre 3000 y 5000 o los que trabajan en el departamento 01 y estn casados
Para indicar que deseamos recuperar los registros segn el intervalo de valores de un campo, emplearemos el operador BETWEEN,
cuya sintaxis es:
- Campo [not] between valor1 and valor2 (la condicin not es opcional). En este caso la consulta devolvera los registros que
contengan en campo un valor incluido en el intervalo valor1, valor2 (ambos inclusive). Si anteponemos la condicin not
devolver aquellos valores no incluidos en el intervalo.
Este operador devuelve aquellos registros, cuyo campo indicado coincide con alguno de los datos en una lista. Su sintaxis es:
- SELECT * from clientes where cdigo_postal in (502, 504); Muestran todos los clientes que en el campo cdigo postal tienen
cualquiera de los valores 502 o 504.
- SELECT nombre, sueldo from empleados where sueldo >=5000; Muestra el nombre y el sueldo de los empleados cuyo
sueldo es mayor o igual 5000.
- SELECT nombre, Sueldo from empleadoswhere sueldo between 3000 and 5000; Muestra todos los empleados con sueldo
entre 3000 y 5000.
- SELECT nombre, edad from empleados where edad in (26, 27,29); Muestra todos los empleados que de edad tienen
26,27 o 29 (edad es numeric por eso 26,27 y 29 no van entre apostrofe), caso contrario si edad fuera un dato de tipo texto
llevara apostrofe.
GROUP BY
Combina los registros con valores idnticos, en la lista de campos especificados, en un nico registro. Para cada registro se crea un
valor sumario si se incluye una funcin SQL agregada, como por ejemplo sum o count, en la instruccin SELECT su sintaxis es:
- SELECT campos from tabla where criterio GROUP BY campos del grupo.
- GROUP BY, es opcional los valores de resumen se omiten si no existe una funcin SQL agregada en la instruccin SELECT.
Los valores null no se evalan en ninguna de las funciones SQL agregadas.
- Si se utiliza la clusula WHERE para excluir aquellas filas que no desee agrupar y la clusula having para filtrar los registros
una vez agrupados.
- Todos los campos de la lista del select deben o bien incluirse en la clusula GROUP BY o como argumentos de una funcin
SQL agregada.
- SELECT lnea, sum (existencia) as [existencia por lnea] FROM artculos groupby lnea; Una vez que GROUP BY ha
combinado los registros, Having muestra cualquier registro agrupado por la clusula GROUP BY que satisfaga las
condiciones de la clusula having.
Having es similar a where, determina que registros se seleccionan una vez que
los registros se han agrupado, utilizando GROUP BY. Having determina cules
de ellos se van a mostrar.
SELECT LNEA, SUM (EXISTENCIA) AS [EXISTENCIA POR LINEA] FROM ARTCULOS GROUP BY LNEA HAVING SUM
(EXISTENCIA) > 100;
Las vinculaciones entre tablas se realizan mediante la clusula INNER que combina registros de dos tablas siempre que haya
concordancia de valores en un campo comn, su sintaxis es:
En dnde;
- Tb1, tb2. Son los nombres de las tablas desde las que se combinan los registros.
- Campo1, campo2. Son los nombres de los campos que se combinan. Si no son numricos, los campos deben ser del mismo
tipo de datos y contener el mismo tipo de datos, pero no tienen que tener el mismo nombre.
Se puede utilizar una operacin INNER JOIN en cualquier clausula FROM. Esto crea una combinacin por equivalencia, conocida
tambin como unin interna. Las combinaciones aqu son las ms comunes; Estas combinan los registros de dos tablas. Siempre que
haya concordancia de valores en un campo comn a ambas tablas. Se puede utilizar INNER JOIN con las tablas Departamentos y
empleados para seleccionar todos los empleados de cada departamento. Por lo contrario, para seleccionar todos los departamentos
(Incluso si alguno de ellos no tiene ningn empleado asignado) se emplea LEFT JOIN a todos los empleados (incluso si alguno no est
asignado a ningn departamento), en caso RIGHT JOIN.
El ejemplo siguiente muestra cmo podra combinar las tablas Empleados y Departamentos basndose en el campo departamento de
la tabla Empleados:
Paso 8
Haga Clic en Continuar.
8
Paso 9
Muestra los
departamentos de
los empleados que
se relacionaron
(tabla
departamentos y
nombre de
9 empleados)
El ejemplo siguiente muestra cmo podra combinar las tablas empleados con las tablas departamentos, sucursales basndose en el
campo departamento y sucursal de la tabla empleados:
Nota: El parntesis juega un valor vital en la instruccin; trate de ejecutar la instruccin sin los parntesis; la clave est en que el ltimo
INNER JOIN no va entre parntesis.
Paso 10
Muestra la instruccin select
donde se relacionan las tres
tablas (departamentos,
10 empleados, sucursales).
Paso 11
Haga clic en Continuar.
11
Paso 12
Muestra la consulta con los
nombres de los
departamentos y nombres
de sucursales.
12