Cuaderno de Prácticas
-
Upload
eduardo-rios -
Category
Documents
-
view
38 -
download
0
Transcript of 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:
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)
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.
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?
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
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:
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:
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
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:
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;
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.
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:
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 | |
+-----------+----------+-----------------+------+-----+---------+---------------
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
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;
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?
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.
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:
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
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 | |
+------------+-------------+------+-----+---------+-------+
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
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;
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 | |
+------------+-------------+------+-----+---------+-------+
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
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:
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 | | |
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
__________________________________________________
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
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:
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
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.______________________________________________________________________________________
________________________________________________________________________________________
________________________________________________________________________________________
________________________________________________________________________________________
________________________________________________________________________________________
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
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:
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
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.
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
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.
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:
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);
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.
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:
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
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 |
+---------+------------------+-----------+---------------+
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.
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:
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.
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
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.
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:
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)
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.
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:
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”;
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
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.
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:
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
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;
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.
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:
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.
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.
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:
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
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;
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.
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:
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
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");
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
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
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:
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)
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?
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
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:
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;
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.
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
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:
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)
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)
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
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
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:
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
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
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
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:
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
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
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
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
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