Sei sulla pagina 1di 7

TOPICOS DE

BASE DE DATOS

Prctica II
Ingeniera en informtica
Alex Gadiel Cortes Garca
N Control:12920296
VII Semestre

martes, 06 de octubre de 2015

Iniciamos creando la base de datos con el comando:


CREATE DATABASE municipi;
Despus procedemos a crear la tabla de comunitat y municipi:
CREATE TABLE comunitat
(
ca_id INTEGER,
nom VARCHAR(50)
);
CREATE TABLE municipi
(
m_id INTEGER,
nom VARCHAR(70),
poblacio2003 INTEGER,
poblacio2001 INTEGER,
poblacio1996 INTEGER,
poblacio1991 INTEGER,
superficie FLOAT,
ca_id INTEGER
);
Cargamos los datos y verificamos si se realiz correctamente:
SHOW COLUMNS FROM comunitat;

SHOW COLUMNS FROM municipi;

Visualizamos los datos contenidos en las tablas:


SELECT * FROM comunitat;

SELECT * FROM municipi;

Actividad 3
Escribir una consulta para cada uno de estos requerimientos:
Municipios que tengan solamente una X en su nombre (una y solo una) y
que su nombre sea ms largo que 20 caracteres.
SELECT nom FROM municipi WHERE
nom LIKE '%x%'
AND LENGTH(nom) >20;

Municipios que tengan solo un tipo de vocal en su nombre. Esto incluye:


todos los que se escribieron solo con A, todos los que llevan solo E, ... en
una sola consulta.
SELECT municipi.nom FROM municipi WHERE (nom LIKE '%a%' AND nom NOT
LIKE '%e%' AND nom NOT LIKE '%i%' AND nom NOT LIKE '%o%' AND nom NOT
LIKE '%u%') OR (nom LIKE '%e%' AND nom NOT LIKE '%a%' AND nom NOT LIKE
'%i%' AND nom NOT LIKE '%o%' AND nom NOT LIKE '%u%') OR (nom LIKE
'%i%' AND nom NOT LIKE '%e%' AND nom NOT LIKE '%a%' AND nom NOT LIKE
'%o%' AND nom NOT LIKE '%u%') OR (nom LIKE '%o%' AND nom NOT LIKE
'%e%' AND nom NOT LIKE '%i%' AND nom NOT LIKE '%a%' AND nom NOT LIKE
'%u%') OR (nom LIKE '%u%' AND nom NOT LIKE '%e%' AND nom NOT LIKE
'%i%' AND nom NOT LIKE '%o%' AND nom NOT LIKE '%a%');

Actividad 4
Nombre de los 5 municipios ms densamente poblados en el 2003.
Densidad = Poblacin / Superficie

SELECT municipi.nom, (municipi.poblacio2003/superficie) AS densidad


FROM municipi, comunitat
WHERE municipi.ca_id=comunitat.ca_id
GROUP BY municipi.nom
Order by densidad DESC LIMIT 5;

Nombre de los municipios que tienen una superficie menor a 1/10 del
promedio.
SELECT municipi.nom, municipi.superficie FROM municipi, comunitat WHERE
municipi.ca_id=comunitat.ca_id AND municipi.superficie < (SELECT
AVG(municipi.superficie)/10 from municipi) GROUP BY municipi.nom ORDER
BY municipi.superficie DESC;

Nombre y poblacin en el 1991 y en el 2001 de los municipios que tienen


una poblacin 10 veces mayor en el 2001 que en 1991, pero que tenan
habitantes el 1991 (hay solo uno);

SELECT municipi.nom, municipi.poblacio1991,municipi.poblacio2001 FROM


municipi, comunitat
WHERE municipi.ca_id=comunitat.ca_id
AND municipi.poblacio2001 > (municipi.poblacio1991*10)
AND municipi.poblacio1991 > 0;

Actividad 5
Escribir una consulta para cada uno de estos requerimientos:
Superficie total de cada comunidad
SELECT sum(municipi.superficie) as "total " , comunitat.nom
FROM municipi, comunitat
WHERE municipi.ca_id=comunitat.ca_id
GROUP BY comunitat.nom;

Superficie total de la comunidad de Galicia.


SELECT sum(municipi.superficie) as "superficie total " , comunitat.nom FROM
municipi, comunitat
WHERE municipi.ca_id=comunitat.ca_id
AND comunitat.nom LIKE 'Galicia';

Potrebbero piacerti anche