1. . Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
Tablas, Campos, tipos de datos, claves primarias, claves foráneas, restricciones, clausulas sql
Unidad II: El Lenguaje de Base de Datos SQL
Objetivo de la Unidad:
Al finalizar esta unidad de aprendizaje los alumnos comprenden e interpreta el lenguaje SQL
Desarrollo
Las herramientas a utilizar en las prácticas son las siguientes:
MySQL como Sistema Gestor de Bases de Datos, a través del entorno de desarrollo de XAMPP o AMPPS y
phpMyAdmin
Parte 1:
A continuación se van a explicar los pasos a realizar para construir y utilizar una base de datos
sencilla.
Paso 1. Abrir el phpMyAdmin
Objetivo de la guía
El presente documento de prácticas tiene como propósito el que el alumno adquiera las competencias básicas e
intermedias en el uso y aplicación de un lenguaje de consultas estructurado o SQL (Structured Query
Language), mediante una serie de ejercicios propuestos para su desarrollo
Requerimientos.
Se debe contar con: Un (1) computador teniendo como mínimo el Sistema Operativo Libre
( Canaima/Ubuntu), entre otro SO, MySQL como Sistema Gestor de Bases de Datos, a través del entorno
de desarrollo de XAMPP o AMPPS y phpMyAdmin.
Componentes.
Pestaña de opciones
2. Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
Paso 2. Una vez conectado en la parte izquierda se muestran las BD alojadas en el servidor.
En la parte central se visualiza las pestañas de las diferentes funcionalidades del gestor de BD.
Parte 2:
ACTIVIDADES A REALIZAR
1. clic en la pestaña SQL.
2. Crea una base de datos llamada boutique
CREATE DATABASE boutique;
Clic en el botón continuar
CLICK PARA
GESTIONAR SQL
3. . Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
3. Crear las siguientes tablas con sus campos que se describen:
ARTICULOS
En el panel lado izquierdo seleccionar la base de datos boutique, luego click en ventana sql
Estructura de la tabla artículos en la ventana de sql
CREATE TABLE IF NOT EXISTS clientes (
cve_cte int(4) NOT NULL,
nombre_cte varchar(30) NOT NULL,
ciudad_cte varchar(30) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
4. Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
CREATE TABLE IF NOT EXISTS artículos (
cve_art int(4) NOT NULL PRIMARY KEY,
nom_art varchar(30) NOT NULL,
marca varchar(30) NOT NULL,
color varchar(30) NOT NULL,
talla varchar(2) NOT NULL,
existencia int(4) NOT NULL,
costo int(7) NOT NULL,
precio_vta int(7) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
6. Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
Parte 3: ejecutar las sentencias sql de Consultas
1.- Obtener todos los registros de la tabla artículo
SELECT * FROM artículos;
2.- Obtener de la tabla ARTICULOS todos los registros que tengan talla M
Instrucción en SQL:
SELECT * FROM articulos WHERE talla = 'M';
7. . Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
3.- Obtener todos los registros de la tabla ARTICULOS en donde la existencia de los artículos sea menor o igual a 3.
Instrucción en SQL:
SELECT * FROM articulos WHERE existencia <= 3;
4.- Obtener el nombre del artículo, marca, color, talla y existencia.
Instrucción en SQL:
SELECT nom_art,marca,color,talla,existencia FROM articulos
8. Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
5.- Obtener el nombre del artículo, marca, color, talla y existencia del artículo que tenga el precio de venta mayor a 600.
Instrucción en SQL:
SELECT nom_art,marca,color,talla,existencia FROM articulos WHERE precio_vta > 600;
6.- Mostrar todos los registros de la tabla ARTICULOS en orden de la A a la Z (ascendente), considerando el nombre del artículo.
Instrucción en SQL:
SELECT * FROM artículos ORDER BY nom_art ASC;
9. . Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
7.- Mostrar todos los registros de la tabla ARTICULOS en orden de la Z a la A (descendente), considerando la marca del artículo.
Instrucción en SQL:
SELECT * FROM articulos ORDER BY marca DESC;
10. Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
8.- Obtener los datos del artículo que tiene el costo más bajo.
Instrucción en SQL:
SELECT * FROM articulos WHERE costo=(SELECT MIN(costo) FROM articulos);
9.- Obtener los datos del (los) artículo(s) que tiene el número de existencias mayor.
Instrucción en SQL:
SELECT * FROM 10rtículos WHERE existencia=(SELECT MAX(existencia) FROM 10rtículos);
10.- Obtener el promedio precio de venta
SELECT AVG (precio_vta) FROM artículos;
11. . Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
Parte II
Tablas relacionadas
Ventas, Si analizas la tabla venta está relacionada con la tabla artículos y clientes de muchos a muchos hay que
normalizar :
Y serian tablas venta nro_venta,cve_cte, fecha de emisión. La tabla detalles_venta nro_detalle, cve_art, cant_vta,
CREATE TABLE IF NOT EXISTS venta(
nro_venta int(4) NOT NULL primary key,
cve_cte int(4) NOT NULL,
fecha_emision date NOT NULL,
CONSTRAINT fkey_cliente FOREIGN KEY (cve_cte) REFERENCES clientes(cve_cte)
ON UPDATE CASCADE ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS detalles_venta(
nro_detalle int(4) NOT NULL primary key,
nro_vta int(4) NOT NULL,
cve_art int(4) NOT NULL,
cant_vta int(4) NOT NULL,
CONSTRAINT fkey_articulo FOREIGN KEY (cve_art) REFERENCES artículos(cve_art)
ON UPDATE CASCADE ON DELETE CASCADE ,
CONSTRAINT fkey_venta FOREIGN KEY (nro_vta) REFERENCES venta(nro_venta)
ON UPDATE CASCADE ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
12. Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
Visualizar el diagrama Relacional
Click en Diseñador
INSERT INTO clientes (cve_cte, nombre_cte, ciudad_cte) VALUES
(104, 'JOSE DANIEL ESQUEA', 'BARQUISIMETO'),
(123, 'MARIA RODRIGUEZ', 'CUBIRO'),
(233, 'RICARDO GUERRA', 'BARQUISIMETO'),
(321, 'JESUS ALVAREZ', 'QUIBOR'),
(451, 'MANUEL MENDOZA', 'QUIBOR'),
(456, 'ARTURO PAREDES', 'CUBIRO'),
(467, 'PEDRO ORTEGA', 'BARQUISIMETO'),
(610, 'MANUEL PONCE', 'CARORA'),
(765, 'JESUS ROBLEDO', 'CABUDARE'),
(987, 'TATIANA MARQUEZ', 'CABUDARE');
13. . Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
INSERT INTO venta ( nro_venta,cve_cte, fecha_emision) VALUES
(1, 610,'2020-06-09'),
(2, 451,'2020-06-09'),
(3, 104,'2020-06-09'),
(4, 456,'2020-06-09'),
(5, 456,'2020-07-02'),
(6, 233,'2020-07-02'),
(7, 233, '2020-07-03'),
(8, 987, '2020-07-03');
INSERT INTO detalles_venta (nro_detalle, nro_vta, cve_art, cant_vta) VALUES
(1,1,6589,2),
(2,1,1597,1),
(3,1,1865,1),
(4,2,3461,1),
(5,3,2080,2),
(6,3,1432,1),
(7,3,4507,1),
(8,4,1900,3),
(9,5,2312,1),
(10,6,1865,2),
(11,6,3459,1),
(12,7,6512, 3),
(13,8,1984,1);
14. Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
Ejecución de SQL
1.- Obtener listado de nombre del cliente y la fecha de venta de aquellos clientes que tuvieron ventas.
Instrucción en SQL:
SELECT clientes.nombre_cte, venta.nro_venta, venta.fecha_emision FROM venta, clientes
WHERE venta.cve_cte = clientes.cve_cte;
2.- Obtener listado de artículos, cantidad y la fecha de venta
Instrucción en SQL:
select artículos.nom_art,venta.fecha_emision,detalles_venta.cant_vta
FROM venta, detalles_venta, artículos
WHERE detalles_venta.cve_art = artículos.cve_art AND detalles_venta.nro_vta = venta.nro_venta;
15. . Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
3.- Obtener listado de ventas que muestre nombre del cliente, nombre del artículos, cantidad, nro de venta y la fecha de venta
Instrucción en SQL:
SELECT clientes.nombre_cte,artículos.nom_art,venta.nro_venta,venta.fecha_emision, detalles_venta.cant_vta
FROM venta, detalles_venta, artículos,clientes WHERE
detalles_venta.cve_art = artículos.cve_art AND detalles_venta.nro_vta = venta.nro_venta AND
venta.cve_cte=clientes.cve_cte;
4.- Obtener el nombre del cliente y la fecha de venta de aquellos clientes que tienen venta al contado en el mes de junio.
Instrucción en SQL:
SELECT clientes.nombre_cte,venta.fecha_emision FROM venta,clientes
WHERE clientes.cve_cte = venta.cve_cte AND venta.fecha_emision LIKE '%06%';
16. Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
3.- Obtener el nombre del artículo, nombre del cliente y la cantidad total de la venta efectuada, de todas aquellas ventas. El costo total
de las ventas se obtiene de multiplicar la cantidad de venta por el precio de venta.
Instrucción en SQL:
SELECT artículos.nom_art,clientes.nombre_cte,detalles_venta.cant_vta*artículos.precio_vta FROM
detalles_venta,venta,clientes,artículos WHERE clientes.cve_cte = venta.cve_cte AND venta.nro_venta=detalles_venta.nro_vta
AND artículos.cve_art = detalles_venta.cve_art;
NOTA: Si se desea que aparezca el nombre de la columna como COSTO TOTAL, se utiliza un elemento AS que almacena en forma
temporal el nombre dado a la columna (atributo); el código SQL quedaría de la siguiente manera:
SELECT artículos.nom_art,clientes.nombre_cte,detalles_venta.cant_vta*artículos.precio_vta AS 'VENT
A TOTAL' FROM detalles_venta,venta,clientes,artículos WHERE clientes.cve_cte = venta.cve_cte
AND venta.nro_venta=detalles_venta.nro_vta AND artículos.cve_art = detalles_venta.cve_art;
4.- Obtener el nombre del artículo, marca, color, talla y existencia del artículo, de aquellos artículos que tuvieron una venta al contado y
que son de la talla L.
Instrucción en SQL:
SELECT artículos.nom_art,artículos.marca,artículos.color,artículos.talla FROM artículos,detalles_venta
AS 'VENTA TOTAL'
17. . Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
WHERE artículos.cve_art = detalles_venta.cve_art AND artículos.talla = 'L';
5.- Obtener el nombre del artículo, su color y talla, de aquellos artículos que tienen registrado un precio de venta entre 200 y 730 y
tienen registrada una venta .
Instrucción en SQL:
SELECT articulos.nom_art,articulos.color,articulos.talla FROM articulos, detalles_venta WHERE articulos.cve_art =
ventas_credito.cve_art AND articulos.precio_vta >= 400 AND articulos.precio_vta <= 730;
6.- Mostrar el total de ventas registradas
Instrucción en SQL:
SELECT COUNT(*) FROM venta
7.-Mostrar el total de ventas registradas el 9 de junio del 2020
Instrucción en SQL:
SELECT COUNT(*) FROM venta WHERE venta.fecha_emision='2020-06-09';
8.- Mostrar las ventas realizadas el 3 de julio del 20202
Instrucción en SQL:
SELECT *FROM venta WHERE fecha_emision ='2020-07-03';