Está en la página 1de 5

CREATE DATABASE ORDEN;

USE ORDEN;

--Tabla proveedor
CREATE TABLE PROVEEDOR(
rut INT PRIMARY KEY IDENTITY,
dv INT NOT NULL,
razon_social varchar(100) NOT NULL,
);

--Tabla categoría
CREATE TABLE CATEGORIA(
id INT PRIMARY KEY IDENTITY,
nombre varchar(50) NOT NULL UNIQUE,
descripcion varchar(256) NULL,
);

--Tabla Producto
CREATE TABLE PRODUCTO(
id INT PRIMARY KEY IDENTITY,
descripcion varchar(100) NOT NULL UNIQUE,
precio MONEY NOT NULL,
stock INT NOT NULL,
idCategoria INT NOT NULL,
FOREIGN KEY (idCategoria) REFERENCES CATEGORIA(id)
);

CREATE TABLE PRODUC_PROVEEDOR(


id INT PRIMARY KEY,
idproducto INT NOT NULL,
idproveedor INT NOT NULL,
FOREIGN KEY(idproveedor) REFERENCES PROVEEDOR(rut),
FOREIGN KEY(idProducto) REFERENCES PRODUCTO(id)
);

--Tabla Medio de Pago


CREATE TABLE MEDIO_PAGO(
id INT PRIMARY KEY IDENTITY,
nombre varchar (50) NOT NULL,
);

--Tabla orden de compra


CREATE TABLE ORDEN_COMPRA(
id INT PRIMARY KEY IDENTITY,
fecha_emision DATETIME NOT NULL,
idProveedor INT NOT NULL,
precio_neto MONEY NOT NULL,
descuento MONEY NULL,
iva MONEY NOT NULL,
total MONEY NOT NULL,
medio_de_pago INT NOT NULL,
FOREIGN KEY (medio_de_pago) REFERENCES MEDIO_PAGO(id),
FOREIGN KEY (idProveedor) REFERENCES PROVEEDOR(rut)
);

--Tabla detalle_Producto
CREATE TABLE DETALLE_PRODUCTO(
id INT PRIMARY KEY,
oc INT NOT NULL,
idProducto INT NOT NULL,
Cantidad INT NOT NULL,
FOREIGN KEY (idProducto) REFERENCES PRODUCTO (id),
FOREIGN KEY (oc) REFERENCES ORDEN_COMPRA(id)
);

--Sedes provedor
CREATE TABLE SEDE_PROVEEDOR(
id INT PRIMARY KEY,
idProveedor INT NOT NULL,
direccion varchar(50),
telefono varchar(10),
email varchar(50),
FOREIGN KEY (idProveedor) REFERENCES PROVEEDOR(rut)
);

--Carga de set de datos


SET IDENTITY_INSERT PROVEEDOR ON;
insert into PROVEEDOR (rut,dv,razon_social) values (19830496,1,'UNO');
insert into PROVEEDOR (rut,dv,razon_social) values (46321589,2,'Proveedor dos');
insert into PROVEEDOR (rut,dv,razon_social) values (58963205,3,'Proveedor tres');
SET IDENTITY_INSERT PROVEEDOR OFF;

SELECT * FROM PROVEEDOR;


--Carga de set de datos
SET IDENTITY_INSERT CATEGORIA ON;
insert into CATEGORIA (id,nombre,descripcion) values (1,'limpieza','productos de
limpieza');
insert into CATEGORIA (id,nombre,descripcion) values (2,'productos random','cosas
random');
insert into CATEGORIA (id,nombre,descripcion) values (3,'no tengo
imaginacion','sigo sin imaginacion');
SET IDENTITY_INSERT CATEGORIA OFF;

SELECT * FROM CATEGORIA;


SELECT * FROM CATEGORIA WHERE nombre = 'limpieza' AND descripcion = 'productos de
limpieza'
--Carga de set de datos
SET IDENTITY_INSERT PRODUCTO ON;
insert into PRODUCTO (id,descripcion,precio,stock,idCategoria) values (1,'producto
de limpieza',200,30,1);
insert into PRODUCTO (id,descripcion,precio,stock,idCategoria) values (2,'producto
de limpieza 2',500,200,1);
insert into PRODUCTO (id,descripcion,precio,stock,idCategoria) values (3,'gato con
botas',100,10,2);
insert into PRODUCTO (id,descripcion,precio,stock,idCategoria) values
(4,'desodorante otaku',30,38,2);
insert into PRODUCTO (id,descripcion,precio,stock,idCategoria) values (5,'no
imaginacion 1',800,320,3);
insert into PRODUCTO (id,descripcion,precio,stock,idCategoria) values (6,'no
imaginacion 2',2050,250,3);
SET IDENTITY_INSERT PRODUCTO OFF;

SELECT * FROM PRODUCTO;


--Operadores lógicos
SELECT * FROM PRODUCTO WHERE id = 1 OR id = 6

--Operadores de comparación.
SELECT * FROM PRODUCTO WHERE idCategoria = 1
SELECT * FROM PRODUCTO WHERE stock >= 100

--Funciones de agregado
SELECT COUNT(descripcion) AS CONTAR_COLUMNA FROM PRODUCTO WHERE stock >10

--actualizar tabla
ALTER TABLE PRODUCTO ADD Stock_min VARCHAR (10) NULL
UPDATE PRODUCTO SET Stock_min = 2
WHERE id=1
UPDATE PRODUCTO SET Stock_min = 5
WHERE id=2
UPDATE PRODUCTO SET Stock_min = 5
WHERE id=3
UPDATE PRODUCTO SET Stock_min = 5
WHERE id=4
UPDATE PRODUCTO SET Stock_min = 5
WHERE id=5
UPDATE PRODUCTO SET Stock_min = 5
WHERE id=6
SELECT * FROM PRODUCTO;

--Carga de set de datos


insert into PRODUC_PROVEEDOR (id,idProducto,idProveedor) values (1,1,19830496);
insert into PRODUC_PROVEEDOR (id,idProducto,idProveedor) values (2,2,19830496);
insert into PRODUC_PROVEEDOR (id,idProducto,idProveedor) values (3,3,46321589);
insert into PRODUC_PROVEEDOR (id,idProducto,idProveedor) values (4,4,46321589);
insert into PRODUC_PROVEEDOR (id,idProducto,idProveedor) values (5,5,58963205);
insert into PRODUC_PROVEEDOR (id,idProducto,idProveedor) values (6,6,58963205);

SELECT * FROM PRODUC_PROVEEDOR;

--Carga de set de datos


SET IDENTITY_INSERT MEDIO_PAGO ON;
insert into MEDIO_PAGO (id,nombre) values (1,'Efectivo');
insert into MEDIO_PAGO (id,nombre) values (2,'Debito');
insert into MEDIO_PAGO (id,nombre) values (3,'Credito');
SET IDENTITY_INSERT MEDIO_PAGO OFF;

SELECT * FROM MEDIO_PAGO;

--Carga de set de datos


SET IDENTITY_INSERT ORDEN_COMPRA ON;
insert into ORDEN_COMPRA
(id,fecha_emision,idProveedor,precio_neto,descuento,iva,total,medio_de_pago)
values(1,GETDATE(),19830496,1600,0,304,1904,1);
insert into ORDEN_COMPRA
(id,fecha_emision,idProveedor,precio_neto,descuento,iva,total,medio_de_pago)
values(2,GETDATE(),46321589,130,0,25,155,2);
insert into ORDEN_COMPRA
(id,fecha_emision,idProveedor,precio_neto,descuento,iva,total,medio_de_pago)
values(3,GETDATE(),58963205,2050,100,390,2340,3);
SET IDENTITY_INSERT ORDEN_COMPRA OFF;

SELECT * FROM ORDEN_COMPRA;

--Funciones de agregado
SELECT SUM (precio_neto) AS Suma_Total FROM ORDEN_COMPRA
SELECT MAX (precio_neto) AS Precio_Maximo FROM ORDEN_COMPRA

--Carga de set de datos


insert into DETALLE_PRODUCTO(id,oc,idProducto,cantidad) values (1,1,1,8);
insert into DETALLE_PRODUCTO(id,oc,idProducto,cantidad) values (2,2,3,1);
insert into DETALLE_PRODUCTO(id,oc,idProducto,cantidad) values (3,2,4,1);
insert into DETALLE_PRODUCTO(id,oc,idProducto,cantidad) values (4,3,6,1);

SELECT * FROM DETALLE_PRODUCTO;

--Carga de set de datos


insert into SEDE_PROVEEDOR (id,idProveedor,direccion,telefono,email) values
(1,19830496,'direccion uno','988653251','correo@gmail.com');
insert into SEDE_PROVEEDOR (id,idProveedor,direccion,telefono,email) values
(2,19830496,'direccion uno coma dos','963258636','correo1coma2@gmail.com');
insert into SEDE_PROVEEDOR (id,idProveedor,direccion,telefono,email) values
(3,46321589,'direccion dos','963487852','correo2@gmail.com');
insert into SEDE_PROVEEDOR (id,idProveedor,direccion,telefono,email) values
(4,58963205,'direccion tres','963987569','correoProvedor3@gmail.com');

SELECT * FROM SEDE_PROVEEDOR;

SELECT * FROM SEDE_PROVEEDOR WHERE NOT id = 2;

--Teoría de conjunto JOIN


SELECT
*
FROM ORDEN_COMPRA O
JOIN MEDIO_PAGO M
ON O.id = M.id

--Funciones Escalares y de tipo de tabla.

SELECT[id],[fecha_emision],[idProveedor],[precio_neto],[iva],[dbo].[Suman_Neto_Iva]
(@Comp_Cod) FROM [dbo].[ORDEN_COMPRA]

---Crear Funciones Escalares y de tipo de tabla.

CREATE FUNCTION Suman_Neto_Iva


(
-- Crear Funcion Escalar
@Comp_Cod INT

)
RETURNS INT
AS
BEGIN
DECLARE @Calcular INT

SELECT @Calcular = SUM(OC.precio_neto*OC.iva)


FROM ORDEN_COMPRA OC

RETURN @Calcular

END

También podría gustarte