SERVICIO NACIONAL DE APRENDIZAJE SENA CENTRO DE ELECTRICIDAD Y AUTOMATIZACIÓN INDUSTRIAL REGIONAL VALLE
Versión: 01 Fecha: 30/01/2014 Código
GUIA MY SQL
“ LA TIENDA DE INFORMATICA”
INSTRUCCIONES : En el siguiente ejercicio 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 : E s un servidor independiente de plataforma, software libre, que consiste
principalmente en la base de datos MySQL, el servidor web Apache y los intérpretes 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 CREATE CREA TE DATABASE DATABASE TIENDA TIENDA 2. Muestra las Bases de datos almacenadas SHOW DATABASE DATABASES S 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.
USE TIEND TIENDA A
5. Genera las siguientes tablas: FABRICANTES
Clave Principal
NOMBRE COLUMNA Clave_fabricante
DE
Nombre
TIPO DATO Int
DE
Varchar(30)
ARTICULOS
Clave Principal
Clave Foránea
1
NOMBRE COLUMNA Clave_articulo Nombre Precio Clave_fabricante
DE
TIPO DATO Int Varchar(30) Int Int
DE
CREATE TABLE FABRICANTES (Clave_fabricante INT NOT NULL, Nombre VARCHAR(30), PRIMARY KEY (Clave_fabricante));
SERVICIO NACIONAL DE APRENDIZAJE SENA CENTRO DE ELECTRICIDAD Y AUTOMATIZACIÓN INDUSTRIAL REGIONAL VALLE
Versión: 01 Fecha: 30/01/2014 Código
GUIA MY SQL
6. Muestra las tablas de la Base de datos TIENDA SHOW TABLES
7. Muestra los atributos de la tabla ARTICULOS; DESCRIBE FABRICANTES 8. Introduce los siguientes datos en cada tabla: TABLA: FABRICANTES CLAVE_FABRICANTE NOMBRE
1 2 3 4 5
Kingston Adata Logitech Lexar Seagate
INSERT INTO FABRICANTES VALUES ( 1 , ‘Kingston’);
2
SERVICIO NACIONAL DE APRENDIZAJE SENA CENTRO DE ELECTRICIDAD Y AUTOMATIZACIÓN INDUSTRIAL REGIONAL VALLE
Versión: 01 Fecha: 30/01/2014 Código
GUIA MY SQL
TABLA: ARTICULOS CLAVE_ARTICU LO
1 2 3 4 5 6 7 8 9 10
NOMBRE
Teclado Disco duro 300 Gb Mouse Memoria USB Memoria RAM Disco duro extraíble 250 Gb Memoria USB DVD Rom CD Rom Tarjeta de red
9. Genera las siguientes consultas:
PRECI O
CLAVE_FABRICA NTE
$ 100 $ 500 $ 80 $ 140 $ 290 $ 650
3 5 3 4 1 5
$ 279 $ 450 $ 200 $ 180
1 2 2 3
INSERT INTO ARTICULOS VALUES ( 1 , ‘Teclado’, 100 , 3 );
a) Obtener todos los datos de los productos de la tienda
SELECT * FROM ARTICULOS; b) Obtener los nombres de los productos de la tienda
SELECT Nombre FROM ARTICULOS; c) Obtener los nombres y precio de los productos de la tienda
SELECT Nombre,Precio FROM ARTICULOS; d) Obtener los nombres de los artículos sin repeticiones
SELECT DISTINCT Nombre FROM ARTICULOS; e) Obtener todos los datos del artículo cuya clave de producto es ‘5’
SELECT * FROM ARTICULOS WHERE Clave_articulo=5; f)
Obtener todos los datos del artículo cuyo nombre del producto es ‘’Teclado”
SELECT * FROM ARTICULOS WHERE Nombre=’Teclado’; g) Obtener todos los datos de la Memoria RAM y memorias USB
SELECT * FROM ARTICULOS WHERE Nombre=’Memoria RAM’ OR Nombre=’Memoria USB’ ; 3
SERVICIO NACIONAL DE APRENDIZAJE SENA CENTRO DE ELECTRICIDAD Y AUTOMATIZACIÓN INDUSTRIAL REGIONAL VALLE GUIA MY SQL
Versión: 01 Fecha: 30/01/2014 Código
h) Obtener todos los datos de los artículos que empiezan con ‘M’
SELECT * FROM ARTICULOS WHERE Nombre LIKE ‘M%’; i)
Obtener el nombre de los productos donde el precio sea $ 100
SELECT Nombre FROM ARTICULOS WHERE Precio = 100; j)
Obtener el nombre de los productos donde el precio sea ma yor a $ 200
SELECT Nombre FROM ARTICULOS WHERE Precio > 200; k) Obtener todos los datos de los artículos cuyo precio este entre $100 y $350
/* OPERADOR AND */ SELECT * FROM ARTICULOS WHERE Precio >= 100 AND Precio<=350; /* OPERADOR BETWEEN */ SELECT * FROM ARTICULOS WHERE Precio BETWEEN 100 AND 350; l)
Obtener el precio medio de todos los productos
SELECT AVG(Precio) FROM ARTICULOS; m) Obtener el precio medio de los artículos cuyo código de fabricante sea 2
SELECT AVG(Precio) FROM ARTICULOS WHERE Clave_fabricante=3; n) Obtener el nombre y precio de los artículos ordenados por Nombre
SELECT Nombre, Precio FROM ARTICULOS ORDER BY Nombre; o) Obtener todos los datos de los productos ordenados descendentemente por Precio
SELECT * FROM ARTICULOS ORDER BY Precio DESC; p) Obtener el nombre y precio de los artículos cuyo precio sea mayor a $ 250 y ordenarlos descendentemente por precio y luego ascendentemente por nombre
SELECT Nombre, Precio FROM ARTICULOS WHERE Precio >= 250 ORDER BY Precio DESC, Nombre;
4
SERVICIO NACIONAL DE APRENDIZAJE SENA CENTRO DE ELECTRICIDAD Y AUTOMATIZACIÓN INDUSTRIAL REGIONAL VALLE GUIA MY SQL
Versión: 01 Fecha: 30/01/2014 Código
q) Obtener un listado completo de los productos, incluyendo por cada articulo los datos del articulo y del fabricante
SELECT * FROM ARTICULOS, FABRICANTES WHERE ARTICULOS.Clave_fabricante=FABRICANTES.Clave_fabricante r)
Obtener la clave de producto, nombre del producto y nombre del fabricante de todos los productos en venta
SELECT ARTICULOS.Clave_articulo, ARTICULOS.Nombre, FABRICANTES.Nombre FROM ARTICULOS, FABRICANTES WHERE ARTICULOS.Clave_fabricante=FABRICANTES.Clave_fabricante s) Obtener el nombre y precio de los artículos donde el fabricante sea Logitech ordenarlos alfabéticamente por nombre del producto
SELECT ARTICULOS.Nombre, ARTICULOS.Precio FROM ARTICULOS, FABRICANTES WHERE FABRICANTES.Nombre=’Logitech’ AND ARTICULOS.Clave_fabricante=FABRICANTES.Clave_fabricante ORDER BY ARTICULOS.Nombre;
t)
Obtener el nombre, precio y nombre de fabricante de los productos que son marca Lexar o Kingston ordenados descendentemente por precio
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; u) Añade un nuevo producto: Clave del producto 11, Altavoces de $ 120 del fabricante 2 INSERT INTO ARTICULOS VALUES (11 ,’Altavoces’, 120, 2);
v) Cambia el nombre del producto 6 a ‘Impresora Laser’ UPDATE ARTICULOS SET Nombre=’Impresora Laser’
WHERE Clave_articulo = 8
w) Aplicar un descuento del 10% a todos los productos.
UPDATE ARTICULOS SET Precio=Precio *0.10 5
SERVICIO NACIONAL DE APRENDIZAJE SENA CENTRO DE ELECTRICIDAD Y AUTOMATIZACIÓN INDUSTRIAL REGIONAL VALLE GUIA MY SQL
Versión: 01 Fecha: 30/01/2014 Código
x) Aplicar un descuento de $ 10 a todos los productos cuyo precio sea mayor o igual a $ 300
UPDATE ARTICULOS SET Precio=Precio – 10 WHERE Precio >= 300 y) Borra el producto numero 6
DELETE FROM ARTICULOS WHERE Clave_articulo= 6
DATE: DATE se usa cuando necesita sólo 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 información 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 años. Float(5,2) En este ejemplo, 5 es la precisión y 2 es la escala. La precisión representa el número de dígitos decimales significativos que se almacenan para los valores, y la escala representa el número de dígitos que pueden almacenarse a continuación 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 categoría 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
6
SERVICIO NACIONAL DE APRENDIZAJE SENA CENTRO DE ELECTRICIDAD Y AUTOMATIZACIÓN INDUSTRIAL REGIONAL VALLE GUIA MY SQL
Versión: 01 Fecha: 30/01/2014 Código
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
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. Después 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.
7
SERVICIO NACIONAL DE APRENDIZAJE SENA CENTRO DE ELECTRICIDAD Y AUTOMATIZACIÓN INDUSTRIAL REGIONAL VALLE GUIA MY SQL
Versión: 01 Fecha: 30/01/2014 Código
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 créate database videoclub Verificamos que este creada la base de datos videoclub Posterior digitamos exit Nos quedamos en la consola
8
SERVICIO NACIONAL DE APRENDIZAJE SENA CENTRO DE ELECTRICIDAD Y AUTOMATIZACIÓN INDUSTRIAL REGIONAL VALLE GUIA MY SQL
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;
9
Versión: 01 Fecha: 30/01/2014 Código
SERVICIO NACIONAL DE APRENDIZAJE SENA CENTRO DE ELECTRICIDAD Y AUTOMATIZACIÓN INDUSTRIAL REGIONAL VALLE GUIA MY SQL
Versión: 01 Fecha: 30/01/2014 Código
Ingresamos información y utilizamos los diferentes comando para consultas utilizamos en la primera parte de la guía.
10