Está en la página 1de 20

LENGUAJE ESTRUCTURADO DE CONSULTA SQL 1

Lenguaje Estructurado de Consulta SQL

Sandra Yaned Escandón Campos

Servicio Nacional de Aprendizaje (Sena)

Ficha 2175817: Análisis y desarrollo de sistemas de información

Ins. Hernando Pinto Anaya

Agosto 10 de 2021

Servicio Nacional de Aprendizaje (Sena)

Regional Santander Centro Agroempresarial y Turístico los Andes


LENGUAJE ESTRUCTURADO DE CONSULTA SQL 2

Resumen

Esta evidencia se realizó después de hacer el estudio del material formativo y complementario,

sobre lenguaje estructurado de consulta MySQL.

Para el desarrollo de esta evidencia, se trabajó desarrollando el lenguaje estructurado de

consulta, aplicando el estudio y los conocimientos adquiridos, de acuerdo con el proyecto que se

ha venido desarrollando en la empresa Droguería Al Instante.

El lenguaje utilizado para el desarrollo de la base de datos de almacenamiento, es el

sistema de almacenamiento y gestión de base de datos MySQL, en su versión gratuita 8.0.

Para iniciar con la actividad, se trabajó con el modelo gráfico de la base de datos

relacional elaborada en la etapa anterior, para identificar las tablas y las relaciones entre ellas;

después se creó la base de datos para el respectivo almacenamiento, se diseñó también, las

tablas que ya habían sido establecidas con su nombre, tipo de variable y el tipo de llave primaria

o foránea.

Posteriormente, se insertaron los datos correspondientes en cada tabla y se generaron

consultas, sentencias de los procedimientos almacenados, funciones y triggers.


LENGUAJE ESTRUCTURADO DE CONSULTA SQL 3

Lenguaje Estructurado de Consulta SQL SIDAI


SIDAI (Sistema de información Droguería Al Instante

Base de datos Relacional

Figura 1

Base de Datos Relacional


LENGUAJE ESTRUCTURADO DE CONSULTA SQL 4

1. Creación de base de datos

mysql> create database sidai;


Query OK, 1 row affected (1.24 sec)

mysql> show databases;


+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| prueba |
| sakila |
| sidai |
| sys |
| world |
+--------------------+
8 rows in set (1.55 sec)

Colocar en uso la base de datos sidai


mysql> use sidai
Database changed

Cuando se crea una base de datos y ya no es necesaria, entonces se puede eliminar


Crear base de datos
mysql> create database sandra;
Query OK, 1 row affected (1.24 sec)

Borrar base de datos con Drop


mysql> drop database sandra;
Query OK, 0 rows affected (1.38 sec)

2. Creación de tablas con campos, tipo de datos, longitud y tipo de llave

Tabla Nombre de tabla PROVEEDORES

No Nombre Campo Tipo Longitud Tipo llave

1 Idcodigo_proveedor INT primaria

2 Factura_compra INT foránea

3 Cedula_nit BIGINT

4 Nombre_razonsocial VARCHAR 40

5 Telefono_proveedor BIGINT

6 Dirección_proveedor VARCHAR 50
LENGUAJE ESTRUCTURADO DE CONSULTA SQL 5

7 Correo_proveedor VARCHAR 20

Crear tabla de proveedores

mysql> create table proveedores(


-> idcodigo_proveedor int primary key auto_increment,
-> factura_compra varchar (20),
-> cedula_nit bigint ,
-> nombre_razon varchar(40) ,
-> telefono_proveedor bigint,
-> direccion_proveedor varchar(50),
-> correo_proveedor varchar(20)
-> );
Query OK, 0 rows affected (4.39 sec)

Describe los campos creados en la tabla proveedores


mysql> describe proveedores;
+---------------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------------+-------------+------+-----+---------+-------+
| idcodigo_proveedor | int | NO | PRI | NULL | |
| factura_compra | int | NO | | NULL | |
| cedula_nit | bigint | NO | | NULL | |
| nombre_razon | varchar(40) | YES | | NULL | |
| telefono_proveedor | bigint | YES | | NULL | |
| direccion_proveedor | varchar(50) | YES | | NULL | |
| correo_proveedor | varchar(20) | YES | | NULL | |
+---------------------+-------------+------+-----+---------+-------+
7 rows in set (0.15 sec)

Como eliminar una columna que es foranea


mysql> alter table proveedores drop factura_compra;
Query OK, 0 rows affected (8.84 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> describe proveedores;


+---------------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------------+-------------+------+-----+---------+-------+
| idcodigo_proveedor | int | NO | PRI | NULL | |
| cedula_nit | bigint | NO | | NULL | |
| nombre_razon | varchar(40) | YES | | NULL | |
| telefono_proveedor | bigint | YES | | NULL | |
| direccion_proveedor | varchar(50) | YES | | NULL | |
| correo_proveedor | varchar(20) | YES | | NULL | |
+---------------------+-------------+------+-----+---------+-------+
6 rows in set (0.41 sec)
LENGUAJE ESTRUCTURADO DE CONSULTA SQL 6

Tabla Nombre de tabla BODEGAS

No Nombre Campo Tipo Longitud Tipo llave

1 Idcodigo_bodega INT primaria

2 Dirección_bodega VARCHAR 30

Crear table bodegas

mysql> create table bodegas(


-> idcodigo_bodega int primary key auto_increment,
-> direccion_bodega varchar (30)
-> );
Query OK, 0 rows affected (2.01 sec)

Describe los campos creados en la table bodegas


mysql> describe bodegas;
+------------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------------+-------------+------+-----+---------+----------------+
| idcodigo_bodega | int | NO | PRI | NULL | auto_increment |
| direccion_bodega | varchar(30) | YES | | NULL | |
+------------------+-------------+------+-----+---------+----------------+
2 rows in set (0.09 sec)

Tabla Nombre de tabla VENDEDORES

No Nombre Campo Tipo Longitud Tipo llave

1 Idcodigo_vendedor INT primaria

2 Cedula_vendedor BIGINT

3 Nombre_vendedor VARCHAR 50

4 Telefono_vendedor BIGINT

Crear tabla vendedores

mysql> create table vendedores(


-> idcodigo_vendedor int primary key auto_increment,
-> cedula_vendedor bigint,
-> nombre_vendedor varchar(50),
-> teléfono_vendedor bigint
-> );
Query OK, 0 rows affected (3.52 sec)
LENGUAJE ESTRUCTURADO DE CONSULTA SQL 7

Describe los campos creados en la table de vendedores


mysql> describe vendedores;
+-------------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------------+-------------+------+-----+---------+----------------+
| idcodigo_vendedor | int | NO | PRI | NULL | auto_increment |
| cedula_vendedor | bigint | YES | | NULL | |
| nombre_vendedor | varchar(50) | YES | | NULL | |
| telefono_vendedor | bigint | YES | | NULL | |
+-------------------+-------------+------+-----+---------+----------------+
4 rows in set (0.08 sec)

Tabla Nombre de tabla PRODUCTOS

No Nombre Campo Tipo Longitud Tipo llave

1 Idcodigo_producto INT primaria

2 Stock INT foránea

3 Fecha_venta INT foránea

4 Código_bodega INT foránea

5 Factura_compra INT foránea

6 Nombre_producto VARCHAR 30

7 Precio_compra BIGINT

8 Precio_venta BIGINT

9 Fecha_venci DATE

10 Fecha_compra DATE

Crear tabla productos

mysql> create table productos(


-> idcodigo_producto int primary key auto_increment,
-> nombre_producto varchar(30),
-> precio_compra bigint,
-> precio_venta bigint,
-> fecha_vencimiento date,
-> fecha_compra date
-> );
Query OK, 0 rows affected (4.02 sec)

Describe los campos creados de la tabla productos


mysql> describe productos;
LENGUAJE ESTRUCTURADO DE CONSULTA SQL 8

+-------------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------------+-------------+------+-----+---------+----------------+
| idcodigo_producto | int | NO | PRI | NULL | auto_increment |
| nombre_producto | varchar(30) | YES | | NULL | |
| precio_compra | bigint | YES | | NULL | |
| precio_venta | bigint | YES | | NULL | |
| fecha_venci | date | YES | | NULL | |
| fecha_compra | date | YES | | NULL | |
+-------------------+-------------+------+-----+---------+----------------+
6 rows in set (0.06 sec)

Tabla Nombre de tabla UTILIDAD

No Nombre Campo Tipo Longitud Tipo llave

1 Idutilidad_neta INT primaria

2 Factura_compra INT foránea

3 Factrua_venta INT foránea

4 Costo_variable BIGINT

5 Costo_fijo BIGINT

6 Punto_equili BIGINT

7 Gastos BIGINT

Crear tabla utilidad

mysql> create table utilidad(


-> idutilidad_neta int primary key auto_increment,
-> costo_variable bigint,
-> costo_fijo bigint,
-> punto_equili bigint,
-> gastos bigint
-> );
Query OK, 0 rows affected (4.02 sec)

Describe los campos creados en la table utilidad


mysql> describe utilidad;
+-----------------+--------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+--------+------+-----+---------+----------------+
| idutilidad_neta | int | NO | PRI | NULL | auto_increment |
| costo_variable | bigint | YES | | NULL | |
| costo_fijo | bigint | YES | | NULL | |
LENGUAJE ESTRUCTURADO DE CONSULTA SQL 9

| punto_equili | bigint | YES | | NULL | |


| gastos | bigint | YES | | NULL | |
+-----------------+--------+------+-----+---------+----------------+
5 rows in set (0.01 sec)

Tabla Nombre de tabla CLIENTES

No Nombre Campo Tipo Longitud Tipo llave

1 Idcedula_cliente INT primaria

2 Nombre_cliente BIGINT

3 Tipo_cliente BOOL

4 Teléfono_cliente BIGINT

5 Correo_cliente VARCHAR 20

Crear tabla clientes

mysql> create table clientes(


-> idcedula_cliente int primary key auto_increment,
-> co nombre_cliente bigint,
-> tipo_cliente boolean,
-> telefono_cliente bigint,
-> correo_cliente varchar(20)
-> );
Query OK, 0 rows affected (3.50 sec)

Describe los campos creados en la tabla clientes


mysql> describe clientes;
+------------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------------+-------------+------+-----+---------+----------------+
| idcedula_cliente | int | NO | PRI | NULL | auto_increment |
| nombre_cliente | bigint | YES | | NULL | |
| tipo_cliente | tinyint(1) | YES | | NULL | |
| telefono_cliente | bigint | YES | | NULL | |
| correo_cliente | varchar(20) | YES | | NULL | |
+------------------+-------------+------+-----+---------+----------------+
5 rows in set (0.01 sec)

Tabla Nombre de tabla COMPRAS

No Nombre Campo Tipo Longitud Tipo llave

1 Idfactura_compra INT primaria


LENGUAJE ESTRUCTURADO DE CONSULTA SQL 10

2 Orden_compra INT

3 factura_compra INT

Crear tabla compras

mysql> create table compras(


-> idfactura_compra int primary key auto_increment,
-> orden_compra int,
-> factura_compra int
-> );
Query OK, 0 rows affected (2.18 sec)

Describe los campos creados en la tabla compras


mysql> describe compras;
+------------------+------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------------+------+------+-----+---------+----------------+
| idfactura_compra | int | NO | PRI | NULL | auto_increment |
| orden_compra | int | YES | | NULL | |
| factura_compra | int | YES | | NULL | |
+------------------+------+------+-----+---------+----------------+
3 rows in set (0.08 sec)

Tabla Nombre de tabla VENTAS

No Nombre Campo Tipo Longitud Tipo llave

1 Idfactura_venta INT primaria

2 Id_cliente INT Foránea

3 Id_vendedor INT foránea

4 Fecha_venta DATE

5 Factura_venta BIGINT

Crear tabla ventas

mysql> create table ventas(


-> idfactura_venta int primary key auto_increment,
-> fecha_venta date,
-> factura_venta bigint
-> );
Query OK, 0 rows affected (2.18 sec)

Describe los campos creados en la tabla ventas


mysql> describe ventas;
LENGUAJE ESTRUCTURADO DE CONSULTA SQL 11

+-----------------+--------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+--------+------+-----+---------+----------------+
| idfactura_venta | int | NO | PRI | NULL | auto_increment |
| fecha_venta | date | YES | | NULL | |
| factura_venta | bigint | YES | | NULL | |
+-----------------+--------+------+-----+---------+----------------+
3 rows in set (0.10 sec)

Crear tabla de usuarios

mysql> create table usuarios(


-> id_usuario int primary key auto_increment,
-> usuario varchar (20),
-> contrasena int unique
-> );
Query OK, 0 rows affected (4.39 sec)

Describe los campos creados en la table usuarios


mysql> describe usuarios;
+------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+----------------+
| id_usuario | int | NO | PRI | NULL | auto_increment |
| usuario | varchar(20) | YES | | NULL | |
| contrasena | int | YES | UNI | NULL | |
+------------+-------------+------+-----+---------+----------------+
3 rows in set (2.10 sec)

Crear tabla de stock

mysql> create table stock(


-> id_stock int primary key auto_increment,
-> inv_min int,
-> inv_max int,
-> saldo int
-> );
Query OK, 0 rows affected (2.49 sec)

Describe los campos creados en la table stock


mysql> describe stock;
+----------+------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+------+------+-----+---------+----------------+
| id_stock | int | NO | PRI | NULL | auto_increment |
| inv_min | int | YES | | NULL | |
| inv_max | int | YES | | NULL | |
| saldo | int | YES | | NULL | |
+----------+------+------+-----+---------+----------------+
4 rows in set (0.08 sec)
LENGUAJE ESTRUCTURADO DE CONSULTA SQL 12

Crear tabla de ajustes

mysql> create table ajustes(


-> id_ajustes int primary key auto_increment,
-> aj_debito int,
-> aj_credito int
-> );
Query OK, 0 rows affected (2.03 sec)

Describe los campos creados en la tabla ajustes.


mysql> describe ajustes;
+------------+------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+------+------+-----+---------+----------------+
| id_ajustes | int | NO | PRI | NULL | auto_increment |
| aj_debito | int | YES | | NULL | |
| aj_credito | int | YES | | NULL | |
+------------+------+------+-----+---------+----------------+
3 rows in set (0.10 sec)

Cuando una tabla ya no es necesaria, después de crearla se puede eliminar.


mysql> create table pedidos(
-> id_pedido int primary key auto_increment,
-> cliente varchar(30),
-> proveedor varchar (30),
-> valor int
-> );
Query OK, 0 rows affected (1.58 sec)

Borrar tabla de base de datos


mysql> drop table pedidos;
Query OK, 0 rows affected (1.26 sec)

Mostrar las tablas creadas en la base de datos sidai,

mysql> show tables;


+-----------------+
| Tables_in_sidai |
+-----------------+
| ajustes |
| bodegas |
| clientes |
| compras |
| productos |
| proveedores |
| stock |
| usuarios |
| utilidad |
| vendedores |
| ventas |
LENGUAJE ESTRUCTURADO DE CONSULTA SQL 13

+-----------------+
11 rows in set (0.09 sec)

3. Insertar datos en las tablas creadas de la base de datos

Insertar datos de forma sencilla en la tabla proveedores


mysql> insert into proveedores values('1','6789012','coopservir','3245791','calle 5 n 2-
13','coopservir@coop.com');
Query OK, 1 row affected (0.24 sec)

mysql> select * from proveedores;


+--------------------+------------+--------------+--------------------+---------------------+---------------------+
| idcodigo_proveedor | cedula_nit | nombre_razon | telefono_proveedor | direccion_proveedor | correo_proveedor |
+--------------------+------------+--------------+--------------------+---------------------+---------------------+
| 1 | 6789012 | coopservir | 3245791 | calle 5 n 2-13 | coopservir@coop.com |
+--------------------+------------+--------------+--------------------+---------------------+---------------------+
1 row in set (0.10 sec)

Ingreso de datos de forma completa


mysql> insert into proveedores
-> (
-> idcodigo_proveedor,
-> cedula_nit,
-> nombre_razon,
-> telefono_proveedor,
-> direccion_proveedor,
-> correo_proveedor
-> ) values
-> ('2','3198579','dismedihs sas','4781291','calle 30 n 2bn 42','ventas@dmedihs.com'
-> );
Query OK, 1 row affected (0.24 sec)

mysql> select * from proveedores;


+--------------------+------------+---------------+--------------------+---------------------+---------------------+
| idcodigo_proveedor | cedula_nit | nombre_razon | telefono_proveedor | direccion_proveedor | correo_proveedor |
+--------------------+------------+---------------+--------------------+---------------------+---------------------+
| 1 | 6789012 | coopservir | 3245791 | calle 5 n 2-13 | coopservir@coop.com |
| 2 | 3198579 | dismedihs sas | 4781291 | calle 30 n 2bn 42 | ventas@dmedihs.com |
+--------------------+------------+---------------+--------------------+---------------------+---------------------+
2 rows in set (0.05 sec)

Modificar el tamaño del tipo de variable varchar, de tamaño 20 se pasó a 40


mysql> alter table proveedores modify correo_proveedor varchar(40);
Query OK, 0 rows affected (2.85 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> describe proveedores;


+---------------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------------+-------------+------+-----+---------+-------+
| idcodigo_proveedor | int | NO | PRI | NULL | |
| cedula_nit | bigint | NO | | NULL | |
| nombre_razon | varchar(40) | YES | | NULL | |
| telefono_proveedor | bigint | YES | | NULL | |
| direccion_proveedor | varchar(50) | YES | | NULL | |
LENGUAJE ESTRUCTURADO DE CONSULTA SQL 14

| correo_proveedor | varchar(40) | YES | | NULL | |


+---------------------+-------------+------+-----+---------+-------+
6 rows in set (0.00 sec)

mysql> insert into proveedores(


-> idcodigo_proveedor,
-> cedula_nit,
-> nombre_razon,
-> telefono_proveedor,
-> direccion_proveedor,
-> correo_proveedor)
-> values ('3','3627086','distriexpress','5536770','calle 5c n 41-59',
-> 'ventas@distriexpress.com'),
-> ('4','65766115','dismedics ltda','4343702','71 f 15 carrera 4b','ventas@dmedics.com'),
-> ('5','382489983','mediscol','3164345718','9 carrera 49','ventas@mediscol.com');
Query OK, 3 rows affected (0.43 sec)
Records: 3 Duplicates: 0 Warnings: 0

mysql> select * from proveedores;


+--------------------+------------+----------------+--------------------+---------------------+--------------------------+
| idcodigo_proveedor | cedula_nit | nombre_razon | telefono_proveedor | direccion_proveedor | correo_proveedor |
+--------------------+------------+----------------+--------------------+---------------------+--------------------------+
| 1 | 6789012 | coopservir | 3245791 | calle 5 n 2-13 | coopservir@coop.com |
| 2 | 3198579 | dismedihs sas | 4781291 | calle 30 n 2bn 42 | ventas@dmedihs.com |
| 3 | 3627086 | distriexpress | 5536770 | calle 5c n 41-59 | ventas@distriexpress.com |
| 4 | 65766115 | dismedics ltda | 4343702 | 71 f 15 carrera 4b | ventas@dmedics.com |
| 5 | 382489983 | mediscol | 3164345718 | 9 carrera 49 | ventas@mediscol.com |
+--------------------+------------+----------------+--------------------+---------------------+--------------------------+
5 rows in set (0.00 sec)

Insertar datos tabla bodegas

mysql> insert into bodegas


-> values('1','calle 6 n 1ª-sur 05');
Query OK, 1 row affected (0.50 sec)

mysql> select * from bodegas;


+-----------------+----------------------+
| idcodigo_bodega | direccion_bodega |
+-----------------+----------------------+
| 1 | calle 6 n 1ª-sur 05 |
+-----------------+----------------------+
1 row in set (0.00 sec)

Insertar datos tabla vendedores

mysql> insert into vendedores


-> values
-> ('1','6102271','Diego','5921894'),
-> ('2','112903901','Katherine','5893178'),
-> ('3','14289132','Rhonald','3896678');
Query OK, 3 rows affected (0.19 sec)
Records: 3 Duplicates: 0 Warnings: 0
LENGUAJE ESTRUCTURADO DE CONSULTA SQL 15

mysql> select * from vendedores;


+-------------------+-----------------+-----------------+-------------------+
| idcodigo_vendedor | cedula_vendedor | nombre_vendedor | telefono_vendedor |
+-------------------+-----------------+-----------------+-------------------+
| 1| 6102271 | Diego | 5921894 |
| 2| 112903901 | Katherine | 5893178 |
| 3| 14289132 | Rhonald | 3896678 |
+-------------------+-----------------+-----------------+-------------------+
3 rows in set (0.02 sec)

Insertar datos table ventas


mysql> insert into ventas
-> values
-> ('1','2021-06-02','Fv-001');
Query OK, 1 row affected (0.38 sec)

mysql> insert into ventas


-> values
-> ('2','2021-06-03','Fv-002'),
-> ('3','2021-06-04','Fv-003'),
->
-> ('4','2021-06-05','Fv-004'),
-> ('5','2021-06-06','Fv-005');
Query OK, 4 rows affected (0.88 sec)
Records: 4 Duplicates: 0 Warnings: 0

mysql> select * from ventas;


+-----------------+-------------+---------------+
| idfactura_venta | fecha_venta | factura_venta |
+-----------------+-------------+---------------+
| 1 | 2021-06-02 | Fv-001 |
| 2 | 2021-06-03 | Fv-002 |
| 3 | 2021-06-04 | Fv-003 |
| 4 | 2021-06-05 | Fv-004 |
| 5 | 2021-06-06 | Fv-005 |
+-----------------+-------------+---------------+
5 rows in set (0.00 sec)

Insertar datos en table


mysql> insert into productos
-> values
->
-> ('1','aspirina','3000','4500','2021-09-24','2021-04-02'),
-> ('2','omeprezol','5000','6500','2021-11-12','2021-04-02'),
-> ('3','alcohol','3500','4800','2021-12-26','2021-05-03'),
-> ('4','naproxeno','6500','7900','2022-01-01','2021-05-03'),
-> ('5','Peg pediatrico','23000','35000','2022-02-13','2021-03-02');
Query OK, 5 rows affected (0.56 sec)
Records: 5 Duplicates: 0 Warnings: 0
LENGUAJE ESTRUCTURADO DE CONSULTA SQL 16

mysql> select * from productos;


+-------------------+-----------------+---------------+--------------+-------------+--------------+
| idcodigo_producto | nombre_producto | precio_compra | precio_venta | fecha_venci |
fecha_compra |
+-------------------+-----------------+---------------+--------------+-------------+--------------+
| 1 | aspirina | 3000 | 4500 | 2021-09-24 | 2021-04-02 |
| 2 | omeprezol | 5000 | 6500 | 2021-11-12 | 2021-04-02 |
| 3 | alcohol | 3500 | 4800 | 2021-12-26 | 2021-05-03 |
| 4 | naproxeno | 6500 | 7900 | 2022-01-01 | 2021-05-03 |
| 5 | Peg pediatrico | 23000 | 35000 | 2022-02-13 | 2021-03-02 |
+-------------------+-----------------+---------------+--------------+-------------+--------------+
5 rows in set (0.00 sec)

Insertar datos en tabla utilidad

mysql> insert into utilidad


-> values
-> ('1','500000','500000','1500000','30000');
Query OK, 1 row affected (0.29 sec)

mysql> select * from utilidad;


+-----------------+----------------+------------+--------------+--------+
| idutilidad_neta | costo_variable | costo_fijo | punto_equili | gastos |
+-----------------+----------------+------------+--------------+--------+
| 1| 500000 | 500000 | 1500000 | 30000 |
+-----------------+----------------+------------+--------------+--------+
1 row in set (0.00 sec)

Insertar datos en tabla clientes

mysql> insert into clientes


-> values
->
-> ('67532759','BRENDA','0','3305736','brenda@live.com'),
-> ('18395712','OSCAR','1','3434181','oscar@gmail.com'),
-> ('63767528','JOSE','1','3433922','francisco@gmail.com'),
-> ('14751647','LUIS','1','3701279','enrique@outlook.com'),
-> ('65761565','NORBERTO','1','4108260','luis@hotmail.com');
Query OK, 5 rows affected (0.37 sec)
Records: 5 Duplicates: 0 Warnings: 0

mysql> select * from clientes;


+------------------+----------------+--------------+------------------+---------------------+
| idcedula_cliente | nombre_cliente | tipo_cliente | telefono_cliente | correo_cliente |
+------------------+----------------+--------------+------------------+---------------------+
| 14751647 | LUIS | 1| 3701279 | enrique@outlook.com |
| 18395712 | OSCAR | 1| 3434181 | oscar@gmail.com |
| 63767528 | JOSE | 1| 3433922 | francisco@gmail.com |
LENGUAJE ESTRUCTURADO DE CONSULTA SQL 17

| 65761565 | NORBERTO | 1| 4108260 | luis@hotmail.com |


| 67532759 | BRENDA | 0| 3305736 | brenda@live.com |
+------------------+----------------+--------------+------------------+---------------------+
5 rows in set (0.00 sec)

Insertar datos en tabla compras


mysql> insert into compras
-> values
-> ('1','oc-001','fc-001'),
-> ('2','oc-002','fc-002'),
-> ('3','oc-003','fc-003'),
-> ('4','oc-004','fc-004'),
-> ('5','oc-005','fc-005');
Query OK, 5 rows affected (0.18 sec)
Records: 5 Duplicates: 0 Warnings: 0

mysql> select * from compras;


+------------------+--------------+----------------+
| idfactura_compra | orden_compra | factura_compra |
+------------------+--------------+----------------+
| 1 | oc-001 | fc-001 |
| 2 | oc-002 | fc-002 |
| 3 | oc-003 | fc-003 |
| 4 | oc-004 | fc-004 |
| 5 | oc-005 | fc-005 |
+------------------+--------------+----------------+
5 rows in set (0.00 sec)

Insertar datos en tabla usuarios


mysql> insert into usuarios
-> values
->
-> ('1','diego2271','12342'),
-> ('2','kathe4677','57435'),
-> ('3','rho7086','74168');
Query OK, 3 rows affected (0.27 sec)
Records: 3 Duplicates: 0 Warnings: 0

mysql> select * from usuarios;


+------------+-----------+------------+
| id_usuario | usuario | contrasena |
+------------+-----------+------------+
| 1 | diego2271 | 12342 |
| 2 | kathe4677 | 57435 |
| 3 | rho7086 | 74168 |
+------------+-----------+------------+
3 rows in set (0.00 sec)

4. Ingresar llaves foráneas en las tablas de la base de datos sidai


LENGUAJE ESTRUCTURADO DE CONSULTA SQL 18

Para crear una llave foránea en tabla de compras

mysql> alter table compras add idcodigo_proveedor int not null references proveedores;
Query OK, 1 row affected (0.24 sec)

mysql> describe compras;


+--------------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+-------------+------+-----+---------+----------------+
| idfactura_compra | int | NO | PRI | NULL | auto_increment |
| orden_compra | varchar(50) | YES | | NULL | |
| factura_compra | varchar(50) | YES | | NULL | |
| idcodigo_proveedor | int | NO | | NULL | |
+--------------------+-------------+------+-----+---------+----------------+
4 rows in set (0.04 sec)

mys mysql> alter table ventas add idcodigo_proveedor int not null references
vendedores;
Query OK, 1 row affected (0.24 sec)

mys mysql> alter table ventas add idcedula_cliente int not null references clientes;
Query OK, 1 row affected (0.24 sec)

mysql> describe ventas;


+-------------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------------+-------------+------+-----+---------+----------------+
| idfactura_venta | int | NO | PRI | NULL | auto_increment |
| fecha_venta | date | YES | | NULL | |
| factura_venta | varchar(50) | YES | | NULL | |
| idcodigo_vendedor | int | NO | | NULL | |
| idcedula_cliente | int | NO | | NULL | |
+-------------------+-------------+------+-----+---------+----------------+
5 rows in set (1.81 sec)

5. Realizar consultas

Conocer cuál es el código y el nombre de los productos que se compran con un precio
mayor a 5000

mysql> select idcodigo_producto, nombre_producto from productos where precio_compra


>5000;
+-------------------+-----------------+
| idcodigo_producto | nombre_producto |
+-------------------+-----------------+
| 4 | naproxeno |
| 5 | Peg pediatrico |
LENGUAJE ESTRUCTURADO DE CONSULTA SQL 19

+-------------------+-----------------+
2 rows in set (0.17 sec)

Para eliminar un registro usamos la instrucción delete


mysql> delete from compras where idfactura_compra =6;
Query OK, 1 row affected (0.24 sec)

Para cambiar los registros de una table usamos la instrucción update


mysql> update compras set idcodigo_proveedor =1 where idfactura_compra=1;
Query OK, 1 row affected (0.24 sec)
Rows matched: 1 Changed: 1 Warnings: 0

Para cambiar nombre de una tabla con la instrucción rename


mysql> alter table utilidad rename infFinanciera;
Query OK, 0 rows affected (4.22 sec)

mysql> describe infFinanciera;


+-----------------+--------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+--------+------+-----+---------+----------------+
| idutilidad_neta | int | NO | PRI | NULL | auto_increment |
| costo_variable | bigint | YES | | NULL | |
| costo_fijo | bigint | YES | | NULL | |
| punto_equili | bigint | YES | | NULL | |
| gastos | bigint | YES | | NULL | |
+-----------------+--------+------+-----+---------+----------------+
5 rows in set (0.62 sec)

mysql> select * from compras;


+------------------+--------------+----------------+--------------------+--------------+
| idfactura_compra | orden_compra | factura_compra | idcodigo_proveedor | valor_compra
|
+------------------+--------------+----------------+--------------------+--------------+
| 1 | oc-001 | fc-001 | 1| 100000 |
| 2 | oc-002 | fc-002 | 2| 200000 |
| 3 | oc-003 | fc-003 | 3| 150000 |
| 4 | oc-004 | fc-004 | 4| 50000 |
| 5 | oc-005 | fc-005 | 5| 250000 |
+------------------+--------------+----------------+--------------------+--------------+
5 rows in set (0.00 sec)

Consultar las compras por proveedor de forma ascendente


mysql> select idcodigo_proveedor, valor_compra from compras order by valor_compra
ASc;
+--------------------+--------------+
| idcodigo_proveedor | valor_compra |
+--------------------+--------------+
| 4| 50000 |
| 1| 100000 |
| 3| 150000 |
LENGUAJE ESTRUCTURADO DE CONSULTA SQL 20

| 2| 200000 |
| 5| 250000 |
+--------------------+--------------+
5 rows in set (0.00 sec)

Suma del valor de las compras realizadas


mysql> select sum(valor_compra) from compras;
+-------------------+
| sum(valor_compra) |
+-------------------+
| 750000 |
+-------------------+
1 row in set (0.09 sec)

Calcular a cuantos clientes se atendieron el día de hoy


mysql> select count(factura_venta) from ventas;
+----------------------+
| count(factura_venta) |
+----------------------+
| 5|
+----------------------+
1 row in set (0.03 sec)

También podría gustarte