introducción lenguaje de manipulación de datos (data manipulation language) permite a los usuarios...
TRANSCRIPT
![Page 1: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/1.jpg)
Introducción
• Lenguaje de manipulación de datos (Data Manipulation Language)
• Permite a los usuarios llevar a cabo las tareas de consulta o manipulación de la BD.
• El más popular es SQL.
![Page 2: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/2.jpg)
Tablas de ejemploAutos
![Page 3: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/3.jpg)
Clientes
![Page 4: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/4.jpg)
INSERT
Sintaxis básica para insertar datos en una tabla:
INSERT INTO nombre_tabla (campo1, campo2, ...) VALUES (valor1, 'cadena1', ...)
![Page 5: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/5.jpg)
Ejemplo:
INSERT INTO autos (patente,marca,modelo,color,kilometraje)
VALUES ('ABC123', 'RENAULT','MEGANE TR100', 'NEGRO DIAMANTE',78000)
![Page 6: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/6.jpg)
UPDATEPara modificar los datos de una tabla se
usa UPDATE. Sintaxis:
UPDATE nombre_tablaSET campo_1 = nuevo_valorWHERE condición
También es posible UPDATE múltiples campos al mismo tiempo. Sintaxis:
• UPDATE nombre_tablaSET campo_1 = valor1, campo_ 2 = valor2 WHERE condición
![Page 7: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/7.jpg)
Ejemplo:
UPDATE autos SET Marca=‘Ford’ WHERE Modelo=‘Focus’
Asigna la cadena “Ford” en el campo marca, a todos los registros que tengan “Focus” como valor en el campo Modelo.
![Page 8: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/8.jpg)
DELETEPara borrar registros de una tabla se usa
DELETE FROM.Sintaxis:
DELETE FROM nombre_tablaWHERE condición
Ejemplo:
DELETE FROM Autos WHERE patente=‘ABC123’
Borra los registros de autos que tengan “ABC123” en el campo patente.
![Page 9: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/9.jpg)
SELECT
Para seleccionar registros de una tabla se usa la cláusula SELECT. Sintaxis:
SELECT nombre_campo1, nombre_campo2 FROM nombre_tabla
El símbolo * (asterisco) permite seleccionar todos los campos de una tabla.Sintaxis:
SELECT * FROM nombre_tabla
![Page 10: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/10.jpg)
Ejemplo:
SELECT marca FROM autos
Resultado:
Muestra sólo el campo “marca” de todos los registros de autos
![Page 11: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/11.jpg)
Para seleccionar todos los registros distintos de una tabla se usa DISTINCT.
Sintaxis:
SELECT DISTINCT nombre_campoFROM nombre_tabla
![Page 12: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/12.jpg)
Ejemplo:
SELECT DISTINCT marca FROM Autos
Resultado:
Muestra sólo el campo “marca” de todos los registros de “autos”, omitiendo los valores repetidos.
![Page 13: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/13.jpg)
Para seleccionar condicionalmente los datos de una tabla se usa la cláusula WHERE:
Sintaxis:
SELECT nombre_campo FROM nombre_tablaWHERE condición
![Page 14: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/14.jpg)
Ejemplo:
SELECT telefono FROM Clientes WHERE nombre=‘Juan’
Resultado:
Muestra el teléfono de todos los clientes cuyo nombre sea Juan.
![Page 15: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/15.jpg)
La condición del WHERE puede ser una condición compuesta. Estas están formadas por múltiples condiciones simples conectadas por AND u OR.
Sintaxis:SELECT nombre_campo FROM
nombre_tablaWHERE condición simple AND/OR condición simple
![Page 16: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/16.jpg)
Ejemplo:
SELECT patente FROM Autos WHERE modelo=‘Megane’ AND kilometraje>50
Resultado:
Muestra la patente de los autos cuyo modelo sea MEGANE y su kilometraje sea mayor que 50.
![Page 17: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/17.jpg)
La cláusula WHERE compara sus campos comúnmente con valores únicos, pero también es posible comparar con un "conjunto" de valores. Esto es realizable a través del operador IN:
Sintaxis:
SELECT nombre_campoFROM nombre_tablaWHERE nombre_campo IN (valor1, valor2, ...)
![Page 18: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/18.jpg)
Ejemplo:
SELECT kilometraje FROM autos WHERE marca in (‘Ford’, ‘Renault’, ‘Fiat’)
Resultado:
Muestra el kilometraje de los autos cuya marca sea Ford o Renault o Fiat.
![Page 19: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/19.jpg)
BETWEEN permite la selección de un rango de valores.
Sintaxis:
SELECT nombre_campoFROM nombre_tablaWHERE nombre_campo BETWEEN valor1 AND valor2
![Page 20: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/20.jpg)
Ejemplo:
SELECT * FROM autos WHERE kilometraje BETWEEN 10000 AND 20000
Resultado:
Muestra todos los campos de los autos cuyo kilometraje esté entre 10.000 y 20.000 km.
![Page 21: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/21.jpg)
LIKE permite hacer una búsqueda basada en un patrón en vez de especificar exactamente lo que se desea (como en IN) o determinar un rango (como en BETWEEN). Sintaxis:
SELECT nombre_campoFROM nombre_tablaWHERE nombre_campo LIKE patrón
![Page 22: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/22.jpg)
Patrón generalmente consiste en comodines.
• 'A_Z': Todas las líneas que comience con 'A', otro carácter y termine con 'Z'. Por ejemplo, 'ABZ' y 'A2Z'
• ‘F%':Todas las líneas que comienzan con 'F'. Por ejemplo, ‘Fiat' y ‘Ford'
• ‘%t‘: Todas las líneas que terminan con ‘t'. Por ejemplo, 'Renault', 'Fiat' y 'Peugeot'
• '%o%': Todas las líneas que contienen “o” en cualquier lado. Por ejemplo, 'Peugeot' y 'Ford'
![Page 23: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/23.jpg)
Ejemplo:
SELECT * FROM autos WHERE modelo LIKE ‘GOL%’
Resultado:
Muestra todos los campos de los autos cuyo modelo comience con GOL.
![Page 24: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/24.jpg)
Para enumerar el resultado en un orden particular (ascendente y descendente)se usa ORDER BY. Sintaxis:
SELECT nombre_campoFROM nombre_tablaWHERE condición ORDER BY nombre_campo ASC/DESC
Es posible ordenar por más de una columna. En este caso, la cláusula ORDER BY anterior se convierte en:
ORDER BY nombre_campo1 ASC/DESC, nombre_campo2 ASC/DESC
![Page 25: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/25.jpg)
Ejemplo:SELECT * FROM autos WHERE
marca=‘Ford’ ORDER BY modelo ASC, kilometraje DESCResultado:
Muestra todos los campos de los autos de marca Ford ordenados alfabéticamente por modelo, y luego por kilometraje en forma descendente.
![Page 26: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/26.jpg)
Es posible hacer cálculos matemáticos, para esto se utilizan las funciones:
- AVG (promedio) - COUNT (contar) - MAX (máximo) - MIN ( mínimo) - SUM (suma)La sintaxis para el uso de funciones es:SELECT tipo de función(nombre_campo)
FROM nombre_tabla
![Page 27: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/27.jpg)
Ejemplo:
SELECT AVG(kilometraje) FROM autos
Resultado:
Muestra el promedio de los kilometrajes de todos los autos.
![Page 28: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/28.jpg)
Para agrupar por un campo específico se utiliza GROUP BY.
Sintaxis:
SELECT nombre_campo1, SUM(nombre_campo2)FROM nombre_tablaGROUP BY nombre_campo1
![Page 29: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/29.jpg)
Ejemplo:
SELECT marca, AVG(kilometraje) FROM autos GROUP BY marca
Resultado:
Muestra todas las marcas de autos con su promedio de kilometraje agrupado por marca.
![Page 30: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/30.jpg)
Para limitar el resultado según alguna condición de función aritmética se usa HAVING.
Sintaxis:
SELECT nombre_campo1, SUM(nombre_campo2)FROM nombre_tablaGROUP BY nombre_campo1HAVING (condición de función aritmética)
![Page 31: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/31.jpg)
Ejemplo:SELECT marca, AVG(kilometraje) FROM
autos GROUP BY marca HAVING AVG(kilometraje) < 50000
Resultado:
Muestra todas las marcas de autos con su promedio de kilometraje agrupado por marca, siempre y cuando el promedio de km sea menor a 50000
![Page 32: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/32.jpg)
Hay dos tipos de alias que se utilizan con mayor frecuencia. Alias de columna y de tabla.
Alias de columna: Para la organización del resultado. Existen casos donde el título de la columna puede complicarse (especialmente si incluye operaciones aritméticas).
Alias de tabla: Se coloca un alias directamente luego del nombre de tabla en la cláusula FROM.
Sintaxis: SELECT alias_tabla.nombre1_columna as
alias_columnaFROM nombre_tabla as alias_tabla
![Page 33: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/33.jpg)
Ejemplo:
SELECT COUNT(*) as Total de autos FROM autos
Resultado:
Muestra el total de autos. El nombre de la columna será “Total de Autos” en lugar de “COUNT(*)”.
![Page 34: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/34.jpg)
Combinar sentencias
Para insertar filas múltiples en una tabla se usa la siguiente sintaxis:
INSERT INTO tabla1 (campo1, campo2, ...)SELECT campoA, campoB, ...FROM tabla2
![Page 35: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/35.jpg)
Ejemplo:
INSERT INTO clientes
SELECT * FROM proveedores
Inserta todos los registros de proveedores en la tabla clientes (los campos de ambas tablas deben coincidir).
![Page 36: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/36.jpg)
Trabajar con más de un tabla (JOIN)
Hay tres tipos de combinaciones:
1. Combinaciones internas (INNER JOIN),
2. Combinaciones externas (OUTER JOIN) y
3. Combinaciones cruzadas (CROSS JOIN).
![Page 37: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/37.jpg)
INNER JOIN(Combinaciones internas)
Sintaxis:
SELECT campos FROM tabla1
JOIN tabla2
ON tabla1.campo1=tabla2.campo2
![Page 38: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/38.jpg)
Ejemplo:
• SELECT * FROM clientes INNER JOIN autos ON clientes.patente=autos.patente
Resultado:
No muestra los clientes que no tienen auto, ni los autos que no tienen cliente.
![Page 39: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/39.jpg)
OUTER JOIN(Combinaciones externas)
Existen tres tipos de combinaciones externas:
• Left outer join (o left join).
• Right outer join (o right join).
• Full outer join (o full join).
![Page 40: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/40.jpg)
LEFT JOIN
Sintaxis:
SELECT campos FROM tablaizquierda LEFT JOIN tabladerecha ON tablaizquierda.campo= tabladerecha.campo
![Page 41: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/41.jpg)
Ejemplo:SELECT * FROM autos LEFT JOIN clientes
ON autos.patente =clientes.patente Resultado:
Muestra todos los autos, incluso los que no tienen cliente
![Page 42: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/42.jpg)
RIGHT JOIN
Sintaxis:
SELECT campos FROM tablaizquierda RIGHT JOIN tabladerecha ON tablaizquierda.campo= tabladerecha.campo
![Page 43: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/43.jpg)
Ejemplo:
SELECT * FROM autos
RIGHT JOIN clientes ON
autos.patente =clientes.patente
Resultado:
Muestra todos los clientes, incluso los que no tienen auto
![Page 44: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/44.jpg)
FULL JOIN
Sintaxis:
SELECT campos FROM tablaizquierda FULL JOIN tabladerecha ON tablaizquierda.campo1 = tabladerecha.campo2
![Page 45: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/45.jpg)
Ejemplo:SELECT * FROM autos AS A FULL JOIN
clientes AS C ON A.patente =C.patenteResultado:
Muestra todos los clientes, incluso los que no tienen auto; y todos los autos, incluso los que no tienen cliente
![Page 46: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/46.jpg)
CROSS JOIN (Producto cartesiano)
Sintaxis:
SELECT campos FROM tabla1 CROSS JOIN tabla2
![Page 47: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/47.jpg)
Ejemplo:
SELECT * FROM platos CROSS JOIN postres
Muestra todas las combinaciones posibles (plato-postre).
![Page 48: Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación](https://reader034.vdocuments.net/reader034/viewer/2022051412/54a831ee497959eb6d8b5202/html5/thumbnails/48.jpg)
Bibliografía
•http://sql.1keydata.com/es/sql-insert-into.php
•http://es.wikipedia.org/wiki/Celda_activa
•http://sql.manivesa.com/tutoriales+sql/lenguaje+sql/165.aspx
•Material de la materia gestión de datos