Facultad de Estadística e Informática · 2012-11-14 · SQL Structured Query Language Lenguaje de...

19
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

Transcript of Facultad de Estadística e Informática · 2012-11-14 · SQL Structured Query Language Lenguaje de...

Page 1: Facultad de Estadística e Informática · 2012-11-14 · SQL Structured Query Language Lenguaje de definición de datos (LDD) CREATE, ALTER y DROP Lenguaje de manipulación de datos

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

Page 2: Facultad de Estadística e Informática · 2012-11-14 · SQL Structured Query Language Lenguaje de definición de datos (LDD) CREATE, ALTER y DROP Lenguaje de manipulación de datos

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

Page 3: Facultad de Estadística e Informática · 2012-11-14 · SQL Structured Query Language Lenguaje de definición de datos (LDD) CREATE, ALTER y DROP Lenguaje de manipulación de datos
Page 4: Facultad de Estadística e Informática · 2012-11-14 · SQL Structured Query Language Lenguaje de definición de datos (LDD) CREATE, ALTER y DROP Lenguaje de manipulación de datos

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

Page 5: Facultad de Estadística e Informática · 2012-11-14 · SQL Structured Query Language Lenguaje de definición de datos (LDD) CREATE, ALTER y DROP Lenguaje de manipulación de datos

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

Page 6: Facultad de Estadística e Informática · 2012-11-14 · SQL Structured Query Language Lenguaje de definición de datos (LDD) CREATE, ALTER y DROP Lenguaje de manipulación de datos

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

Page 7: Facultad de Estadística e Informática · 2012-11-14 · SQL Structured Query Language Lenguaje de definición de datos (LDD) CREATE, ALTER y DROP Lenguaje de manipulación de datos

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`

Page 8: Facultad de Estadística e Informática · 2012-11-14 · SQL Structured Query Language Lenguaje de definición de datos (LDD) CREATE, ALTER y DROP Lenguaje de manipulación de datos

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

Page 9: Facultad de Estadística e Informática · 2012-11-14 · SQL Structured Query Language Lenguaje de definición de datos (LDD) CREATE, ALTER y DROP Lenguaje de manipulación de datos

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

Page 10: Facultad de Estadística e Informática · 2012-11-14 · SQL Structured Query Language Lenguaje de definición de datos (LDD) CREATE, ALTER y DROP Lenguaje de manipulación de datos

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

Page 11: Facultad de Estadística e Informática · 2012-11-14 · SQL Structured Query Language Lenguaje de definición de datos (LDD) CREATE, ALTER y DROP Lenguaje de manipulación de datos

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)

Page 12: Facultad de Estadística e Informática · 2012-11-14 · SQL Structured Query Language Lenguaje de definición de datos (LDD) CREATE, ALTER y DROP Lenguaje de manipulación de datos

SELECT idespecie, especie FROM `test_prefixespecie`

WHERE idespecie IN

(SELECT idespecie FROM`test_prefixzooregionespeciesubregion`)

Page 13: Facultad de Estadística e Informática · 2012-11-14 · SQL Structured Query Language Lenguaje de definición de datos (LDD) CREATE, ALTER y DROP Lenguaje de manipulación de datos
Page 14: Facultad de Estadística e Informática · 2012-11-14 · SQL Structured Query Language Lenguaje de definición de datos (LDD) CREATE, ALTER y DROP Lenguaje de manipulación de datos

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

Page 15: Facultad de Estadística e Informática · 2012-11-14 · SQL Structured Query Language Lenguaje de definición de datos (LDD) CREATE, ALTER y DROP Lenguaje de manipulación de datos

Obtiene el id del último registro insertado en una tabla

SELECT DISTINCT LAST_INSERT_ID() FROM alumnos

Page 16: Facultad de Estadística e Informática · 2012-11-14 · SQL Structured Query Language Lenguaje de definición de datos (LDD) CREATE, ALTER y DROP Lenguaje de manipulación de datos

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="?"

Page 17: Facultad de Estadística e Informática · 2012-11-14 · SQL Structured Query Language Lenguaje de definición de datos (LDD) CREATE, ALTER y DROP Lenguaje de manipulación de datos

Hacer una vista de los países en los que se han avistado las aves.

Page 18: Facultad de Estadística e Informática · 2012-11-14 · SQL Structured Query Language Lenguaje de definición de datos (LDD) CREATE, ALTER y DROP Lenguaje de manipulación de datos

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)

Page 19: Facultad de Estadística e Informática · 2012-11-14 · SQL Structured Query Language Lenguaje de definición de datos (LDD) CREATE, ALTER y DROP Lenguaje de manipulación de datos

PREPARE stmt1 FROM

'SELECT habitat FROM test_prefixhabitat WHERE Idhabitat=?';

SET @a = 3;

EXECUTE stmt1 USING @a;