You are on page 1of 13

Proyecto final

BASE DE DATOS II
En el presente documento se detalla la elaboracin completa de una estructura de base de datos
diagramas de entidad relacin y Querys de elaboracin y consultas sobre la BD

Proyecto final
Base de datos II

Creacin del esquema de la base de datos


El esquema de una base de datos (en ingls, Database Schema) describe la
estructura de una Base de datos, en un lenguaje formal soportado por un Sistema
administrador de Base de datos (DBMS). En una Base de datos Relacional,
el Esquema define sus tablas, sus campos en cada tabla y las relaciones entre
cada campo y cada tabla.
Generalmente en la prctica el trmino esquema de la base de datos se refiere al diseo
fsico de la base de datos.

fabricante
PK

id_fabricante
nombre

Articulos
PK

id_articulos
nombre
p_compra
p_venta
id_fabricante

distribuidor
PK

id_distribuidor
nombre
id_fabricante1
id_fabricante2
id_fabricante3
id_fabricante4
id_fabricante5
telefono
direccion

Isaac Gonzlez Lpez

Oscar Daniel Cabellos Ballesteros

Proyecto final
Base de datos II

1. Creamos una nueva base de datos para el proyecto


CREATE DATABASE tiendita

2. Creamos la primera tabla llamada artculos


CREATE TABLE tiendita.articulos (id_articulos int NOT NULL ,nombre
varchar(40) NOT NULL , p_compra float NULL , p_venta float NULL ,
id_fabricante int NOT NULL ,PRIMARY KEY (id_articulos))

Isaac Gonzlez Lpez

Oscar Daniel Cabellos Ballesteros

Proyecto final
Base de datos II

3. Creamos la segunda tabla la cual llamaremos fabricante


CREATE TABLE tiendita.fabricante (id_fabricante int NOT NULL,
nombre varchar(15) NOT NULL ,PRIMARY KEY (id_fabricante))

4. Creamos la tercera tabla llamada distribuidor


CREATE TABLE tiendita.distribuidor (id_distribuidor int NOT NULL,
nombre varchar(15) NOT NULL , id_fab1 int NULL, id_fab2 int NULL,
id_fab3 int NULL, id_fab4 int NULL, id_fab5 int NULL, telefono VARCHAR(15)
NULL, direccion VARCHAR(30) NULL, PRIMARY KEY (id_distribuidor))

Isaac Gonzlez Lpez

Oscar Daniel Cabellos Ballesteros

Proyecto final
Base de datos II
5. Nuestras tablas ya con datos quedaran de la siguiente manera.
Artculos

Distribuidor

Fabricante

Isaac Gonzlez Lpez

Oscar Daniel Cabellos Ballesteros

Proyecto final
Base de datos II
Consultas SQL

1. Obtener los nombres de los artculos


SELECT nombre, descripcion from articulos

2. Obtener los nombres y los precios de los artculos


SELECT nombre, p_compra, p_venta from articulos

Isaac Gonzlez Lpez

Oscar Daniel Cabellos Ballesteros

Proyecto final
Base de datos II

3. Obtener los nombres de los productos cuyo valor sea menor o igual a 200 pesos.
SELECT nombre, descripcion, p_venta from articulos WHERE p_venta<=200

4. Obtener todos los datos de los artculos cuyo precio este entre 60 y 150 pesos
SELECT * from articulos WHERE (p_venta>=60&&p_venta<=150)

Isaac Gonzlez Lpez

Oscar Daniel Cabellos Ballesteros

Proyecto final
Base de datos II

Obtener el nombre y el precio en dlares de todos los artculos.


SELECT nombre, descripcion, p_venta pesos, (p_venta/13.5) dlares from articulos

6. Obtener el precio medio de todos los artculos.


SELECT AVG(p_venta)'media articulos' FROM articulos

Isaac Gonzlez Lpez

Oscar Daniel Cabellos Ballesteros

Proyecto final
Base de datos II

7. Obtener el precio medio de todos los artculos cuyo fabricante sea el 2.


SELECT AVG(p_venta)'media articulos' FROM articulos WHERE id_fabricante=2

8. Obtener el nmero de artculos cuyo precio sea mayor o igual a 180 pesos.
SELECT COUNT(nombre) cantidad artculos FROM articulos WHERE p_venta>=180

Isaac Gonzlez Lpez

Oscar Daniel Cabellos Ballesteros

Proyecto final
Base de datos II

9. Obtener el nombre y precio de todos los artculos ordenados por precio y luego por nombre.
SELECT nombre, descripcion, p_venta FROM articulos ORDER BY p_venta

10 SELECT nombre, descripcion, p_venta FROM articulos ORDER BY nombre

Isaac Gonzlez Lpez

Oscar Daniel Cabellos Ballesteros

Proyecto final
Base de datos II

11. Obtener el listado completo de artculos incluyendo los datos del fabricante con inner join y
sin inner join.
SELECT art.*, fab.nombre fabricante FROM articulos AS art INNER JOIN
fabricante AS fab ON art.id_fabricante=fab.id_fabricante ORDER BY art.nombre

12
SELECT articulos.*, fabricante.nombre fabricante FROM articulos, fabricante WHERE
articulos.id_fabricante=fabricante.id_fabricante ORDER BY articulos.nombre

Isaac Gonzlez Lpez

Oscar Daniel Cabellos Ballesteros

Proyecto final
Base de datos II

13. Obtener el nombre y el precio del artculo ms barato.


SELECT nombre, descripcion, MIN(p_venta) 'el mas barato' FROM articulos

14. Obtener una lista con el nombre y precio de los artculos ms caros y por cada vendedor.
SELECT art.nombre, art.descripcion, art.p_venta, fab.nombre fabricante, dist.nombre distribuidor
FROM articulos AS art
INNER JOIN fabricante AS fab INNER JOIN distribuidor AS dist ON
art.id_fabricante=fab.id_fabricante
&& fab.id_fabricante=dist.id_fab1 WHERE art.p_venta>= 1500

Isaac Gonzlez Lpez

Oscar Daniel Cabellos Ballesteros

Proyecto final
Base de datos II

15. Cambiar el nombre del artculo 6 por impresora lser.


UPDATE articulos SET nombre='impresora laser tx12' WHERE id_articulos=6

16. Insertar un artculo nuevo


INSERT INTO articulos (id_articulos, nombre, descripcion, p_compra, p_venta,
id_fabricante)VALUES(51,'bluetoot r4', 'usb win7', 60, 140,10)

17. Eliminar el primer artculo


DELETE FROM articulos WHERE id_articulos=1

Isaac Gonzlez Lpez

Oscar Daniel Cabellos Ballesteros

You might also like