Está en la página 1de 20

IESTP. MISIONEROS MONFORTIANOS C.P.

COMPUTACION E INFORMATICA
UNIDAD DIDACTICA : LENGUAJE DE PROGRAMACION V

2011
Pg. 1 de 20

MySQL
MySQL es un sistema de gestin de bases de datos relacional, multihilo y multiusuario con ms de seis millones de instalaciones. MySQL AB desde enero de 2008 una subsidiaria de Sun Microsystems y sta a su vez de Oracle Corporation desde abril de 2009 desarrolla MySQL como software libre en un esquema de licenciamiento dual. Por un lado se ofrece bajo la GNU GPL para cualquier uso compatible con esta licencia, pero para aquellas empresas que quieran incorporarlo en productos privativos deben comprar a la empresa una licencia especfica que les permita este uso. Est desarrollado en su mayor parte en ANSI C. Al contrario de proyectos como Apache, donde el software es desarrollado por una comunidad pblica y los derechos de autor del cdigo estn en poder del autor individual, MySQL es patrocinado por una empresa privada, que posee el copyright de la mayor parte del cdigo. Esto es lo que posibilita el esquema de licenciamiento anteriormente mencionado. Adems de la venta de licencias privativas, la compaa ofrece soporte y servicios. Para sus operaciones contratan trabajadores alrededor del mundo que colaboran va Internet. MySQL AB fue fundado por David Axmark, Allan Larsson y Michael Widenius.

TIPOS DE DATOS 1. Tipos numricos: Existen tipos de datos numricos, que se pueden dividir en dos grandes grupos, los que incluyen valores decimales (coma flotante) y los que no. TinyInt: Es un nmero entero con o sin signo. Con signo el rango de valores vlidos va desde -128 a 127. Sin signo, el rango de valores es de 0 a 255 Bit Bool: Un nmero entero que puede ser 0 1 SmallInt: Nmero entero con o sin signo. Con signo el rango de valores va desde -32768 a 32767. Sin signo, el rango de valores es de 0 a 65535. MediumInt: Nmero entero con o sin signo. Con signo el rango de valores va desde -8.388.608 a 8.388.607. Sin signo el rango va desde 0 a 16777215. Integer, Int: Nmero entero con o sin signo. Con signo el rango de valores va desde -2147483648 a 2147483647. Sin signo el rango va desde 0 a 429.4967.295 BigInt: Nmero entero con o sin signo. Con signo el rango de valores va desde 9.223.372.036.854.775.808 a 9.223.372.036.854.775.807. Sin signo el rango va desde 0 a 18.446.744.073.709.551.615. Float: Nmero pequeo en coma flotante de precisin simple. Los valores vlidos van desde 3.402823466E+38 a -1.175494351E-38, 0 y desde 1.175494351E-38 a 3.402823466E+38.

LIC. ROSELL ALEJANDRO VALDERRAMA CHUMBES EMAIL : alevalx@hotmail.com

CICLO: V

IESTP. MISIONEROS MONFORTIANOS C.P. COMPUTACION E INFORMATICA


UNIDAD DIDACTICA : LENGUAJE DE PROGRAMACION V

2011
Pg. 2 de 20

Real, Double: Nmero en coma flotante de precisin doble. Los valores permitidos van desde 1.7976931348623157E+308 a -2.2250738585072014E-308, 0 y desde 2.2250738585072014E-308 a 1.7976931348623157E+308 2. Tipo Fecha: Al almacenar fechas, hay que tener en cuenta que Mysql no comprueba de una manera estricta si una fecha es vlida o no. Simplemente comprueba que el mes est entre 0 y 12 y que el da est entre 0 y 31. Date: Almacena una fecha. El rango de valores va desde el 1 de enero del 1001 al 31 de diciembre de 9999. El formato de almacenamiento es de: ao-mes-dia DateTime: Combinacin de fecha y hora. El rango de valores va desde el 1 de enero del 1001 a las 0 horas, 0 minutos y 0 segundos al 31 de diciembre del 9999 a las 23 horas, 59 minutos y 59 segundos. El formato de almacenamiento es de ao-mes-dia horas:minutos:segundos TimeStamp: Combinacin de fecha y hora. El rango va desde el 1 de enero de 1970 al ao 2037. Time: Almacena la hora. El rango de horas va desde -838 horas, 59 minutos y 59 segundos a 838, 59 minutos y 59 segundos. El formato de almacenamiento es de 'HH:MM:SS' Year: Almacena un ao. El rango de valores permitidos va desde el ao 1901 al ao 2155. El campo puede tener tamao dos o tamao 4 dependiendo de si queremos almacenar el ao con dos o cuatro dgitos. . 3. Tipos de Cadena de Caracteres: Char(n): almacena una cadena de longitud fija. La cadena podr contener desde 0 a 255 caracteres. VarChar(n): almacena una cadena de longitud variable. La cadena podr contener desde 0 a 255 caracteres. Dentro de los tipos de cadena se pueden distinguir otros dos subtipos, los de tipo Text y los de tipo BLOB (Binary large Object). La diferencia entre un tipo y otro es el tratamiento que reciben a la hora de realizar ordenamientos y comparaciones. Mientras que el tipo Text se ordena sin tener en cuenta las Maysculas y las minsculas, el tipo BLOB se ordena tenindolas en cuenta. Los tipos BLOB se utilizan para almacenar datos binarios como pueden ser ficheros. TinyText y TinyBlob: Columna con una longitud mxima de 255 caracteres. Blob y Text: un texto con un mximo de 65535 caracteres. MediumBlob y MediumText: un texto con un mximo de 16.777.215 caracteres. LongBlob y LongText: un texto con un mximo de caracteres 4.294.967.295. Hay que tener en cuenta que debido a los protocolos de comunicacin en Internet, los paquetes pueden tener un mximo de 16 Mb. Enum: campo que puede tener un nico valor de una lista que se especifica. El tipo Enum acepta hasta 65535 valores distintos Set: un campo que puede contener ninguno, uno varios valores de una lista. La lista puede tener un mximo de 64 valores.

LENGUAJE STRUCTURADO DE CONSULTAS SQL SQL (Structured Query Language) es el lenguaje estndar para consultar y manipular datos

1.- INTRODUCCION

1.1. Componentes del SQL


LIC. ROSELL ALEJANDRO VALDERRAMA CHUMBES EMAIL : alevalx@hotmail.com

CICLO: V

IESTP. MISIONEROS MONFORTIANOS C.P. COMPUTACION E INFORMATICA


UNIDAD DIDACTICA : LENGUAJE DE PROGRAMACION V

2011
Pg. 3 de 20

El lenguaje SQL est compuesto por comandos, clusulas, operadores y funciones de agregado. Estos elementos se combinan en las instrucciones para crear, actualizar y manipular las bases de datos. 1.2 Comandos Existen dos tipos de comandos SQL: Los DDL que permiten crear y definir nuevas bases de datos, campos e ndices. Los DML que permiten generar consultas para ordenar, filtrar y extraer datos de la base de datos.

Comandos DDL: Lenguaje de definicin de datos Comando Descripcin CREATE Utilizado para crear nuevas tablas, campos e ndices DROP Empleado para eliminar tablas e ndices Utilizado para modificar las tablas agregando campos o cambiando la definicin ALTER de los campos. Comandos DML:Lenguaje de manipulacin de datos Comando Descripcin Utilizado para consultar registros de la base de datos que satisfagan un criterio SELECT determinado INSERT Utilizado para cargar lotes de datos en la base de datos en una nica operacin. UPDATE Utilizado para modificar los valores de los campos y registros especificados DELETE Utilizado para eliminar registros de una tabla de una base de datos 1.3 Clusulas Las clusulas son condiciones de modificacin utilizadas para definir los datos que desea seleccionar o manipular. Descripcin Utilizada para especificar la tabla de la cual se van a seleccionar los registros Utilizada para especificar las condiciones que deben reunir los registros que se WHERE van a seleccionar GROUP BY Utilizada para separar los registros seleccionados en grupos especficos HAVING Utilizada para expresar la condicin que debe satisfacer cada grupo Utilizada para ordenar los registros seleccionados de acuerdo con un orden ORDER BY especfico Clusula FROM

1.4 Operadores Lgicos Uso Es el "y" lgico. Evalua dos condiciones y devuelve un valor de verdad slo si AND ambas son ciertas. Es el "o" lgico. Evala dos condiciones y devuelve un valor de verdar si alguna OR de las dos es cierta. NOT Negacin lgica. Devuelve el valor contrario de la expresin. 1.5 Operadores de Comparacin
LIC. ROSELL ALEJANDRO VALDERRAMA CHUMBES EMAIL : alevalx@hotmail.com

Operador

CICLO: V

IESTP. MISIONEROS MONFORTIANOS C.P. COMPUTACION E INFORMATICA


UNIDAD DIDACTICA : LENGUAJE DE PROGRAMACION V

2011
Pg. 4 de 20

Operador < > <> <= >= = BETWEEN LIKE In

Uso Menor que Mayor que Distinto de Menor Igual que Mayor Igual que Igual que Utilizado para especificar un intervalo de valores. Utilizado en la comparacin de un modelo Utilizado para especificar registros de una base de datos

1.6 Funciones de Agregado Las funciones de agregado se usan dentro de una clusula SELECT en grupos de registros para devolver un nico valor que se aplica a un grupo de registros.

Funcin AVG COUNT SUM MAX MIN

Descripcin Utilizada para calcular el promedio de los valores de un campo determinado Utilizada para devolver el nmero de registros de la seleccin Utilizada para devolver la suma de todos los valores de un campo determinado Utilizada para devolver el valor ms alto de un campo especificado Utilizada para devolver el valor ms bajo de un campo especificado

LIC. ROSELL ALEJANDRO VALDERRAMA CHUMBES EMAIL : alevalx@hotmail.com

CICLO: V

IESTP. MISIONEROS MONFORTIANOS C.P. COMPUTACION E INFORMATICA


UNIDAD DIDACTICA : LENGUAJE DE PROGRAMACION V

2011
Pg. 5 de 20

LENGUAJE DE DEFINICIN DE DATOS (DDL) CREATE DATABASE Crea una nueva base de datos y los archivos que se utilizan para almacenar la base de datos o adjunta una base de datos desde los archivos de una base de datos creada anteriormente. Sintaxis CREATE DATABASE nombreBaseDatos; Donde: nombreBaseDatos Es el nombre de la nueva base de datos, puede tener hasta 128 caracteres. CREATE TABLE Crea una nueva tabla. Sintaxis CREATE TABLE nombreTabla ( nombreColumna propiedades [restriccin], nombreColumna propiedades [restriccin], )

Donde: nombreTabla Es el nombre de la nueva tabla. Los nombres de tablas se deben ajustar a las reglas para los identificadores. La combinacin de propietario. nombreTabla debe ser nica en la base de datos. nombreTabla puede contener hasta 128 caracteres, excepto para los nombres de tablas temporales locales (nombres precedidos con un signo numrico simple (#)) que no pueden exceder de 116 caracteres. nombreColumna Es el nombre de una columna de la tabla. Los nombres de columna deben cumplir las reglas de los identificadores y deben ser nicos en la tabla. nombreColumna puede omitirse para las columnas creadas con un tipo de datos timestamp. De forma predeterminada, el nombre de una columna timestamp es timestamp si no se especifica nombreColumna.

LIC. ROSELL ALEJANDRO VALDERRAMA CHUMBES EMAIL : alevalx@hotmail.com

CICLO: V

IESTP. MISIONEROS MONFORTIANOS C.P. COMPUTACION E INFORMATICA


UNIDAD DIDACTICA : LENGUAJE DE PROGRAMACION V

2011
Pg. 6 de 20

ALTER TABLE En SQL, 'Alter' es un comando de la categora DDL (Data Definition Language) y como su nombre lo indica sirve para alterar objetos ya creados en un base de datos, su uso principal es la modificacin de tablas. Como en otros artculos de LinuxTotal.com.mx ensear su sintaxis a travs de varios ejemplos de uso. Se asume que ya tienes creada la base de datos y que sabes como usar el monitor (interface de lnea de comandos de MySQL), asi que esta gua es como un referencia rpida (cheat sheet) para cuando la requieras.

REFERENCIA DE USO DE 'ALTER TABLE' EN MYSQL SOBRE LA TABLA ALTER TABLE ejemplo ENGINE = InnoDB Cambiar el tipo de motor (engine) de la tabla 'ejemplo' ALTER TABLE personas RENAME usuarios Cambia el nomnbre de la tabla 'personas' a 'usuarios' ALTER TABLE ejemplo AUTO_INCREMENT=1000 En la tabla 'ejemplo' cualquiera que sea la columna que tenga 'AUTO_INCREMENT' en sus propiedades (solo puede haber una), los nuevos registros comenzarn a partir de '1000' o cualquier nmero indicado, no es posible utilizar un valor ya existente. ALTER TABLE ejemplo CONVERT TO CHARACTER SET latin1 La tabla 'ejemplo' ahora almacenar sus valores en base al juego de caracteres 'latin1' (iso-8859-1). OPERACIONES CON DROP ALTER TABLE ejemplo DROP COLUMN nombre Elimina la columna 'nombre' de la tabla 'ejemplo'. ALTER TABLE ejemplo DROP COLUMN nombre, DROP COLUMN paterno Elimina ms de una columna. ALTER TABLE ejemplo DROP COLUMN nombre, DROP COLUMN paterno Elimina ms de una columna. ALTER TABLE ejemplo DROP INDEX usuario Elimina el ndice 'usuario'. ALTER TABLE ejemplo DROP PRIMARY KEY Elimina la llave primaria de la tabla 'ejemplo' ALTER TABLE ejemplo DROP FOREIGN KEY id_usuario Elimina de la tabala 'ejemplo' la llave foranea 'id_usuario'. OPERACIONES CON CHANGE Y MODIFY ALTER TABLE ejemplo CHANGE monto cantidad FLOAT(8,2) Cambia el nombre de la columna 'monto' al nuevo nombre 'cantidad' con la definicin del tipo de datos. ALTER TABLE ejemplo CHANGE cantidad cantidad FLOAT(10,2) Cambia solo el tipo de datos de la columna, conservando el mismo nombre. ALTER TABLE ejemplo MODIFY cantidad FLOAT(10,2) Cambia solo el tipo de datos de la columna, conservando el mismo nombre. (Igual que el anterior) ALTER TABLE ejemplo MODIFY cantidad FLOAT(6,2) NOT NULL Cambia el tipo de datos de la columna 'cantidad' y especifica que no admite nulos.
LIC. ROSELL ALEJANDRO VALDERRAMA CHUMBES EMAIL : alevalx@hotmail.com

CICLO: V

IESTP. MISIONEROS MONFORTIANOS C.P. COMPUTACION E INFORMATICA


UNIDAD DIDACTICA : LENGUAJE DE PROGRAMACION V

2011
Pg. 7 de 20

ALTER TABLE ejemplo MODIFY paterno VARCHAR(30) Modifica el tamao de la columna 'paterno'. ALTER TABLE ejemplo MODIFY correo CONVERT TO CHARACTER SET utf8 Es posible convertir solo una columna, en este caso 'correo' a un juego de caracteres distinto al de todo el resto de la tabla. OPERACIONES CON ADD ALTER TABLE ejemplo ADD fecha DATE Aade una columna llamada 'fecha' del tipo 'DATE' al final de todas las dems existentes. ALTER TABLE ejemplo ADD INDEX(categoria) Aade un ndice a la columna 'categoria'. ALTER TABLE ejemplo ADD INDEX(categoria), ADD PRIMARY KEY(clave) Aade un ndice a la columna 'categoria' y adems crea la llave primaria en la columna 'clave'. ALTER TABLE ejemplo ADD UNIQUE(email) Aade a la columna 'email' un ndice del tipo nico, no puede haber dos iguales. ALTER TABLE ejemplo ADD consecutivo BIGINT AUTO_INCREMENT, ADD INDEX(consecutivo) Aade la columna 'consecutivo' con la caracterstica de auto incremento y adems genera un ndice sobre la misma. ALTER TABLE ejemplo ADD materno VARCHAR(20) AFTER paterno Aade la columna 'materno' despus de la columna 'paterno'. ALTER TABLE ejemplo ADD id INT FIRST Aade la columna 'id' en primer lugar con respecto a las existentes. ALTER TABLE usuarios ADD FOREIGN KEY(id) REFERENCES entradas(id_user) Aade un 'Foreign key' en la columna 'id' de la tabla 'usuarios' que apunta a la columna 'id_user' de la tabla 'entradas'.

CREACION DE CLAVES PRIMARIAS Y FOREANAS ALTER TABLE Modifica una definicin de tabla al alterar, agregar o quitar columnas y restricciones, o al deshabilitar o habilitar restricciones y desencadenadores. Sintaxis ALTER TABLE nombre de la tabla [ADD PRIMARY KEY <Lista de columnas> ] [ADD FOREIGN KEY <Lista de columnas> REFERENCES NombreTablaReferencia Donde: Nombre de la tabla Es el nombre de la tabla en la que se est definiendo la restriccin PRIMARYKEY o FORENKEY . Lista de columnas

LIC. ROSELL ALEJANDRO VALDERRAMA CHUMBES EMAIL : alevalx@hotmail.com

CICLO: V

IESTP. MISIONEROS MONFORTIANOS C.P. COMPUTACION E INFORMATICA


UNIDAD DIDACTICA : LENGUAJE DE PROGRAMACION V

2011
Pg. 8 de 20

Es la columna o lista de columnas separadas por comas, que forman la clave primaria o a la referencia de restriccin de la clave fornea. NombreTablaReferencia Es el nombre de la tabla a la que hace referencia la restriccin FOREN KEY.

DROP DATABASE DROP {DATABASE | SCHEMA} [IF EXISTS] db_name DROP DATABASE borrar todas las tablas en la base de datos y borrar la base de datos. Sea muy cuidadoso con este comando! Para usar DROP DATABASE, necesita el permiso DROP en la base de datos. IF EXISTS se usa para evitar un error si la base de datos no existe.
DROP TABLE Con DROP TABLE podemos borrar tablas en MySQL. La sintaxis para borrar tablas en MySQL es muy simple, podes verla aqu: DROP TABLE [IF EXISTS ] tabla [tabla1, tabla2,..] Como puedes observar se puede borrar ms de una tabla de una sola vez, tan solo hemos de separar el nombre de cada tabla por comas. Si queremos, tambin podemos usar el IF EXISTS en la consulta para borrar tablas, sirve para evitar que MySQL de error diciendo que esa tabla no existe en nuestra base de datos. Ejemplo:

Por ejemplo para borrar la tabla vehiculo deberamos de hacer este script: DROP TABLE IF EXISTS vehiculo;

LENGUAJE DE MANIPULACIN DE DATOS (DML) INRESO DE DATOS INSERT INTO Agrega una nueva fila a una tabla o vista. Sintaxis INSERT INTO nombreTabla < Lista de columna> VALUES ( Lista de datos)

LIC. ROSELL ALEJANDRO VALDERRAMA CHUMBES EMAIL : alevalx@hotmail.com

CICLO: V

IESTP. MISIONEROS MONFORTIANOS C.P. COMPUTACION E INFORMATICA


UNIDAD DIDACTICA : LENGUAJE DE PROGRAMACION V

2011
Pg. 9 de 20

Donde: nombreTabla Es el nombre de la tabla donde se insertan los datos. Lista de columna Especifica las columnas donde se insertarn los datos. Lista de datos Especifica los datos que se insertarn en las columnas. ACTUALIZAR DATOS UPDATE Cambia datos de una tabla. Sintaxis UPDATE nombreTabla SET nombreColumna = expresin[,...n] WHERE condicin Donde: nombreTabla Especifica la tabla que queremos actualizar. nombreColumna Especifica la columna que queremos actualizar su valor. expresin Representa el nuevo valor que tomar la columna. [,n] Indica que puede actualizar varias columnas en una misma instruccin Condicin Especifica la condicin que deben cumplir las filas que se van a actualizar.

ELIMINAR DATOS DELETE FROM


LIC. ROSELL ALEJANDRO VALDERRAMA CHUMBES EMAIL : alevalx@hotmail.com

CICLO: V

IESTP. MISIONEROS MONFORTIANOS C.P. COMPUTACION E INFORMATICA


UNIDAD DIDACTICA : LENGUAJE DE PROGRAMACION V

2011
Pg. 10 de 20

Quita filas de una tabla. Sintaxis DELETE [FROM ] nombreTabla [WHERE <condicin> ] Donde: nombreTabla Especifica la tabla donde se eliminaran los datos. condicin Indica la condicin que deben cumplir las filas que sern eliminadas. Ob. Si no incluye la clusula WHERE se eliminarn todas las filas de la tabla. CONSULTAR DATOS DE LA BASE DE DATOS SELECT Obtiene filas de la base de datos y permite realizar la seleccin de una o varias filas o columnas de una o varias tablas. Sintaxis: SELECT lista de columnas FROM nombreTabla WHERE condicin Donde: Lista de columnas Especifica las columnas que deseamos consultar, estas deben estar separadas por comas. nombreTabla Indica la tabla que queremos consultar. condicin Especifica la condicin que deben cumplir las filas que queremos consultar.

LIC. ROSELL ALEJANDRO VALDERRAMA CHUMBES EMAIL : alevalx@hotmail.com

CICLO: V

IESTP. MISIONEROS MONFORTIANOS C.P. COMPUTACION E INFORMATICA


UNIDAD DIDACTICA : LENGUAJE DE PROGRAMACION V

2011
Pg. 11 de 20

PROYECTO CONTROL DE PEDIDOS ONLINE


1. Preparar la estructura en un esquema: Paso de las entidades y relaciones a tablas, Diccionario de datos. Nombre de la base de datos Tienda. Nombre de la tabla: Cliente
NOMBRE CAMPO idcliente TIPO DE DATO CHAR LONGITUD 6 NULO NO DESCRIPCIN Cdigo de identificacin del cliente (C00001, C00002,,C0000n) Nombres del cliente Apellido paterno del cliente Apellido materno del cliente Identificacin del cliente Numero de contribuyente Domicilio del cliente Nmero telefnico (fijo o celular) del cliente Correo electrnico del cliente Clave secreta Breve descripcin de la actividad del cliente

nombres apaterno amaterno dni ruc direccion telefono email clave descripcion Primary Key Foreng Key

VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR MEDIUMTEXT Idcliente

30 30 30 8 11 50 10 80 20

SI SI SI SI SI SI SI SI No SI

Nombre de la tabla: Articulo


NOMBRE CAMPO Idarticulo TIPO DE DATO CHAR LONGITUD 6 NULO NO DESCRIPCIN Cdigo de identificacin del artculo (A00001, A00002,,A0000n) Nombre del artculo Precio unitario del artculo Cantidad o saldo del artculo Breve descripcin del artculo Campo forneo de la tabla categora

nomarticulo punitario stock Descripcion Idcategoria Primary Key Foreng Key

VARCHAR DECIMAL INT MEDIUMTEXT CHAR Idarticulo Idcategoria

50 7,2

SI SI SI SI NO

Nombre de la tabla: Categoria


LIC. ROSELL ALEJANDRO VALDERRAMA CHUMBES EMAIL : alevalx@hotmail.com

CICLO: V

IESTP. MISIONEROS MONFORTIANOS C.P. COMPUTACION E INFORMATICA


UNIDAD DIDACTICA : LENGUAJE DE PROGRAMACION V

2011
Pg. 12 de 20

NOMBRE CAMPO Idcategoria

TIPO DE DATO CHAR

LONGITUD 6

NULO NO

DESCRIPCIN Cdigo de identificacin de la categora (Dos primeros caracteres del nombre seguido de cuatro nmeros) ej. IMPRESORA LASER cdigo IM0001 Nombre de la categora

nomcatego Primary Key Foreng Key

VARCHAR Idcategoria

40

SI

Nombre de la tabla: Pedido


NOMBRE CAMPO Numpedido Fechapedido Stotal igv total estado Idcliente Primary Key Foreng Key TIPO DE DATO INT DATE DECIMAL DECIMAL DECIMAL CHAR CHAR Numero_pedido Idcliente LONGITUD 7 NULO NO SI SI SI SI SI NO DESCRIPCIN Nmero de identificacin del pedido con autoincremento Fecha del pedido Subtotal de los artculos pedidos Impuesto General a las ventas Total de los artculos pedidos Estado del pedido Campo forneo de la tabla cliente

7,2 7,2 7,2 1 6

Nombre de la tabla: Detalle


NOMBRE CAMPO Numpedido Precio Cantidad Importe Idarticulo Primary Key Foreng Key TIPO DE DATO INT DECIMAL INT DECIMAL CHAR LONGITUD 7 7,2 7 7,2 7 NULO NO SI SI SI NO DESCRIPCIN Nmero de identificacin del pedido Campo forneo Precio nico del articulo Cantidad de los artculos Importe del pedido Campo forneo de la tabla articulo

Numero_pedido, idarticulo
CICLO: V

LIC. ROSELL ALEJANDRO VALDERRAMA CHUMBES EMAIL : alevalx@hotmail.com

IESTP. MISIONEROS MONFORTIANOS C.P. COMPUTACION E INFORMATICA


UNIDAD DIDACTICA : LENGUAJE DE PROGRAMACION V

2011
Pg. 13 de 20

2. Datos

Tabla Cliente

LIC. ROSELL ALEJANDRO VALDERRAMA CHUMBES EMAIL : alevalx@hotmail.com

CICLO: V

IESTP. MISIONEROS MONFORTIANOS C.P. COMPUTACION E INFORMATICA


UNIDAD DIDACTICA : LENGUAJE DE PROGRAMACION V

2011
Pg. 14 de 20

Tabla Artculo

Tabla Categoria

LIC. ROSELL ALEJANDRO VALDERRAMA CHUMBES EMAIL : alevalx@hotmail.com

CICLO: V

IESTP. MISIONEROS MONFORTIANOS C.P. COMPUTACION E INFORMATICA


UNIDAD DIDACTICA : LENGUAJE DE PROGRAMACION V

2011
Pg. 15 de 20

PRACTICA DIRIGIDA Nro 01 Use El IDE PhpMyAdmin de MYSQL Segn el esquema y de los datos del proyecto control de pedidos online realizar las siguientes:
1. Crear una base de datos y activar con USE

CREATE DATABASE tienda; USE tienda; Ejecutar Consulta o presionar F5

2. Crear la tabla Categoria: CREATE TABLE Categoria ( idcategoria CHAR(6) NOT NULL, nomcatego VARCHAR(40) NULL );

3. Creacin de clave primaria de la tabla Categora

ALTER TABLE Categoria ADD PRIMARY KEY (idcategoria);

4. Crear la tabla Artculo: CREATE TABLE Articulo ( idarticulo CHAR(6) NOT NULL, nomarticulo VARCHAR(50) NULL, punitario DECIMAL(7,2) NULL, stock INTEGER(5) NULL, idcategoria CHAR(6) NOT NULL, descripcion MEDIUMTEXT NULL ); 5. Creacin de clave primaria de la tabla Artculo ALTER TABLE Articulo ADD PRIMARY KEY (idarticulo);
LIC. ROSELL ALEJANDRO VALDERRAMA CHUMBES EMAIL : alevalx@hotmail.com

CICLO: V

IESTP. MISIONEROS MONFORTIANOS C.P. COMPUTACION E INFORMATICA


UNIDAD DIDACTICA : LENGUAJE DE PROGRAMACION V

2011
Pg. 16 de 20

6. Creacin de clave fornea ALTER TABLE Articulo ADD FOREIGN KEY (idcategoria) REFERENCES Categoria (idcategoria); 7. Ingresar datos a la tabla Categora INSERT INTO `categoria` VALUES ('IM0001','IMPRESORA LASER'); INSERT INTO `categoria` VALUES ('IM0002','IMPRESORA INJECCION A TINTA'); INSERT INTO `categoria` VALUES ('IM0003','IMPRESORA MATRICIAL'); INSERT INTO `categoria` VALUES ('MO0001','MONITOR PANTALLA PLANA'); INSERT INTO `categoria` VALUES ('PA0001','PALM'); INSERT INTO `categoria` VALUES ('PA0002','NOTEPAD'); INSERT INTO `categoria` VALUES ('PC0001','COMPUTADORA PERSONAL'); INSERT INTO `categoria` VALUES ('PC0002','COMPUTADORA PORTATIL'); 8. Ingresar datos a la tabla Artculo INSERT INTO `articulo` VALUES ('000001','MONITOR SAMSUNG 7G',750.5,45,'MO0001','MONITOR ALTA RESOLUCION 17 PULG'); INSERT INTO `articulo` VALUES ('000002','PC PENTIUM HP PIV',1567.45,35,'PC0001','1 GHZ FSB,SCSI INT,LAN INT,4MB VI'); INSERT INTO `articulo` VALUES ('000003','PC Excalibur PIII',1650.6,23,'PC0001','COMPUTADORA XKALIBUR VT8753'); INSERT INTO `articulo' VALUES ('000004','PORTATIL Intel Biostar PIII',1690.45,78,'PC0002','PORTATIL BIOSTAR INTEL 845 SONIDO'); INSERT INTO `articulo` VALUES ('000005','PALMTOP',1400.1,60,'PA0001','PALMTOP ERGUS BIOSTAR'); INSERT INTO `articulo` VALUES ('000006','NOTEPAD',2070.2,30,'PA0002','NOTEPAD SUPERCELL'); INSERT INTO `articulo` VALUES ('000007','IMPRESORA HP',600,25,'IM0001','IMPRESORA LASER HP 3920'); INSERT INTO `articulo` VALUES ('000008','IMPRESORA CITIZEN LASER',400,15,'IM0001','MULTIFUNCION DE ALTA VELOCIDAD'); INSERT INTO `articulo` VALUES ('000009','IMPRESORA EPSON 7831',400,20,'IM0002','IMPRESORA DE ALTA VELOCIDAD FUCION TERMICA'); 9. Actualizar los datos de la tabla Artculo UPDATE Artculo SET punitario = punitario + 15 WHERE idCategoria = PALM 10. Eliminar los datos de la tabla Artculo DELETE FROM Artculo WHERE Idarticulo = 00000005
LIC. ROSELL ALEJANDRO VALDERRAMA CHUMBES EMAIL : alevalx@hotmail.com

CICLO: V

IESTP. MISIONEROS MONFORTIANOS C.P. COMPUTACION E INFORMATICA


UNIDAD DIDACTICA : LENGUAJE DE PROGRAMACION V

2011
Pg. 17 de 20

11. Consultar el contenido de la tabla Cliente SELECT * FROM Cliente

ACTIVIDAD Crear las tablas que faltan de la base de datos Tienda (pedido, detalle, cliente) con sus respectivas llaves primarias y forneas.

LIC. ROSELL ALEJANDRO VALDERRAMA CHUMBES EMAIL : alevalx@hotmail.com

CICLO: V

IESTP. MISIONEROS MONFORTIANOS C.P. COMPUTACION E INFORMATICA


UNIDAD DIDACTICA : LENGUAJE DE PROGRAMACION V

2011
Pg. 18 de 20

PRACTICA DIRIGIDA Nro 02 DE CONSULTAS SQL Realice las siguientes consultas: 1. La siguiente sentencia SQL extrae todos los campos y registros de la tabla Artculos. Select * From articulo; 2. Sentencia que presenta los campos cdigo del artculo, nombre del articulo y stock valorado (precio*stock). Select idarticulo,nombre,punitario * stock From articulo; 3. Presenta los campos cdigo de artculo, nombre, y la utilidad por articulo (precio unitario precio de costo) Select idarticulo, nombre, punitario pcosto From Articulo; 4. Presenta los campos cdigo de artculo, nombre del artculo, precio unitario y IGV (IGV es un campo calculado). Select idarticulo, nombre, punitario, IGV=punitario*0.19 From Articulo; Clausula WHERE 5. Presenta los campos cdigo de artculo, nombre del artculo, precio unitario pertenecientes a la categora monitores. Select idarticulo, nombre, punitario From Articulo Where idcategoria = MON001 6. Presenta los campos cdigo del articulo, nombre del articulo, stock, de los artculos cuyo stock sea menor igual que 10 unidades. Select idarticulo, nombre, stock From Articulo Where stock <= 10; 7. Presente los campos cdigo de artculo, nombre del artculo, precio unitario pertenecientes a la categora impresoras pero con un precio unitario menor igual a 500. Select idarticulo, nombre, punitario From Articulo Where idcategoria = IMP001 AND punitario < 500; BETWEEN 8. Presenta los campos cdigo de artculo, nombre del artculo, precio unitario de los artculos cuyos precios sean mayores que 400 y menores que 1000. Select idarticulo, nombre, punitario From Articulo Where punitario BETWEEN 400 AND 1000;

IN
LIC. ROSELL ALEJANDRO VALDERRAMA CHUMBES EMAIL : alevalx@hotmail.com

CICLO: V

IESTP. MISIONEROS MONFORTIANOS C.P. COMPUTACION E INFORMATICA


UNIDAD DIDACTICA : LENGUAJE DE PROGRAMACION V

2011
Pg. 19 de 20

9. Presenta los campos cdigo de artculo, nombre del articulo y cdigo de la categora pertenecientes a las categoras monitores o impresoras. Select idarticulo, nombre, idcategoria From Articulo Where idcategoria IN (MON001, IMP001); LIKE 10. Presenta los campos cdigo de artculo, nombre del artculo y cdigo de la categora de los registros que en el nombre tenga la letra n en el tercer lugar. Select idarticulo, nombre, idcategoria From Articulo Where nombre LIKE __n%; ORDER BY 11. Presenta los campos cdigo de articulo, nombre del articulo y precio de costo ordenados por el precio de costo en forma descendente (DESC). Select idarticulo, nombre, pcosto From Articulo ORDER BY pcosto DESC; SUMARIAS 12. Presenta la suma de todos los articulos de la tabla articulos. Select SUM(stock) From articulo; 13. Presenta cuantos monitores existen en el stock de la tabla articulos . Select SUM(stock) From articulo WHERE idcategoria=MON001; 14. Presenta el stock valorado de la tabla articulos. Select total=SUM(stock * pcosto) From articulo;

15. Presenta el precio promedio de los monitores. Select AVG(punitario) From articulo WHERE idcategoria=MON001;

16. Presenta el precio mnimo de los monitores. Select MIN(punitario) From articulo WHERE idcategoria=MON001;

17. Presenta el precio mximo de los monitores. Select MAX(punitario) From articulo WHERE idcategoria=MON001; 18. Presenta cuantos tipos de articulos existen. Select COUNT(idarticulo) From articulo;
LIC. ROSELL ALEJANDRO VALDERRAMA CHUMBES EMAIL : alevalx@hotmail.com

CICLO: V

IESTP. MISIONEROS MONFORTIANOS C.P. COMPUTACION E INFORMATICA


UNIDAD DIDACTICA : LENGUAJE DE PROGRAMACION V

2011
Pg. 20 de 20

GROUP BY 19. Presenta cuantas unidades existen por cada categora. Select idcategoria, SUM (stock) From articulo GROUP BY idcategoria; HAVING 20. Presenta cuantas unidades existen por cada categora pero sean mayores de 30. Select idcategoria, SUM (stock) From articulo GROUP BY idcategoria HAVING SUM(stock) > 30; 21. Presenta el numero de pedidos con cdigo del clientes y el nombre del cliente. Select pedido.idfactura, pedido.idcliente, Cliente.nombres FROM pedido, Cliente WHERE Cliente.idcliente = pedido.idcliente;

LIC. ROSELL ALEJANDRO VALDERRAMA CHUMBES EMAIL : alevalx@hotmail.com

CICLO: V