94
INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN Cuaderno de Prácticas de Taller de Base de Datos. Página 1 Ingeniería en Sistemas Computacionales DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ Materia Clave Periodo Valor Práctica Taller de Base de Datos SCA - 1025 Ago 13 – Ene 14 5% 01 Unidad Tema Nombre Práctica Duración 01 1.2 Instalación del DBMS Instalación del Sistema Gestor de Base de Datos Mysql utilizando el programa Appserv 25 minutos Recursos educativos Lugar Hardware Software Proyector, Apuntes Laboratorio de computo Pc por alumno SGBD: Mysql 1. INTRODUCCION En esta práctica utilizaremos el Software Appserv, disponible en la siguiente dirección www.appservnetwork.com la cual nos permitirá instalar el SGBD Mysql. 2. OBJETIVO Instalar paso a paso el SGBD que ha de usarse durante el curso, en la plataforma Windows. Hora de inicio:________________ Hora termino: _________________ Fecha: ________________________________________ Nombre del alumno: __________________________________________________ Grupo: _________ Calificación: ___________ Docente: MTI José Hernández Rodríguez Firma:

Cuaderno de Prácticas

Embed Size (px)

Citation preview

Page 1: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 1

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

Materia Clave Periodo Valor Práctica

Taller de Base de Datos

SCA - 1025

Ago 13 – Ene 14 5% 01

Unidad Tema Nombre Práctica Duración

01

1.2 Instalación del DBMS

Instalación del Sistema Gestor de Base de Datos

Mysql utilizando el programa Appserv 25 minutos

Recursos educativos Lugar Hardware Software

Proyector, Apuntes Laboratorio de

computo Pc por alumno SGBD: Mysql

1. INTRODUCCION

En esta práctica utilizaremos el Software Appserv, disponible en la siguiente dirección www.appservnetwork.com la cual nos

permitirá instalar el SGBD Mysql.

2. OBJETIVO

Instalar paso a paso el SGBD que ha de usarse durante el curso, en la plataforma Windows.

Hora de inicio:________________ Hora termino: _________________ Fecha: ________________________________________

Nombre del alumno: __________________________________________________ Grupo: _________ Calificación: ___________

Docente: MTI José Hernández Rodríguez Firma:

Page 2: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 2

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

3. Fundamento

¿Qué es AppServ? Es un software que permite la instalación en nuestro entorno Windows, de los siguientes paquetes:

Apache Web Server (versión 2.2.3)

Lenguaje PHP (versión 5 o 4)

Base de datos MySQL (versión 5.0.24)

Manejador de base de datos phpMyAdmin (versión 2.9.0.2)

Esto es lo que incluye el paquete AppServ 2.5.7, es obvio pero vale la pena recordar que como esta formado por 4 paquetes

(apache, php, Mysql, phpMyAdmin), cada uno sigue lanzando nuevas versiones, que podemos instalar por separado o esperar

la próxima versión de AppServ.

Como instalar AppServ

1) Damos doble click en el icono del instalado. Aparece la

imagen que vemos debajo, recuerda que la versión puede

ser más nueva cuando tú intentes ;). Debemos dar,

siguiente (next).

2) Aparece el acuerdo de licencia, ahí debemos dar

conformidad (I Agree)

3) En este punto, debemos elegir en cual de nuestros

discos duros y en que carpeta vamos a instalar el AppServ,

por defecto es c:\AppServ, como muestra la imagen lo

dejemos así, y le damos siguiente (Next)

Page 3: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 3

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

4) En este punto debemos elegir los componentes que

vamos a instalar, como ves aparecen marcados los cuatro

elementos disponibles (apache, mysql, php, phpmyadmin)

si bien puedes desmarcar alguno, es mejor instalar todos

para tener completo tu equipo de testeo y desarrollo Web,

le damos siguiente (Next)

5) En este punto debes indicar el nombre del servidor y el

email del administrador del sistema, ponemos localhost y

email [email protected], respectivamente, el puerto 80.

Clic en siguiente

6) Configuración MySQL, en este punto debemos prestar

atención, ya que debemos indicar el Password, para el

usuario principal de la base de datos, lo escribimos 2 veces

!! Activamos Enable Innodb, ya que de lo contrario no

podemos utilizar este tipo de tablas que serán de uso en

este semestre.

Por tanto el usuario será root, que es por y tu Contraseña

que acabas de escribir, eso lo usaras para abrir la base desde

tus programas PHP o cuando entre al MYSQL, por eso es

importante recordar. Le damos siguiente (Next)

7) Para culminar la instalación, como indica la imagen,

podemos elegir si al finalizar ya comenzara a funcionar el

Server Apache y el servidor de base de datos MySQL, lo

dejamos marcado y le damos finalizar (Finish), listo hemos

terminado.

Page 4: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 4

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

4. Producto.

En este punto si vas a tu navegador, puedes poner, http://localhost y debe mostrarse tal como muestra la imagen. Salvo

las versiones que el tuyo puede ser mas nuevo.

En la configuración Standard usando c:\AppServ la ubicación que equivale a http://localhost es c:\AppServ\www por

tanto si creas una carpeta pruebas dentro de www, quedand asi: c:\AppServ\www\pruebas, y dentro un archivo llamados

test.php con el siguiente contenido:

<?php

echo phpinfo();

?>

Este archivo se ejecutara en tu navegador llamando lo así:

http://localhost/pruebas/test.php

5. Procedimiento

DESARROLLO DE LA PRÁCTICA

1. Instale el producto paso a paso

2. Verifique que haya quedado instalado el programa tal como lo mostró la figura anterior

3. Realice el pequeño código de php en el block de notas y nómbrelo como test.php

4. Guárdelo en la siguiente ubicación c:\Appserv\www

5. Ejecute el archivo en el navegador de paginas web y el escriba en la barra de dirección: http:localhost/test.php

CUESTIONARIO. Escriba las respuestas a cada una de las siguientes preguntas.

1. ¿Qué es un SGBD?

2. ¿Por qué tiene que activar la opción Enabled InooDB, durante la instalación de paquete Appserv?

Page 5: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 5

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

3. Si no se activa la opción innobd durante la instalación, escriba la secuencia de instrucciones para activarla, (sin desinstalar el

programa).

4. ¿Qué crees que se podrá realizar en este programa?

6. Conclusiones

Page 6: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 6

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

Materia Clave Periodo Valor Práctica

Taller de Base de Datos

SCA - 1025

Ago 13 – Ene 14 5% 02

Unidad Tema Nombre Práctica Duración

01

1.2 Instalación del DBMS

Modos de acceso del Sistema Gestor de Base de

Datos Mysql 25 minutos

Recursos educativos Lugar Hardware Software

Proyector, Apuntes Laboratorio de

computo Pc por alumno SGBD: Mysql

1. INTRODUCCION

En esta práctica utilizaremos dos modos de acceso al SGBD, el primero mediante el acceso directo en el menú inicio y el otro

a modo línea de comandos

2. OBJETIVO

Conoce y aprende los dos modos de acceso al SGBD como usuario administrador.

Hora de inicio:_______________ Hora termino: _________________ Fecha: _________________________________________

Nombre del alumno: __________________________________________________ Grupo: _________ Calificación: ___________

Docente: MTI José Hernández Rodríguez Firma:

Page 7: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 7

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

3. Fundamento

MODO DE ACCESO UNO:

Este modo, es el más fácil, y siempre se entra como root(Administrador).

Paso 1: Clic en el Menú Inicio

Paso 2: Clic en la opción Todos los programas

Paso 3: Clic en la opción AppServ

Paso 4: Clic en la opción MySQL Command Line Client

Paso 5: Verán la siguiente pantalla

Escribimos la contraseña que pusimos durante la instalación del SGBD y presionamos la tecla enter.

MODO DE ACCESO DOS:

Paso 1: Clic en el Menú Inicio

Paso 2: Clic en la opción Ejecutar, y escribimos cmd. También podemos realizar los siguientes pasos: Inicio/Todos los

programas/Accesorios/Símbolo del Sistema; nos aparece la siguiente ventana.

Paso 3: Debemos ingresar a la siguiente ubicación: c:\appserv\mysql\bin

Siga los pasos como la siguiente figura:

Paso 4: Una vez ubicados en c:\appserv\mysql\bin, escribiremos:

mysql –h localhost –u root –p

Presionamos enter, véase la siguiente figura:

Page 8: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 8

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

4. Producto.

En esta última pantalla muestra finalmente el ambiente de trabajo del SGBD, y es donde finalmente trabajará

5. Procedimiento

DESARROLLO DE LA PRÁCTICA

1. Repita ambos modos 3 veces

CUESTIONARIO. Escriba las respuestas a cada una de las siguientes preguntas.

- ¿Por qué tenemos que entrar a esta ubicación c:\appserv\mysql\bin\ ?

- Investigue como configurar en Windows para no estar escribiendo c:\appserv\mysql\bin\ cada vez que queramos

entrar al SGBD

- ¿Cuál es la diferencia entre el primer y segundo modo de acceso?

6. Conclusiones

Page 9: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 9

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

Materia Clave Periodo Valor Práctica

Taller de Base de Datos

SCA - 1025

Ago 13 – Ene 14 6% 03

Unidad Tema Nombre Práctica Duración

02

2.1 Creación del esquema de la

Base de Datos

Creación de una Base de Datos 20 minutos

Recursos educativos Lugar Hardware Software

Proyector, Apuntes Laboratorio de

computo Pc por alumno SGBD: Mysql

1. INTRODUCCION

En esta práctica utilizaremos los comandos DDL: show databases, use, create database, select database(), drop database y

show tables mismas que se explicarán con ejemplos y a detalle cada uno de ellos.

2. OBJETIVO

Crea Bases de Datos en el Sistema Gestor de Base de Datos Mysql, así mismo usa algunos comandos DDL para su Gestión.

Hora de inicio:_______________ Hora termino: _________________ Fecha: _________________________________________

Nombre del alumno: __________________________________________________ Grupo: _________ Calificación: ___________

Docente: MTI José Hernández Rodríguez Firma:

Page 10: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 10

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

3. Fundamento

Comando DLL ¿Qué hace?

show databases Muestra las bases de datos existentes

use Pone en uso una BD

show tables; Muestra las tablas de una BD

create database Crea una BD

drop database Elimina una BD

4. Producto.

Base de datos creada Base de datos eliminada mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| bdpractica03 |

| mysql |

| phpmyadmin |

| test |

+--------------------+

5 rows in set (0.00 sec)

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| phpmyadmin |

| test |

+--------------------+

4 rows in set (0.00 sec)

5. Procedimiento

DESARROLLO DE LA PRÁCTICA

Paso 1: Acceder a Mysql como en la práctica número dos.

Paso 2: Escriba, analice y tome nota de cada uno de los comandos escritos:

Paso 3: Mostrando BD’s existentes en el SGBD. mysql> show databases; Paso 4: Poniendo en uso una BD mysql> use mysql;

Paso 5: Mostrar las tablas que contiene la BD seleccionada mysql> show tables;

Paso 6: Cree una base de datos mysql> create database BDPractica03;

llamada: BDPractica03

Paso 7: Muestre las BD’s creadas mysql> show databases;

Page 11: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 11

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

Paso 9: Ponga en uso la BD creada mysql> use bdpractica03;

Paso 10: Elimine la BD creada mysql> drop database bdpractica03;

Paso 11: Verifique la eliminación mysql> show databases;

EJERCICIOS:

Cree dos Base de datos llamados: BaseDeDatos01 y BaseDeDatos02

__________________________________________________

__________________________________________________

Muestre las bases de datos creadas

__________________________________________________

Ponga en uso cada uno de ellas

__________________________________________________

Elimine las Bases de datos creadas: BaseDeDatos01 y BaseDeDatos02

__________________________________________________

Verifique la eliminación.

__________________________________________________

6. Conclusiones

7. Anexo

Realice la captura de pantalla de los ejercicios.

Page 12: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 12

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

Materia Clave Periodo Valor Práctica

Taller de Base de Datos

SCA - 1025

Ago 13 – Ene 14 6% 04

Unidad Tema Nombre Práctica Duración

02

2.1 Creación del esquema de

Base de Datos

Creación de tablas y definición de propiedades de

las columnas 1 hora 20 minutos

Recursos educativos Lugar Hardware Software

Proyector, Apuntes Laboratorio de

computo Pc por alumno SGBD: Mysql

1. INTRODUCCION

En esta práctica utilizaremos los comandos DDL: show databases, use, create database, select database(), drop database y

show tables mismas que se explicarán con ejemplos y a detalle cada uno de ellos.

2. OBJETIVO

Utilizar los comandos DDL para la creación y Gestión de Tablas en las Bases de Datos, en el Sistema Gestor de Base de Datos

Mysql, así como también definir restricciones de columnas como: autoincrementadas, null, etc.

Hora de inicio:_______________ Hora termino: _________________ Fecha: _________________________________________

Nombre del alumno: __________________________________________________ Grupo: _________ Calificación: ___________

Docente: MTI José Hernández Rodríguez Firma:

Page 13: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 13

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

3. Fundamento

Comando DLL ¿Qué hace? describe Muestra la estructura de una tabla use Pone en uso una BD show tables; Muestra las tablas de una BD create database Crea una BD drop database Elimina una BD Create table Crea una tabla show columns from Igual de describe

show create table Muestra la instrucción SQL de creación alter table alumnos rename estudiantes; Renombra una tabla drop table Elimina una tabla show full columns from Lo mismo que show columns from, pero

muestra más datos

La sintaxis para definir columnas es:

nombre_col tipo [NOT NULL | NULL] [DEFAULT valor_por_defecto] [AUTO_INCREMENT] [[PRIMARY] KEY] [COMMENT 'string']

[definición_referencia]

Valores nulos: Al definir cada columna podemos decidir si podrá o no contener valores nulos. La opción por defecto es que se permitan

valores nulos, NULL, y para que no se permitan, se usa NOT NULL.

Valores por defecto: Para cada columna también se puede definir, opcionalmente, un valor por defecto. El valor por defecto se asignará de

forma automática a una columna cuando no se especifique un valor determinado al añadir filas.

Claves primaria: Identifica una columna de manera única, usando la palabra clave KEY o PRIMARY KEY.

Columnas autoincrementadas: Crea una columna autoincrementada, aunque esta columna sólo puede ser de tipo entero y solo funciona

con llaves primarias

Comentario: Podemos añadir un comentario a cada columna. Este comentario sirve como información adicional sobre alguna característica

especial de la columna, y entra en el apartado de documentación de la base de datos:

4. Producto.

PARTE I mysql> show tables;

+------------------------+

| Tables_in_bdpractica04 |

+------------------------+

| estudiantes |

+------------------------+

1 row in set (0.01 sec)

Base de datos eliminada

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| phpmyadmin |

| test |

+--------------------+

PARTE II mysql> SHOW FULL COLUMNS FROM CIUDAD6;

+-----------+----------+-----------------+------+-----+---------+---------------

-+---------------------------------+-----------------+

| Field | Type | Collation | Null | Key | Default | Extra

| Privileges | Comment |

+-----------+----------+-----------------+------+-----+---------+---------------

-+---------------------------------+-----------------+

| clave | int(11) | NULL | NO | PRI | NULL | auto_increment

| select,insert,update,references | Clave principal |

| nombre | char(50) | utf8_general_ci | NO | | |

| select,insert,update,references | |

| poblacion | int(11) | NULL | YES | | 5000 |

| select,insert,update,references | |

+-----------+----------+-----------------+------+-----+---------+---------------

Page 14: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 14

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

5. Procedimiento

DESARROLLO DE LA PRÁCTICA

Paso 1: Acceder a Mysql como en la práctica número dos.

PARTE I

Paso 2: Cree una BD llamada: BDPractica04I mysql> create database BDPractica04I;

Paso 3: Ponga en uso la bd creada mysql> use bdpractica04I;

Paso 4: Cree la tabla como se muestra a continuación

mysql> create table Alumnos(matricula varchar(8), nombre varchar(20), grupo varchar(5), edad

int, promedio float, fechadenac date);

Paso 5: Verifique la creación mysql> show tables;

Paso 5: Muestre la estructura de tabla mysql> describe alumnos;

Paso 6: Otra forma de mostrar la estructura mysql> show columns from alumnos;

Paso 7: Mostrar la instrucción SQL de creación de la tabla mysql> show create table alumnos;

Paso 8: Cambiar el nombre de la tabla mysql> alter table alumnos rename estudiantes;

Paso 9: Verifique la modificación mysql> show tables;

Paso 10: Eliminación de una tabla mysql> drop table estudiantes;

Paso 11: Verifique mysql> show tables;

PARTE I

Paso 12: Cree una BD llamada: BDPractica04II mysql> create database BDPractica04II;

Paso 13: Ponga en uso la bd creada mysql> use bdpractica04II;

Paso 14: Cree la tabla como se muestra a continuación

mysql> create table Alumnos(matricula varchar(8), nombre varchar(20), grupo varchar(5), edad

int, promedio float, fechadenac date);

Paso 15: Creación de una tabla con NOT NULL y NULL

mysql> CREATE TABLE ciudad1(nombre CHAR(20) NOT NULL, poblacion INT NULL);

Query OK, 0 rows affected (0.05 sec)

Paso 16: Verificamos mysql> describe ciudad1;

Paso 17: Creación de una tabla con una columna con un valor por defecto

Page 15: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 15

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

mysql> CREATE TABLE ciudad2(nombre CHAR(20) NOT NULL, poblacion INT NULL DEFAULT 5000);

Query OK, 0 rows affected (0.01 sec)

Paso 18: Verificamos mysql> describe ciudad2;

Paso 19: Creación de llaves primarias

FORMA 1: DEFINICION DE LLAVE PRIMARIA A NIVEL COLUMNA

mysql> CREATE TABLE ciudad3 (nombre CHAR(20) NOT NULL PRIMARY KEY, poblacion INT NULL

DEFAULT 5000);

Query OK, 0 rows affected (0.37 sec)

Paso 20: Verificamos mysql> describe ciudad3;

FORMA 2: DEFINICION DE LLAVE PRIMARIA A NIVEL TABLA

mysql> CREATE TABLE ciudad4 (nombre CHAR(20) NOT NULL, poblacion INT NULL DEFAULT 5000,

PRIMARY KEY(nombre));

Paso 20: Verificamos mysql> describe ciudad4;

Paso 21: Ejemplifique con Inserciones de datos a la tabla.

Paso 22: Creación de una tabla con una columna auto incrementada mysql> CREATE TABLE ciudad5 (clave INT AUTO_INCREMENT PRIMARY KEY, nombre CHAR(20) NOT

NULL,poblacion INT NULL DEFAULT 5000);

Paso 23: Verificamos mysql> describe ciudad5;

Paso 24: Ejemplifique con Inserciones de datos a la tabla.

Paso 25: Creación de una tabla con una columna con comentario

mysql> CREATE TABLE ciudad6(clave INT AUTO_INCREMENT PRIMARY KEY COMMENT 'Clave

principal',nombre CHAR(50) NOT NULL, poblacion INT NULL DEFAULT 5000);

Paso 26: Verificamos mysql> SHOW FULL COLUMNS FROM CIUDAD6;

NOTA: Para ver los comentarios de la tabla, no podemos usar el comando describe

Paso 27: Creación de una tabla con una columna UNIQUE mysql> CREATE TABLE ciudad7(clave INT AUTO_INCREMENT PRIMARY KEY COMMENT 'Clave

principal',nombre CHAR(50) NOT NULL, poblacion INT NULL DEFAULT 5000, correo CHAR(40) NOT

NULL UNIQUE);

Paso 28: Verificamos mysql> SHOW FULL COLUMNS FROM CIUDAD6;

Page 16: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 16

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

EJERCICIOS

PARTE UNO

1. Cree una base de datos _________________________________________________

2. Ponga en uso la base de datos __________________________________________________

3. Cree dos tablas con mínimo 4 campos

_____________________________________________________________________________________________________________________________________

_____________________________________________________________________________________________________________________________________

_____________________________________________________________________________________________________________________________________

_____________________________________________________________________________________________________________________________________

4. Muestre las tablas _____________________________________________

5. Muestre la estructura de una de ellas ______________________________________________________________________________________

6. Muestre la instrucción de creación de una de las tablas _____________________________________________

7. Cambie el nombre de una de las tablas _________________________________________________________________________________________

8. Elimine una de las tablas. ______________________________________________________

PARTE DOS

Cree la siguiente tabla llamada clientes:

NOMBRE TIPO NULL DEFAULT AUTOINCREMENT PRIMARY

KEY

COMENTATIOS

Idcliente entero si si “llave primaria”

nombres texto No “NO acepta NULL”

Apellidos texto No “NO acepta NULL”

CURP texto No única “NO acepta NULL”

Limitecredito flotante si 5000

telefono texto si “No tiene”

Escribe la instrucción SQL

_____________________________________________________________________________________________________________________________________

_____________________________________________________________________________________________________________________________________

_____________________________________________________________________________________________________________________________________

_____________________________________________________________________________________________________________________________________

_____________________________________________________________________________________________________________________________________

PREGUNTAS:

1. ¿Cuándo utilizaría DESCRIBE o SHOW FULL COLUMNS?

Page 17: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 17

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

2. ¿Beneficio de comentar las columnas?

3. ¿Cómo vería el “diccionario de datos” de una tabla?

6. Conclusiones

7. Anexo

Realice la captura de pantalla de los ejercicios.

Page 18: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 18

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

Materia Clave Periodo Valor Práctica

Taller de Base de Datos

SCA - 1025

Ago 13 – Ene 14 6% 05

Unidad Tema Nombre Práctica Duración

02

2.2 Actualización, modificación

y eliminación del esquema de

la base de datos.

Modificación de las columnas de una tabla 1 hora 20 minutos

Recursos educativos Lugar Hardware Software

Proyector, Apuntes Laboratorio de

computo Pc por alumno SGBD: Mysql

1. INTRODUCCION

En esta práctica utilizaremos los comandos DDL: que permitirán la alteración o modificación de las columnas de una tabla.

2. OBJETIVO

El alumno utilizará los comandos DDL para la alteración de las columnas de Tablas en las Bases de Datos, en el Sistema

Gestor de Base de Datos Mysql

Hora de inicio:______________ Hora termino: _________________ Fecha: __________________________________________

Nombre del alumno: __________________________________________________ Grupo: _________ Calificación: ___________

Docente: MTI José Hernández Rodríguez Firma:

Page 19: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 19

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

3. Fundamento

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 definición

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(6,2) NOT NULL; Cambia el tipo de datos de la columna 'cantidad' y especifica que no admite nulos.

ALTER TABLE ejemplo MODIFY paterno

VARCHAR(30) Modifica el tamaño de la columna 'paterno'.

Alter table ejemplo drop primary key Elimina la llave primaria de la tabla

OPERACIONES CON ADD

ALTER TABLE ejemplo ADD fecha DATE; Añade una columna llamada 'fecha' del tipo 'DATE' al final de todas las columnas ALTER TABLE ejemplo ADD INDEX(categoria); Añade un índice a la columna 'categoria'. ALTER TABLE ejemplo ADD INDEX(categoria),

ADD PRIMARY KEY(clave); Añade un índice a la columna 'categoria' y además crea la llave primaria en la columna

'clave'. mysql> alter table alumno add PRIMARY KEY

(MATRICULA); Agrega la llave primaria

4. Producto.

mysql> describe alumno;

+------------+-------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+------------+-------------+------+-----+---------+-------+

| matricula | varchar(8) | NO | | | |

| nombre | varchar(20) | NO | | | |

| grupo | varchar(5) | YES | | NULL | |

| edad | int(11) | YES | | NULL | |

| prom | float | YES | | NULL | |

| fechadenac | date | YES | | NULL | |

+------------+-------------+------+-----+---------+-------+

5. Procedimiento

DESARROLLO DE LA PRÁCTICA

Paso 1: Acceder a Mysql como en la práctica número dos.

Paso 2: Escriba, analice y tome nota de cada uno de los comandos escritos:

Paso 3: Cree una BD llamada: BDPractica05

Paso 4: Ponga en uso la BD creada

Paso 5: Cree la siguiente tabla mysql> create table Alumno(matricula varchar(8), nombre INT, grupo varchar(5), edad int,

promedio float, fechadenac date);

Paso 6: Cambiar el tipo de dato de una columna

Page 20: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 20

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

mysql> describe alumno;

+------------+------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+------------+------------+------+-----+---------+-------+

| matricula | varchar(8) | YES | | NULL | |

| nombre | int(11) | YES | | NULL | |

| grupo | varchar(5) | YES | | NULL | |

| edad | int(11) | YES | | NULL | |

| promedio | float | YES | | NULL | |

| fechadenac | date | YES | | NULL | |

+------------+------------+------+-----+---------+-------+

mysql> alter table alumno change nombre nombre varchar(20) not null;

mysql> describe alumno;

+------------+-------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+------------+-------------+------+-----+---------+-------+

| matricula | varchar(8) | YES | | NULL | |

| nombre | varchar(20) | NO | | | |

| grupo | varchar(5) | YES | | NULL | |

| edad | int(11) | YES | | NULL | |

| promedio | float | YES | | NULL | |

| fechadenac | date | YES | | NULL | |

+------------+-------------+------+-----+---------+-------+

Paso 7: Ejemplifique con otras columnas de la tabla.

_____________________________________________________________________________________________________________

_____________________________________________________________________________________________________________

Paso 8: Cambiar el nombre de una columna

mysql> describe alumno;

+------------+-------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+------------+-------------+------+-----+---------+-------+

| matricula | varchar(8) | YES | | NULL | |

| nombre | varchar(20) | NO | | | |

| grupo | varchar(5) | YES | | NULL | |

| edad | int(11) | YES | | NULL | |

| promedio | float | YES | | NULL | |

| fechadenac | date | YES | | NULL | |

+------------+-------------+------+-----+---------+-------+

mysql> alter table alumno change promedio prom float;

mysql> describe alumno;

+------------+-------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+------------+-------------+------+-----+---------+-------+

| matricula | varchar(8) | YES | | NULL | |

| nombre | varchar(20) | NO | | | |

| grupo | varchar(5) | YES | | NULL | |

| edad | int(11) | YES | | NULL | |

| prom | float | YES | | NULL | |

| fechadenac | date | YES | | NULL | |

+------------+-------------+------+-----+---------+-------+

Page 21: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 21

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

Paso 9: Agregar una columna

mysql> describe alumno;

+------------+-------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+------------+-------------+------+-----+---------+-------+

| matricula | varchar(8) | YES | | NULL | |

| nombre | varchar(20) | NO | | | |

| grupo | varchar(5) | YES | | NULL | |

| edad | int(11) | YES | | NULL | |

| prom | float | YES | | NULL | |

| fechadenac | date | YES | | NULL | |

+------------+-------------+------+-----+---------+-------+

mysql> alter table alumno add direccion varchar(50) not null;

mysql> describe alumno;

+------------+-------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+------------+-------------+------+-----+---------+-------+

| matricula | varchar(8) | YES | | NULL | |

| nombre | varchar(20) | NO | | | |

| grupo | varchar(5) | YES | | NULL | |

| edad | int(11) | YES | | NULL | |

| prom | float | YES | | NULL | |

| fechadenac | date | YES | | NULL | |

| direccion | varchar(50) | NO | | | |

+------------+-------------+------+-----+---------+-------+

Paso 10: Eliminar una columna mysql> describe alumno;

+------------+-------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+------------+-------------+------+-----+---------+-------+

| matricula | varchar(8) | YES | | NULL | |

| nombre | varchar(20) | NO | | | |

| grupo | varchar(5) | YES | | NULL | |

| edad | int(11) | YES | | NULL | |

| prom | float | YES | | NULL | |

| fechadenac | date | YES | | NULL | |

| direccion | varchar(50) | NO | | | |

mysql> alter table alumno drop direccion;

mysql> describe alumno;

+------------+-------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+------------+-------------+------+-----+---------+-------+

| matricula | varchar(8) | YES | | NULL | |

| nombre | varchar(20) | NO | | | |

| grupo | varchar(5) | YES | | NULL | |

| edad | int(11) | YES | | NULL | |

| prom | float | YES | | NULL | |

| fechadenac | date | YES | | NULL | |

+------------+-------------+------+-----+---------+-------+

Paso 10: Poner Index a una columna existente

Page 22: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 22

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

mysql> describe alumno;

+------------+-------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+------------+-------------+------+-----+---------+-------+

| matricula | varchar(8) | YES | | NULL | |

| nombre | varchar(20) | NO | | | |

| grupo | varchar(5) | YES | | NULL | |

| edad | int(11) | YES | | NULL | |

| prom | float | YES | | NULL | |

| fechadenac | date | YES | | NULL | |

+------------+-------------+------+-----+---------+-------+

mysql> alter table alumno add index(nombre);

mysql> describe alumno;

+------------+-------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+------------+-------------+------+-----+---------+-------+

| matricula | varchar(8) | YES | | NULL | |

| nombre | varchar(20) | NO | MUL | | |

| grupo | varchar(5) | YES | | NULL | |

| edad | int(11) | YES | | NULL | |

| prom | float | YES | | NULL | |

| fechadenac | date | YES | | NULL | |

+------------+-------------+------+-----+---------+-------+

Paso 10: Convertir una columna existente en PRIMARY KEY

mysql> describe alumno;

+------------+-------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+------------+-------------+------+-----+---------+-------+

| matricula | varchar(8) | YES | | NULL | |

| nombre | varchar(20) | NO | MUL | | |

| grupo | varchar(5) | YES | | NULL | |

| edad | int(11) | YES | | NULL | |

| prom | float | YES | | NULL | |

| fechadenac | date | YES | | NULL | |

+------------+-------------+------+-----+---------+-------+

mysql> alter table alumno add PRIMARY KEY (MATRICULA);

mysql> describe alumno;

+------------+-------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+------------+-------------+------+-----+---------+-------+

| matricula | varchar(8) | NO | PRI | | |

| nombre | varchar(20) | NO | MUL | | |

| grupo | varchar(5) | YES | | NULL | |

| edad | int(11) | YES | | NULL | |

| prom | float | YES | | NULL | |

| fechadenac | date | YES | | NULL | |

+------------+-------------+------+-----+---------+-------+

Paso 10: Quitar a una columna existente la definición de PRIMARY KEY

mysql> describe alumno;

Page 23: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 23

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

+------------+-------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+------------+-------------+------+-----+---------+-------+

| matricula | varchar(8) | NO | PRI | | |

| nombre | varchar(20) | NO | MUL | | |

| grupo | varchar(5) | YES | | NULL | |

| edad | int(11) | YES | | NULL | |

| prom | float | YES | | NULL | |

| fechadenac | date | YES | | NULL | |

+------------+-------------+------+-----+---------+-------+

mysql> alter table alumno drop primary key;

mysql> describe alumno;

+------------+-------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+------------+-------------+------+-----+---------+-------+

| matricula | varchar(8) | NO | | | |

| nombre | varchar(20) | NO | MUL | | |

| grupo | varchar(5) | YES | | NULL | |

| edad | int(11) | YES | | NULL | |

| prom | float | YES | | NULL | |

| fechadenac | date | YES | | NULL | |

+------------+-------------+------+-----+---------+-------+

Paso 10: Quitar a una columna existente la definición INDEX

mysql> describe alumno;

+------------+-------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+------------+-------------+------+-----+---------+-------+

| matricula | varchar(8) | NO | | | |

| nombre | varchar(20) | NO | MUL | | |

| grupo | varchar(5) | YES | | NULL | |

| edad | int(11) | YES | | NULL | |

| prom | float | YES | | NULL | |

| fechadenac | date | YES | | NULL | |

+------------+-------------+------+-----+---------+-------+

mysql> drop index nombre on alumno;

mysql> describe alumno;

+------------+-------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+------------+-------------+------+-----+---------+-------+

| matricula | varchar(8) | NO | | | |

| nombre | varchar(20) | NO | | | |

| grupo | varchar(5) | YES | | NULL | |

| edad | int(11) | YES | | NULL | |

| prom | float | YES | | NULL | |

| fechadenac | date | YES | | NULL | |

+------------+-------------+------+-----+---------+-------+

Page 24: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 24

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

EJERCICIOS

Cree la siguiente tabla:

NOMBRE TIPO NULL KEY DEFAULT AUTOINCREMENT COMENTARIOS

Id_clave int PRI si “llave primaria”

Nombres Varchar(20) No

Apellidos Varchar (25) No

CURP Char(20) No

Direcciones float si

Telefono int si “No tiene”

1. Escribe la instrucción SQL

_____________________________________________________________________________________________________________________________________

_____________________________________________________________________________________________________________________________

2. Cambie el nombre de una de las columnas (excepto el id_clave)

_________________________________________________________________

3. Elimine la llave primaria

_________________________________________________________________

4. Cambie el tipo de dato de una de las columnas (excepto el id_clave)

_________________________________________________________________

5. Agregue una columna que usted considere

_________________________________________________________________

6. Defina Id_clave como llave primaria

_________________________________________________________________

7. Elimine la columna CURP

_________________________________________________________________

6. Conclusiones

7. Anexo

Realice la captura de pantalla de los ejercicios

Page 25: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 25

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

Materia Clave Periodo Valor Práctica

Taller de Base de Datos

SCA - 1025

Ago 13 – Ene 14 6% 06

Unidad Tema Nombre Práctica Duración

02

2.2 Actualización, modificación

y eliminación del esquema de

la base de datos.

Creación y manipulación de llaves foráneas 30 minutos

Recursos educativos Lugar Hardware Software

Proyector, Apuntes Laboratorio de

computo Pc por alumno SGBD: Mysql

1. INTRODUCCION

En esta práctica utilizaremos la instrucción Foreign Key para definir llaves foráneas, así como también usar el Alter para

eliminarlas

2. OBJETIVO

El alumno definirá llaves foráneas en la creación de Tablas en las Bases de Datos, en el Sistema Gestor de Base de Datos Mysql,

con el objetivo de mantener la Integridad de referencial de datos.

El alumno aprenderá como eliminar llaves foráneas en tablas creadas.

Hora de inicio:______________ Hora termino: _________________ Fecha: __________________________________________

Nombre del alumno: __________________________________________________ Grupo: _________ Calificación: ___________

Docente: MTI José Hernández Rodríguez Firma:

Page 26: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 26

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

3. Fundamento

Integridad referencial: Una clave secundaria (externa o foránea) en una base de datos relacional enlaza cada fila de

la tabla hijo que contiene la clave foránea con la fila de la tabla padre que contiene el valor de clave primaria correspondiente.

SINTAXIS:

CONSTRAINT peliculas_coddir_fk FOREIGN KEY(coddirector) REFERENCES directores(coddir)

Donde:

peliculas_coddir_fk:Nombre de la restricción

coddirector: Campo que ha de realizer la función de llave foranea

directores: Nombre de la tabla a la que se hará referencia(esta tabla es la que contiene la la PK)

coddir: Nombre del campo que es llave primaria en la table que se hace referencia

Añade la propiedad de llave foránea a una columna existente:

ALTER TABLE Peliculas add CONSTRAINT peliculas_coddir_fk FOREIGN KEY(coddirector) REFERENCES

directores(coddir);

4. Producto.

mysql> DESCRIBE VENTA;

+------------+---------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+------------+---------+------+-----+---------+-------+

| id_factura | int(11) | NO | PRI | | |

| id_cliente | int(11) | NO | MUL | | |

| cantidad | int(11) | YES | | NULL | |

+------------+---------+------+-----+---------+-------+

5. Procedimiento

DESARROLLO DE LA PRÁCTICA

Paso 1: Acceder a Mysql

Paso 2: Cree una base de datos: BDPractica06

Paso 3: Póngala en USO

Paso 4: Creación Llaves foráneas

PRIMERA FORMA(Definirla durante en el momento de crear la tabla)

Crear las siguientes tablas:

CREATE TABLE cliente(id_cliente INT NOT NULL,nombre VARCHAR(30), PRIMARY KEY (id_cliente))

TYPE = INNODB;

CREATE TABLE venta(id_factura INT NOT NULL,id_cliente INT NOT NULL,cantidad INT,PRIMARY

KEY(id_factura), FOREIGN KEY (id_cliente) REFERENCES cliente(id_cliente)) TYPE = INNODB;

Paso 5: mysql> DESCRIBE VENTA; +------------+---------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+------------+---------+------+-----+---------+-------+

| id_factura | int(11) | NO | PRI | | |

Page 27: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 27

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

| id_cliente | int(11) | NO | MUL | | | Nótese en la columna key al campo id_cliente, se marca con MUL. | cantidad | int(11) | YES | | NULL | |

+------------+---------+------+-----+---------+-------+

Paso 6: Cree las siguientes tablas

SEGUNDA FORMA (Despues de crear la tabla)

CREATE TABLE cliente2(id_cliente INT NOT NULL,nombre VARCHAR(30), PRIMARY KEY (id_cliente))

TYPE = INNODB;

CREATE TABLE venta2( id_factura INT NOT NULL, id_cliente INT NOT NULL, cantidad INT,

PRIMARY KEY(id_factura), INDEX (id_cliente) ) TYPE = INNODB;

En este ejemplo, note que primero definimos las tablas con cada uno de los campos que la integran. Observe que en

la tabla venta2, el campo id_cliente es un simple campo más.

Ahora agregamos la llave foránea

ALTER TABLE venta2 ADD FOREIGN KEY(id_cliente) REFERENCES cliente2(id_cliente);

Paso 7: Eliminación de llaves foráneas

No podemos sólo eliminar una restricción de clave foránea como si fuera un índice ordinario. Veamos que sucede

cuando lo intentamos.

mysql> alter table venta2 drop foreign key;

ERROR 1005 (HY000): Can't create table '.\bdpractica06\#sql-170_1.frm'

Para eliminar la clave foránea se tiene que especificar el ID que ha sido generado y asignado internamente por MySQL a la

clave foránea. En este caso, se puede usar la sentencia SHOW CREATE TABLE para determinar dicho ID.

mysql> SHOW CREATE TABLE venta2;

--------+

| venta | CREATE TABLE `venta2` ( `id_factura` int(11) NOT NULL, `id_cliente` int(11) NOT NULL,

`cantidad` int(11) default NULL, PRIMARY KEY (`id_factura`), KEY `id_cliente` (`id_cliente`),

CONSTRAINT `venta2_ibfk_1` FOREIGN KEY (`id_cliente`) REFERENCES `cliente2` (`id_cliente`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 |

--------+

En nuestro ejemplo, la restricción tiene el venta2_ibfk_1 (es muy probable que este valor sea diferente en cada caso).

mysql> ALTER TABLE venta2 DROP FOREIGN KEY venta2_ibfk_1;

EJERCICIOS:

1. Cree una base de datos

__________________________________________________

2. Ponga en uso la base de datos

__________________________________________________

Page 28: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 28

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

3. Realice el diagrama entidad-relación de dos entidades que se relacionen de 1:N (Cada una con 4 campos, más 1 para la

tabla hija)

4. Escriba la instrucción SQL

Tabla padre:

_____________________________________________________________________________________________________________________________________

_____________________________________________________________________________________________________________________________________

_____________________________________________________________________________________________________________________________________

_____________________________________________________________________________________________________________________________________

Tabla Hijo(con llave foránea definida):

_____________________________________________________________________________________________________________________________________

_____________________________________________________________________________________________________________________________________

_____________________________________________________________________________________________________________________________________

_____________________________________________________________________________________________________________________________________

_____________________________________________________________________________________________________________________________________

4. Elimine la llave foránea

________________________________________________________________________________________

5. Cree nuevamente la llave foránea

________________________________________________________________________________________

6. Conclusiones

7. Anexo

Realice la captura de pantalla de los ejercicios

Page 29: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 29

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

Materia Clave Periodo Valor Práctica

Taller de Base de Datos

SCA - 1025

Ago 13 – Ene 14 6% 07

Unidad Tema Nombre Práctica Duración

02

2.2 Actualización, modificación

y eliminación del esquema de

la base de datos.

Comprobación de la integridad de datos 30 minutos

Recursos educativos Lugar Hardware Software

Proyector, Apuntes Laboratorio de

computo Pc por alumno SGBD: Mysql

1. INTRODUCCION

En esta práctica comprobaremos la integridad referencial, al introducir datos a las tablas de nuestra base de datos.

2. OBJETIVO

El alumno comprobará integridad de datos en las Bases de Datos, haciendo algunas transacciones(insert, update, delete) a las

tablas con llaves foráneas.

Hora de inicio:______________ Hora termino: _________________ Fecha: __________________________________________

Nombre del alumno: __________________________________________________ Grupo: _________ Calificación: ___________

Docente: MTI José Hernández Rodríguez Firma:

Page 30: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 30

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

3. Fundamento

Insert: La forma más directa de insertar una fila nueva en una tabla es mediante una sentencia INSERT. En la forma más simple

de esta sentencia debemos indicar la tabla a la que queremos añadir filas, y los valores de cada columna mysql> INSERT INTO gente VALUES ('Fulano','1974-04-12');

Update: Podemos modificar valores de las filas de una tabla usando la sentencia UPDATE. mysql> UPDATE ciudad3 SET poblacion=poblacion*1.10;

Delete: Para eliminar filas se usa la sentencia DELETE. mysql> DELETE FROM ciudad5 WHERE clave=2;

4. Producto.

Las tablas clientes y Ventas

5. Procedimiento

Paso 1: Acceder a Mysql como en la práctica número dos.

Paso 2: Ponga en uso la base de datos llamada: BDPractica06

Mysql> describe cliente; CLIENTE

+------------+-------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+------------+-------------+------+-----+---------+-------+

| id_cliente | int(11) | NO | PRI | | |

| nombre | varchar(30) | YES | | NULL | |

+------------+-------------+------+-----+---------+-------+

Mysql> describe venta; VENTA

+------------+---------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+------------+---------+------+-----+---------+-------+

| id_factura | int(11) | NO | PRI | | |

| id_cliente | int(11) | NO | MUL | | |

| cantidad | int(11) | YES | | NULL | |

+------------+---------+------+-----+---------+-------+

Paso 3: Insertando datos a la tabla cliente.

Clientes:

1 Juan

2 María

3 Antonio

4 Javier

Page 31: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 31

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

Utilice esta instrucción para cada una: INSERT INTO cliente VALUES(1,'Juan');

_________________________________________________________________________ _________________________________________________________________________ _________________________________________________________________________

Paso 4: Haga lo mismo para venta

Venta:

1 1 2000

2 3 4000

_________________________________________________________________________

_________________________________________________________________________

PASO 5: Inserte el siguiente dato a la tabla venta 3 100 3000 _________________________________________________________________________

Paso 6: Elimine una fila de tabla cliente Delete from cliente where id_cliente=2;

Paso 7: Elimine una fila de tabla cliente Delete from cliente where id_cliente=1;

Paso 8: Modifique la columna id_cliente Update cliente set id_cliente=100 where id_cliente=1;

de tabla cliente

Paso 9: Modifique la columna id_cliente Update venta set id_cliente=300 where id_cliente=3;

de tabla venta

Escriba el error marcado (si lo hay) y la explicación del error en los pasos:

5.______________________________________________________________________________________

________________________________________________________________________________________

________________________________________________________________________________________

________________________________________________________________________________________

________________________________________________________________________________________

6.______________________________________________________________________________________

________________________________________________________________________________________

________________________________________________________________________________________

________________________________________________________________________________________

________________________________________________________________________________________

7.______________________________________________________________________________________

________________________________________________________________________________________

________________________________________________________________________________________

________________________________________________________________________________________

________________________________________________________________________________________

8.______________________________________________________________________________________

________________________________________________________________________________________

________________________________________________________________________________________

________________________________________________________________________________________

________________________________________________________________________________________

9.______________________________________________________________________________________

________________________________________________________________________________________

________________________________________________________________________________________

________________________________________________________________________________________

________________________________________________________________________________________

Page 32: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 32

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

6. Conclusiones

7. Anexo

Realice la captura de pantalla de los ejercicios

Page 33: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 33

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

Materia Clave Periodo Valor Práctica

Taller de Base de Datos

SCA - 1025

Ago 13 – Ene 14 6% 08

Unidad Tema Nombre Práctica Duración

02

2.2 Actualización, modificación

y eliminación del esquema de

la base de datos.

Definiendo la integridad referencial 30 minutos

Recursos educativos Lugar Hardware Software

Proyector, Apuntes Laboratorio de

computo Pc por alumno SGBD: Mysql

1. INTRODUCCION

En esta práctica implementará la integridad referencial, utilizando restricciones de padre a hijo e inversa

2. OBJETIVO

El alumno definirá la integridad referencial de datos en las Bases de Datos, usando las restricciones on delete no action, on

update no action, on delete cascade, on update cascade.

Hora de inicio:______________ Hora termino: _________________ Fecha: __________________________________________

Nombre del alumno: __________________________________________________ Grupo: _________ Calificación: ___________

Docente: MTI José Hernández Rodríguez Firma:

Page 34: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 34

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

3. Fundamento

Problemas de integridad referencial

Existen cuatro tipos de actualizaciones de bases de datos que pueden corromper la integridad referencial de las

relaciones padre/hijo de una base de datos.

1. La inserción de una nueva fila hijo

2. La actualización de la clave foránea en una fila hijo

3. La supresión de una fila padre

4. La actualización de la clave primaria en una fila padre

NOTA: Agregue en la parte de atrás la tarea pedida sobre estos conceptos.

RESTRICCIONES AL ELIMINAR:

ON DELETE RESTRICT es la acción predeterminada, y no permite una eliminación si existe un registro asociado, como

se mostró en el ejemplo anterior. ON DELETE NO ACTION hace lo mismo.

ON DELETE SET DEFAULT actualmente no funciona en MySQL - se supone que pone el valor de la clave foránea al

valor por omisión (DEFAULT) que se definió al momento de crear la tabla.

Si se especifica ON DELETE CASCADE, y una fila en la tabla padre es eliminada, entonces se eliminarán las filas de la

tabla hijo cuya clave foránea sea igual al valor de la clave referenciada en la tabla padre. Esta acción siempre ha estado

disponible en MySQL.

Si se especifica ON DELETE SET NULL, las filas en la tabla hijo son actualizadas automáticamente poniendo en las

columnas de la clave foránea el valor NULL. Si se especifica una acción SET NULL, debemos asegurarnos de no declarar las

columnas en la tabla como NOT NULL.

RESTRICCIONES AL ACTUALIZAR:

Estas opciones son muy similares cuando se ejecuta una sentencia UPDATE, en lugar de una sentencia DELETE. Estas

son:

ON UPDATE CASCADE

ON UPDATE SET NULL

ON UPDATE RESTRICT

4. Producto.

Las tablas clientes, articulo, pedido y se compone

Page 35: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 35

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

5. Procedimiento

DESARROLLO DE LA PRÁCTICA (escriba solo la instrucción sql que permite tal orden)

Paso 1: Acceder a Mysql como en la práctica número dos.

Paso 2: Cree una base de datos llamada: BDPractica08

Paso 3: Escriba las instrucciones sql del siguiente diagrama entidad relación:

RESTRICCIONES:

Al momento de crear la relación Escribe y Saca defina a las llaves foráneas con la restricción on delete no action on update

cascade.

Al momento de crear la entidad ejemplar defina a la llave foránea con las restricciones: on delete no action on update

cascade.

Page 36: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 36

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

Instrucciones sql de las tablas:

Paso 4: Inserte 2 filas a cada una de las tablas

Page 37: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 37

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

Paso 5: Verifique eliminando una fila de tabla ejemplar y escriba explicando lo sucedido Paso 6: Verifique Actualizando una fila de tabla ejemplar y escriba explicando lo sucedido en la tabla se_compone

6. Conclusiones

7. Anexo

Realice la captura de pantalla de los ejercicios.

Page 38: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 38

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

Materia Clave Periodo Valor Práctica

Taller de Base de Datos

SCA - 1025

Ago 13 – Ene 14 6% 09

Unidad Tema Nombre Práctica Duración

02

2.2 Actualización, modificación

y eliminación del esquema de

la base de datos.

Definiendo índices 30 minutos

Recursos educativos Lugar Hardware Software

Proyector, Apuntes Laboratorio de

computo Pc por alumno SGBD: Mysql

1. INTRODUCCION

En esta práctica el alumno implementará índices para la mejorar el rendimiento de las tablas.

2. OBJETIVO

El alumno definirá índices a columnas de las tablas en las Bases de Datos, usando la instrucción Index.

Hora de inicio:______________ Hora termino: _________________ Fecha: __________________________________________

Nombre del alumno: __________________________________________________ Grupo: _________ Calificación: ___________

Docente: MTI José Hernández Rodríguez Firma:

Page 39: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 39

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

3. Fundamento

Un índice es una estructura interna que el sistema puede usar para encontrar uno o más registros en una tabla de

forma rápida. En efecto, un índice de base de datos es, conceptualmente, similar a un índice encontrado al final de cualquier

libro de texto. De la misma forma que el lector de un libro acudiría a un índice para determinar en qué páginas se encuentra

un determinado tema, un sistema de base de datos leerá un índice para determinar las posiciones de registros seleccionados

por una consulta SQL. En otras palabras, la presencia de un índice puede ayudar al sistema a procesar algunas consultas de un

modo más eficiente

4. Producto.

Las tablas clientes, articulo, pedido y se compone

5. Procedimiento

DESARROLLO DE LA PRÁCTICA

Paso 1: Acceder a Mysql como en la práctica número dos.

Paso 2: Ponga en uso la base de datos: BDPractica08

Paso 3: Elimine todas las llaves foráneas de TODAS las tablas.

Paso 5: defina como index a cada una de las llaves foráneas.

Por ejemplo:

ALTER TABLE ejemplar ADD INDEX(codigo_libro);

Page 40: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 40

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

Paso 6: Defina nuevamente cada una de las llaves foráneas eliminadas en el paso 4.

Por ejemplo:

ALTER TABLE ejemplares ADD FOREIGN KEY(codigolibro)REFERENCES libro(codigolibro) ON

DELETE RESTRICT ON UPDATE CASCADE;

6. Conclusiones

7. Anexo

Realice la captura de pantalla de los ejercicios.

Page 41: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 41

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

Materia Clave Periodo Valor Práctica

Taller de Base de Datos

SCA - 1025

Ago 13 – Ene 14 3% 10

Unidad Tema Nombre Práctica Duración

03

3.1 Inserción, eliminación y

modificación de registros

Inserción de Datos 25 minutos

Recursos educativos Lugar Hardware Software

Proyector, Apuntes Laboratorio de

computo Pc por alumno SGBD: Mysql

1. INTRODUCCION

En esta práctica el alumno realizará diferentes modos de inserciones de datos a las tablas de una base de datos.

2. OBJETIVO

El alumno usará la sentencia DML: INSERT, para la manipulación de datos en sus bases de datos.

Hora de inicio:______________ Hora termino: _________________ Fecha: __________________________________________

Nombre del alumno: __________________________________________________ Grupo: _________ Calificación: ___________

Docente: MTI José Hernández Rodríguez Firma:

Page 42: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 42

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

3. Fundamento

INSERT: inserta una fila nueva en una tabla. Las columnas de tipo cadena o fechas deben estar entre comillas sencillas

o dobles, para las columnas numéricas esto no es imprescindible, aunque también pueden estar entrecomilladas. Use la

siguiente sintaxis.

FORMATO CORTO

mysql> INSERT INTO gente VALUES ('Fulano','1974-04-12');

NOTA: El orden de los valores deberán corresponder al orden “físico” de los campos en la tabla

FORMATO LARGO

mysql> INSERT INTO gente(nombre, fecha) VALUES ('Mengano','1975-10-16');

NOTA: El orden de los valores deberán corresponder al orden en que lo escribes las columnas a los cuales le insertaras datos.

INSERCION MULTIPLE

mysql> INSERT INTO gente VALUES

(“Perengano”, '1994-06-21'), (“Luciano”, '1998-07-29'), (“Capistrano”, '2000-05-12');

Con SET

INSERT INTO gente SET nombre=”Carmencita”, fecha=”1999-12-14”;

INSERT IN TO

•Comando para insertar filas

gente

•Nombre de la tabla

VALUES

•Palabra reservada indica los valores a insertar

('Fulano','1974-04-12');

•Valores a insertar

INSERT IN TO

•Comando para insertar filas

gente

•Nombre de la tabla

(nombre, fecha)

•columnas que se le insertaran datos

VALUES

•Palabra reservada indica los valores a insertar

('Mengano','1975-10-16');

•Valores a insertar

Page 43: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 43

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

4. Producto.

Select * from clientes;

+---------+------------------+-----------+---------------+

| Numclie | nombre | repventas | Limitecredito |

+---------+------------------+-----------+---------------+

| 2180 | Ramiro sanz | 208 | 20000 |

| 2181 | Jones Mfg. | 209 | 65000 |

| 2182 | Philips Coorp | 201 | 640000 |

| 2183 | Fred Can Robert | 201 | 605000 |

| 2184 | Chen Corporation | 204 | 900000 |

| 2185 | JDM Coorp. | 201 | 205000 |

| 2186 | Alza Inc. | 203 | 500000 |

| 2187 | Base Cristal | 202 | 450000 |

+---------+------------------+-----------+---------------+

5. Procedimiento

DESARROLLO DE LA PRÁCTICA

Paso 1: Acceder a Mysql como en la práctica número dos.

Paso 2: Restaure la base de datos EMPRESA_NEW a partir del Script proporcionado por el docente EMPRESANEW191013.SQL

Paso 3: Ponga en uso la BD: EMPRESA_NEW

Paso 4: Inserte los siguientes datos a la tabla clientes

+---------+------------------+-----------+---------------+

| Numclie | nombre | repventas | Limitecredito |

+---------+------------------+-----------+---------------+

| 2180 | Ramiro sanz | 208 | 20000 |

| 2181 | Jones Mfg. | 209 | 65000 |

| 2182 | Philips Coorp | 201 | 640000 |

| 2183 | Fred Can Robert | 201 | 605000 |

| 2184 | Chen Corporation | 204 | 900000 |

| 2185 | JDM Coorp. | 201 | 205000 |

| 2186 | Alza Inc. | 203 | 500000 |

| 2187 | Base Cristal | 202 | 450000 |

+---------+------------------+-----------+---------------+

Page 44: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 44

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

Escriba la instrucción sql de las inserciones

6. Conclusiones

7. Anexo

Realice la captura de pantalla de los ejercicios.

Page 45: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 45

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

Materia Clave Periodo Valor Práctica

Taller de Base de Datos

SCA - 1025

Ago 13 – Ene 14 3% 11

Unidad Tema Nombre Práctica Duración

03

3.1 Inserción, eliminación y

modificación de registros

Actualización de Datos 25 minutos

Recursos educativos Lugar Hardware Software

Proyector, Apuntes Laboratorio de

computo Pc por alumno SGBD: Mysql

1. INTRODUCCION

En esta práctica el alumno realizará la actualización de un conjunto de filas o individual de las tablas de una base de datos

2. OBJETIVO

El alumno usará la sentencia DML: UPDATE, para la manipulación de datos en sus bases de datos.

Hora de inicio:______________ Hora termino: _________________ Fecha: __________________________________________

Nombre del alumno: __________________________________________________ Grupo: _________ Calificación: ___________

Docente: MTI José Hernández Rodríguez Firma:

Page 46: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 46

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

3. Fundamento

UPDATE: Podemos modificar valores de las filas de una tabla usando la sentencia UPDATE. En su forma más simple, los cambios

se aplican a todas las filas, y a las columnas que especifiquemos. Ejemplos:

mysql> UPDATE ciudad5 SET

poblacion=poblacion*1.10;

Aplica a todas las filas

Incrementa en un 10% la población de todas las ciudades

mysql> UPDATE ciudad5 SET clave=clave+10,

poblacion=poblacion*0.97;

Usando SET

Aumenta 10 el valor de la clave, disminuye la población en

un 3%

mysql> UPDATE ciudad5 SET

poblacion=poblacion*1.03 WHERE clave=2;

Condicionando solo a una fila(usando PK)

Incrementa en un 3% la población, de la ciudad con clave 2

mysql> UPDATE ciudad5 SET clave=clave-10

LIMIT 2;

Limit

Decrementa el valor de la clave en 10, a las primeras dos

filas de la tabla

mysql> UPDATE ciudad5 SET poblacion=19850

ORDER BY clave LIMIT 1;

ORDER BY y LIMIT

Ordena por la columna clave de manera ascendente y toma

la primera fila ordenada y asigna el valor de 19850 a la

columna población,

Cláusulas

Las cláusulas son condiciones de modificación utilizadas para definir los datos que desea seleccionar o

manipular.

Cláusula Descripción

FROM Utilizada para especificar la tabla de la cual se van a seleccionar los registros

WHERE Utilizada para especificar las condiciones que deben reunir los registros que se van a seleccionar

GROUP BY Utilizada para separar los registros seleccionados en grupos específicos

HAVING Utilizada para expresar la condición que debe satisfacer cada grupo

ORDER BY Utilizada para ordenar los registros seleccionados de acuerdo con un orden específico

Operadores Lógicos

Operador Uso

AND o && Es el "y" lógico. Evalúa dos condiciones y devuelve un valor de verdad sólo si ambas son ciertas.

OR o || Es el "o" lógico. Evalúa dos condiciones y devuelve un valor de verdad si alguna de las dos es cierta.

NOT o ! Negación lógica. Devuelve el valor contrario de la expresión.

Page 47: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 47

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

Operadores de Comparación

Operador Uso

< Menor que

> Mayor que

<> Distinto de

<= Menor ó Igual que

>= Mayor ó Igual que

= Igual que

BETWEEN Utilizado para especificar un intervalo de valores.

LIKE Utilizado en la comparación de un modelo

In Utilizado para especificar registros de una base de datos

4. Procedimiento

DESARROLLO DE LA PRÁCTICA

Paso 1: Acceder a Mysql como en la práctica número dos.

Paso 2: Ponga en uso la base de datos: Empresa_New

Paso 3: Escriba las instrucciones sql de lo siguiente:

1. Incremente un 20 por ciento los límites de crédito de todos los clientes

2. Incremente un 5 por ciento los límites de crédito de todos los clientes del representante de ventas 202

3. Actualice el nombre y su límite de crédito del cliente con id 1018:

Antes: | 1018 | manuel | 209 | 79767 |

Después: | 1018 | Jhnonny | 209 | 100000 |

4. Incremente 1000 más al límite de crédito cuyos clientes sean del repventas 202 o 204

5. Incremente 5000 más al límite de crédito cuyos clientes tengan como límite de crédito menos de 50,000

Page 48: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 48

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

6. Incremente 1000 más al límite de créditos cuyos clientes sean del repventas 209 pero su límite de crédito

sea mayor a 50000 y menor a 80000.

7. Incremente 1000 más al límite de créditos cuyos clientes comience su nombre con la letra A

5. Conclusiones

6. Anexo

Realice la captura de pantalla de los ejercicios.

Page 49: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 49

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

Materia Clave Periodo Valor Práctica

Taller de Base de Datos

SCA - 1025

Ago 13 – Ene 14 3% 12

Unidad Tema Nombre Práctica Duración

03

3.1 Inserción, eliminación y

modificación de registros

Eliminación de Datos 25 minutos

Recursos educativos Lugar Hardware Software

Proyector, Apuntes Laboratorio de

computo Pc por alumno SGBD: Mysql

1. INTRODUCCION

En esta práctica el alumno realizará eliminaciones de la información de sus tablas correspondiente a su base de datos.

2. OBJETIVO

El alumno usará las sentencias DML: DELETE, para la manipulación de datos en sus bases de datos.

Hora de inicio:______________ Hora termino: _________________ Fecha: __________________________________________

Nombre del alumno: __________________________________________________ Grupo: _________ Calificación: ___________

Docente: MTI José Hernández Rodríguez Firma:

Page 50: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 50

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

3. Fundamento

DELETE: Para eliminar filas se usa la sentencia DELETE. La sintaxis es muy parecida a la de UPDATE.

mysql> DELETE FROM ciudad5; (ESTA INSTRUCCIÓN ELIMINA TODOS LOS DATOS TENGA PRECAUCION)

Query OK, 5 rows affected (0.05 sec)

De este modo se eliminan todas las filas de la tabla.

Ejemplos:

Delete from clientes where estado =

“Jalisco”

Delete from clientes;

Delete from clientes where estado= “Puebla”

limit 100;

Delete from clientes where id = 125;

Elimina todos los cliente del estado de Jalisco

Elimina todos los registros de la tabla clientes

Elimina los primeros 100 clientes de Puebla

Elimina al cliente con id igual a 125

Delete from clientes where

limitedecredito<40000

Elimina a los clientes cuyo límite de crédito sea

menor a 40000

Delete from clients where limitedecredito=

4000 Elimina a todos los clientes con límite de crédito a

4000

4. Producto.

Ninguno

5. Procedimiento

DESARROLLO DE LA PRÁCTICA

Paso 1: Acceder a Mysql como en la práctica número dos.

Paso 2: Ponga en uso la base de datos: Empresa_New (No OLVIDE hacer una copia de Empresa_new)

Page 51: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 51

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

Paso 3: Escriba las instrucciones sql de lo siguiente:

ENUNCIADO INSTRUCCION SQL

Elimine a todos los clientes del representante de ventas

209

Elimine a todos los clientes que su nombre termine con la

letra s

Elimine los clientes cuyo limitedecredito esté entre 40000 y

50000

Elimine al cliente 1001

Nota: Si algunos registros no se eliminan recuerde que las tablas están relacionadas, es decir hay integridad referencial y puede

ser que haya la siguiente restricción ON DELETE NO ACTION o ON DELETE CASCADE, no permita eliminar.

6. Conclusiones

7. Anexo

Realice la captura de pantalla de los ejercicios.

Page 52: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 52

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

Materia Clave Periodo Valor Práctica

Taller de Base de Datos

SCA - 1025

Ago 13 – Ene 14 5% 13

Unidad Tema Nombre Práctica Duración

03

3.2 Consultas de registros

Recuperación de Datos 45 minutos

Recursos educativos Lugar Hardware Software

Proyector, Apuntes Laboratorio de

computo Pc por alumno SGBD: Mysql

1. INTRODUCCION

En esta práctica el alumno realizará consultas básicas y condicionadas de los datos a las tablas de una base de datos.

2. OBJETIVO

El alumno usará la sentencia DML: SELECT, para la manipulación de datos en sus bases de datos.

Hora de inicio:______________ Hora termino: _________________ Fecha: __________________________________________

Nombre del alumno: __________________________________________________ Grupo: _________ Calificación: ___________

Docente: MTI José Hernández Rodríguez Firma:

Page 53: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 53

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

3. Fundamento

La sintaxis de SELECT es compleja. Una forma más general consiste en la siguiente sintaxis:

SELECT [ALL | DISTINCT | DISTINCTROW] expresion_select,...

FROM referencias_de_tablas WHERE condiciones

[GROUP BY {nombre_col | expresion | posicion}

[ASC | DESC], ... [WITH ROLLUP]]

[HAVING condiciones]

[ORDER BY {nombre_col | expresion | posicion}

[ASC | DESC] ,...]

[LIMIT {[desplazamiento,] contador | contador OFFSET desplazamiento}]

La forma más sencilla es la que hemos usado hasta ahora, consiste en pedir todas las columnas y no especificar

condiciones.

Instrucción SQL Explicación

Select * from clientes;

Select * from clientes limit 10;

Select Nombre, Apellidos from Clientes

where ciudad=”Jalapa”;

SELECT * FROM Empleados WHERE NOT

Estado = 'Soltero';

SELECT * FROM Pedidos WHERE Fecha_Envio

= “2005/10/21”;

SELECT Apellidos, Nombre FROM Empleados

WHERE Apellidos = 'King';

SELECT * FROM Empleados WHERE Edad > 25

AND Edad < 50;

SELECT * FROM Empleados WHERE (Edad >

25 AND Edad < 50) OR Sueldo = 100;

SELECT * FROM Pedidos WHERE CodPostal

Between 28000 And 28999;

SELECT Id_Pedido, Fecha_Pedido FROM

Pedidos WHERE Fecha_Pedido Between

“2001-11-10“ And “2011-12-31”;

Page 54: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 54

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

SELECT Apellidos, Salario FROM

Empleados WHERE Salario Between 200 And

300;

SELECT * FROM Empleados WHERE (Sueldo >

100 AND Sueldo < 500) OR

(Provincia = 'Madrid' AND Estado =

'Casado');

SELECT Apellidos, Salario FROM Empl

WHERE Apellidos Between 'Lon' And

'Tol';

SELECT Apellidos, Nombre FROM Empleados

WHERE Apellidos Like 'S*';

SELECT Id_Producto, Existencias FROM

Productos

WHERE Existencias <= Nuevo_Pedido;

SELECT * FROM Pedidos WHERE Provincia

In ('Madrid', 'Barcelona', 'Sevilla');

SELECT Apellidos, Nombre, Ciudad FROM

Empleados WHERE Ciudad

In ('Sevilla', 'Los Angeles',

'Barcelona');

4. Procedimiento

DESARROLLO DE LA PRACTICA:

Paso 1: Acceder a Mysql como en la práctica número dos.

Paso 2: Ponga en uso la base de datos: Empresa_New

Paso 3: Escriba las instrucciones sql de lo siguiente:

Ejercicios:

1. Mostrar todos los directores cuyo nombre comience con la letra J

Page 55: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 55

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

2. Mostrar los pedidos que ha realizado el cliente 1023 y 1002

3. Mostrar los pedidos cuyo total de pedido sea menor a 1000

4. Mostrar los pedidos que hayan sido atendidos por representantes 221, 222, 224

5. Mostrar los productos que cuya existencia sean menor a 30

6. Mostrar las oficinas que se encuentren en la region ESTE y que sus objetivos sean menores a 800000

5. Conclusiones

6. Anexo

Realice la captura de pantalla de los ejercicios.

Realice la tarea: archivo tarea.docx, forma de entrega en hojas blancas y

engrapadas, hoja de presentación, máximo 2 integrantes. NOTA: LAS

INSTRUCCIONES SQL DEBERAN ESTAR ESCRITOS A MANO, DE LO CONTRARIO NO SERA

VALIDO.

Page 56: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 56

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

Materia Clave Periodo Valor Práctica

Taller de Base de Datos

SCA - 1025

Ago 13 – Ene 14 5% 14

Unidad Tema Nombre Práctica Duración

03

3.2.2 Restricción y ordenación

de datos

Consultas ordenadas. 60 minutos

Recursos educativos Lugar Hardware Software

Proyector, Apuntes Laboratorio de

computo Pc por alumno SGBD: Mysql

1. INTRODUCCION

Las consultas ordenas suelen ser mejor, que las desordenadas que comúnmente en el SGBD se puedan encontrar. Una

consulta ordena hace más rápida la lectura, la búsqueda, el uso, etc. de los datos, en esta práctica se usara la cláusula Order

By para lograr ordenar ya sea de forma ascendente o descendente.

2. OBJETIVO

El alumno realiza la recuperación de datos de manera ascendente o descendente, usando uno o más campos, sin la necesidad

de un Sistema de Información.

Hora de inicio:______________ Hora termino: _________________ Fecha: __________________________________________

Nombre del alumno: __________________________________________________ Grupo: _________ Calificación: ___________

Docente: MTI José Hernández Rodríguez Firma:

Page 57: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 57

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

3. Fundamento

Permite ordenar los resultados de una consulta, ordenados por las columnas que se especifique

Por defecto es orden ascendente (ASC)

Formato:

– SELECT column1, column2 FROM "tables“ ORDER BY "column-list" [ASC | DESC];

– Ejemplo:

SELECT empleado_id, dept, nombre, edad, salario FROM empleados WHERE dept = ‘Ventas' ORDER

BY salario;

SELECT empleado_id, dept, nombre, edad, salario FROM empleados WHERE dept = 'Ventas' ORDER

BY salario, edad DESC;

4. Procedimiento

DESARROLLO DE LA PRÁCTICA

Paso 1: Acceder a Mysql como en la práctica número dos.

Paso 2: Ponga en uso la base de datos: Empresa_New

Paso 3: Escriba las instrucciones sql de lo siguiente:

a) Muestre los datos de la tabla Clientes

b) Escriba la siguiente instrucción Select * from clientes order by limitecredito ASC;

c) ¿Cuál es la diferencia de resultados entre el inciso a y b?

d) Escriba la siguiente instrucción Select * from clientes order by limitecredido DESC; y explique lo sucedido.

e) Escriba la instrucción Select * from clientes order by limitecredito asc, repventas desc; y explique lo sucedido.

ACTIVIDAD: (Escriba las instrucciones SQL)

1) Muestre todas las oficinas ordenándolas por ciudad y región ambos de forma descendente

Page 58: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 58

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

2) Muestre todos los clientes del representante de venta 209 ordenándolos por el límite de crédito de forma

descendente

3) ¿Cuál es el producto de menor stock?

4) ¿Cuál es el producto de mayor existencia?

5) Ordene los pedidos por el número de cliente de forma ascendente

6) ¿Cuál es la diferencia entre(ejecute ambas instrucciones):

mysql> select * from clientes where repventas= 209;

mysql> select * from clientes where repventas= 209 order by nombre;

7) ¿Cuál es es la diferencia entre(ejecute ambas instrucciones):

select * from clientes where repventas= 209 order by nombre limit 3;

select * from clientes where repventas= 209 order by nombre;

8) Ejecute tres veces la siguiente instrucción y explique lo sucedido.

mysql> select * from clientes where repventas= 209 order by rand()

limit 3;

Page 59: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 59

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

5. Conclusiones

6. Anexo

Realice la captura de pantalla de los ejercicios.

Page 60: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 60

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

Materia Clave Periodo Valor Práctica

Taller de Base de Datos

SCA - 1025

Ago 13 – Ene 14 7% 15

Unidad Tema Nombre Práctica Duración

03

3.2.3 Informes de datos

agregados mediante funciones

de grupo

Consultas con funciones a nivel registro y conjunto

de registros. 60 minutos

Recursos educativos Lugar Hardware Software

Proyector, Apuntes Laboratorio de

computo Pc por alumno SGBD: Mysql

1. INTRODUCCION

Las consultas ordenas suelen ser mejor, sin embargo las consultas mediante funciones suelen ser más específicas y de mayor

eficiencia.

2. OBJETIVO

El alumno realiza la recuperación de datos de manera agrupada, usando uno o más campos, sin la necesidad de un Sistema

de Información, así mismo hace restricciones a las consultas con funciones de grupos.

Hora de inicio:______________ Hora termino: _________________ Fecha: __________________________________________

Nombre del alumno: __________________________________________________ Grupo: _________ Calificación: ___________

Docente: MTI José Hernández Rodríguez Firma:

Page 61: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 61

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

3. Fundamento

Permite combinar en un único registro los registros con valores idénticos en la lista de campos especificada. Es

posible agrupar filas en la salida de una sentencia SELECT según los distintos valores de una columna, usando la cláusula

GROUP BY.

mysql> SELECT fecha FROM gente GROUP BY fecha;

+------------+

| fecha |

+------------+

| 1978-06-15 |

| 1985-04-12 |

| 1993-02-10 |

| 2001-12-02 |

+------------+

GROUP BY ordena según los valores de la columna indicada. En este caso, las columnas aparecen ordenadas por

fechas. Además se eliminan los valores duplicados aún si la proyección no contiene filas duplicadas.

4. Procedimiento

DESARROLLO DE LA PRÁCTICA

Paso 1: Acceder a Mysql como en la práctica número dos.

Paso 2: Ponga en uso la base de datos: Empresa_New

Paso 3: Escriba las instrucciones sql de lo siguiente:

a) Suponga que desee mostrar cuantos clientes tiene cada representante de venta: select repventas, count(*) from clientes group by repventas;

Escriba unas filas mostradas.

b) Mostrar la suma de los pago (totalpedido) de los pedidos de cada uno de los clientes mysql> select clie, sum(totalpedido) from pedidos group by clie;

comente y escriba lo sucedido.

c) Mostrar los pedidos de menos costo de cada uno de los clientes. mysql> select clie, min(totalpedido) from pedidos group by clie;

comente y escriba lo sucedido.

Page 62: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 62

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

d) Mostrar los pedidos de meyor costo de cada uno de los clientes.

mysql> select clie, max(totalpedido) from pedidos group by clie;

comente y escriba lo sucedido.

Usando Having

e) Mostrar aquellos clientes que hayan realizado mas de dos pedidos mysql> select clie, count(*) from pedidos group by clie having count(*) > 2;

comente y escriba lo sucedido.

ACTIVIDAD:

Escriba la instrucción sql de cada una de las siguientes oraciones.

1. Mostrar cuantos pedidos ha realizado cada uno de los clientes

2. Mostrar por oficinas(oficinarep) cuantos representantes de ventas hay

3. Mostrar aquellos proveedores (proveedor) que tengan más de dos productos.

4. Mostrar el cliente que menos pedidos ha hecho

5. Mostrar el cliente que más pedidos ha realizado

5. Conclusiones

6. Anexo

Realice la captura de pantalla de los ejercicios.

Page 63: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 63

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

Materia Clave Periodo Valor Práctica

Taller de Base de Datos

SCA - 1025

Ago 13 – Ene 14 7% 16

Unidad Tema Nombre Práctica Duración

03

3.2.4 Visualización de datos de

varias tablas

Consultas Multitablas 60 minutos

Recursos educativos Lugar Hardware Software

Proyector, Apuntes Laboratorio de

computo Pc por alumno SGBD: Mysql

1. INTRODUCCION

Las consultas en una sola tabla son de un nivel de abstracción muy bajo, un reporte donde solo muestre la clave del cliente y

los pedidos que ha realizado, para un usuario final sería confuso; en lugar de su clave de cliente que muestre el nombre del

cliente sería mucho mejor, las consultas multitablas permiten realizar este tipo de consultas.

2. OBJETIVO

El alumno realiza consultas multitablas con 2 o más tablas, sin la necesidad de un Sistema de Información, logrando así un

informe entendible para un usuario final.

Hora de inicio:______________ Hora termino: _________________ Fecha: __________________________________________

Nombre del alumno: __________________________________________________ Grupo: _________ Calificación: ___________

Docente: MTI José Hernández Rodríguez Firma:

Page 64: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 64

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

3. Fundamento

PRODUCTO CARTESIANO: El resultado es una relación que contendrá todas las combinaciones de las filas de los dos

operandos.

Para ver un ejemplo usaremos dos tablas inventadas al efecto:

tabla1(id, nombre, apellido)

tabla2(id, número)

tabla1

id nombre apellido

15 Fulginio Liepez

26 Cascanio Suanchiez

tabla2

id número

15 12345678

26 21222112

15 66525425

El resultado del producto cartesiano de tabla1 y tabla2: tabla1 x tabla2 es:

tabla1 x tabla2 id nombre apellido id número

15 Fulginio Liepez 15 12345678

26 Cascanio Suanchiez 15 12345678

15 Fulginio Liepez 26 21222112

26 Cascanio Suanchiez 26 21222112

15 Fulginio Liepez 15 66525425

26 Cascanio Suanchiez 15 66525425

Select * from tabla1, tabla2;

COMPOSICION: Es una restricción del producto cartesiano, en la relación de salida sólo se incluyen las tuplas que cumplan

una determinada condición.

La condición que se usa más frecuentemente es la igualdad entre dos atributos, uno de cada tabla.

Por ejemplo Usando las tablas anteriores:

La composición de estas dos tablas, para una condición en que 'id' sea igual en ambas sería: tabla1[tabla1.id = tabla2.id]tabla2

id nombre apellido t2.id número

15 Fulginio Liepez 15 12345678

26 Cascanio Suanchiez 26 21222112

15 Fulginio Liepez 15 66525425

Select * from tabla1, tabla2 where tabla1.id=tabla2.id

Page 65: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 65

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

4. Procedimiento

DESARROLLO DE LA PRÁCTICA

Paso 1: Acceder a Mysql como en la práctica número dos.

Paso 2: Ponga en uso la base de datos: Empresa_New

Paso 3: Escriba las instrucciones sql de lo siguiente:

a) mysql> select * from clientes, repventas; ¿Qué sucede?¿ Es producto cartesiano o composición?

b) mysql> select * from clientes, repventas where numempl=repventas; ¿Qué sucede?¿ Es producto cartesiano o composición?

c) Si quisiéramos mostrar solo los nombre de los clientes con sus respectivos nombre de representante de venta(USAR ALIAS). Explique qué sucede en cada instrucción

mysql> select nombre, nombre from clientes, repventas where numempl=repventas;

mysql> select c.nombre, r.nombre from clientes as c, repventas as r where

r.numempl=c.repventas;

mysql> select c.nombre as "nombre del cliente", r.nombre as "nombre del representante

de venta" from clientes as c, repventas as r where r.numempl=c.repventas;

d) Si solo quisiéramos saber ¿cuál es el nombre del representante de venta del cliente Lilia(1024?. Entonces podría haber muchas “Lilia”, tendremos que saber cuál es su clave primaria, ya que con esto nos aseguraríamos que es la que queremos encontrar. ¿Quién es su representante? mysql> select c.nombre as "nombre del cliente", r.nombre as "nombre del representante

de venta" from clientes as c, repventas as r where r.numempl=c.repventas and

c.numclie=1024;

e) Si quisiéramos saber cuáles son los pedidos que ha realizado el cliente 1023 junto con el nombre del representante de ventas que lo atendió. ¿Qué muestra? ¿Por qué no se utilizó alias?

mysql> select numpedido, fechapedido, clie, rep_atendio, totalpedido, nombre from

pedidos, repventas where clie=1023 and rep_atendio=numempl;

Page 66: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 66

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

ACTIVIDAD: (escribe la instrucción SQL y el resultado, use la parte de atrás de la hoja)

1) Visualice el nombre de cada uno de los productos junto el nombre de su proveedor

2) Visualice el nombre el nombre del director, la ciudad y región que dirige

3) Muestre los nombre de los clientes que han hecho pedido junto con los representantes de ventas que los

atendió.(3 tablas)

4) Muestre los nombres de los clientes que el representante de ventas 223 ha atendido al realizar pedidos.

5) Muestre los clientes que han realizado pedido en el 2001

6) Los nombres de los representante de ventas junto con el nombre de su director.

5. Conclusiones

6. Anexo

Realice la captura de pantalla de los ejercicios.

Page 67: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 67

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

Materia Clave Periodo Valor Práctica

Taller de Base de Datos

SCA - 1025

Ago 13 – Ene 14 7% 17

Unidad Tema Nombre Práctica Duración

03

3.2.4 Subconsultas

Subconsultas 25 minutos

Recursos educativos Lugar Hardware Software

Proyector, Apuntes Laboratorio de

computo Pc por alumno SGBD: Mysql

1. INTRODUCCION

Muchas ocasiones las consultas multitablas de composición natural no son suficientes para realizar algún tipo de consulta,

como por ejemplo saber cuál es el nombre del producto más vendido, por lo tanto nos vemos forzados a realizar una

consulta previa y posteriormente realizar la otra, pero en una solo instrucción.

2. OBJETIVO

El alumno realiza subconsultas en 1 o más tablas, sin la necesidad de un Sistema de Información, logrando así un informe

entendible para un usuario final.

Hora de inicio:______________ Hora termino: _________________ Fecha: __________________________________________

Nombre del alumno: __________________________________________________ Grupo: _________ Calificación: ___________

Docente: MTI José Hernández Rodríguez Firma:

Page 68: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 68

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

3. Fundamento

¿Qué es una subconsulta?

A veces tenemos que realizar operaciones más complejas con los datos, operaciones en las que nos interesaría

ayudarnos de una primera consulta auxiliar que extrajera la información en la que nos queremos basar. Esta consulta auxiliar

recibe el nombre de "subconsulta" o "subquery".

Por ejemplo, si queremos saber qué clientes tenemos en la ciudad que más habitantes tenga, la forma "razonable" de

conseguirlo sería saber en primer lugar cual es la ciudad que más habitantes tenga, y entonces lanzar una segunda consulta

para ver qué clientes hay en esa ciudad.

Como la estructura de nuestra base de datos de ejemplo es muy sencilla, no podemos hacer grandes cosas, pero un

caso parecido al anterior (aunque claramente más inútil) podría ser saber qué personas tenemos almacenadas que vivan en la

última ciudad de nuestra lista.

Para ello, la primera consulta (la "subconsulta") sería saber cual es la última ciudad de nuestra lista. Si lo hacemos

tomando la que tenga el último código, la consulta podría ser SELECT MAX(codigo) FROM ciudades;

Vamos a imaginar que pudiéramos hacerlo en dos pasos. Si llamamos "maxCodigo" a ese código obtenido, la

"segunda" consulta podría ser:

SELECT * FROM personas WHERE codciudad= maxCodigo;

Pero estos dos pasos se pueden dar en uno: al final de la "segunda" consulta (la "grande") incluimos la primera consulta

(la "subconsulta"), entre paréntesis, así

SELECT * FROM personas WHERE codciudad= ( SELECT MAX(codigo) FROM ciudades );

4. Procedimiento

DESARROLLO DE LA PRÁCTICA

Paso 1: Acceder a Mysql como en la práctica número dos.

Paso 2: Ponga en uso la base de datos: Empresa_New

Paso 3: Escriba las instrucciones sql de lo siguiente:

a) Si quisiéramos saber quiénes son los clientes que están por encima del promedio del limitedecredito

select * from clientes where limitecredito > al promedio de limite de credito

pero no conocemos cual es el promedio del límite de crédito entonces lo calculamos

Page 69: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 69

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

mysql> select avg(limitecredito) from clientes;

instrucción final:

select * from clientes where limitecredito > (select avg(limitecredito) from

clientes);

b) ¿Que realiza la siguiente instrucción? Explique.

mysql> select nombre from clientes where numclie in (select clie from pedidos);

c) Si quisiéramos saber los nombres de los clientes que han realizado solamente 2 pedidos, entonces realizaremos

primero

mysql> select clie, count(*) from pedidos group by clie having count(*)= 2;

pero no podemos devolver 2 campos a la otra consulta y nos interesa solo las claves de los clientes que ha realizado

dos pedidos, entonces omitimos count(*) en la lista de campos asi:

mysql> select clie from pedidos group by clie having count(*)= 2;

Ahora si podemos encontrar los nombres realizando

mysql> select nombre from clientes where numclie in (select clie from pedidos g roup by clie having count(*)= 2);

¿Cuáles son los nombres?

d) ¿Que hace la siguiente la ultima instruccion?

mysql> select clie, count(*) from pedidos group by clie order by count(*) desc;

mysql> select clie, count(*) from pedidos group by clie order by count(*) desc limit 1;

mysql> select clie from pedidos group by clie order by count(*) desc limit 1;

mysql> select nombre from clientes where numclie = (select clie from pedidos group by clie order by count(*) desc limit 1);

e) Si quisiera saber el nombre de los clientes que hayan sido atendido por uno de los representante de ventas de la

oficina Jaltipan Norte.

Primero debemos saber cuál es el código de la oficina Jaltipan norte, hacemos:

mysql> select numoficina from oficinas where ciudad="jaltipan" and

region="norte"; ¿cuál es?

Segundo busquemos las claves de los empleados que trabajan en esa oficina (la de la anterior instrucción) ¿cuáles

son? mysql> select numempl from repventas where oficinarep in (select numoficina

from oficinas where ciudad="jaltipan" and region="norte");

Page 70: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 70

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

Tercero busquemos las claves de los clientes que condicionando que el representante de ventas que lo atendió este

en la lista de esa oficina (la de la anterior instrucción) ¿cuáles son? mysql> select clie from pedidos where rep_atendio in (select numempl from

repventas where oficinarep in (select numoficina from oficinas where

ciudad="jaltipan" and region="norte"));

Finalmente obtenemos los nombre de los clientes de las claves que arrojó la anterior instrucción? ¿Cómo se llaman

entonces?

mysql> select nombre from clientes where numclie in (select clie from pedidos

wh ere rep_atendio in (select numempl from repventas where oficinarep in

(select numoficina from oficinas where ciudad="jaltipan" and

region="norte")));

ACTIVIDAD: (escribe la instrucción SQL y el resultado)

1) Nombre de los clientes que están por debajo del promedio del límite de crédito

2) Nombre del representante de ventas que más cliente tenga

3) Nombre del cliente que menos pedido ha realizado

Page 71: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 71

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

4) Nombre de los clientes que no han realizado ningún pedido

5) Nombre de los clientes que han realizado pedidos durante el año 2001 (con subconsultas)

6) Nombre de los proveedores que proveen producto.

5. Conclusiones

Page 72: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 72

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

Materia Clave Periodo Valor Práctica

Taller de Base de Datos

SCA - 1025

Ago 13 – Ene 14 7% 18

Unidad Tema Nombre Práctica Duración

04

4.2, 4.3 Creación y privilegios

de usuarios

Otorgando privilegios 25 minutos

Recursos educativos Lugar Hardware Software

Proyector, Apuntes Laboratorio de

computo Pc por alumno SGBD: Mysql

1. INTRODUCCION

Cuando se conecta a un servidor MySQL, el servidor aceptará o rechazará la conexión basándose en su identidad y si usted

puede identificar su identidad proporcionando la clave correcta. Si no es así, el servidor le denegará el acceso completamente.

En caso contrario, el servidor acepta la conexión, y entra en el Estado 2, y espera peticiones.

Ya que en un sistema hay muchos tipos de usuarios, debemos tener un control sobre ellos, estableciendo esquemas de

seguridad basado en los roles de dichos usuarios para restringir el acceso a la información.

2. OBJETIVO

El alumno crea y otorga privilegios a usuarios, mediante la instrucción GRANT, para mantener la integridad de una Base de

Datos, restringiendo el acceso a la información.

Hora de inicio:______________ Hora termino: _________________ Fecha: __________________________________________

Nombre del alumno: __________________________________________________ Grupo: _________ Calificación: ___________

Docente: MTI José Hernández Rodríguez Firma:

Page 73: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 73

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

3. Fundamento

El administrador establecerá los usuarios que se pueden conectar a MySQL y con qué privilegios.

Disponemos de dos comandos para ello:

– GRANT: crea un cuenta MySQL y especifica privilegios.

– REVOKE: borra privilegios de una cuenta existente.

Sentecia GRANT

GRANT tipo_priv [(listacol)] [, tipo_priv[lista_col]… ON {*.* | * | nombre_bd.* | nombre_bd.tabla | nombre_tabla}

TO usuario IDENTIFIED BY “contraseña” [, usuario IDENTIFIED BY “contraseña”]… [WITH GRANT OPTION].

Especificador de privilegios: ALTER, CREATE, DELETE, DROP, INDEX, INSERT, SELECT, UPDATE, FILE, PROCESS, RELOAD,

SHUTDOWN, ALL, USAGE.

Nivel de privilegio:

*.* Todas las bases de datos y tablas

* Sin BD por defecto

Nombre_bd.* Todas las tablas de la base de datos nombrada

Nombre_bd.tabla Todas las columnas que se nombran en la tabla de la BD nombrada

Procedimiento

DESARROLLO DE LA PRÁCTICA

Paso 1: Acceder a Mysql como en la práctica número dos(MODO COMANDO).

C:\Appserv\MySQL\bin>mysql -h localhost -u root –p empresa_new

Enter password: *****

Paso 2: Ponga en uso la base de datos: Empresa_New (Opcional).

Paso 3: Creando un usuario que tenga acceso total a todas las bases de datos mysql> grant all on *.* to usuario1 identified by "usuario1";

Query OK, 0 rows affected (0.33 sec)

Paso 4: Creando un usuario que tenga acceso total a la base de datos empresa_new mysql> grant all on empresa_new.* to usuario2 identified by "usuario2";

Query OK, 0 rows affected (0.09 sec)

Paso 5: Creando un usuario que tenga acceso de visualizar y modificar solo en la tabla clientes de la base de datos

empresa_new. mysql> grant select, update on empresa_new.clientes to usuario3 identified by "usuario3";

Query OK, 0 rows affected (0.03 sec)

Paso 6: Creando un usuario que tenga acceso de visualizar solo en la tabla clientes las siguientes columnas nombreclie,

limitecredito. mysql> grant select(nombre,limitecredito) on empresa_new.clientes to usuario4 identified by "usuario4";

Query OK, 0 rows affected (0.16 sec)

Page 74: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 74

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

ACTIVIDAD: (escribe la instrucción SQL y el resultado)

Use el siguiente ejemplo para iniciar sesión como usuario1, usuario2, usuario3, usuario4 e introduzca las contraseñas

asignadas. Y en cada uno de los incisos escriba la instrucción SQL y escribe la EXPLICACIÓN de cada uno.

C:\Appserv\MySQL\bin>Mysql –u usuario1 –p

a) Inicie sesión como usuario1: muestre las bases de datos, ponga en uso la base de datos empresa_new

b) Inicie sesión como usuario2: muestre las bases de datos, ponga en uso la base de datos empresa_new y muestre las tablas de empresa_new. Diferencia entre el inciso a y b?

c) Inicie sesión como usuario3: muestre las bases de datos, ponga en uso la base de datos empresa_new, haga un select a la tabla repventas, insert un nuevo cliente, elimine uno existente. Diferencia entre el inciso b y c?

Page 75: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 75

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

d) Inicie sesión como usuario4: muestre las bases de datos, ponga en uso la base de datos empresa_new, haga un select a la tabla clientes, muestre la información a la que solo tiene acceso . Diferencia entre el inciso b y c?

Ejercicios (Nombre a los usuarios como su nombre: jose1, jose2,ect):

1. Cree un usuario que tenga acceso de solo mostrar los datos de la tabla repventas

2. Cree un usuario que permita actualizar, visualizar en la tabla directores

5. Conclusiones

Page 76: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 76

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

Materia Clave Periodo Valor Práctica

Taller de Base de Datos

SCA - 1025

Ago 13 – Ene 14 7% 19

Unidad Tema Nombre Práctica Duración

04

4.2, 4.3 Creación y privilegios

de usuarios

Quitando privilegios 25 minutos

Recursos educativos Lugar Hardware Software

Proyector, Apuntes Laboratorio de

computo Pc por alumno SGBD: Mysql

1. INTRODUCCION

Cuando se conecta a un servidor MySQL, el servidor aceptará o rechazará la conexión basándose en su identidad y si usted

puede identificar su identidad proporcionando la clave correcta. Si no es así, el servidor le denegará el acceso completamente.

En caso contrario, el servidor acepta la conexión, y entra en el Estado 2, y espera peticiones.

Ya que en un sistema hay muchos tipos de usuarios, debemos tener un control sobre ellos, estableciendo esquemas de

seguridad basado en los roles de dichos usuarios para restringir el acceso a la información.

2. OBJETIVO

El alumno revoca los privilegios a usuarios, mediante la instrucción REVOKE, que se les fueron asignados con anterioridad. Así

mismo visualiza los privilegios otorgados.

Hora de inicio:______________ Hora termino: _________________ Fecha: __________________________________________

Nombre del alumno: __________________________________________________ Grupo: _________ Calificación: ___________

Docente: MTI José Hernández Rodríguez Firma:

Page 77: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 77

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

3. Fundamento

El comando SHOW GRANTS, muestra los privilegios otorgados a un usuario su sintaxis es:

SHOW GRANTS FOR Nombre_Usuario;

El comando REVOKE usa la siguiente sintaxis:

REVOKE tipo_priv [(lista_col)] [, tipo_priv[lista_col]… ON {*.* | * | nombre_bd.* |

nombre_bd.tabla | nombre_tabla}

FROM usuario [, usuario]…

4. Procedimiento

DESARROLLO DE LA PRÁCTICA

Paso 1: Acceder a Mysql como en la práctica número dos(MODO COMANDO).

C:\Appserv\MySQL\bin>mysql -h localhost -u root –p empresa_new

Enter password: *****

Paso 2: Ponga en uso la base de datos: Empresa_New (Opcional).

Paso 3: Quite todos los privilegios del usuario1 mysql> Show grants for usuario1;

mysql> revoke all on *.* from usuario1;

mysql> Show grants for usuario1;

Paso 4: Quite todos los privilegios que tiene el usuario2 en base de datos empresa_new mysql> Show grants for usuario2;

mysql> revoke all on empresa_new.* from usuario2;

mysql> Show grants for usuario2;

Page 78: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 78

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

Paso 5: Quite el privilegio de actualizar en la tabla clientes de la base de datos empresa_new al usuario3.

mysql> Show grants for usuario3;

mysql> revoke update on empresa_new.clientes from usuario3;

mysql> Show grants for usuario3;

Paso 6: Quite el privilegio de seleccionar la columna limitecredito de la tabla clientes de la base de datos al usuario4.

mysql> Show grants for usuario4;

mysql> revoke select(limitecredito) on empresa_new.clientes from usuario4;

mysql> Show grants for usuario4;

Mysql> drop user Usuario1;

ACTIVIDAD: (escribe la instrucción SQL y el resultado)

Use el siguiente ejemplo para iniciar sesión como usuario1, usuario2, usuario3, usuario4 e introduzca las contraseñas asignadas. Y en cada uno de los incisos escriba la instrucción SQL y escribe la EXPLICACIÓN de que sucede y a que usuarios quedaron con algún privilegio.

Page 79: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 79

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

Ejercicios (Use los usuarios de la anterior práctica):

1. Quite el privilegio de mostrar los datos de la tabla repventas

2. Quite el privilegio de actualizar en la tabla directores

3. Elimine el usuario3.

5. Conclusiones

Page 80: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 80

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

Materia Clave Periodo Valor Práctica

Taller de Base de Datos

SCA - 1025

Ago 13 – Ene 14 7% 21

Unidad Tema Nombre Práctica Duración

04

4.5 Vistas

Vistas 25 minutos

Recursos educativos Lugar Hardware Software

Proyector, Apuntes Laboratorio de

computo Pc por alumno SGBD: Mysql

1. INTRODUCCION

Las vistas son tablas virtuales definidos a partir de un select por el usuario, sus usos son múltiples, pero uno de los más

utilizados es en los reportes o consultas complejas y que a menudo se escriben. Además proporcionan un medio más de

seguridad para restringir a los usuarios finales ante ataques o uso mal intencionados.

2. OBJETIVO

El alumno crea y usa vistas, como un medio más de nivel de seguridad en el uso de las bases de datos

Hora de inicio:______________ Hora termino: _________________ Fecha: __________________________________________

Nombre del alumno: __________________________________________________ Grupo: _________ Calificación: ___________

Docente: MTI José Hernández Rodríguez Firma:

Page 81: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 81

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

3. Fundamento

Creación de una Vista

CREATE VIEW vista [({columna ,}+] AS consulta ; La vista se crea con las columnas que devuelve una consulta. Si no nos importa que las columnas de la vista

hereden los nombres de las columnas recuperadas en la consulta no tenemos que especificarlos.

Hay dos tipos de vistas: Horizontales y verticales:

Las horizontales: son las que se forman de una consulta donde se toman todas las columnas de la tabla a la

que se hará la consulta.

Create view vistaisc as select * from alumnos where carrera=”ISC”;

Las verticales: son las que se forman de algunas columnas de la(s) tabla(s) donde se hace la consulta

Create view vistaisc as select matri, nombre, prom from alumnos where

carrera=”ISC”;

Borrado de una Vista DROP VIEW vista;

4. Procedimiento

DESARROLLO DE LA PRÁCTICA

Paso 1: Acceder a Mysql como en la práctica número dos(MODO COMANDO).

C:\Appserv\MySQL\bin>mysql -h localhost -u root –p empresa_new

Enter password: *****

Paso 2: Ponga en uso la base de datos: Empresa_New (Opcional).

Paso 3: Muestre las tablas(Muestre el resultado)

Page 82: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 82

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

Paso 4: Crear las siguientes vistas horizontales

Mysql> create view vista010 as select * from clientes where repventas=208;

Mysql> create view vista020 as select * from clientes where repventas=205 and

limitecredito>20000;

Paso 5: Muestre las tablas (Muestre el resultado)

Paso 6: ¿Cómo saber cuáles si son tablas y cuáles no? Use la siguiente instrucción.

SELECT table_name, table_type, engine FROM information_schema.tables WHERE table_schema =

'empresa_new';

Escriba el resultado y explique qué es lo que ve.

Paso 7: Las vistas creadas son unas tablas virtuales y podemos usarlas como una tabla “normal”. Realice las siguientes consultas.

Mysql> Select * from vista010;

Mysql> Select * from vista020;

Paso 8: Crear las siguientes vistas Verticales

Mysql> create view vista030 as select nombreclie, limitecredito from clientes where

repventas=208;

Mysql> create view vista040 as select nombreclie, limitecredito from clientes where

limitecredito< (select avg(limitecredito) from clientes);

Paso 9: Muestre las tablas. (Muestre el resultado)

Page 83: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 83

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

Paso 10: Haga select a cada una de las vistas: vista030 y vista040 y escriba la diferencia entre ambas.

Paso 11: Mostrar cómo fue escrita la instrucción de creación de una vista (Escriba resultado)

Mysql> Show create view vista010;

Paso 12: Muestre las tablas. (Escriba resultado)

Paso 13: Eliminar una vista

Mysql> drop view vista010;

Paso 14: Muestre las tablas. (Escriba resultado)

ACTIVIDAD: (escribe la instrucción SQL y el resultado)

1. Usando la base de datos empresa_new cree 6 vistas: 3 horizontales y 3 verticales

Page 84: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 84

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

2. Use la instrucción del paso 6 para mostrar las vistas

3. Muestre la creación de dos vistas

4. Elimine 2 de las vistas creadas en el paso 1.

5. Conclusiones

Page 85: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 85

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

Materia Clave Periodo Valor Práctica

Taller de Base de Datos

SCA - 1025

Ago 13 – Ene 14 15% 22

Unidad Tema Nombre Práctica Duración

05

5.5 Commit y Rollback

Manejo de transacciones 25 minutos

Recursos educativos Lugar Hardware Software

Proyector, Apuntes Laboratorio de

computo Pc por alumno SGBD: Mysql

1. INTRODUCCION

Muchas ocasiones realizamos inserciones, modificaciones o eliminaciones, sin tener la plena seguridad o de manera errónea,

esto nos lleva a perdida de datos o a la no integridad de datos. Con el control de transacciones es posible minimizar esos

problemas.

2. OBJETIVO

El alumno realiza puntos de salvamentos, durante la realización de transacciones, para poder confirmar o cancelar sus

eliminaciones, modificaciones y eliminaciones, al finalizar dichas operaciones.

Hora de inicio:______________ Hora termino: _________________ Fecha: __________________________________________

Nombre del alumno: __________________________________________________ Grupo: _________ Calificación: ___________

Docente: MTI José Hernández Rodríguez Firma:

Page 86: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 86

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

3. Fundamento

Begin; indica al SGBD quea partir de este momento trabajara con transacciones Para finalizar a transacción tenemos 2 opciones: a) Commit: termina la transacciones aceptando cada una de las transacciones realizadas b) Rollback : termina la transacciones cancelando todas las transacciones realizadas

4. Procedimiento

DESARROLLO DE LA PRÁCTICA

Paso 1: Acceder a Mysql como en la práctica número dos(MODO COMANDO).

C:\Appserv\MySQL\bin>mysql -h localhost -u root –p empresa_new

Enter password: *****

Paso 2: Ponga en uso la base de datos: Empresa_New (Opcional).

NOTA: DE CADA UNO DE LOS SIGUIENTES PASOS MUESTRE EL RESULTADO Y LA INSTRUCCIÓN sql

Paso 3: Realice un select a la tabla clientes.

Paso 4: Inicie la transacción escribiendo

Mysql> begin;

Paso 5: Elimine un cliente.

Paso 6: Realice un select a la tabla clientes para verificar que el cliente ha sido eliminado

Page 87: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 87

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

Paso 7: Modifique un dato de alguno de los clientes.

Paso 8: Verifique la modificación realizando un select

Paso 9: Cancelemos la transacción

Mysql> rollback;

Paso 10: Haga select a la tabla clientes y explique qué paso con las transacciones realizadas.

Paso 11: Inicie nuevamente la transacción

Paso 12: Realice la eliminación de uno de los clientes

Paso 13: Realice un insert a la tabla clientes.

Paso 14: Realice un select a la tabla clientes para verificar las transacciones

Page 88: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 88

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

Paso 14: realizamos commit

Mysql> commit;

Paso 15: Realizamos un select a la tabla clientes y explique la diferencia entre commit y rollback.

ACTIVIDAD: (escribe la instrucción SQL y el resultado)

1. Usando la base de datos empresa_new inicie una transacción, realice un select para ver la tabla y realice 3

transacciones distintas(insert, update, delete). Realice un select al finalizar todas las transacciones, realice un rollback

posteriormente y vuelva a mostrar la tabla.

2. Vuelva a realizar los mismos pasos de la actividad 1 pero en lugar de realizar un rollback realice un commit.

5. Conclusiones

Page 89: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 89

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

Materia Clave Periodo Valor Práctica

Taller de Base de Datos

SCA - 1025

Ago 13 – Ene 14 15% 23

Unidad Tema Nombre Práctica Duración

05

5.5 Commit y Rollback

Multiples puntos de salvamento 25 minutos

Recursos educativos Lugar Hardware Software

Proyector, Apuntes Laboratorio de

computo Pc por alumno SGBD: Mysql

5. INTRODUCCION

Muchas ocasiones realizamos inserciones, modificaciones o eliminaciones, sin tener la plena seguridad o de manera errónea,

esto nos lleva a perdida de datos o a la no integridad de datos. Con el control de transacciones es posible minimizar esos

problemas.

6. OBJETIVO

El alumno realiza puntos de salvamentos, durante la realización de transacciones, para poder confirmar o cancelar sus

eliminaciones, modificaciones y eliminaciones, al finalizar dichas operaciones.

Hora de inicio:______________ Hora termino: _________________ Fecha: __________________________________________

Nombre del alumno: __________________________________________________ Grupo: _________ Calificación: ___________

Docente: MTI José Hernández Rodríguez Firma:

Page 90: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 90

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

7. Fundamento

Begin; indica al SGBD quea partir de este momento trabajara con transacciones Para finalizar a transacción tenemos 2 opciones: c) Commit: termina la transacciones aceptando cada una de las transacciones realizadas d) Rollback : termina la transacciones cancelando todas las transacciones realizadas

8. Procedimiento

DESARROLLO DE LA PRÁCTICA

Paso 1: Acceder a Mysql como en la práctica número dos(MODO COMANDO).

C:\Appserv\MySQL\bin>mysql -h localhost -u root –p empresa_new

Enter password: *****

Paso 2: Ponga en uso la base de datos: Empresa_New (Opcional).

NOTA: DE CADA UNO DE LOS SIGUIENTES PASOS MUESTRE EL RESULTADO Y LA INSTRUCCIÓN sql

Paso 3: Realice un select a la tabla clientes.

Paso 4: Inicie la transacción escribiendo

Mysql> begin;

Paso 5: Elimine un cliente.

Paso 6: Realice un select a la tabla clientes para verificar que el cliente ha sido eliminado

Page 91: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 91

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

Paso 7: Modifique un dato de alguno de los clientes.

Paso 8: Verifique la modificación realizando un select

Paso 9: Cancelemos la transacción

Mysql> rollback;

Paso 10: Haga select a la tabla clientes y explique qué paso con las transacciones realizadas.

Paso 11: Inicie nuevamente la transacción

Paso 12: Realice la eliminación de uno de los clientes

Paso 13: Realice un insert a la tabla clientes.

Paso 14: Realice un select a la tabla clientes para verificar las transacciones

Page 92: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 92

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

Paso 14: realizamos commit

Mysql> commit;

Paso 15: Realizamos un select a la tabla clientes y explique la diferencia entre commit y rollback.

ACTIVIDAD: (escribe la instrucción SQL y el resultado)

3. Usando la base de datos empresa_new inicie una transacción, realice un select para ver la tabla y realice 3

transacciones distintas(insert, update, delete). Realice un select al finalizar todas las transacciones, realice un rollback

posteriormente y vuelva a mostrar la tabla.

4. Vuelva a realizar los mismos pasos de la actividad 1 pero en lugar de realizar un rollback realice un commit.

5. Conclusiones

Page 93: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 93

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ

Page 94: Cuaderno de Prácticas

INSTITUTO TECNOLÓGICO SUPERIOR DE ACAYUCAN

Cuaderno de Prácticas de Taller de Base de Datos.

Página 94

Ingeniería en Sistemas Computacionales

DISEÑO Y FORMULACION. MTI JOSE HERNANDEZ RODRIGUEZ