Está en la página 1de 27

SERVICIO NACIONAL DE APRENDIZAJE

SENA

AP06-AA7-EV02. LENGUAJE ESTRUCTURADO DE CONSULTAS SQL

Diego Fernando Santos Reyes


Mariana Sánchez Gómez
Mónica Alexandra Pita Satizabal

Ficha 2348833

Fase Desarrollo

Proyecto

Tecnología En Análisis Y Desarrollo De Sistemas De Información


Centro De Diseño Y Metrología
Modalidad Virtual
Bogotá
2022
Lenguaje Estructurado De Consultas SQL 2022

Tabla de contenido
INTRODUCCIÓN............................................................................................................................3
1. ESTRUCTURA DE TABLAS......................................................................................................4
2. SENTENCIAS SQL...................................................................................................................6
a) Crear la BD - Crear tablas con campos, llave primaria, tipos de datos y propiedades
definidas, llaves foráneas.........................................................................................................6
b) Modelo Relacional “imagen” que se obtiene del mismo SGBD......................................12
c) Sentencias para cargar cada tabla con mínimo 10 registros...........................................12
d) 1 Consulta para cada tabla con 1 o dos criterios y usando order by..............................18
e) 5 consultas entre 2 o 3 tablas con 1 o dos criterios, usando INNER JOIN y usando order
by 22
f) 2 Procedimientos almacenados para alguna de las consultas........................................25
CONCLUCIONES..........................................................................................................................27

2 Sistema de Información de Gestión de Inventarios SIGI – ADSI Virtual


Lenguaje Estructurado De Consultas SQL 2022

INTRODUCCIÓN

En el presente documento se muestra de manera ilustrativa el aprendizaje del gestor


de base de datos MySQL, mediante el desarrollo de ejercicios prácticos, el objetivo de
este documento es demostrar los conocimientos adquiridos sobre MySQL,
aplicándolos a la creación de la base de datos del proyecto SIGI, incluyendo la creación
de tablas, inserción de información y realización de los diferentes tipos de consulta y
sentencias mediante el lenguaje universal de bases de datos Structured Query
Language (SQL).

3 Sistema de Información de Gestión de Inventarios SIGI – ADSI Virtual


Lenguaje Estructurado De Consultas SQL 2022

1. ESTRUCTURA DE TABLAS

4 Sistema de Información de Gestión de Inventarios SIGI – ADSI Virtual


Lenguaje Estructurado De Consultas SQL 2022

5 Sistema de Información de Gestión de Inventarios SIGI – ADSI Virtual


Lenguaje Estructurado De Consultas SQL 2022

2. SENTENCIAS SQL

a) Crear la BD - Crear tablas con campos, llave primaria, tipos de


datos y propiedades definidas, llaves foráneas

/* sentencia para crear la base de datos */

CREATE DATABASE DB_ELPINTOR;


USE DB_ELPINTOR;

/* sentencia para crear tabla de usuarios */

CREATE TABLE usuarios (


id_usu bigint PRIMARY KEY,
nombres_usu varchar (30) NOT NULL,
apellidos_usu varchar (30) NOT NULL,
email_usu varchar (30) NOT NULL,
telefono_usu varchar (20) NOT NULL,
clave_usu varchar (8) NOT NULL
);

6 Sistema de Información de Gestión de Inventarios SIGI – ADSI Virtual


Lenguaje Estructurado De Consultas SQL 2022

/* sentencia para crear tabla de clientes */

CREATE TABLE clientes (


id_cli bigint PRIMARY KEY,
tipodoc_cli varchar (3) NOT NULL,
nombre_cli varchar (30) not null,
apellido_cli varchar (30) not null,
email_cli varchar (30) not null,
ciudad_cli varchar (20) not null,
direccion_cli varchar (40) not null,
telefono_cli varchar (15) not null
);

/* sentencia para crear tabla de proveedores */

CREATE TABLE proveedores (


id_prov bigint PRIMARY KEY,
tipodoc_prov varchar (3) not null,
nombre_prov varchar (30) not null,
email_prov varchar (30) not null,
ciudad_prov varchar (20) not null,
direccion_prov varchar (40) not null,
telefono_prov varchar (15) not null
);

/* sentencia para crear tabla productos */

7 Sistema de Información de Gestión de Inventarios SIGI – ADSI Virtual


Lenguaje Estructurado De Consultas SQL 2022

CREATE TABLE productos (


id_prod bigint PRIMARY KEY,
nombre_prod varchar (30) not null,
descripcion_prod varchar (100) not null,
precio_compra_prod int (20) not null,
precio_venta_prod int (20) not null
);

/* sentencia para crear la llave foránea entre productos y proveedores */

ALTER TABLE productos ADD (proveedor_prod bigint);


ALTER TABLE productos ADD CONSTRAINT fk_prov_prod FOREIGN key
(proveedor_prod) REFERENCES proveedores (id_prov);

/* sentencia para crear tabla de entradas */

CREATE TABLE entradas (


orden_ent bigint PRIMARY KEY,
fecha_ent datetime not null,
cantidad_ent int (10) not null
);

8 Sistema de Información de Gestión de Inventarios SIGI – ADSI Virtual


Lenguaje Estructurado De Consultas SQL 2022

/* sentencia para crear la llave foránea del producto entre entradas y productos */

ALTER TABLE entradas ADD (producto_ent bigint);


ALTER TABLE entradas ADD CONSTRAINT fk_prod_ent FOREIGN KEY (producto_ent)
REFERENCES productos (id_prod);

/* sentencia para crear llave foránea del proveedor entre entradas y proveedores */

ALTER TABLE entradas ADD (proveedor_ent bigint);


ALTER TABLE entradas ADD CONSTRAINT fk_prov_ent FOREIGN KEY (proveedor_ent)
REFERENCES proveedores (id_prov);

9 Sistema de Información de Gestión de Inventarios SIGI – ADSI Virtual


Lenguaje Estructurado De Consultas SQL 2022

/* sentencia para crear la tabla salidas */

CREATE TABLE salidas (


orden_sal bigint PRIMARY KEY,
fecha_sal datetime not null,
cantidad_sal int (10) not null
);

/* sentencia para crear la llave foránea de producto entre salidas y productos */

ALTER TABLE salidas ADD (producto_sal bigint);


ALTER TABLE salidas ADD CONSTRAINT fk_prod_sal FOREIGN KEY (producto_sal)
REFERENCES productos (id_prod)

/* sentencia para crear la llave foranea de cliente entre salidas y clientes */

ALTER TABLE salidas ADD (cliente_sal bigint);


ALTER TABLE salidas ADD CONSTRAINT fk_cli_sal FOREIGN KEY (cliente_sal)
REFERENCES clientes (id_cli);

10 Sistema de Información de Gestión de Inventarios SIGI – ADSI Virtual


Lenguaje Estructurado De Consultas SQL 2022

/* sentencia para crear la tabla de inventarios */

CREATE TABLE inventarios (


id_prod bigint,
orden_ent bigint,
orden_sal bigint,
stock bigint
);

/* sentencia para crear llaves foráneas de inventarios */

ALTER TABLE inventarios ADD CONSTRAINT fk_id_prod_invt FOREIGN KEY (id_prod)


REFERENCES productos (id_prod);
ALTER TABLE inventarios ADD CONSTRAINT fk_id_ent_invt FOREIGN KEY (orden_ent)
REFERENCES entradas (orden_ent);
ALTER TABLE inventarios ADD CONSTRAINT fk_id_sal_invt FOREIGN KEY (orden_sal)
REFERENCES salidas (orden_sal);

11 Sistema de Información de Gestión de Inventarios SIGI – ADSI Virtual


Lenguaje Estructurado De Consultas SQL 2022

b) Modelo Relacional “imagen” que se obtiene del mismo SGBD

c) Sentencias para cargar cada tabla con mínimo 10 registros

/* sentencia para cargar registros de usuarios */

INSERT INTO usuarios (id_usu, nombres_usu, apellidos_usu, email_usu, telefono_usu,


clave_usu)
VALUES ('1004534234','Camilo Andres','Puerto
Ruiz','puerto@gmail.com','3135548624','RH34'),
('2342375655','Fernando','Rocha Lopez','rocha@gmail.com','314852769','GF45'),
('1004538967','Orlando','Cely Perez','cely@gmail.com','3214587265','SG56'),
('2357812990','Cristian Andres','Reyes Lugo','reyes@gmail.com','3156548654','JG78'),
('1004562312','Maria Fernanda','Sosa Diaz','sosa@gmail.com','3215648562','XK12')

12 Sistema de Información de Gestión de Inventarios SIGI – ADSI Virtual


Lenguaje Estructurado De Consultas SQL 2022

/* sentencia para cargar registros de clientes */

INSERT INTO clientes


(id_cli,tipodoc_cli,nombre_cli,apellido_cli,email_cli,ciudad_cli,direccion_cli,telefono_cl
i)
VALUES
('1004534276','cc','Orlando','salgado','Salgado23@hotmail.com','santander','Cra. 10
No.86-00','3112678945'),
('2342375689','cc','Alison','Perez','Alaisofi34@gmail.com','Cartagena','Cra. 08
No.22-78','3209876534'),
('1004538923','cc','Itzayana','Marin','ItzayanaR45@outlook.com','Barranquilla','Cll.
13 No.20-23','3132308956'),
('2357812956','cc','Kelly','Garcia','Kelly39@gmail.com','Barranquilla','Cll. 53 No.64-
23','3132309075'),
('1004562398','cc','Monica','Lopez','Monicaferna23@outlook.com','Cartagena,','Cll.
45 No.34-87','3112309075'),
('235689145','cc','David','Morales','david28@gmail.com','Bogota','Cra. 21 No.99-
87','3142306675'),
('1274927456','cc','Maria','Torres','Marialu56@gmail.com','Medellin','Cra. 93
No.45-86','3145467893'),
('1032376894','cc','Daniel','Peña','Daniel56@outlook.com','Medellin','Cll. 127
No.10-86','3145465293'),
('2317483905','cc','Sofia','Muñoz','sofia45@hotmail.com','Sincelejo','Cll. 136
No.05-32','3195465293'),
('2745830264','cc','Alex','Pineda','Alex89@gmail.com','Turbaco','Cll. 30 No.18-
19','32054654455')

13 Sistema de Información de Gestión de Inventarios SIGI – ADSI Virtual


Lenguaje Estructurado De Consultas SQL 2022

/* sentencia para cargar los datos de los proveedores */

INSERT INTO proveedores


(id_prov,tipodoc_prov,nombre_prov,email_prov,ciudad_prov,direccion_prov,telefono
_prov)
VALUES('800345678','NIT','Almasa','mercadeo@almasa.com.co','Bogotá','Cra. 68D
No.39F-58 sur','2700777'),
('801563548','NIT','Ladrillera Santa
Fe','servicioalcliente@santafe.com','Bogotá','Cra. 9 No.74-08','018000111755'),
('900654236','NIT','Corona','contactenoscorona@corona.com','Bogotá','Cll 100
No.8A-55 TORRE C PISO 9','404 88 84'),
('901232546','NIT','Pavco','servicioalcliente@pavco.com','Bogotá','Autopista Sur
No. 71-75','7825000'),
('805648975','NIT','Topex latam','serviciocliente@topexlatam.com','Bogotá','Cll 87
No.10-93','3208899933'),
('906486564','NIT','Intermatex','info@intermatex.com','Bucaramanga','Cll 64A
No.17A-58','6446970'),
('605632548','NIT','Interdoors','info@interdoors.com.co','Medellin','Autopista
Norte Km 26','4602582'),
('800242106','NIT','Sodimac Colombia
S.A.','servicioalcliente@sodimac.com','Bogotá','Cra. 9 No.152a-23','18000127373'),
('901100765','NIT','pisos laminados de
Colombia','ventas@pisoslaminadosdecol.com','Bogotá','Cra. 23 No.122-
59','3202504700'),
('900567789','NIT','pinturas terinsa
pintuco','contacto@pintuco.com','Medellín','Cra 48 No. 42 - 64','3148300080')

14 Sistema de Información de Gestión de Inventarios SIGI – ADSI Virtual


Lenguaje Estructurado De Consultas SQL 2022

/* sentencia para cargar registros de productos */

INSERT INTO productos


(id_prod,nombre_prod,descripcion_prod,precio_compra_prod,precio_venta_prod,pro
veedor_prod)
VALUES('13846','Cemento','Cemento Argos Gris 50kg','21769','28300','800345678'),
('13802','Pegacor','Pegacor Bloque Vidrio Blanco
10Kg','26077','33900','900654236'),
('73637','Varilla','Corrugada Varilla Corrugada G60 W #4 (1/2 Pulg) X
6M','23138','30080','800242106'),
('27159','Alambre negro','Alambre negro recocido 25k Calibre
17','139615','181500','800242106'),
('11494','Ladrillo','Ladrillo Prensado Liviano 24,5X12X6cm 2.2K 56
u/m2','731','950','801563548'),
('13883','Friso Revoque Plástico','Friso Revoque Plástico Cuñete
30kg','58385','75900','805648975'),
('65854','Tubo Sanitario','Tubo Sanitario 4" x 6
Mts.','102231','132900','901232546'),
('25810','Pintura para Interior','Pintura Contratista para Interior 2000 Alto Poder
Cubriente Blanco 5 Galones','123000','159900','900567789'),
('34229','Piso Adel','Piso Adel Beige 55.2x55.2cm Caja 1.52
m2','37298','48488','901100765'),
('24405','Decorado Pared','Decorado Pared Dama Multicolor
15X45cm','11462','14900','605632548')

15 Sistema de Información de Gestión de Inventarios SIGI – ADSI Virtual


Lenguaje Estructurado De Consultas SQL 2022

/* sentencia para cargar registros de entradas de productos */

INSERT INTO
entradas(orden_ent,producto_ent,proveedor_ent,fecha_ent,cantidad_ent)
VALUES('221','13846','800345678','2022/04/22 08:00:00','450'),
('222','13802','805648975','2022/06/03 08:30:05','700'),
('223','73637','800242106','2022/06/10 09:30:10','100'),
('224','27159','800242106','2022/06/17 11:40:00','250'),
('225','11494','801563548','2022/07/01 11:00:00','500'),
('226','13883','805648975','2022/07/15 13:35:00','600'),
('227','65854','901232546','2022/06/20 11:00:00','400'),
('228','25810','900567789','2022/06/22 08:00:00','650'),
('229','34229','901100765','2022/04/30 08:00:00','200'),
('210','24405','906486564','2022/05/22 16:00:00','220')

/* sentencia para cargar los registros de salidas de productos */

INSERT INTO salidas(orden_sal,producto_sal,cliente_sal,fecha_sal,cantidad_sal)


VALUES('101','13846','1004534276','2022/04/22 08:00:00','380'),
('102','13802','2342375689','2022/06/03 08:30:05','45'),
('103','73637','1004538923','2022/06/10 09:30:10','30'),
('104','27159','2357812956','2022/06/17 11:40:00','85'),
('105','11494','1004562398','2022/07/01 11:00:00','125'),
('106','13883','235689145','2022/07/15 13:35:00','250'),
('107','65854','1274927456','2022/06/20 11:00:00','90'),
('108','25810','1032376894','2022/06/22 08:00:00','500'),
('109','34229','2317483905','2022/04/30 08:00:00','120'),
('110','24405','2745830264','2022/05/22 16:00:00','100')

16 Sistema de Información de Gestión de Inventarios SIGI – ADSI Virtual


Lenguaje Estructurado De Consultas SQL 2022

/* sentencia para cargar registros a la tabla de inventarios */

INSERT INTO inventarios(id_prod,orden_ent,orden_sal,stock)


VALUES('13846','221','101','70'),
('13802','222','102','655'),
('73637','223','103','70'),
('27159','224','104','165'),
('11494','225','105','375'),
('13883','226','106','350'),
('65854','227','107','310'),
('25810','228','108','150'),
('34229','229','109','80'),
('24405','210','110','120')

17 Sistema de Información de Gestión de Inventarios SIGI – ADSI Virtual


Lenguaje Estructurado De Consultas SQL 2022

d) 1 Consulta para cada tabla con 1 o dos criterios y usando order by

/* tabla usuarios consulta id, nombre y email ordenando por id de forma ascendente
*/

SELECT id_usu, nombres_usu, email_usu


FROM usuarios
ORDER BY nombres_usu ASC

/* tabla de clientes consulta nombre, dirección, teléfono y ciudad donde la ciudad


sea Barranquilla ordenando de forma descendente por nombre */

SELECT nombre_cli, direccion_cli, telefono_cli, ciudad_cli


FROM clientes
WHERE ciudad_cli='Barranquilla'
ORDER BY nombre_cli DESC

18 Sistema de Información de Gestión de Inventarios SIGI – ADSI Virtual


Lenguaje Estructurado De Consultas SQL 2022

/* consultar proveedores donde el NIT inicie con 9 ordenado por nombre de forma
ascendente */

SELECT id_prov AS NIT,


nombre_prov AS Empresa,
email_prov AS Correo,
telefono_prov AS Teléfono
FROM proveedores
WHERE id_prov LIKE '9%'
ORDER BY nombre_prov ASC

/* consulta de entradas donde la fecha debe ser superior a mayo 31 y la cantidad


debe ser menor a 400 */

SELECT *
FROM entradas
WHERE fecha_ent > '2022/05/31' AND cantidad_ent <= 400
ORDER BY cantidad_ent ASC

19 Sistema de Información de Gestión de Inventarios SIGI – ADSI Virtual


Lenguaje Estructurado De Consultas SQL 2022

/* consulta de inventarios donde el id del producto inicie con el número 2 y se


ordene por stock de forma ascendente */

SELECT *
FROM inventarios
WHERE id_prod LIKE '2%'
ORDER BY stock ASC

/* consulta de salidas donde la fecha debe ser menor al 2022/07/01 y la cantidad


debe ser menor o igual a 200 ordenado por cliente de forma ascendente */

SELECT *
FROM salidas
WHERE fecha_sal < '2022/07/01' AND cantidad_sal <= 200
ORDER BY cliente_sal ASC

20 Sistema de Información de Gestión de Inventarios SIGI – ADSI Virtual


Lenguaje Estructurado De Consultas SQL 2022

/* consulta de productos donde el precio de venta debe ser mayor que 20.000 y
menor que 100.000 ordenado por nombre de forma descendente */

SELECT *
FROM productos
WHERE precio_venta_prod > 20000 AND precio_venta_prod < 100000
ORDER BY nombre_prod DESC

21 Sistema de Información de Gestión de Inventarios SIGI – ADSI Virtual


Lenguaje Estructurado De Consultas SQL 2022

e) 5 consultas entre 2 o 3 tablas con 1 o dos criterios, usando INNER


JOIN y usando order by

/* consulta entre 3 tablas, entradas, productos y proveedores ordenando por fecha


de entrada */

SELECT productos.nombre_prod AS Producto,


proveedores.nombre_prov AS Proveedor,
entradas.fecha_ent AS Fecha,
entradas.cantidad_ent AS Cantidad
FROM entradas
INNER JOIN productos
ON entradas.producto_ent = productos.id_prod
INNER JOIN proveedores
ON entradas.proveedor_ent = proveedores.id_prov
ORDER BY entradas.fecha_ent ASC

/* consulta entre 3 tablas salidas, productos y clientes donde la fecha sea superior a
mayo ordenando por cantidad de forma descendente */

SELECT salidas.orden_sal AS Orden,


clientes.nombre_cli AS Cliente,
productos.nombre_prod AS Producto,
salidas.fecha_sal AS Fecha,
salidas.cantidad_sal AS Cantidad
FROM salidas
INNER JOIN clientes
ON salidas.cliente_sal = clientes.id_cli
INNER JOIN productos

22 Sistema de Información de Gestión de Inventarios SIGI – ADSI Virtual


Lenguaje Estructurado De Consultas SQL 2022

ON salidas.producto_sal = productos.id_prod
WHERE salidas.fecha_sal > '2022/05/31'
ORDER BY salidas.cantidad_sal DESC

/* consulta entre dos tablas inventarios y productos donde el stock sea mayor a 100
y menor a 400 ordenado de forma ascendente */

SELECT productos.nombre_prod AS Producto,


inventarios.stock AS Stock
FROM inventarios
INNER JOIN productos
ON inventarios.id_prod = productos.id_prod
WHERE inventarios.stock > '100' AND inventarios.stock < '400'
ORDER BY inventarios.stock ASC

23 Sistema de Información de Gestión de Inventarios SIGI – ADSI Virtual


Lenguaje Estructurado De Consultas SQL 2022

/* consulta entre dos tablas, entradas y proveedores donde el proveedor debe ser
especifico ordenando por fecha de forma descendente */

SELECT entradas.orden_ent AS Orden,


entradas.fecha_ent AS Fecha,
proveedores.nombre_prov AS Proveedor,
entradas.cantidad_ent AS Cantidad
FROM entradas
INNER JOIN proveedores
ON entradas.proveedor_ent = proveedores.id_prov
WHERE proveedores.nombre_prov = 'Sodimac Colombia S.A.'
ORDER BY entradas.fecha_ent DESC

/* consulta entre dos tablas, salidas y clientes, se concatena el nombre y apellido del
cliente, ordenado de forma ascendente por el campo orden de salida */

SELECT salidas.orden_sal AS Orden,


CONCAT (clientes.nombre_cli,' ', clientes.apellido_cli) AS Cliente,
salidas.fecha_sal AS Fecha,
clientes.direccion_cli AS Direccion,
clientes.ciudad_cli AS Ciudad
FROM salidas
INNER JOIN clientes
ON salidas.cliente_sal = clientes.id_cli
ORDER BY salidas.orden_sal ASC

24 Sistema de Información de Gestión de Inventarios SIGI – ADSI Virtual


Lenguaje Estructurado De Consultas SQL 2022

f) 2 Procedimientos almacenados para alguna de las consultas

/* guardar procedimiento para consultar entradas */

CREATE PROCEDURE consultar_entradas()


SELECT productos.nombre_prod AS Producto,
proveedores.nombre_prov AS Proveedor,
entradas.fecha_ent AS Fecha,
entradas.cantidad_ent AS Cantidad
FROM entradas
INNER JOIN productos
ON entradas.producto_ent = productos.id_prod
INNER JOIN proveedores
ON entradas.proveedor_ent = proveedores.id_prov
ORDER BY entradas.fecha_ent ASC

25 Sistema de Información de Gestión de Inventarios SIGI – ADSI Virtual


Lenguaje Estructurado De Consultas SQL 2022

/* guardar procedimiento para consultar salidas */

CREATE PROCEDURE consultar_salidas()


SELECT salidas.orden_sal AS Orden,
CONCAT (clientes.nombre_cli,' ', clientes.apellido_cli) AS Cliente,
salidas.fecha_sal AS Fecha,
clientes.direccion_cli AS Dirección,
clientes.ciudad_cli AS Ciudad
FROM salidas
INNER JOIN clientes
ON salidas.cliente_sal = clientes.id_cli
ORDER BY salidas.orden_sal ASC

26 Sistema de Información de Gestión de Inventarios SIGI – ADSI Virtual


Lenguaje Estructurado De Consultas SQL 2022

CONCLUCIONES

Con la anterior actividad, podemos concluir que gracias a que el gestor de bases de
datos MySQL es de código abierto, podemos hacer uso de él de forma gratuita y
debido a su fácil uso se pueden crear bases de datos utilizando diferentes comandos
como CREATE DATABASE, usado para crear la base de datos. Así mismo, se pueden
crear tablas, insertar registros, realizar modificaciones, relacionar tablas mediante
llaves foráneas, realizar consultas de varios tipos y demás, usando comandos tales
como: CREATE TABLE, ISERT INTO, ALTER TABLE, SELECT, entre otras. Adicional a esto,
se puede ver el uso de sentencias como INNER JOIN, la cual es usada para realizar
consultas entre tablas, WHERE que es usado para determinar ciertos criterios de
consulta y ORDER BY para ordenar los registros a consultar.

27 Sistema de Información de Gestión de Inventarios SIGI – ADSI Virtual

También podría gustarte