Ejercicio SQL Tienda Informatica
Ejercicio SQL Tienda Informatica
Ejercicio SQL Tienda Informatica
SENA
CENTRO DE ELECTRICIDAD Y AUTOMATIZACIN INDUSTRIAL
REGIONAL VALLE
GUIA MY SQL
Versin: 01
Fecha: 30/01/2014
Cdigo
1
LA TIENDA DE INFORMATICA
INSTRUCCIONES: En el siguiente ejercicio se describen cada uno de los comandos para llevar a cabo cada una
de las consultas solicitadas, ejecuta cada uno de ellos en el compilador de MySQL.
ACTIVIDADES A REALIZAR
Ingresar Xampp : Es un servidor independiente de plataforma, software libre, que consiste
principalmente en la base de datos MySQL, el servidor web Apache y los intrpretes para
lenguajes de script: PHP y Perl.
Iniciar el servidor sql/posterior Shell
Ingresar por medio de cd..Xampp/mysql/bin/mysql h localhost u root p
1. Crea una base de datos llamada TIENDA
2. Muestra las Bases de datos almacenadas
3. Habilita la Base de datos TIENDA
Habilita la Base de datos TIENDA: Para acceder a la base de datos utilizamos la sentencia USE.
Recibimos un mensaje "Database changed" (base de datos cambiada). Una base de datos
est formada como ya sabemos por tablas.
4. Para acceder a la base de datos utilizamos la sentencia USE.
5. Genera las siguientes tablas:
FABRICANTES
NOMBRE DE
COLUMNA
TIPO DE
DATO
Clave
Principal
Clave_fabricante Int
Nombre Varchar(30)
ARTICULOS
NOMBRE DE
COLUMNA
TIPO DE
DATO
Clave
Principal
Clave_articulo Int
Nombre Varchar(30)
Precio Int
Clave
Fornea
Clave_fabricante Int
CREATE DATABASE TIENDA;
USE TIENDA;
CREATE TABLE ARTICULOS (Clave_articulo INT NOT
NULL, Nombre VARCHAR(30), Precio INT,
Clave_fabricante INT, PRIMARY KEY (Clave_articulo),
FOREING KEY(Clave_fabricante) REFERENCES
FABRICANTES (Clave_fabricante));
CREATE TABLE FABRICANTES (Clave_fabricante
INT NOT NULL, Nombre VARCHAR(30), PRIMARY
KEY (Clave_fabricante));
SHOW DATABASES;
SERVICIO NACIONAL DE APRENDIZAJE
SENA
CENTRO DE ELECTRICIDAD Y AUTOMATIZACIN INDUSTRIAL
REGIONAL VALLE
GUIA MY SQL
Versin: 01
Fecha: 30/01/2014
Cdigo
2
6. Muestra las tablas de la Base de datos TIENDA
7. Muestra los atributos de la tabla ARTICULOS;
8. Introduce los siguientes datos en cada tabla:
TABLA: FABRICANTES
CLAVE_FABRICANTE NOMBRE
1 Kingston
2 Adata
3 Logitech
4 Lexar
5 Seagate
INSERT INTO FABRICANTES VALUES ( 1 , Kingston);
SHOW TABLES;
DESCRIBE FABRICANTES;
SERVICIO NACIONAL DE APRENDIZAJE
SENA
CENTRO DE ELECTRICIDAD Y AUTOMATIZACIN INDUSTRIAL
REGIONAL VALLE
GUIA MY SQL
Versin: 01
Fecha: 30/01/2014
Cdigo
3
9. Genera las siguientes consultas:
a) Obtener todos los datos de los productos de la tienda
b) Obtener los nombres de los productos de la tienda
c) Obtener los nombres y precio de los productos de la tienda
d) Obtener los nombres de los artculos sin repeticiones
e) Obtener todos los datos del artculo cuya clave de producto es 5
f) Obtener todos los datos del artculo cuyo nombre del producto es Teclado
g) Obtener todos los datos de la Memoria RAM y memorias USB
TABLA: ARTICULOS
CLAVE_ARTICU
LO
NOMBRE
PRECI
O
CLAVE_FABRICA
NTE
1 Teclado $ 100 3
2 Disco duro 300 Gb $ 500 5
3 Mouse $ 80 3
4 Memoria USB $ 140 4
5 Memoria RAM $ 290 1
6 Disco duro extrable
250 Gb
$ 650 5
7 Memoria USB $ 279 1
8 DVD Rom $ 450 2
9 CD Rom $ 200 2
10 Tarjeta de red $ 180 3
INSERT INTO ARTICULOS VALUES ( 1 , Teclado, 100 , 3 );
SELECT Nombre,Precio FROM ARTICULOS;
SELECT Nombre FROM ARTICULOS;
SELECT * FROM ARTICULOS;
SELECT DISTINCT Nombre FROM ARTICULOS;
SELECT * FROM ARTICULOS WHERE Clave_articulo=5;
SELECT * FROM ARTICULOS WHERE Nombre=Teclado;
SELECT * FROM ARTICULOS WHERE Nombre=Memoria RAM OR Nombre=Memoria USB ;
SERVICIO NACIONAL DE APRENDIZAJE
SENA
CENTRO DE ELECTRICIDAD Y AUTOMATIZACIN INDUSTRIAL
REGIONAL VALLE
GUIA MY SQL
Versin: 01
Fecha: 30/01/2014
Cdigo
4
h) Obtener todos los datos de los artculos que empiezan con M
i) Obtener el nombre de los productos donde el precio sea $ 100
j) Obtener el nombre de los productos donde el precio sea mayor a $ 200
k) Obtener todos los datos de los artculos cuyo precio este entre $100 y $350
l) Obtener el precio medio de todos los productos
m) Obtener el precio medio de los artculos cuyo cdigo de fabricante sea 2
n) Obtener el nombre y precio de los artculos ordenados por Nombre
o) Obtener todos los datos de los productos ordenados descendentemente por Precio
p) Obtener el nombre y precio de los artculos cuyo precio sea mayor a $ 250 y ordenarlos
descendentemente por precio y luego ascendentemente por nombre
SELECT * FROM ARTICULOS WHERE Nombre LIKE M%;
SELECT Nombre FROM ARTICULOS WHERE Precio > 200;
/* OPERADOR AND */
SELECT * FROM ARTICULOS WHERE Precio >= 100 AND Precio<=350;
/* OPERADOR BETWEEN */
SELECT * FROM ARTICULOS WHERE Precio BETWEEN 100 AND 350;
SELECT Nombre FROM ARTICULOS WHERE Precio = 100;
SELECT AVG(Precio) FROM ARTICULOS;
SELECT AVG(Precio) FROM ARTICULOS WHERE Clave_fabricante=3;
SELECT Nombre, Precio FROM ARTICULOS ORDER BY Nombre;
SELECT * FROM ARTICULOS ORDER BY Precio DESC;
SELECT Nombre, Precio FROM ARTICULOS
WHERE Precio >= 250 ORDER BY Precio DESC, Nombre;
SERVICIO NACIONAL DE APRENDIZAJE
SENA
CENTRO DE ELECTRICIDAD Y AUTOMATIZACIN INDUSTRIAL
REGIONAL VALLE
GUIA MY SQL
Versin: 01
Fecha: 30/01/2014
Cdigo
5
q) Obtener un listado completo de los productos, incluyendo por cada articulo los datos del articulo y del
fabricante
r) Obtener la clave de producto, nombre del producto y nombre del fabricante de todos los productos en
venta
s) Obtener el nombre y precio de los artculos donde el fabricante sea Logitech ordenarlos alfabticamente
por nombre del producto
t) Obtener el nombre, precio y nombre de fabricante de los productos que son marca Lexar o Kingston
ordenados descendentemente por precio
u) Aade un nuevo producto: Clave del producto 11, Altavoces de $ 120 del fabricante 2
v) Cambia el nombre del producto 6 a Impresora Laser
w) Aplicar un descuento del 10% a todos los productos.
SELECT ARTICULOS.Clave_articulo, ARTICULOS.Nombre, FABRICANTES.Nombre
FROM ARTICULOS, FABRICANTES
WHERE ARTICULOS.Clave_fabricante=FABRICANTES.Clave_fabricante
SELECT * FROM ARTICULOS, FABRICANTES
WHERE ARTICULOS.Clave_fabricante=FABRICANTES.Clave_fabricante
SELECT ARTICULOS.Nombre, ARTICULOS.Precio FROM ARTICULOS, FABRICANTES
WHERE FABRICANTES.Nombre=Logitech AND
ARTICULOS.Clave_fabricante=FABRICANTES.Clave_fabricante
ORDER BY ARTICULOS.Nombre;
SELECT ARTICULOS.Nombre, ARTICULOS.Precio, FABRICANTES.Nombre
FROM ARTICULOS, FABRICANTES
WHERE FABRICANTES.Nombre=Lexar OR FABRICANTES.Nombre=Kingston
AND ARTICULOS.Clave_fabricante=FABRICANTES.Clave_fabricante
ORDER BY ARTICULOS.Precio DESC;
INSERT INTO ARTICULOS VALUES (11 ,Altavoces, 120, 2);
UPDATE ARTICULOS SET Nombre=Impresora Laser
WHERE Clave_articulo = 8
UPDATE ARTICULOS SET Precio=Precio *0.10
SERVICIO NACIONAL DE APRENDIZAJE
SENA
CENTRO DE ELECTRICIDAD Y AUTOMATIZACIN INDUSTRIAL
REGIONAL VALLE
GUIA MY SQL
Versin: 01
Fecha: 30/01/2014
Cdigo
6
x) Aplicar un descuento de $ 10 a todos los productos cuyo precio sea mayor o igual a $ 300
y) Borra el producto numero 6
DATE: DATE se usa cuando necesita slo un valor de fecha, sin una parte de hora. MySQL recibe y muestra los
valores DATE en formato 'YYYY-MM-DD' . El rango soportado es de '1000-01-01' a '9999-12-31'.
DATETIME se usa cuando necesita valores que contienen informacin de fecha y hora. MySQL recibe y muestra
los valores DATETIME en formato 'YYYY-MM-DD HH:MM:SS' . El rango soportado es de '1000-01-01
00:00:00' a '9999-12-31 23:59:59'.
TIME en formato 'HH:MM:SS' (o formato'HHH:MM:SS' para valores de hora grandes).
YEAR es un tipo de un byte usado para representar aos.
Float(5,2) En este ejemplo, 5 es la precisin y 2 es la escala. La precisin representa el nmero de dgitos
decimales significativos que se almacenan para los valores, y la escala representa el nmero de dgitos que
pueden almacenarse a continuacin del punto decimal.
Si necesitamos adicionar una columna que nos falt utilizamos lo siguiente:
Alter table (nombre de la tabla)
Add adicionamos los atributos que nos faltaron;
Alter table producto1
Add categora int(20) not null,
Add tipocategoria int(20) not null;
Si necesitamos borrar una tabla
Alter table producto1
Si necesitamos borrar un atributo de la tabla
Alter table producto1
Drop codigoproducto;
Realizar copia de seguridad de la base de datos: Cuando se tiene clave servidor
C: \ xampp \ mysql \ bin \ mysqldum opt --password=digite la clave -user=root nombre de la base de
datos>backup_nombredelacopia.sql
Cuando no se tiene clave para el servidor
C: \ xampp \ mysql \ bin \ mysqldum opt -user=root nombre de la base de datos>backup_nombredelacopia.sql
La copia queda guarda carpeta C/xampp/mysql/bin
UPDATE ARTICULOS SET Precio=Precio 10
WHERE Precio >= 300
DELETE FROM ARTICULOS WHERE Clave_articulo= 6
SERVICIO NACIONAL DE APRENDIZAJE
SENA
CENTRO DE ELECTRICIDAD Y AUTOMATIZACIN INDUSTRIAL
REGIONAL VALLE
GUIA MY SQL
Versin: 01
Fecha: 30/01/2014
Cdigo
7
Como exportar la base de datos desde el archivo creado
Se debe tener creado la base de datos en donde se va exportar
Se crea en la carpeta
C: \ xampp \ mysql \ data nombre de la base de datos estos se puede hacer por Windows no modo consola.
C: \ xampp \ mysql \ bin \ mysql -user=root nombre de la base de datos<backup_nombredelacopia.sql
C: \ xampp \ mysql \ bin \ mysql --password=digite la clave -user=root nombre de la base de
datos<backup_nombredelacopia.sql
Se carga la base de datos
Use nombre de la base de datos;
Se verifica las tablas
Show tables;
Borrar una base de datos:
Drop database nombre de la base de datos
COMO EXPORTAR UNA BASE DE DATOS DESDE WORKBENCH
1. Se crea el modelo relacional con sus diferentes tablas, atributos y tipos de atributos. Despus de finalizado
2. Archivo/exportar/formato sql/ se guarda en la carpeta xampp /mysql/bin/digitamos el nombre en este caso
Videoclub.sql
Seleccionamos las siguientes opciones continuamos hasta finalizar.
SERVICIO NACIONAL DE APRENDIZAJE
SENA
CENTRO DE ELECTRICIDAD Y AUTOMATIZACIN INDUSTRIAL
REGIONAL VALLE
GUIA MY SQL
Versin: 01
Fecha: 30/01/2014
Cdigo
8
Vamos a crear la base de datos donde se va importar el modelo que se cre en worckbench
Debemos estar mysql modo consola
C: \ xampp \ bin\ mysql crate database videoclub
Verificamos que este creada la base de datos videoclub
Posterior digitamos exit
Nos quedamos en la consola
SERVICIO NACIONAL DE APRENDIZAJE
SENA
CENTRO DE ELECTRICIDAD Y AUTOMATIZACIN INDUSTRIAL
REGIONAL VALLE
GUIA MY SQL
Versin: 01
Fecha: 30/01/2014
Cdigo
9
Ingresamos nuevamente mysql h localhost u root -p
Cargamos la base de datos
Use videoclub;
Verificamos que las tablas creadas en el modelo se encuentren
Show tables;
SERVICIO NACIONAL DE APRENDIZAJE
SENA
CENTRO DE ELECTRICIDAD Y AUTOMATIZACIN INDUSTRIAL
REGIONAL VALLE
GUIA MY SQL
Versin: 01
Fecha: 30/01/2014
Cdigo
10
Ingresamos informacin y utilizamos los diferentes comando para consultas utilizamos en la primera parte
de la gua.