16
[TÍTULO DEL DOCUMENTO] [SUBTÍTULO DEL DOCUMENTO] SANDOKAN TOSHIBA [Dirección de la compañía] [FECHA]

Create Database Productos

Embed Size (px)

Citation preview

[Subtítulo del documento]

Sandokan

[FECHA]

create database Productosuse productos--Ejercicio 2--Tablas

create table producto(Fabricante varchar (30) not null,modelo varchar (30) not null primary key, tipo char(9) check (tipo='pc' or tipo='impresora'));

create table pc (modelo varchar(30) not null references producto(modelo),velocidad int not null,ram int not null,hd int not null,cd char(1) check(cd='s' or cd='n') not null,precio int not null);

create table impresora

(modelo_imp varchar (30) not null references producto(modelo), color char(1) check(color='s' or color='n') not null,tipo varchar(20) not null,Precio int not null);

insert into producto values('Hp','5-hp','pc')insert into producto values('Toshiba','T-sus','impresora')insert into producto values('Samsung','SMS-100','impresora')insert into producto values('Compaq','CMP-R6','pc')insert into producto values('Lenovo','LNV-16','pc')insert into producto values('Toshiba','H-44','impresora')insert into producto values('Samsung','P-30','impresora')insert into producto values('Canon','P-90','impresora')

insert into pc values('5-hp',1300,2000,1000,'s',18000)insert into pc values('T-sus',2000,1500,1000,'s',15000)insert into pc values('SMS-100',1500,2000,1000,'s',18000)insert into pc values('CMP-R6',100,500,2000,'n',20000)insert into pc values('LNV-16',500,850,4000,'s',5000)

insert into impresora values('T-sus','s','laser',5000)insert into impresora values('SMS-100','s','tinta',2000)insert into impresora values('H-44','n','laser',850)insert into impresora values('P-30','n','laser',1800)insert into impresora values('P-90','s','tinta',2000)

1. Encontrar el modelo, velocidad y tamaño de disco duro (hd) de todos los PC’sCuyo precio sea inferior a $1600.

select modelo, velocidad, hdfrom pcwhere precio<16000

2. Repetir la consulta de (a), pero cambiando el nombre a las columnas velocidad como Megaherzios y hd como Gigabytes.

select modelo, velocidad as Megaherzios, hd as Gigabytesfrom pcwhere precio<16000

3. Encontrar todas las filas de las tablas de Impresoras que son en color. El valor de la columna color es booleano con los valores ’V’y ’F’.

select*from impresorawhere color ='s'

4. Encontrar la velocidad media de los PC’s.

select avg(velocidad) as Velocidad_Promediofrom pc

5. Decir los fabricantes y la velocidad de los PC’s con disco duro de tamaño mayor o igual a 1 Gigabyte.

select fabricante, velocidadfrom pc, productowhere hd>= 1000AND Producto.modelo=PC.modelo

6. Encontrar los fabricantes de los PC’s con velocidad superior a 160 MHz.

select fabricantefrom productowhere ((modelo)

in (select modelofrom pcwhere velocidad>160))

--Ejercicio 3

create database Empresasuse Empresas

--Tablas

create table Vive(nombre varchar(20) not null primary key, calle varchar(20) not null, ciudad varchar(20) not null);

create table Trabaja(nombre varchar(20) not null references Vive (nombre),compania varchar(20) not null primary key,salario int not null);

create table Situada(compania varchar(20) not null references Trabaja(compania),ciudad varchar(20) not null );

create table Dirige(nombre varchar(20) not null references Vive (nombre),nombre_director varchar(20) not null );

insert into Vive values('Pancho','Cordoba','Mexico')insert into Vive values('Juan','Donceles','Guatemala')insert into Vive values('Miguel','Tajin','Panama')insert into Vive values('Julio','Aera','Colombia')insert into Vive values('Jon','Pesos','Ecuador')

insert into Trabaja values('Pancho','Telcel',15000)insert into Trabaja values('Juan','Pemex',18000)insert into Trabaja values('Miguel','Telmex',5000)insert into Trabaja values('Julio','Patito',8000)insert into Trabaja values('Jon','Nextel',2000)

insert into Situada values('Telcel','Mexico')insert into Situada values('Pemex','Guatemala')insert into Situada values('Telmex','Panama')insert into Situada values('Patito','Colombia')insert into Situada values('Nextel','Ecuador')

insert into Dirige values('Juan','Bill')insert into Dirige values('Pancho','Jobs')insert into Dirige values('Miguel','Hillton')insert into Dirige values('Julio','Ascarraga')insert into Dirige values('Jon','Chapo')

1. Encontrar el nombre y la ciudad de todos los empleados que trabajan en El CorteIngles.

select Vive.nombre, ciudadfrom vive, trabajawhere Trabaja.compania ='Nextel' and Vive.nombre=Trabaja.nombre

2. Encontrar todos los empleados que viven en la misma ciudad que la compañía en la que trabajan.

select Vive.nombrefrom Vive, Situada, Trabajawhere vive.ciudad=Situada.ciudadand Trabaja.compania=Situada.compania

3. Encontrar el salario y la compañía de todos los directores.

selectsalario, companiafrom trabaja, dirigewhere dirige.nombre = trabaja.nombre

4. Encontrar a todos los empleados que viven en la misma ciudad y en la misma calle que su director.

--Ejercicio 4

create database Cigarrillossuse Cigarilloss

--Tablascreate table Fabricante(nonbre varchar(30) primary key not null,pais varchar(30) not null);

create table Estanco(CIF int not null primary key,nombre varchar(30) not null,direccion varchar(30) not null);

create table Cigarrillo(marca varchar(20) not null primary key,filtro char(1) check (filtro='s' or filtro ='n') not null,fabricante varchar(20) not null,precio int not null );

create table compras(CIF int references Estanco(CIF) not null,marca varchar(20) references Cigarrillo(marca) not null,filtro char(1) check(filtro='s' or filtro ='n'),año int not null,cantidad int not null,precio int not null);

create table ventas(CIF int references Estanco(CIF) not null,marca varchar(20) references Cigarrillo(marca) not null,filtro char(1) check(filtro='s' or filtro ='n'),año int not null,cantidad int not null,precio int not null);

insert into Cigarrillo values('Benson', 's', 'privado',30)insert into Cigarrillo values('Camel','s','Patito',20)insert into Cigarrillo values('Faritos','s','Riot',40)insert into Cigarrillo values('Delicados','n','Telmex',40)insert into Cigarrillo values('Salem','s','Personal',50)

insert into Fabricante values('Privada','Mexico')insert into Fabricante values('Riot','Peru')insert into Fabricante values('Telmex','Chile')insert into Fabricante values('Personal','Colombia')insert into Fabricante values('Patito','Guatemala')

insert into Estanco values(0,'Paco','andorra 56')insert into Estanco values(5,'Juan','comal 16')insert into Estanco values(9,'Tofer','perro 71')insert into Estanco values(7,'Migue','tortuga 56')insert into Estanco values(4,'Jona','ranita 3')

insert into compras values(0,'Benson','s',1995,10,30)insert into compras values(5,'Camel','s',1990,5,20)insert into compras values(9,'Faritos','s',1980,7,40)insert into compras values(7,'Delicados','n',2001,8,40)insert into compras values(4,'Salem','s',2003,3,50)

insert into ventas values(0,'Benson','s',1995,10,30)insert into ventas values(5,'Camel','s',1990,5,20)insert into ventas values(9,'Faritos','s',1980,7,40)insert into ventas values(7,'Delicados','n',2001,8,40)insert into ventas values(4,'Salem','s',2003,3,50)

1. Obtener todas las marcas de cigarrillos extranjeros.

select marcafrom Cigarrillo,Fabricantewhere Fabricante.pais<>'Mexico'

2. Obtener el total de compras de cigarrillos con filtro (filtro = ’S’) realizadas por marca.

select Sum(cantidad)from compraswhere filtro='s' order by marca

3. Obtener una relaci´on completa de todas las compras y ventas realizadas.

select c.cif, c.cantidad, c.precio, v.cif, v.cantidad, v.preciofrom compras as c, ventas as v

4. Obtener la relación de estancos que no han vendido cigarrillos ’Ducados‘ con filtro.

select nombre, direccionfrom Estanco, ventaswhere (marca<>'Ducados' and filtro='s')

--Ejercicio 5create database pisosuse pisos

--Tablas

create table Persona(DNI int primary key not null,nombre varchar(20) not null,apellidos varchar(20) not null,DNI_cabeza int not null,calle varchar(20) not null,numero int not null,escalera char(1) not null check(escalera='s' or escalera = 'n'),planta int not null,puerta int not null);

create table Piso(calle varchar(20) not null primary key,numero int not null,escalera char(1) not null check(escalera='s'or escalera='n') references

Persona(escalera),planta int not null,puerta int not null,metros int not null,codpostal int not null);

create table Zona(codpostal int primary key not null,nombre varchar(20) not null);

create table Persona2(DNI varchar(20) not null,calle varchar(20) not null,numero int not null,escalera char not null check(escalera='s'or escalera='n'),planta int not null,puerta int not null,fecha_compra date );