Está en la página 1de 15

A continuación se presenta una serie de ejercicios de consulta sobre la base de datos formada

por las tablas de PROVEEDORES, COMPONENTES, ARTICULOS y ENVIOS. En dicha


base de datos está almacenada la siguiente información:
CREAR UNA BASE DE DATOS LLAMADA VENTAS

DATOS PARA LA TABLA


PROVEEDORES
P# PNOMBRE CATEGORIA CIUDAD
P1 CARLOS 20 SEVILLA
P2 JUAN 10 MADRID
P3 JOSE 30 SEVILLA
P4 INMA 20 SEVILLA
P5 EVA 30 CACERES
--

CREATE DATABASE VENTAS


CREANDO LA TABLA PROVEEDORES
CREATE TABLE PROVEEDORES
(
P# NVARCHAR(5),
PNOMBRE NVARCHAR(15),
CATEGORIA INT,
CIUDAD NVARCHAR(15),
PRIMARY KEY(P#)
)
--INSERTANDO REGISTROS A LA TABLA PROVEEDORES

SELECT *FROM PROVEEDORES


INSERT INTO PROVEEDORES (P#,PNOMBRE,CATEGORIA,CIUDAD)VALUES
('P1','CARLOS',20,'SEVILLA')
INSERT INTO PROVEEDORES (P#,PNOMBRE,CATEGORIA,CIUDAD)VALUES
('P2','JUAN',10,'MADRID')
INSERT INTO PROVEEDORES (P#,PNOMBRE,CATEGORIA,CIUDAD)VALUES
('P3','JOSE',30,'SEVILLA')
INSERT INTO PROVEEDORES (P#,PNOMBRE,CATEGORIA,CIUDAD)VALUES
('P4','INMA',20,'SEVILLA')
INSERT INTO PROVEEDORES (P#,PNOMBRE,CATEGORIA,CIUDAD)VALUES
('P5','EVA',30,'CACERES')

1
DATOS TABLA COMPONENTES
C# CNOMBRE COLOR PESO CIUDAD
C1 X3A ROJO 12 SEVILLA
C2 B85 VERDE 17 MADRID
C3 C4B AZUL 17 MALAGA
C4 C4B ROJO 14 SEVILLA
C5 VT8 AZUL 12 MADRID
C6 C30 ROJO 19 SEVILLA

--CREANDO LA TABLA COMPONENTES

CREATE TABLE COMPONENTES


(
C# NVARCHAR(5),
CNOMBRE NVARCHAR(5),
COLOR NVARCHAR(5),
PESO NUMERIC (4,2),
CIUDAD NVARCHAR(15),
PRIMARY KEY (C#)
)

--INSERTANDO REGISTROS A LA TABLA COMPONENTES

SELECT*FROM COMPONENTES
INSERT INTO COMPONENTES(C#,CNOMBRE,COLOR,PESO,CIUDAD)VALUES
('C1','X3A','ROJO',12,'SEVILLA')
INSERT INTO COMPONENTES(C#,CNOMBRE,COLOR,PESO,CIUDAD)VALUES
('C2','B85','VERDE',17,'MADRID')
INSERT INTO COMPONENTES(C#,CNOMBRE,COLOR,PESO,CIUDAD)VALUES
('C3','C4B','AZUL',17,'MALAGA')
INSERT INTO COMPONENTES(C#,CNOMBRE,COLOR,PESO,CIUDAD)VALUES
('C4','C4B','ROJO',14,'SEVILLA')
INSERT INTO COMPONENTES(C#,CNOMBRE,COLOR,PESO,CIUDAD)VALUES
('C5','VT8','AZUL',12,'MADRID')
INSERT INTO COMPONENTES(C#,CNOMBRE,COLOR,PESO,CIUDAD)VALUES
('C6','C30','ROJO',19,'SEVILLA')

2
DATOS TABLA ARTICULOS

T# TNOMBRE CIUDAD
T1 CLASIFICADORA MADRID
T2 PERFORADORA MALAGA
T3 LECTORA CACERES
T4 CONSOLA CACERES
T5 MEZLCADORA SEVILLA
T6 TERMINAL BARCELONA
T7 CINTA SEVILLA

--CREANDO LA TABLA ARTICULOS

CREATE TABLE ARTICULOS


(
T# NVARCHAR(5),
TNOMBRE NVARCHAR(15),
CIUDAD NVARCHAR(15),
PRIMARY KEY (T#)
)

--INSERTANDO REGISTROS A LA TABLA ARTICULOS

SELECT*FROM ARTICULOS

INSERT INTO RTICULOS(T#,TNOMBRE,CIUDAD)VALUES('T1','CLASIFICADORA','MADRID')


INSERT INTO ARTICULOS(T#,TNOMBRE,CIUDAD)VALUES ('T2','PERFORADORA','MALAGA')
INSERT INTO ARTICULOS(T#,TNOMBRE,CIUDAD)VALUES ('T3','LECTORA','CACERES')
INSERT INTO ARTICULOS(T#,TNOMBRE,CIUDAD)VALUES ('T4','CONSOLA','CACERES')
INSERT INTO ARTICULOS(T#,TNOMBRE,CIUDAD)VALUES ('T5','MEZCLADORA','SEVILLA')
INSERT INTO ARTICULOS(T#,TNOMBRE,CIUDAD)VALUES ('T6','TERMINAL','BARCELONA')
INSERT INTO ARTICULOS(T#,TNOMBRE,CIUDAD)VALUES ('T7','CINTA','SEVILLA')

3
DATOS TABLA ENVIOS
P# C# T# CANTIDAD
P1 C1 T1 200
P1 C1 T4 700
P2 C3 T1 400
P2 C3 T2 200
P2 C3 T3 200
P2 C3 T4 500
P2 C3 T5 600
P2 C3 T6 400
P2 C3 T7 800
P2 C5 T2 100
P3 C3 T1 200
P3 C4 T2 500
P4 C6 T3 300
P4 C6 T7 300
P5 C2 T2 200
P5 C2 T4 100
P5 C5 T4 500
P5 C5 T7 100
P5 C6 T2 200
P5 C1 T4 100
P5 C3 T4 200
P5 C4 T4 800
P5 C5 T5 400
P5 C6 T4 500
--CREANDO LA TABLA ENVIOS
CREATE TABLE ENVIOS
(
P# NVARCHAR(5),
C# NVARCHAR(5),
T# NVARCHAR(5),
CANTIDAD INT,
CONSTRAINT FK_ENVIOS_PROVEEDORES FOREIGN KEY (P# )REFERENCES PROVEEDORES (P#
)ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT FK_ENVIOS_COMPONENTES
FOREIGN KEY (C# )REFERENCES COMPONENTES (C# )ON DELETE CASCADE ON UPDATE
CASCADE,CONSTRAINT FK_ENVIOS_ARTICULOS FOREIGN KEY (T# )REFERENCES ARTICULOS
(T# )ON DELETE CASCADE ON UPDATE CASCADE
)

4
--INSERTANDO REGISTROS A LA TABLA ENVIOS

SELECT *FROM ENVIOS

INSERT INTO ENVIOS(P#,C#,T#,CANTIDAD)VALUES ('P1','C1','T1',200)


INSERT INTO ENVIOS(P#,C#,T#,CANTIDAD)VALUES ('P1','C1','T4',700)
INSERT INTO ENVIOS(P#,C#,T#,CANTIDAD)VALUES ('P2','C3','T1',400)
INSERT INTO ENVIOS(P#,C#,T#,CANTIDAD)VALUES ('P2','C3','T2',200)
INSERT INTO ENVIOS(P#,C#,T#,CANTIDAD)VALUES ('P2','C3','T3',200)
INSERT INTO ENVIOS(P#,C#,T#,CANTIDAD)VALUES ('P2','C3','T4',500)
INSERT INTO ENVIOS(P#,C#,T#,CANTIDAD)VALUES ('P2','C3','T5',600)
INSERT INTO ENVIOS(P#,C#,T#,CANTIDAD)VALUES ('P2','C3','T6',400)
INSERT INTO ENVIOS(P#,C#,T#,CANTIDAD)VALUES ('P2','C3','T7',800)
INSERT INTO ENVIOS(P#,C#,T#,CANTIDAD)VALUES ('P2','C5','T2',100)
INSERT INTO ENVIOS(P#,C#,T#,CANTIDAD)VALUES ('P3','C3','T1',200)
INSERT INTO ENVIOS(P#,C#,T#,CANTIDAD)VALUES ('P3','C4','T2',500)
INSERT INTO ENVIOS(P#,C#,T#,CANTIDAD)VALUES ('P4','C6','T3',300)
INSERT INTO ENVIOS(P#,C#,T#,CANTIDAD)VALUES ('P4','C6','T7',300)
INSERT INTO ENVIOS(P#,C#,T#,CANTIDAD)VALUES ('P5','C2','T2',200)
INSERT INTO ENVIOS(P#,C#,T#,CANTIDAD)VALUES ('P5','C2','T4',100)
INSERT INTO ENVIOS(P#,C#,T#,CANTIDAD)VALUES ('P5','C5','T4',500)
INSERT INTO ENVIOS(P#,C#,T#,CANTIDAD)VALUES ('P5','C5','T7',100)
INSERT INTO ENVIOS(P#,C#,T#,CANTIDAD)VALUES ('P5','C6','T2',200)
INSERT INTO ENVIOS(P#,C#,T#,CANTIDAD)VALUES ('P5','C1','T4',100)
INSERT INTO ENVIOS(P#,C#,T#,CANTIDAD)VALUES ('P5','C3','T4',200)
INSERT INTO ENVIOS(P#,C#,T#,CANTIDAD)VALUES ('P5','C4','T4',800)
INSERT INTO ENVIOS(P#,C#,T#,CANTIDAD)VALUES ('P5','C5','T5',400)
INSERT INTO ENVIOS(P#,C#,T#,CANTIDAD)VALUES ('P5','C6','T4',500)

PROVEEDORES.- Representa los datos de proveedores de componentes para la fabricación


de artículos y su ciudad de residencia.

COMPONENTES.- Indica la información de piezas utilizadas en la fabricación de diferentes


artículos, indicándose el lugar de fabricación de dichos componentes.

ARTICULOS.- Información sobre los diferentes artículos que se fabrican y el lugar de


montaje del mismo.

ENVIOS.- Suministros realizados por los diferentes proveedores de determinadas cantidades


de componentes asignadas para la elaboración del artículo correspondiente.

5
EJERCICIOS

1. Obtener todos los detalles de todos los artículos de CACERES.


SELECT * FROM ARTICULOS WHERE CIUDAD='CACERES'

2. Obtener todos los valores de P# para los proveedores que abastecen el artículo T1.

SELECT * FROM PROVEEDORES,ARTICULOS WHERE T# ='T1'

3. Obtener la lista de pares de atributos (COLOR, CIUDAD) de la tabla componentes


eliminando los pares duplicados.

SELECT DISTINCT COLOR,CIUDAD FROM COMPONENTES

4. Obtener de la tabla de artículos los valores de T# y CIUDAD donde el nombre de la


ciudad acaba en D o contiene al menos una E.
SELECT T#,CIUDAD FROM ARTICULOS WHERE CIUDAD LIKE '%D' OR CIUDAD LIKE '%e%'

5. Obtener los valores de P# para los proveedores que suministran para el artículo T1 El
componente C1.
SELECT P#,T#,C# FROM ENVIOS WHERE T# ='T1' AND C#= 'C1'

6. Obtener los valores de TNOMBRE en orden alfabético para los artículos abastecidos por
el proveedor P1.
SELECT DISTINCT TNOMBRE,P# FROM ARTICULOS,ENVIOS WHERE P#= 'P1' ORDER BY
TNOMBRE

2. Dada una base de datos de ordenadores e impresoras con las siguientes tablas

Producto (#fabricante, #modelo, tipo)


PC (#modelo, velocidad, ram, hd, cd, precio)
Impresora (#modelo, color, tipo, precio)

--CREACIÓN DE LA BASE DE DATOS ORDENADORES

CREATE DATABASE ORDENADORES


USE ORDENADORES

--CREACIÓN DE LA TABLA PRODUCTOS

CREATE TABLE PRODUCTOS


(
#Fabricante NVARCHAR(5),
#Modelo NVARCHAR (30),
Tipo NVARCHAR(25),
PRIMARY KEY(#MODELO)
)

6
--CREACIÓN DE LA TABLA PC

CREATE TABLE PC
(
#Modelo NVARCHAR (30),
Velocidad NUMERIC(4,2),
RAM NVARCHAR(15),
HD INT,
CD NVARCHAR(20),
Precio NUMERIC(6,2)
PRIMARY KEY (#MODELO)
)
--RELACIONANDO LAS TABLAS PC Y PRODUCTOS CON ELIMINACION Y ACTUALIZACION EN
CASCADA
ALTER TABLE PC ADD CONSTRAINT PROD_PC FOREIGN KEY (#MODELO) REFERENCES
PRODUCTOS(#MODELO)ON DELETE CASCADE ON UPDATE CASCADE

--CREACIÓN DE LA TABLA IMPRESORAS

CREATE TABLE IMPRESORA


(
#Modelo NVARCHAR(30),
Color BIT,
Tipo NVARCHAR(25),
Precio NUMERIC(6,2)
PRIMARY KEY (#Modelo)
)
--RELACIONANDO LAS TABLAS IMPRESORA Y PRODUCTOS CON ELIMINACION Y
ACTUALIZACION EN CASCADA

ALTER TABLE IMPRESORA ADD CONSTRAINT PROD_IMPRE FOREIGN KEY (#MODELO)


REFERENCES PRODUCTOS(#MODELO)ON DELETE CASCADE ON UPDATE CASCADE

--ISERTANDO LOS DATOS A LA TABLA PRODUCTOS

INSERT INTO PRODUCTOS(#Fabricante,#Modelo,Tipo)VALUES ('ACER','Acer TM8473T-


6691','LAPTOP')
INSERT INTO PRODUCTOS(#Fabricante,#Modelo,Tipo)VALUES ('HP','TM8573T-
6470','LAPTOP')
INSERT INTO PRODUCTOS(#Fabricante,#Modelo,Tipo)VALUES ('HP','HP DESKJET
470C','LASER')
INSERT INTO PRODUCTOS(#Fabricante,#Modelo,Tipo)VALUES ('CANON','CANON
440','INYECCIÓN')
INSERT INTO PRODUCTOS(#Fabricante,#Modelo,Tipo)VALUES ('ACER','Acer PM8473T-
85692','DESKTOP')
INSERT INTO PRODUCTOS(#Fabricante,#Modelo,Tipo)VALUES ('HP','TM8573T-
8125','LAPTOP')
INSERT INTO PRODUCTOS(#Fabricante,#Modelo,Tipo)VALUES ('HP','HP DESKJET
9600C','LASER')
INSERT INTO PRODUCTOS(#Fabricante,#Modelo,Tipo)VALUES ('CANON','CANON
520C','INYECCIÓN')

7
SELECT *FROM PRODUCTOS

--ISERTANDO LOS DATOS A LA TABLA IMPRESORAS

INSERT INTO IMPRESORA(#MODELO,COLOR,TIPO,PRECIO)VALUES ('HP DESKJET


9600C',0,'LASER',3000)
INSERT INTO IMPRESORA(#MODELO,COLOR,TIPO,PRECIO)VALUES ('CANON
520C',1,'INYECCIÓN',1500)

SELECT *FROM IMPRESORA

--ISERTANDO LOS DATOS A LA TABLA PC

INSERT INTO PC(#MODELO,VELOCIDAD,RAM,HD,CD,PRECIO)VALUES ('Acer TM8473T-


6691',3.5,'4 GB',500,'DVD WR 16X',500)
INSERT INTO PC(#MODELO,VELOCIDAD,RAM,HD,CD,PRECIO)VALUES ('TM8573T-
6470',3.0,'4 GB',520,'DVD WR 16X',400)

SELECT *FROM PC

Realizar en SQL las siguientes consultas:

1. Encontrar el modelo, velocidad y tamaño de disco duro (hd) de todos los PC’s cuyo
precio sea inferior a $1600.
SELECT #MODELO,VELOCIDAD,HD,PRECIO FROM PC WHERE PRECIO <1600

2. Repetir la consulta de (a), pero cambiando el nombre a las columnas velocidad como
Megaherzios y hd como Gigabytes.
SELECT #MODELO,VELOCIDAD [MEGAHERZIOS],HD [GIBABYTES],PRECIO FROM PC WHERE
PRECIO <1600

3. Encontrar todas las filas de la tabla de Impresoras que son en color. El valor de la
columna color es booleano con los valores ’V’ y ’F’.
SELECT *FROM IMPRESORA WHERE COLOR= 1 OR COLOR= 0

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

SELECT AVG(VELOCIDAD) 'MEDIA VELOCIDAD PC' FROM 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 DISTINCT #FABRICANTE,VELOCIDAD, HD [GIGABYTES EN HD]FROM PRODUCTOS,
PC WHERE HD>1

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

SELECT DISTINCT #FABRICANTE,VELOCIDAD [GIGAHERTZ] FROM PRODUCTOS, PC WHERE


VELOCIDAD> (160/1024)

8
7. Dadas las siguientes tablas, dar una expresión SQL para cada una de las siguientes
consultas:

Vive (#nombre, calle, ciudad)


Trabaja (#nombre, #compania, salario)
Situada (#compania, ciudad)
Dirige (#nombre, #nombre_director)

CREATE DATABASE EMPLEADOS


USE EMPLEADOS
--
CREATE TABLE VIVE
(
#NOMBRE NVARCHAR (20),
CALLE NVARCHAR(30),
CIUDAD NVARCHAR(25),
PRIMARY KEY(#NOMBRE)
)
--
ALTER TABLE VIVE ADD CONSTRAINT VIVE_DIRIGE FOREIGN KEY (#NOMBRE)
REFERENCES DIRIGE (#NOMBRE)
--
INSERT INTO VIVE (#NOMBRE,CALLE,CIUDAD)VALUES ('JANSEL','MAXIMO
GOMEZ','SANTO DOMINGO')
INSERT INTO VIVE (#NOMBRE,CALLE,CIUDAD)VALUES ('FRANK REYES','AV.
DUARTE','SANTIAGO')
INSERT INTO VIVE (#NOMBRE,CALLE,CIUDAD)VALUES ('JOSE','CARR. MELLA','SANTO
DOMINGO')
INSERT INTO VIVE (#NOMBRE,CALLE,CIUDAD)VALUES ('MARIA','OVANDO','SANTIAGO')
--
SELECT *FROM VIVE
--
CREATE TABLE TRABAJA
(
#NOMBRE NVARCHAR (20),
#COMPAÑIA NVARCHAR (30),
SALARIO MONEY,
PRIMARY KEY(#NOMBRE)
)

--
ALTER TABLE TRABAJA ADD CONSTRAINT VIVE_TRABAJA FOREIGN KEY (#NOMBRE)
REFERENCES VIVE (#NOMBRE)
ALTER TABLE TRABAJA ADD CONSTRAINT TRAB_DIRIGE FOREIGN KEY (#NOMBRE)
REFERENCES DIRIGE (#NOMBRE)
ALTER TABLE TRABAJA ADD CONSTRAINT TRAB_CIA FOREIGN KEY (#COMPAÑIA)
REFERENCES SITUADA (#COMPAÑIA)
--

INSERT INTO TRABAJA (#NOMBRE,#COMPAÑIA,SALARIO)VALUES ('JANSEL','PLAZA


LAMA',18000)
INSERT INTO TRABAJA (#NOMBRE,#COMPAÑIA,SALARIO)VALUES ('GUILLERMO','LA
SIRENA',60000)
INSERT INTO TRABAJA (#NOMBRE,#COMPAÑIA,SALARIO)VALUES ('JOSE','LA GRAN
VIA',23000)
INSERT INTO TRABAJA(#NOMBRE,#COMPAÑIA,SALARIO)VALUES ('MARIA','PLAZA
LAMA',75000)
--

9
SELECT*FROM TRABAJA
--

CREATE TABLE SITUADA


(
#COMPAÑIA NVARCHAR (30),
CIUDAD NVARCHAR(25),
PRIMARY KEY (#COMPAÑIA)
)
--
INSERT INTO SITUADA (#compañia,ciudad)VALUES ('PLAZA LAMA','SANTO DOMINGO')
INSERT INTO SITUADA (#compañia,ciudad)VALUES ('LA SIRENA','SANTIAGO')
INSERT INTO SITUADA (#compañia,ciudad)VALUES ('LA GRAN VIA','SANTO DOMINGO')
--
CREATE TABLE DIRIGE

( #NOMBRE NVARCHAR (20),


#NOMBRE_DIRECTOR NVARCHAR(20),
PRIMARY KEY(#NOMBRE)
)
--
INSERT INTO DIRIGE (#NOMBRE,#NOMBRE_DIRECTOR)VALUES ('JANSEL','JAIME')
INSERT INTO DIRIGE (#NOMBRE,#NOMBRE_DIRECTOR)VALUES ('GUILLERMO','FELIPE')
INSERT INTO DIRIGE (#NOMBRE,#NOMBRE_DIRECTOR)VALUES ('FRANK REYES','FRANK
REYES')
INSERT INTO DIRIGE (#NOMBRE,#NOMBRE_DIRECTOR)VALUES ('MARIA','FRANK REYES')

1. Encontrar el nombre y la ciudad de todos los empleados que trabajan en Plaza Lama.

SELECT DISTINCT TRABAJA.#NOMBRE,SITUADA.CIUDAD,TRABAJA.#COMPAÑIA FROM


TRABAJA,SITUADA WHERE SITUADA.#COMPAÑIA= 'PLAZA LAMA' AND SITUADA.#COMPAÑIA
= TRABAJA.#COMPAÑIA

2. Encontrar todos los empleados que viven en la misma ciudad que la compañía en la que
trabajan.
SELECT DISTINCT TRABAJA.#NOMBRE FROM TRABAJA, VIVE,SITUADA WHERE
SITUADA.CIUDAD= VIVE.CIUDAD

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


SELECT DISTINCT #NOMBRE_DIRECTOR,SALARIO FROM DIRIGE,TRABAJA WHERE
TRABAJA.#NOMBRE = DIRIGE.#NOMBRE

5. Dadas las siguientes tablas relacionales:


*Cigarrillo (#marca, #filtro, nombre_fabricante, precio)
Estanco (#CI, nombre, direccion)
*Fabricante (#nombre, pais)
*Compras (#CI, #marca, #filtro, ano, cantidad, precio)
*Ventas (#CI, #marca, #filtro, ano, cantidad, precio)

10
CREATE DATABASE FABRICA_CIGARRILLOS
USE FABRICA_CIGARRILLOS

CREATE TABLE Fabricante


(#Nombre NVARCHAR(15),
Pais NVARCHAR(30),
Primary Key(#Nombre)
)
create table Cigarrillos
(#Marca nvarchar(15),
#Filtro NVARCHAR(10),
Nombre_fabricante NVARCHAR(15),
Precio MONEY,
CONSTRAINT pk_fabric_cigarr Primary Key(#Marca),
CONSTRAINT FK_fabric_cigarr FOREIGN Key(Nombre_fabricante) references
fabricante(#Nombre )ON DELETE CASCADE ON UPDATE CASCADE
)

create table Estanco


(
#CI nvarchar(5),
Nombre NVARCHAR(15),
Dirección NVARCHAR(30),
CONSTRAINT pk_Estanco_cigarr Primary Key(#CI),
CONSTRAINT FK_Estanco_cigarr FOREIGN Key(Nombre) references
fabricante(#Nombre )ON DELETE CASCADE ON UPDATE CASCADE
)
create table Compras
(
#CI nvarchar(5),
#Marca nvarchar(15),
#Filtro NVARCHAR(10),
Año NUMERIC(4),
Cantidad NUMERIC(4,2),
Precio MONEY,
CONSTRAINT pk_Compras_cigarr Primary Key(#CI),
CONSTRAINT FK_Compras_cigarr FOREIGN Key(#Marca) references
Cigarrillos(#Marca)ON DELETE CASCADE ON UPDATE CASCADE
)

CREATE TABLE VENTAS


(
#CI nvarchar(5),
#marca nvarchar(15),
#filtro NVARCHAR(10),
Año NUMERIC(4),
Cantidad NUMERIC(4,2),
Precio MONEY,
CONSTRAINT pk_Ventas_cigarr Primary Key(#CI),
CONSTRAINT FK_Ventas_cigarr FOREIGN Key(#Marca) references
Cigarrillos(#Marca)ON DELETE CASCADE ON UPDATE CASCADE
)
--
INSERT INTO FABRICANTE(#Nombre,Pais)VALUES('MONTE CARLO','REP.DOM')
INSERT INTO FABRICANTE(#Nombre,Pais)VALUES('MALLBORO','ESPAÑA')
INSERT INTO FABRICANTE(#Nombre,Pais)VALUES('AURORA','INGLATERRA')
INSERT INTO FABRICANTE(#Nombre,Pais)VALUES('NACIONAL','REP.DOM')
SELECT *FROM FABRICANTE
--

11
INSERT INTO
CIGARRILLOS(#Marca,#Filtro,Nombre_fabricante,Precio)VALUES('MONTE CARLO
L.','M','MONTE CARLO',30)
INSERT INTO
CIGARRILLOS(#Marca,#Filtro,Nombre_fabricante,Precio)VALUES('MARLBORO
L.','S','MALLBORO',25)
INSERT INTO
CIGARRILLOS(#Marca,#Filtro,Nombre_fabricante,Precio)VALUES('AURORA
P.','D','AURORA',20)
INSERT INTO
CIGARRILLOS(#Marca,#Filtro,Nombre_fabricante,Precio)VALUES('NACIONAL
LIGTH','F','NACIONAL',15)

SELECT *FROM CIGARRILLOS


--
INSERT INTO ESTANCO(#CI,Nombre,DIRECCIÓN)VALUES('MOC','MONTE CARLO','ALLI')
INSERT INTO ESTANCO(#CI,Nombre,DIRECCIÓN)VALUES('MAR','MALLBORO','ALLA')
INSERT INTO ESTANCO(#CI,Nombre,DIRECCIÓN)VALUES('AUR','AURORA','ACA')
INSERT INTO ESTANCO(#CI,Nombre,DIRECCIÓN)VALUES('NAC','NACIONAL','AQUI')

SELECT *FROM ESTANCO


--
INSERT INTO
COMPRAS(#CI,#Marca,#FILTRO,AÑO,CANTIDAD,PRECIO)VALUES('MOC','MONTE CARLO
L.','M',2013,50,30)
INSERT INTO
COMPRAS(#CI,#Marca,#FILTRO,AÑO,CANTIDAD,PRECIO)VALUES('MAR','MARLBORO
L.','S',2013,32,25)
INSERT INTO
COMPRAS(#CI,#Marca,#FILTRO,AÑO,CANTIDAD,PRECIO)VALUES('AUR','AURORA
P.','D',2012,41,20)
INSERT INTO
COMPRAS(#CI,#Marca,#FILTRO,AÑO,CANTIDAD,PRECIO)VALUES('NAC','NACIONAL
LIGTH','F',2011,90,15)

SELECT *FROM COMPRAS

--
INSERT INTO
VENTAS(#CI,#Marca,#FILTRO,AÑO,CANTIDAD,PRECIO)VALUES('MOC','MONTE CARLO
L.','M',2013,50,40)
INSERT INTO
VENTAS(#CI,#Marca,#FILTRO,AÑO,CANTIDAD,PRECIO)VALUES('MAR','MARLBORO
L.','S',2013,32,35)
INSERT INTO
VENTAS(#CI,#Marca,#FILTRO,AÑO,CANTIDAD,PRECIO)VALUES('AUR','AURORA
P.','D',2012,41,30)
INSERT INTO
VENTAS(#CI,#Marca,#FILTRO,AÑO,CANTIDAD,PRECIO)VALUES('NAC','NACIONAL
LIGTH','F',2011,90,25)

SELECT *FROM VENTAS

--

12
Plantear las siguientes preguntas utilizando SQL:

1. Obtener todas las marcas de cigarrillos extranjeros.


SELECT DISTINCT #MARCA,PAIS FROM CIGARRILLOS,FABRICANTE WHERE PAIS
<>'REP.DOM' AND FABRICANTE.#NOMBRE = CIGARRILLOS.NOMBRE_FABRICANTE

2. Obtener el total de compras de cigarrillos con filtro (filtro = ’S’) realizadas por marca.
SELECT #FILTRO,PRECIO, SUM(PRECIO*CANTIDAD)[TOTAL COMPRAS] FROM COMPRAS
WHERE #FILTRO= 'S' GROUP BY PRECIO, #FILTRO

3. Obtener una relación completa de todas las compras y ventas realizadas.


SELECT * FROM COMPRAS,VENTAS WHERE COMPRAS.#MARCA= VENTAS.#MARCA

4. Dadas las siguientes tablas relacionales:


Persona (#Cedula, nombre, apellidos, calle, numero,
Cod_sector, planta, puerta, metros)
Piso (#calle, #numero, #Sector, #planta)
Sector (#codigo, nombre)

CREATE DATABASE DIRECTORIO


USE DIRECTORIO

CREATE TABLE Persona


(#Cedula NVARCHAR(13),
Nombre NVARCHAR(20),
Apellidos NVARCHAR(20),
Calle NVARCHAR(25),
Numero INT,
Cod_sector NVARCHAR(7),
Planta NVARCHAR(7),
Puerta NVARCHAR(13),
Metros INT,
CONSTRAINT PK_PERSONAS PRIMARY KEY(#CEDULA),
CONSTRAINT FK_PERSONAS FOREIGN KEY (COD_SECTOR) REFERENCES SECTOR(#CODIGO)
)

CREATE TABLE Piso


(#calle NVARCHAR(25),
#numero INT,
#Sector NVARCHAR(7),
#planta NVARCHAR(5),
CONSTRAINT PK_PISO PRIMARY KEY(#CALLE),
CONSTRAINT FK_PISO FOREIGN KEY (#SECTOR) REFERENCES SECTOR(#CODIGO)
)

CREATE TABLE Sector


(#codigo NVARCHAR(7),
nombre NVARCHAR(30),
PRIMARY KEY (#CODIGO)
)

13
INSERT INTO SECTOR(#CODIGO,NOMBRE)VALUES('SLF','LA FERIA')
INSERT INTO SECTOR(#CODIGO,NOMBRE)VALUES('SZC','ZONA COLONIAL')
INSERT INTO SECTOR(#CODIGO,NOMBRE)VALUES('SG','GASCUEZ')
INSERT INTO SECTOR(#CODIGO,NOMBRE)VALUES('SEN','ENSANCHE NACO')

SELECT *FROM SECTOR


--
INSERT INTO
PERSONA(#CEDULA,NOMBRE,APELLIDOS,CALLE,NUMERO,COD_SECTOR,PLANTA,PUERTA,METRO
S)VALUES
('001-0000142-1','PEDRO','MATOS','Av. Bolívar',255,'SG','2DA','SUR',200)

INSERT INTO
PERSONA(#CEDULA,NOMBRE,APELLIDOS,CALLE,NUMERO,COD_SECTOR,PLANTA,PUERTA,METRO
S)VALUES
('001-0000328-
7','MARIA','SEGURA','Av.INDEPENDENCIA',2021,'SLF','3RA','SUR',300)

INSERT INTO
PERSONA(#CEDULA,NOMBRE,APELLIDOS,CALLE,NUMERO,COD_SECTOR,PLANTA,PUERTA,METRO
S)VALUES
('001-0000143-1','ANNERYS','PEREZ','ARZ. MERIÑO',222,'SZC','2DA','ESTE',270)

--
INSERT INTO PISO(#CALLE,#NUMERO,#SECTOR,#PLANTA)VALUES('ARZ. MERIÑO',222,
'SZC','2DA')
INSERT INTO PISO(#CALLE,#NUMERO,#SECTOR,#PLANTA)VALUES('AV. BOLIVAR',70,
'SG','2DA')
INSERT INTO
PISO(#CALLE,#NUMERO,#SECTOR,#PLANTA)VALUES('Av.INDEPENDENCIA',2021,
'SLF','3RA')

SELECT *FROM PISO

Plantear las siguientes preguntas utilizando SQL:

1. Obtener Cedula de todos los propietarios de una casa en la zona Colonial con el numero
222.

SELECT #CEDULA FROM PERSONA WHERE COD_SECTOR='SZC' AND NUMERO = 222

2. Obtener cedula, nombre y apellidos de los propietarios de un piso en la calle


Independencia, numero 2021.

SELECT #CEDULA,NOMBRE, APELLIDOS,NUMERO FROM PERSONA WHERE CALLE =


'Av.INDEPENDENCIA' AND NUMERO = 2021

3. Obtener todos los pisos de más de 50m2 cuyo propietario tiene la cedula 001-0000142-1

SELECT #CEDULA,METROS FROM PERSONA WHERE METROS> 50 AND #CEDULA ='001-


0000142-1'

4. Obtener el número de personas que viven en la “Av. Bolívar”.


SELECT #CALLE, COUNT (*) [CANTIDAD PERSONAS]FROM PISO WHERE #CALLE = 'AV.
BOLIVAR' GROUP BY #CALLE

4. Obtener el número de personas que viven en el Sector “La feria”.

14
SELECT NOMBRE, COUNT (*) [CANTIDAD PERSONAS]FROM SECTOR WHERE NOMBRE = 'LA
FERIA' GROUP BY NOMBRE

15