domingo, 17 de agosto de 2008

Lenguage de Manipulación de Datos (LMD) Parte 2 Tutorial Bases de Datos

Continuando con el tutorial de bases de datos (ver la primera parte) es esta segunda parte introduciremos registros a nuestras bases de datos para luego trabajar manipulando esos registros con los archi conocidos comandos SQL INSERT, SELECT, UPDATE y DELETE..

Paso 1: INSERT (estos datos son de demostracción ).
ingresaremos 10 registros en la tabla FABRICANTES.

INSERT INTO `FABRICANTES`
(CODIGO, NOMBRE)
VALUES
(1, 'Isumos Nacionales y cía.'),
(2, 'HP Computer'),
(3, 'Dell Computer Inc.'),
(4, 'Acer internacional'),
(5, 'Genius'),
(6, 'PC Tronix'),
(7, 'Sony'),
(8, 'Kensignton'),
(9, 'Logitech'),
(10, 'Importadora Nacional');

PASO 2 INSERT a la tabla Articulos

INSERT INTO `ARTICULOS`
(CODIGOART, NOMBRE, PRECIO, CODFRABICANTE)
VALUES
(100, 'Mouse USB', 4700, 5),
(101, 'Notebook DELL', 490000, 3),
(102, 'Torre 50 DVD +R', 7900, 1),
(103, 'Impresora Laser Color', 157000, 2),
(104, 'Base para notebook', 26990, 8),
(105, 'Computador Ensamblado PIV', 199990, 10),
(106, 'Teclado Multimedia PS/2', 4990, 6),
(107, 'Notebook Aspire 5610', 520000, 4),
(108, 'Webcam Sony', 13990, 7),
(109, 'Audifonos y microfono Gamer', 23000, 9),
(110, 'lampara USB notebook', 10000, 5),
(111, 'mouse pad', 990, 10),
(112, 'Key PAD', 2990, 1);

Ahora si como ya podemos registros podremos comenzar a trabajar con el LMD.
Comenzando con los Ejercicios

1.- Obtener los nombres de los productos de la tabla artículos.

Sentencia SQL:
select NOMBRE from ARTICULOS;
Resultado de la consulta

2.- Obtener los nombres y los precios de los productos de la tabla artículos.

Sentencia SQL:
select NOMBRE, PRECIO from ARTICULOS;
Resultado de la consulta

3.- Obtener los nombres y los precios de los productos de la tabla artículos cuyos precios sean mayores a $15000.

Sentencia SQL:
select NOMBRE, PRECIO from ARTICULOS where Precio > 15000;
Resultado de la consulta


4.- Obtener los nombres y los precios de los productos de la tabla artículos cuyos precios esten entre $5000 y $35000 ambas cantidades incluidas. Realizar 2 Consultas una utilizando AND y la otra utilizando BETWEEN.

Sentencia SQL:
select NOMBRE, PRECIO from ARTICULOS where Precio >= 5000 and Precio <=35000;
Resultado de la consulta

Insertemos 2 nuevos registros con los precios mencionados para que al ejecutar el Select veamos si realmente considera los valores $5000 y $35000 (:-D .... jeje).

INSERT INTO `ARTICULOS`
(CODIGOART, NOMBRE, PRECIO, CODFRABICANTE)
VALUES
(112, 'Limpiador de Pantallas', 5000, 8),
(1113, 'Mochila de Notebook', 35000, 6);


La segunda sentencia sería:
select NOMBRE, PRECIO from ARTICULOS where Precio BETWEEN 5000 and 35000;

(Esto devolverá el mismo resultado anterior.... compruébenlo)

5.- Obtener los nombres y los precios de los productos de la tabla artículos aumentando los precios en un 33%.

Sentencia SQL:
select NOMBRE, PRECIO + (PRECIO * 0.33) from ARTICULOS;
Resultado de la consulta

Ahora a tomar la calculadora y comprobar el aumento de los precios en un 33%.

Antes de seguir con el siguiente ejemplo explicare algo en pocas lineas, si nos fijamos en el ejemplo 4 la tabla correspondiente a precios dice ADD como encabezado, en otros motores de bases de datos como mysql pondría un encabezado como este PRECIO + (PRECIO * 0.33) o tal vez en SQL server diría default, aclarando el concepto es que el motor de bases de datos asume un nombre por defecto que obviamente ya no es PRECIO.

Para mostrar un nombre personalizado debemos asignarle un nombre a la operación agregando la palabra AS en el select. (En el ejemplo pondré el nombre de aumentar_porcentaje al encabezado).
SELECT NOMBRE, PRECIO + (PRECIO * 0.33) AS aumentar_porcentaje from ARTICULOS;


6.- Seleccionar el precio (promedio) de todos los artículos.
Aquí entraremos a otros conceptos de SQL ya que existen diversas maneras para sacar el promedio considero que la mejor opcion es utilizar la palabra AVERANGE (Devuelve el valor medio de una columna) al encabezado de la columna le pondremos promedio.
Sentencia SQL:
select AVG(PRECIO) as promedio from ARTICULOS;
Resultado de la consulta

(Personalmente desconocida esta función sql... agradezco a mis colegas por su aporte)

7.- Seleccionar el precio (promedio) de todos los artículos cuyo codigo de fabricante sea 2.
Sentencia SQL:
select AVG(PRECIO) as promedio_ID2 from ARTICULOS where CODFRABICANTES = 2;
Resultado de la consulta
Nota: para los que siguen el tutorial desde la creación de las tablas, me acabo de dar cuenta que en lugar de escribir CODFABRICANTE escribí CODFRABICANTE por lo que seguiré de esa forma en las consultas)

8.- Obtener el número de artículos cuyo precio sea menor o igual a $22000.
Sentencia SQL:
SELECT COUNT(*) as total_articulos FROM articulos where precio <= 22000;
Resultado de la consulta

COUNT (*) función que devuelve el número de filas seleccionadas en una consulta.


9.- Obtener el nombre y precio de los artículos cuyo precio sea mayor o igual a $22000 y ordenararlos descendente por precio, y luego ascendentemente por nombre .

Sentencia SQL:
SELECT NOMBRE, PRECIO from articulos where precio >=22000 order by PRECIO DESC;
Resultado de la consulta

Precios ordenados de forma descendente
SELECT NOMBRE, PRECIO from articulos where precio >=22000 order by NOMBRE ASC;
Nombres ordenados de forma Ascendente

10.- Obtener un listado completo de artículos, incluyendo por cada articulo todos los datos del artículo (todas las columnas) y de su fabricante.
Sentencia SQL:
SELECT art.CODIGOART, art.NOMBRE, art.PRECIO, art.CODFRABICANTE, fab.CODIGO, fab.NOMBRE from ARTICULOS art, fabricantes fab where art.CODFRABICANTE = fab.CODIGO;

Nota: En esta sentencia he asignado los alias art y fab esto con el fin de evitar escribir los nombres completos de las tablas para cada campo. (ejemplo articulos.NOMBRE = art.NOMBRE)
Resultado de la consulta

NOTA: Esta consulta nos devuelve toda la información almacenada en nuestras tablas aunque existe un pero.... (:-O)

Poseemos 2 campos llamado Nombre el de Fabricantes.Nombre y el Articulos.Nombre si ampliamos la imagen veremos a se le asigno automáticamente el encabezado NOMBRE1 a los Fabricantes, si yo implemento esto tal cual en PHP o otro lenguaje de programación tal vez se nos genere un error por que el lenguaje no discriminara la diferencia de los campos, para ello crearmos un alias a ese nombre de campo.

Sentencia SQL:
SELECT art.CODIGOART, art.NOMBRE, art.PRECIO, art.CODFRABICANTE, fab.CODIGO, fab.NOMBRE Nombre_Fabricante from ARTICULOS art, fabricantes fab where art.CODFRABICANTE = fab.CODIGO;

Ahora nuestro campo Nombre.Fabricante se mostrara como Nombre_Fabricante.

Clic sobre imagen para ampliar

Ahora si he concluido esta segunda parte del tutorial ... espero les sea de ayuda... publiquen sus comentarios.

Próximamente la tercera parte con 10 ejemplos más.

ir a tercera parte (ánimo si no es tan complicado)

No hay comentarios: