Facultad de Estadística e Informática · 2012-11-14 · SQL Structured Query Language Lenguaje de...
Transcript of Facultad de Estadística e Informática · 2012-11-14 · SQL Structured Query Language Lenguaje de...
Curso de Base de Datos con MySQL
MIS. Lizbeth A. Hernández González Noviembre 2012
Universidad Veracruzana Facultad de Estadística e
Informática
SQL ◦ Structured Query Language
Lenguaje de definición de datos (LDD) ◦ CREATE, ALTER y DROP
Lenguaje de manipulación de datos (LMD) un lenguaje que permite a los usuarios acceder o manipular los datos ◦ INSERT, UPDATE o DELETE
Inserción insert into cuenta
(número_cuenta,nombresucursal,saldo) values (‘C-9732’, ‘Navacerrada’, 1200) INSERT INTO test_prefixhabitat (habitat, tipo) VALUES
("F15",1)
Borrado delete from r where P
Actualización update cuenta set saldo = case when saldo <= 10000 then saldo * 1.05 else saldo * 1.06 end
UPDATE test_prefixhabitat SET habitat =
CASE
WHEN habitat ="F1" THEN "FORESTAL 1"
WHEN habitat ="F2" THEN "FORESTAL 2"
WHEN habitat ="F3" THEN "FORESTAL 3"
WHEN habitat ="F4" THEN "FORESTAL 4"
ELSE "FORESTAL"
END
AND, OR, NOT, DISTINCT, alias
Funciones de agregación ◦ sum, avg, count, max, min
Operaciones sobre conjuntos ◦ Union, except
Subconsultas anidadas ◦ IN, NOT IN, some
Consultas complejas ◦ agrupación, ordenadas
Uso de between, comodines, like
Media: avg
Mínimo: min
Máximo: max
Total: sum
Cuenta: count
SELECT MAX(tipo) FROM test_prefixhabitat
SELECT COUNT(tipo) FROM test_prefixhabitat
SELECT AVG(pconserva) FROM `test_prefixespecie`
Para encontrar todos los clientes que poseen un préstamo, una cuenta o las dos cosas en el banco, se escribirá:
(select nombre-cliente from impositor) union (select nombre-cliente from prestatario) Deben consultarse el mismo # de campos y del
mismo tipo
Para conservar los duplicados, utilizar union all Elimina duplicados automáticamente
Aves que estén en regiones y subregiones
SELECT especie FROM test_prefixespecie e, `test_prefixzooregionespecie` ze
WHERE e.idespecie=ze.idespecie
UNION
SELECT especie FROM test_prefixespecie e, `test_prefixzooregionespeciesubregion` se
WHERE e.idespecie=se.idespecie
Para encontrar todos los clientes que tienen cuenta pero no tienen ningún préstamo en el banco se escribirá:
(select distinct nombre-cliente from impositor)
except
(select distinct nombre-cliente from prestatario)
NO ESTÁ EN MYSQL
IN select distinct nombre-cliente from prestatario where nombre-cliente in (select nombre-cliente from impositor)
NOT IN select distinct nombre-cliente from prestatario where nombre-cliente not in (select nombre-cliente from impositor)
SELECT idespecie, especie FROM `test_prefixespecie`
WHERE idespecie IN
(SELECT idespecie FROM`test_prefixzooregionespeciesubregion`)
En un predicado se puede usar la palabra clave especial null para comprobar si un valor es nulo.
select número-préstamo
from préstamo
where importe is null
Obtiene el id del último registro insertado en una tabla
SELECT DISTINCT LAST_INSERT_ID() FROM alumnos
CREATE VIEW `aves2`.`FamiliaPorEspecie` AS (SELECT e.idespecie, e.especie, minimo,
maximo, f.familia FROM test_prefixespecie e,test_prefixgenero AS g, test_prefixfamilia f
WHERE e.idgenero=g.idgenero AND g.idfamilia=f.idfamilia
);
SELECT * FROM familiaporespecie WHERE
minimo="?"
Hacer una vista de los países en los que se han avistado las aves.
CREATE PROCEDURE `aves2`.`agrega_especie_habitat`
(especie INT, habitat INT)
BEGIN
insert into test_prefixespeciehabitat (idEspecie, idHabitat) values (especie,habitat);
END
CALL `agrega_especie_habitat`(4,3)
PREPARE stmt1 FROM
'SELECT habitat FROM test_prefixhabitat WHERE Idhabitat=?';
SET @a = 3;
EXECUTE stmt1 USING @a;