Está en la página 1de 102

mysql>Instituto Tecnológico Superior de Comalcalco;

mysql> Alumno;
>Emanuel Córdova Montiel,

mysql> Materia;
>Administración de Base de datos,

mysql> Docente;
>Wilbert Colorado Canto,

mysql> Nombre del trabajo;


>Bitacora de Oracle MySQL,

mysql> Carrera;
>Ingenieria Sistemas Computacionales,

mysql> Grado: 6 | Grupo: A;


Bitácora de Oracle MySQL

Introducción y herramientas utilizadas.

Esta es una bitácora que contiene algunas de las sentencias que se vieron durante todo el
semestre con la materia de administración de bases de datos. Cada una de las cuales, se
fueron viendo conforme al grado de complejidad comenzando desde setencas sencillas
como crear una base de datos hasta sentencias complejas para crear triggers.

Para llevar a cabo las prácticas se utilizó el emulador WampServer en la versión 3.1.0 con
el sistema gestor de base de datos relacional Oracle MySQL en la versión 5.7.19.
El equipo u ordenador que se utilizó es una Samsung Notebook modelo NP-RV415L con el
sistema operativo Windows 8.1 Pro.

Administración de Base de Datos | Ing. Sistemas Computacionales 1


Bitácora de Oracle MySQL

Contenido
Introducción y herramientas utilizadas. .............................................................................................................1
Introducción a algunos comandos básicos. ......................................................................................................3
Sentencias LDD (Lenguaje de Definición de Datos) .........................................................................................6
Sentencias LMD (Lenguaje de Manipulación de Datos) ...................................................................................8
Clausulas .............................................................................................................................................................8
Funciones de agregado................................................................................................................................... 10
Operadores Lógicos ........................................................................................................................................ 11
Operadores Relacionales................................................................................................................................. 11
Consultas | 24 de febrero de 2018 .................................................................................................................. 13
Consultas | 2 de marzo de 2018...................................................................................................................... 17
Base de datos de las ventas de SKY ............................................................................................................... 22
Subconsultas | 6 de marzo de 2018 ................................................................................................................ 27
Subconsultas | 14 de marzo de 2018 .............................................................................................................. 28
Vistas ................................................................................................................................................................ 29
Vistas simples ........................................................................................................................................... 30
Vistas complejas....................................................................................................................................... 31
Tarea especial (45 tablas) ................................................................................................................................ 32
Tarea especial (30 vistas nuevas con alias) ..................................................................................................... 68
Triggers ............................................................................................................................................................ 90

Administración de Base de Datos | Ing. Sistemas Computacionales 2


Bitácora de Oracle MySQL

Introducción a algunos comandos básicos.

1. USE
Este comando tiene como función usar o conectarse a una base de datos existente.
 Ejemplo
mysql> USE prueba;
Database changed

2. STATUS
Este comando nos muestra una información general de la base de datos, como, por
ejemplo, a la base de datos que estamos actualmente trabajando, un id, el usuario y el
puerto que utiliza el servidor.
 Ejemplo
mysql> STATUS;
--------------
c:/wamp64/bin/mysql/mysql5.7.19/bin/mysql.exe Ver 14.14 Distrib 5.7.19, for Win64 (x86_64)

Connection id: 12
Current database: ventas_sky
Current user: root@localhost
SSL: Not in use
Using delimiter: ;
Server version: 5.7.19 MySQL Community Server (GPL)
Protocol version: 10
Connection: localhost via TCP/IP
Server characterset: latin1
Db characterset: latin1
Client characterset: cp850
Conn. characterset: cp850
TCP port: 3306
Uptime: 4 days 4 hours 40 min 46 sec

Threads: 1 Questions: 305 Slow queries: 0 Opens: 178 Flush tables: 1 Open tables: 167 Queries
per second avg: 0.000
--------------

3. CONNECT
Es similar al comando USE, igual se conecta a una base de datos existente, pero muestra
información adicional como un id de conexión y el nombre de la base de datos actual a
la que está conectada.
 Ejemplo
mysql> CONNECT prueba;

Administración de Base de Datos | Ing. Sistemas Computacionales 3


Bitácora de Oracle MySQL

Connection id: 4
Current database: prueba

4. SHOW DATABASES
Este comando muestra una lista de todas las bases de datos que están en el servidor.
 Ejemplo
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| papeleria |
| performance_schema |
| phpmyadmin |
| plantillaempresa |
| practica1 |
| proveedor |
| proveedores |
| prueba |
| servicios |
| sistemas |
| test |
| tienda |
| uno |
| ventas_sky |
+--------------------+
19 rows in set (0.06 sec)
5. SHOW TABLES
El comando SHOW TABLES muestra todas las tablas que hay una base de datos
actual.
 Ejemplo
mysql> SHOW TABLES;
+------------------+
| Tables_in_prueba |
+------------------+
| bonus |
| clientes |
| dept |
| dept1 |
| dept2 |
| emp |
| emp1 |
| emp3 |
| emp4 |
| empleado1 |
| empleado2 |

Administración de Base de Datos | Ing. Sistemas Computacionales 4


Bitácora de Oracle MySQL

| employees |
| empvu10 |
| pedidos |
| pedidos1 |
| problema |
| problema5 |
| prueba |
| salvu30 |
| t |
| t1 |
| t10 |
| t7 |
| t8 |
| t9 |
+------------------+
36 rows in set (0.03 sec)

6. DESCRIBE
Si se desea tener información sobre el esquema o estructura de la tabla de una base de
datos se utiliza este comando.
 Ejemplo
mysql> DESCRIBE emp;
+------------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+---------------+------+-----+---------+-------+
| empno | decimal(4,0) | NO | PRI | 0 | |
| ename | char(10) | YES | MUL | NULL | |
| job | char(9) | YES | | NULL | |
| mgr1 | decimal(10,0) | YES | | NULL | |
| hiredate | datetime | YES | | NULL | |
| sal | decimal(7,2) | NO | | 0.00 | |
| comm | decimal(7,0) | YES | | NULL | |
| deptno | decimal(2,0) | YES | | NULL | |
| c_id | int(11) | YES | | NULL | |
| thriftplan | decimal(9,2) | YES | | NULL | |
| loancode | char(1) | YES | | NULL | |
+------------+---------------+------+-----+---------+-------+
11 rows in set (1.34 sec)

7. DESC
Es similar al comando DESCRIBE, muestra la estructura de la tabla de una base de
datos.
 Ejemplo
mysql> DESC emp;
+------------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+---------------+------+-----+---------+-------+

Administración de Base de Datos | Ing. Sistemas Computacionales 5


Bitácora de Oracle MySQL

| empno | decimal(4,0) | NO | PRI | 0 | |


| ename | char(10) | YES | MUL | NULL | |
| job | char(9) | YES | | NULL | |
| mgr1 | decimal(10,0) | YES | | NULL | |
| hiredate | datetime | YES | | NULL | |
| sal | decimal(7,2) | NO | | 0.00 | |
| comm | decimal(7,0) | YES | | NULL | |
| deptno | decimal(2,0) | YES | | NULL | |
| c_id | int(11) | YES | | NULL | |
| thriftplan | decimal(9,2) | YES | | NULL | |
| loancode | char(1) | YES | | NULL | |
+------------+---------------+------+-----+---------+-------+
11 rows in set (0.08 sec)

Sentencias LDD (Lenguaje de Definición de Datos)

8. CREATE
Esta sentencia crea un objeto. Por ejemplo: base de datos, tablas, vistas, triggers, etc.

9. CREATE DATABASE
Esta sentencia permite crear una base de datos.
 Ejemplo: se crea una base de datos llamada mydb.
mysql> CREATE DATABASE mydb;
Query OK, 1 row affected (0.05 sec)

10. CREATE TABLE


Esta sentencia crea una tabla de una base de datos.
 Ejemplo: se crea una tabla llamada equipo_basquetbol con los siguientes atributos:
mysql> CREATE TABLE equipo_basquetbol(
-> clave_equipo INT NOT NULL,
-> nombre VARCHAR(20),
-> nombre_jugador VARCHAR(20),
-> apellido_ma_jugador VARCHAR(20),
-> apellido_pa_jugador VARCHAR(20),
-> numero_jugador NUMERIC(2),
-> copas NUMERIC(5),
-> partidos_perdidos NUMERIC(5),
-> partidos_jugados NUMERIC(5),
-> nombre_dirtecnico VARCHAR(20),
-> apellidos_dirtecnico VARCHAR(30),
-> PRIMARY KEY(clave_equipo));
Query OK, 0 rows affected (0.07 sec)

Administración de Base de Datos | Ing. Sistemas Computacionales 6


Bitácora de Oracle MySQL

11. CREATE VIEW


Esta sentencia nos permite crear vistas.
 Ejemplo: Esta vista contiene el nombre de los empleados que tengan el cargo de
manager.
mysql> CREATE VIEW ejemplo_view
-> AS SELECT ename, job
-> FROM emp
-> WHERE job='MANAGER';
Query OK, 0 rows affected (0.22 sec)

mysql> SELECT * FROM ejemplo_view;


+-------+---------+
| ename | job |
+-------+---------+
| JONES | MANAGER |
| BLAKE | MANAGER |
| CLARK | MANAGER |
+-------+---------+
3 rows in set (0.09 sec)

12. CREATE TRIGGER


Sentencia para crear un trigger a una tabla.
 Ejemplo
mysql> CREATE TABLE account (acct_num INT, amount DECIMAL(10,2));
mysql> CREATE TRIGGER ins_sum BEFORE INSERT ON account
-> FOR EACH ROW SET @sum = @sum + NEW.amount;

13. DROP
Esta sentencia elimina un objeto (de los ya mencionados arriba).

14. DROP TABLE


Esta sentencia borra una tabla de la base de datos.

15. DROP DATABASE


Esta sentencia borra la base de datos del servidor.

16. ALTER TABLE


Modifica la definición del objeto.

Administración de Base de Datos | Ing. Sistemas Computacionales 7


Bitácora de Oracle MySQL

Sentencias LMD (Lenguaje de Manipulación de Datos)

17. SELECT
Esta sentencia se utiliza para recuperar datos. Por ejemplo, cuando queremos hacer
consultas.

18. SELECT * FROM


Esta sentencia es básica, pues lista o recupera todos los campos de una tabla.
 Ejemplo
En este ejemplo esta consulta sencilla recupera todos los campos de la tabla dept.
mysql> SELECT * FROM dept;
+--------+------------+---------------+
| deptno | dname | loc |
+--------+------------+---------------+
| 50 | PRODUCCIàN | SAN FRANCISCO |
| 10 | ACCOUNTING | NEW YORK |
| 30 | SALES | CHICAGO |
| 20 | RESEARCH | DALLAS |
| 40 | OPERATIONS | BOSTON |
+--------+------------+---------------+
5 rows in set (0.95 sec)

Clausulas

19. FROM
Esta cláusula especifica la tabla de la cual se va a seleccionar un registro.

20. WHERE
Especifica las condiciones que deben reunir los registros que se van a seleccionar.
 Ejemplo: en esta consulta sencilla se recupera solo el nombre y el cargo del empleado
con número 7934.
mysql> SELECT ename, job FROM emp WHERE empno=7934;
+--------+-------+
| ename | job |
+--------+-------+
| MILLER | CLERK |
+--------+-------+
1 row in set (0.07 sec)

Administración de Base de Datos | Ing. Sistemas Computacionales 8


Bitácora de Oracle MySQL

21. HAVING
Expresa la condición que debe satisfacer a cada grupo.
 Ejemplo: en esta consulta se aplica una función de grupo donde muestra alempleado
que ganas menos.
mysql> SELECT ename, sal FROM emp WHERE sal HAVING MIN(sal);
+-------+---------+
| ename | sal |
+-------+---------+
| JINKS | 1200.00 |
+-------+---------+
1 row in set (0.03 sec)

22. GROUP BY
Separa los registros seleccionados en grupos específicos.
 Ejemplo: en esta consulta se devuelven los campos, pero agrupados por el cargo.
mysql> SELECT ename, job FROM emp GROUP BY job;
+-------+-----------+
| ename | job |
+-------+-----------+
| SCOTT | ANALYST |
| FORD | ANLYST |
| JINKS | CLERK |
| JONES | MANAGER |
| KING | PRESIDENT |
| ALLEN | SALESMAN |
+-------+-----------+
6 rows in set (0.03 sec)

23. ORDER BY
Ordena los registros seleccionados de acuerdo con un orden especifico.
 Ejemplo: en esta consulta sencilla se devuelven los nombres ordenados de forma
ascendente o en este caso en orden alfabético ya que por defecto devuelve los registros
en ascendente.
mysql> SELECT ename FROM emp ORDER BY ename;
+--------+
| ename |
+--------+
| ADAMS |
| ALLEN |
| BLAKE |
| CLARK |

Administración de Base de Datos | Ing. Sistemas Computacionales 9


Bitácora de Oracle MySQL

| FORD |
| JAMES |
| KING |
| MARTIN |
| MILLER |
| SMITH |
| TURNER |
| WARD |
+--------+
15 rows in set (0.00 sec)

Funciones de agregado

24. AVG
Esta función de agregado calcula el promedio de los valores de un campo
determinado.
 Ejemplo: en esta consulta se devuelven la media de todos los salarios de los distintos
empleados.
mysql> SELECT AVG(sal) MEDIA_DE_LOS_SALARIOS FROM emp;
+-----------------------+
| MEDIA_DE_LOS_SALARIOS |
+-----------------------+
| 2021.666667 |
+-----------------------+
1 row in set (0.06 sec)

25. MAX
Devuelve el valor más alto de un campo especifico.
 Ejemplo: aquí lo que sucede es que devuelve el salario más alto de los empleados.
mysql> SELECT MAX(sal) FROM emp;
+----------+
| MAX(sal) |
+----------+
| 5000.00 |
+----------+
1 row in set (0.03 sec)

26. MIN
Devuelve el valor más bajo de un campo especifico.
 Ejemplo: de igual manera, devuelve el salario pero más bajo de los empleados.
mysql> SELECT MIN(sal) FROM emp;

Administración de Base de Datos | Ing. Sistemas Computacionales 10


Bitácora de Oracle MySQL
+----------+
| MIN(sal) |
+----------+
| 800.00 |
+----------+
1 row in set (0.00 sec)

27. COUNT
Devuelve el número de registros de una selección.
 Ejemplo: lo que pasa es que solo devuelve el número de registros que hay para el campo
de ename.
mysql> SELECT COUNT(ename) FROM emp;
+--------------+
| COUNT(ename) |
+--------------+
| 15 |
+--------------+
1 row in set (0.00 sec)

Operadores Lógicos

28. AND
Evalúa dos condiciones y devuelve un valor verdadero sólo si ambas condiciones son
ciertas.

29. OR
Evalúa dos condiciones y devuelve valor verdadero si alguna de las dos es cierta.

Operadores Relacionales

Mayor que >


Menor que <
<> Distinto de
= Igual a
BETWEEN Especifica un intervalo de valores.
LIKE Se utiliza para comparar un modelo.
IN Se utiliza para especificar registros.

Administración de Base de Datos | Ing. Sistemas Computacionales 11


Bitácora de Oracle MySQL

30. BETWEEN
 Ejemplo: aquí esta consulta lo que hace es que muestra los salarios de los empleados
que ganen entre 1500 y 3000.
mysql> SELECT ename, sal FROM emp WHERE sal BETWEEN 1500 AND 3000;
+--------+---------+
| ename | sal |
+--------+---------+
| ALLEN | 1600.00 |
| BLAKE | 2850.00 |
| CLARK | 2450.00 |
| SCOTT | 3000.00 |
| TURNER | 1500.00 |
| FORD | 3000.00 |
+--------+---------+
6 rows in set (0.36 sec)

31. LIKE
 Ejemplo: en esta coinsulta lo que hace es que lista todos los nombres de los
empleados que comienzan con la letra A.
mysql> SELECT ename FROM emp WHERE ename LIKE 'A%';
+-------+
| ename |
+-------+
| ADAMS |
| ALLEN |
+-------+
2 rows in set (0.00 sec)

32. IN
 Ejemplo: en esta consulta lista los empleados que tengan el cargo de clerk, manager o
salesman.
mysql> SELECT ename, job FROM emp WHERE job IN('CLERK', 'MANAGER', 'SALESMAN');
+--------+----------+
| ename | job |
+--------+----------+
| JINKS | CLERK |
| SMITH | CLERK |
| ALLEN | SALESMAN |
| WARD | SALESMAN |
| JONES | MANAGER |
| MARTIN | SALESMAN |
| BLAKE | MANAGER |

Administración de Base de Datos | Ing. Sistemas Computacionales 12


Bitácora de Oracle MySQL

| CLARK | MANAGER |
| TURNER | SALESMAN |
| ADAMS | CLERK |
| JAMES | CLERK |
| MILLER | CLERK |
+--------+----------+
12 rows in set (0.36 sec)

Consultas | 24 de febrero de 2018

33. Esta consulta muestra el número, el nombre, una descripción, los créditos, la tarifa y el
departamento del curso donde el crédito del curso sea 3 pero el departamento del curso
sea PHIL.
mysql> SELECT * FROM curso WHERE Cred=3 AND Cdept='PHIL';
+-----+-----------------+--------------------+------+---------+-------+
| Cno | Cnombre | Cdescp | Cred | Ctarifa | Cdept |
+-----+-----------------+--------------------+------+---------+-------+
| P11 | EMPIRISMO | VERLO PARA CREERLO | 3 | 100 | PHIL |
| P22 | RACIONALISMO | PARA USARLOS CIS | 3 | 50 | PHIL |
| P33 | EXISTENCIALISMO | PARA USARLOS CIS | 3 | 200 | PHIL |
+-----+-----------------+--------------------+------+---------+-------+
3 rows in set (0.05 sec)

34. Esta consulta muestra el número, el nombre, la descripción, los créditos, las tarifas y el
departamento de los cursos pero que la tarifa esté entre 100 y 500.
mysql> SELECT * FROM curso WHERE (Ctarifa>=100) AND (Ctarifa <= 500);
+-----+-----------------------+--------------------+------+---------+-------+
| Cno | Cnombre | Cdescp | Cred | Ctarifa | Cdept |
+-----+-----------------------+--------------------+------+---------+-------+
| C11 | INTROD. A LAS CC. | PARA NOVATOS | 3 | 100 | CIS |
| C55 | ARQUITECT. COMPUTADOR | MAQ. VON NEUMANN | 3 | 100 | CIS |
| C66 | BASES DE DATOS RELAC. | IMPRESCINDIBLE | 3 | 176 | CIS |
| P11 | EMPIRISMO | VERLO PARA CREERLO | 3 | 100 | PHIL |
| P33 | EXISTENCIALISMO | PARA USARLOS CIS | 3 | 200 | PHIL |
| T11 | ESCOLASTICISMO | PARA BEATOS | 3 | 150 | THEO |
| T44 | COMUNISMO | PARA AVAROS | 6 | 200 | THEO |
| C77 | GEOMETRÍA | ACTUAL | 6 | 140 | CIS |
+-----+-----------------------+--------------------+------+---------+-------+
8 rows in set (0.04 sec)

35. Esta consulta muestra el nombre, la cuota, y las ventas de la empresa donde las ventas
sean menores a la cuota y sean menores a 300,000.
mysql> SELECT Nombre, Cuota, Ventas FROM repventas WHERE Ventas < Cuota AND Ventas <
300000;
+---------------+--------+--------+

Administración de Base de Datos | Ing. Sistemas Computacionales 13


Bitácora de Oracle MySQL

| Nombre | Cuota | Ventas |


+---------------+--------+--------+
| Bob Smith | 171428 | 142594 |
| Nancy Angelli | 285714 | 186042 |
| Mat¡as Clark | 100000 | 0 |
| 35 | 103 | 15 |
+---------------+--------+--------+
4rows in set (1.10 sec)

36. Esta consulta muestra el nombre, la cuota las ventas de la empresa donde las ventas
puedan ser menores a la cuota o sea menor a 300000
mysql> SELECT Nombre, Cuota, Ventas FROM repventas WHERE (Ventas < Cuota) OR (Ventas <
300000);
+---------------+--------+--------+
| Nombre | Cuota | Ventas |
+---------------+--------+--------+
| Paul Cruz | 235715 | 286775 |
| Bob Smith | 171428 | 142594 |
| Nancy Angelli | 285714 | 186042 |
| Mat¡as Clark | 100000 | 0 |
| 35 | 103 | 15 |
+---------------+--------+--------+
5rows in set (0.00 sec)

37. Esta consulta muestra el sueldo del personal junto con el sueldo del claustro.
mysql> SELECT Esueldo FROM personal UNION SELECT Fsueldo FROM claustro;
+---------+
| Esueldo |
+---------+
| 53 |
| 52 |
| 51 |
| 25001 |
| 25000 |
| 54 |
| 4000 |
| 200 |
| 500 |
| 0 |
| 35000 |
| 45000 |
| 36000 |
+---------+
13ows in set (0.16 sec)

Administración de Base de Datos | Ing. Sistemas Computacionales 14


Bitácora de Oracle MySQL

38. Esta consulta muestra el Idfab, el id del producto de los productos donde los precios del
producto tengan un precio mayor a 2000 que se hicieron junto a los pedidos (fab,
producto) pero solo los nombres de los productos y el fab no repetidos y tengan un
importe mayor a los 3000.
mysql> SELECT Idfab, Idproducto FROM productos WHERE precio>2000 UNION SELECT DISTINCT
fab, producto FROM pedidos WHERE Importe>3000;
+-------+------------+
| Idfab | Idproducto |
+-------+------------+
| ACI | 4100Y |
| ACI | 4100Z |
| REI | 2A44L |
| REI | 2A44R |
| ACI | 41004 |
| IMM | 779C |
| ACI | 41003 |
| QSA | XK47 |
| ACI | 41002 |
| IMM | 775C |
+-------+------------+
10rows in set (0.01 sec)

39. Esta consulta muestra todos los sueldos del personal junto con todos los sueldos de
claustro.
mysql> SELECT Esueldo FROM personal UNION ALL SELECT Fsueldo FROM claustro;
+---------+
| Esueldo |
+---------+
| 53 |
| 52 |
| 51 |
| 25001 |
| 25000 |
| 54 |
| 4000 |
| 200 |
| 500 |
| 0 |
| 35000 |
| 45000 |
| 35000 |
| 45000 |
| 45000 |
| 36000 |
| 35000 |

Administración de Base de Datos | Ing. Sistemas Computacionales 15


Bitácora de Oracle MySQL

+---------+
17rows in set (0.07 sec)

40. Esta consulta muestra el departamento y el nombre del curso ordenados de forma
ascendente.
mysql> SELECT Cdept, Cnombre FROM curso ORDER BY Cdept, Cnombre;
+-------+-----------------------+
| Cdept | Cnombre |
+-------+-----------------------+
| CIS | ARQUITECT. COMPUTADOR |
| CIS | BASES DE DATOS RELAC. |
| CIS | CIRCUITOS DIGITALES |
| CIS | ESTRUCT. DE DATOS |
| CIS | GEOMETRÍA |
| CIS | INTROD. A LAS CC. |
| CIS | MATEMATICAS DISCRETAS |
| PHIL | EMPIRISMO |
| PHIL | EXISTENCIALISMO |
| PHIL | RACIONALISMO |
| PHIL | SOLIPSISMO |
| THEO | COMUNISMO |
| THEO | ESCOLASTICISMO |
| THEO | FUNDAMENTALISMO |
| THEO | HEDONISMO |
+-------+-----------------------+
15 rows in set (0.13 sec)

41. Esta consulta muestra el número, el nombre, una descripción, los créditos, la tarifa y el
departamento del curso donde el departamento sea CIS o también donde la tarifa del curso
sea cero y los créditos a 3.
mysql> SELECT * FROM curso WHERE NOT Cdept='CIS' OR (Ctarifa=0 AND Cred=3);
+-----+-----------------------+--------------------+------+---------+-------+
| Cno | Cnombre | Cdescp | Cred | Ctarifa | Cdept |
+-----+-----------------------+--------------------+------+---------+-------+
| C33 | MATEMATICAS DISCRETAS | EL LENGUAJE DB2 | 3 | 0 | CIS |
| C44 | CIRCUITOS DIGITALES | AH HA! | 3 | 0 | CIS |
| P11 | EMPIRISMO | VERLO PARA CREERLO | 3 | 100 | PHIL |
| P22 | RACIONALISMO | PARA USARLOS CIS | 3 | 50 | PHIL |
| P33 | EXISTENCIALISMO | PARA USARLOS CIS | 3 | 200 | PHIL |
| P44 | SOLIPSISMO | PARA MI MISMO | 6 | 0 | PHIL |
| T11 | ESCOLASTICISMO | PARA BEATOS | 3 | 150 | THEO |
| T22 | FUNDAMENTALISMO | PARA DESCUIDADOS | 3 | 90 | THEO |
| T33 | HEDONISMO | PARA SANOS | 3 | 0 | THEO |
| T44 | COMUNISMO | PARA AVAROS | 6 | 200 | THEO |
+-----+-----------------------+--------------------+------+---------+-------+
10 rows in set (0.00 sec)

Administración de Base de Datos | Ing. Sistemas Computacionales 16


Bitácora de Oracle MySQL

42. Esta consulta muestra la tarifa, y la suma de todos los créditos totales del curso
agrupados por tarifa y ordenados de forma descendente.
mysql> SELECT Ctarifa, SUM(Cred) AS CREDITOS_TOTALES FROM curso GROUP BY Ctarifa ORDER BY
Ctarifa DESC;
+---------+------------------+
| Ctarifa | CREDITOS_TOTALES |
+---------+------------------+
| 200 | 9 |
| 176 | 3 |
| 150 | 3 |
| 140 | 6 |
| 100 | 9 |
| 90 | 3 |
| 50 | 6 |
| 0 | 15 |
+---------+------------------+
8 rows in set (0.42 sec)

43. Esta consulta muestra el departamento y el promedio de las tarifas del curso agrupados
por el departamento donde solo el promedio de la tarifa sea mayor a 100 y el cuento sea
menor que 6.
mysql> SELECT Cdept, AVG(Ctarifa) FROM curso GROUP BY Cdept HAVING AVG(Ctarifa) > 100 AND
COUNT(*) < 6;
+-------+--------------+
| Cdept | AVG(Ctarifa) |
+-------+--------------+
| THEO | 110.0000 |
+-------+--------------+
1row in set (0.06 sec)

Consultas | 2 de marzo de 2018

44. Esta consulta muestra el horario de clase del día lunes.


mysql> SELECT Cdia, Chora FROM clase WHERE Cdia = 'LU';
+------+----------------+
| Cdia | Chora |
+------+----------------+
| LU | 08:00-09:00 AM |
| LU | 10:00-11:00 AM |
| LU | 10:00-11:00 AM |
+------+----------------+
3 rows in set (0.01 sec)

45. Esta consulta muestra el horario de clases para el dia viernes.


mysql> SELECT Cdia, Chora FROM clase WHERE Cdia = 'VI';
+------+----------------+
| Cdia | Chora |

Administración de Base de Datos | Ing. Sistemas Computacionales 17


Bitácora de Oracle MySQL
+------+----------------+
| VI | 11:00-12:00 AM |
+------+----------------+
1 row in set (0.02 sec)

46. Esta consulta muestra todos los cursos agrupados por tarifa.
mysql> SELECT Cnombre, Ctarifa FROM curso GROUP BY Ctarifa;
+-----------------------+---------+
| Cnombre | Ctarifa |
+-----------------------+---------+
| MATEMATICAS DISCRETAS | 0 |
| ESTRUCT. DE DATOS | 50 |
| FUNDAMENTALISMO | 90 |
| INTROD. A LAS CC. | 100 |
| GEOMETRÍA | 140 |
| ESCOLASTICISMO | 150 |
| BASES DE DATOS RELAC. | 176 |
| EXISTENCIALISMO | 200 |
+-----------------------+---------+
8 rows in set (0.36 sec)

47. Esta consulta muestra el nombre de curso y la tarifa ordenados de forma ascendente.
mysql> SELECT Cnombre, Ctarifa FROM curso ORDER BY Ctarifa;
+-----------------------+---------+
| Cnombre | Ctarifa |
+-----------------------+---------+
| MATEMATICAS DISCRETAS | 0 |
| CIRCUITOS DIGITALES | 0 |
| SOLIPSISMO | 0 |
| HEDONISMO | 0 |
| ESTRUCT. DE DATOS | 50 |
| RACIONALISMO | 50 |
| FUNDAMENTALISMO | 90 |
| INTROD. A LAS CC. | 100 |
| ARQUITECT. COMPUTADOR | 100 |
| EMPIRISMO | 100 |
| GEOMETRÍA | 140 |
| ESCOLASTICISMO | 150 |
| BASES DE DATOS RELAC. | 176 |
| EXISTENCIALISMO | 200 |
| COMUNISMO | 200 |
+-----------------------+---------+
15 rows in set (0.00 sec)

Administración de Base de Datos | Ing. Sistemas Computacionales 18


Bitácora de Oracle MySQL

48. Esta consulta muestra el nombre de curso y la tarifa ordenados de forma descendente.
mysql> SELECT Cnombre, Ctarifa FROM curso ORDER BY Ctarifa DESC;
+-----------------------+---------+
| Cnombre | Ctarifa |
+-----------------------+---------+
| EXISTENCIALISMO | 200 |
| COMUNISMO | 200 |
| BASES DE DATOS RELAC. | 176 |
| ESCOLASTICISMO | 150 |
| GEOMETRÍA | 140 |
| INTROD. A LAS CC. | 100 |
| ARQUITECT. COMPUTADOR | 100 |
| EMPIRISMO | 100 |
| FUNDAMENTALISMO | 90 |
| ESTRUCT. DE DATOS | 50 |
| RACIONALISMO | 50 |
| MATEMATICAS DISCRETAS | 0 |
| CIRCUITOS DIGITALES | 0 |
| SOLIPSISMO | 0 |
| HEDONISMO | 0 |
+-----------------------+---------+
15 rows in set (0.00 sec)

49. Esta consulta muestra todos los cursos por orden alfabético.
mysql> SELECT Cnombre FROM curso ORDER BY Cnombre;
+-----------------------+
| Cnombre |
+-----------------------+
| ARQUITECT. COMPUTADOR |
| BASES DE DATOS RELAC. |
| CIRCUITOS DIGITALES |
| COMUNISMO |
| EMPIRISMO |
| ESCOLASTICISMO |
| ESTRUCT. DE DATOS |
| EXISTENCIALISMO |
| FUNDAMENTALISMO |
| GEOMETRÍA |
| HEDONISMO |
| INTROD. A LAS CC. |
| MATEMATICAS DISCRETAS |
| RACIONALISMO |
| SOLIPSISMO |
+-----------------------+
15 rows in set (0.00 sec)

Administración de Base de Datos | Ing. Sistemas Computacionales 19


Bitácora de Oracle MySQL

50. Esta consulta muestra el promedio de las tarifas de los cursos.


mysql> SELECT AVG(Ctarifa) AS PROMEDIO_DE_LAS_TARIFAS FROM curso;
+-------------------------+
| PROMEDIO_DE_LAS_TARIFAS |
+-------------------------+
| 90.4000 |
+-------------------------+
1 row in set (0.39 sec)

51. Esta consulta muestra el promedio de los créditos de los cursos.


mysql> SELECT AVG(Cred) AS PROMEDIO_DE_LOS_CREDITOS FROM curso;
+--------------------------+
| PROMEDIO_DE_LOS_CREDITOS |
+--------------------------+
| 3.6000 |
+--------------------------+
1 row in set (0.00 sec)

52. Esta consulta muestra el total de los créditos de todo el curso.


mysql> SELECT SUM(Cred) TOTAL_DE_CREDITOS FROM curso;
+-------------------+
| TOTAL_DE_CREDITOS |
+-------------------+
| 54 |
+-------------------+
1 row in set (0.00 sec)

53. Esta consulta muestra el total de las tarifas de todos los cursos.
mysql> SELECT SUM(Ctarifa) TOTAL_DE_TARIFAS FROM curso;
+------------------+
| TOTAL_DE_TARIFAS |
+------------------+
| 1356 |
+------------------+
1 row in set (0.00 sec)

54. Esta consulta muestra la tarifa máxima de los cursos.


mysql> SELECT MAX(Ctarifa) TARIFA_MAXIMA FROM curso;
+---------------+
| TARIFA_MAXIMA |
+---------------+
| 200 |
+---------------+
1 row in set (0.00 sec)

Administración de Base de Datos | Ing. Sistemas Computacionales 20


Bitácora de Oracle MySQL

55. Esta consulta muestra el sueldo más bajo del personal.


mysql> SELECT MIN(Esueldo) SUELDO_MINIMO FROM personal WHERE NOT Esueldo = 0;
+---------------+
| SUELDO_MINIMO |
+---------------+
| 51 |
+---------------+
1 row in set (0.11 sec)

56. Esta consulta muestra el nombre del estudiante pero solo los que comiencen con la letra
R.
mysql> SELECT Snombre FROM estudiante WHERE Snombre LIKE 'R%';
+--------------+
| Snombre |
+--------------+
| ROCKY BALBOA |
+--------------+
1 row in set (0.08 sec)

57. Esta consulta muestra el nombre del estudiante que comienzan con la letra L.
mysql> SELECT Snombre FROM estudiante WHERE Snombre LIKE 'L%';
+-------------+
| Snombre |
+-------------+
| LARRY DUBAY |
+-------------+
1 row in set (0.00 sec)

58. Esta consulta muestra el número, el nombre y el cargo de los empleados que tengan un
salario menor que el del salario de los que tiene el cargo de CLERK.
mysql> SELECT empno, ename, job FROM emp WHERE sal < ANY (SELECT sal FROM emp WHERE job=
'CLERK') AND job <> 'CLERK';
+-------+--------+----------+
| empno | ename | job |
+-------+--------+----------+
| 7521 | WARD | SALESMAN |
| 7654 | MARTIN | SALESMAN |
+-------+--------+----------+
2 rows in set (0.05 sec)

Administración de Base de Datos | Ing. Sistemas Computacionales 21


Bitácora de Oracle MySQL

Base de datos de las ventas de SKY

59. Creación de la base de datos ventas_sky.


mysql> CREATE DATABASE ventas_sky;
Query OK, 1 row affected (0.05 sec)

60. Creación de la tabla contrato.


mysql> CREATE TABLE contrato(
-> numero_contrato INT NOT NULL,
-> nombre_suscriptor VARCHAR(30),
-> apellido_paterno_suscriptor VARCHAR(25),
-> apellido_maternoo_suscriptor VARCHAR(25),
-> calle_suscriptor VARCHAR(30),
-> numero_casa_suscriptor NUMERIC(5),
-> colonia VARCHAR(30),
-> estado VARCHAR(30),
-> código_postal NUMERIC(5),
-> teléfono_casa_suscriptor NUMERIC(5),
-> teléfono_movil_suscriptor NUMERIC(5),
-> fecha_contrato DATE,
-> pago mensual NUMERIC(5),
-> numero_de_cuenta_suscriptor NUMERIC(5),
-> PRIMARY KEY(numero_contrato),
FOREIGN KEY(numero_contrato) REFERENCES suscriptor(numero_cuenta));
Query OK, 0 rows affected (0.12 sec)
61. Consultamos el esquema o la estructura de la tabla para hacer una revisión de esta.
mysql> DESCRIBE contrato;
+-----------------------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------------------+-------------+------+-----+---------+-------+
| numero_contrato | int(11) | NO | PRI | NULL | |
| nombre_suscriptor | varchar(20) | YES | | NULL | |
| apellido_paterno_suscriptor | varchar(20) | YES | | NULL | |
| apellido_materno_suscriptor | varchar(20) | YES | | NULL | |
| calle_suscriptor | int(11) | YES | | NULL | |
| numero_casa_suscriptor | int(11) | YES | | NULL | |
| colonia | varchar(20) | YES | | NULL | |
| estado | varchar(20) | YES | | NULL | |
| codigo_postal | int(11) | YES | | NULL | |
| telefono_casa_suscriptor | int(11) | YES | | NULL | |
| telefono_movil_suscriptor | int(11) | YES | | NULL | |
| fecha_de_contrato | date | YES | | NULL | |
| pago_mensual | int(11) | YES | | NULL | |
| numero_de_cuenta_suscriptor | int(11) | YES | MUL | NULL | |

Administración de Base de Datos | Ing. Sistemas Computacionales 22


Bitácora de Oracle MySQL

+-----------------------------+-------------+------+-----+---------+-------+
14 rows in set (0.00 sec)

62. Creación de la tabla distribución.


mysql> CREATE TABLE distribucion(
-> clave_distribucion INT NOT NULL,
-> numero_local NUMERIC(15),
-> calle VARCHAR(25),
-> colonia VARCHAR(25),
-> estado VARCHAR(30),
-> pais VARCHAR(20),
-> código_postal NUMERIC(10),
-> clave_encargado_distribucion NUMERIC(20),
-> PRIMARY KEY(clave_distribucion),
FOREIGN KEY(clave_encargado_distribucion) REFERENCES
encargado_distribucion(numero_distribucion));
Query OK, 0 rows affected (0.11 sec)
63. De igual manera, hacemos una consulata para revisar el esquema de la tabla.
mysql> DESCRIBE distribucion;
+------------------------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------------------+-------------+------+-----+---------+-------+
| clave_distribucion | int(11) | NO | PRI | NULL | |
| numero_local | int(11) | YES | | NULL | |
| calle | int(11) | YES | | NULL | |
| colonia | varchar(20) | YES | | NULL | |
| estado | varchar(10) | YES | | NULL | |
| pais | varchar(20) | YES | | NULL | |
| codigo_postal | int(11) | YES | | NULL | |
| clave_encargado_distribucion | int(11) | YES | MUL | NULL | |
+------------------------------+-------------+------+-----+---------+-------+
8 rows in set (0.02 sec)

64. Creación de la tabla encargado_distribucion.


mysql> CREATE TABLE encargado_distribucion(
-> numero_distribucion INT NOT NULL,
-> nombre VARCHAR(20),
-> apellido_paterno VARCHAR(15),
-> apellido_materno VARCHAR(15),
-> calle INT,
-> numero_casa INT,
-> colonia VARCHAR(20),
-> estado VARCHAR(20),
-> código_postal INT,
-> edad INT,
-> sexo VARCHAR(15),

Administración de Base de Datos | Ing. Sistemas Computacionales 23


Bitácora de Oracle MySQL
-> teléfono_casa INT,
-> teléfono_movil INT,
-> estado_civil VARCHAR(10),
-> correo VARCHAR(30),
-> PRIMARY KEY(numero_distribucion));
Query OK, 0 rows affected (0.19 sec)

65. Hacemos una consulta para revisar el esquema de la tabla.


mysql> DESCRIBE encargado_distribucion;
+---------------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------------+-------------+------+-----+---------+-------+
| numero_distribuidor | int(11) | NO | PRI | NULL | |
| nombre | varchar(20) | YES | | NULL | |
| apellido_paterno | varchar(15) | YES | | NULL | |
| apellido_materno | varchar(15) | YES | | NULL | |
| calle | int(11) | YES | | NULL | |
| numero_casa | int(11) | YES | | NULL | |
| colonia | varchar(20) | YES | | NULL | |
| estado | varchar(20) | YES | | NULL | |
| codigo_postal | int(11) | YES | | NULL | |
| edad | int(11) | YES | | NULL | |
| sexo | varchar(15) | YES | | NULL | |
| telefono_casa | int(11) | YES | | NULL | |
| telefono_movil | int(11) | YES | | NULL | |
| estado_civil | varchar(10) | YES | | NULL | |
| correo | varchar(30) | YES | | NULL | |
+---------------------+-------------+------+-----+---------+-------+
15 rows in set (0.00 sec)

66. Creación de la tabla equipo.


mysql> CREATE TABLE equipo(
-> numero_tarjeta_inteligente INT NOT NULL,
-> numero_serie_Antena INT,
-> numero_serie_IRD INT,
-> clave_instalador INT,
-> PRIMARY KEY(numero_tarjeta_inteligente),
FOREIGN KEY(clave_instalador) REFERENCES instalador(clave_instalador));
Query OK, 0 rows affected (0.02 sec)

67. Tambien lo hacemos para la tabla equipo.


mysql> DESCRIBE equipo;
+----------------------------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------------------+---------+------+-----+---------+-------+

Administración de Base de Datos | Ing. Sistemas Computacionales 24


Bitácora de Oracle MySQL

| numero_tarjeta_inteligente | int(11) | NO | PRI | NULL | |


| numero_serie_Antena | int(11) | YES | | NULL | |
| numero_serie_IRD | int(11) | YES | | NULL | |
| clave_instalador | int(11) | YES | MUL | NULL | |
+----------------------------+---------+------+-----+---------+-------+
4 rows in set (0.00 sec)

68. Creación de la tabla instalaciones.


mysql> CREATE TABLE instalaciones(
-> clave_instalacion INT NOT NULL,
-> fecha_instalacion DATE,
-> calle_casa_suscriptor INT,
-> numero_casa_suscriptor INT,
-> colonia_suscriptor VARCHAR(20),
-> estado_suscriptor VARCHAR(20),
-> monto_pagado INT,
-> forma_pago VARCHAR(10),
-> clave_intalador INT,
-> PRIMARY KEY(clave_instalacion),
-> FOREIGN KEY(clave_instalador) REFERENCES instalador(clave_instalador));
Query OK, 0 rows affected (0.02 sec)

69. Tambien hacemos una revisión para la tabla instalaciones.


mysql> DESCRIBE instalaciones;
+------------------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------------+-------------+------+-----+---------+-------+
| clave_instalacion | int(11) | NO | PRI | NULL | |
| fecha_instalacion | date | YES | | NULL | |
| calle_casa_suscriptor | int(11) | YES | | NULL | |
| numero_casa_suscriptor | int(11) | YES | | NULL | |
| colonia_suscriptor | varchar(20) | YES | | NULL | |
| estado_suscriptor | varchar(20) | YES | | NULL | |
| monto_pagado | int(11) | YES | | NULL | |
| forma_pago | varchar(10) | YES | | NULL | |
| clave_instalador | int(11) | YES | MUL | NULL | |
+------------------------+-------------+------+-----+---------+-------+
9 rows in set (0.00 sec)

70. Creación de la tabla instalador.


mysql> CREATE TABLE instalador(
-> clave_instalador INT NOT NULL,
-> nombre VARCHAR(20),
-> apellido_paterno VARCHAR(20),
-> apellido_materno VARCHAR(20),

Administración de Base de Datos | Ing. Sistemas Computacionales 25


Bitácora de Oracle MySQL

-> comisiones INT,


-> PRIMARY KEY(clave_instalador));
Query OK, 0 rows affected (0.02 sec)
71. Consultamos el esquema de esta tabla.
mysql> DESCRIBE instalador;
+------------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------+-------------+------+-----+---------+-------+
| clave_instalador | int(11) | NO | PRI | NULL | |
| nombre | varchar(20) | YES | | NULL | |
| apellido_paterno | varchar(20) | YES | | NULL | |
| apellido_materno | varchar(20) | YES | | NULL | |
| comisiones | int(11) | YES | | NULL | |
+------------------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

72. Creación de la tabla suscriptor.


mysql> CREATE TABLE suscriptor(
-> numero_cuenta INT NOT NULL,
-> nombre VARCHAR(20),
-> apellido_paterno VARCHAR(15),
-> apellido_materno VARCHAR(15),
-> calle INT,
-> numero_casa INT,
-> colonia VARCHAR(20),
-> estado VARCHAR(20),
-> código_postal INT,
-> teléfono_casa INT,
-> teléfono_movil INT,
-> correo VARCHAR(40),
-> PRIMARY KEY(clave_instalacion));
Query OK, 0 rows affected (0.20 sec)

73. Y finalmente describimos el esquema para la tabla suscriptor.


mysql> DESCRIBE suscriptor;
+------------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------+-------------+------+-----+---------+-------+
| numero_cuenta | int(11) | NO | PRI | NULL | |
| nombre | varchar(20) | YES | | NULL | |
| apellido_paterno | varchar(15) | YES | | NULL | |
| apellido_materno | varchar(15) | YES | | NULL | |
| calle | int(11) | YES | | NULL | |
| numero_casa | int(11) | YES | | NULL | |
| colonia | varchar(20) | YES | | NULL | |

Administración de Base de Datos | Ing. Sistemas Computacionales 26


Bitácora de Oracle MySQL

| estado | varchar(20) | YES | | NULL | |


| codigo_postal | int(11) | YES | | NULL | |
| telefono_casa | int(11) | YES | | NULL | |
| telefono_movil | int(11) | YES | | NULL | |
| correo | varchar(40) | YES | | NULL | |
+------------------+-------------+------+-----+---------+-------+
12 rows in set (0.00 sec)

Subconsultas | 6 de marzo de 2018

74. Esta subconsulta muestra el nombre del empleado que tiene el salario mayor del
empleado que tiene el número 7566.
mysql> SELECT ename FROM emp WHERE sal > (SELECT sal FROM emp WHERE empno=7566);
+-------+
| ename |
+-------+
| KING |
+-------+
1 row in set (0.36 sec)

75. Esta subconsulta muestra el nombre, el cargo y el salario de los empleados que tengan
un salario mayor al salario más alto.
mysql> SELECT ename, job, sal FROM emp WHERE sal = (SELECT MAX(sal) FROM emp);
+-------+-----------+---------+
| ename | job | sal |
+-------+-----------+---------+
| KING | PRESIDENT | 5000.00 |
+-------+-----------+---------+
1 row in set (0.00 sec)

76. Esta subconsulta muestra el nombre del empleado y el cargo pero solo los que tengan el
cargo del empleado con el número 7369 y el salario el salario sea mayor al del empleado
con el número 7876.
mysql> SELECT ename, job FROM emp WHERE job = (SELECT job FROM emp WHERE empno = 7369) AND
sal > (SELECT sal FROM emp WHERE empno = 7876);
+--------+-------+
| ename | job |
+--------+-------+
| JINKS | CLERK |
| MILLER | CLERK |
+--------+-------+
2 rows in set (0.38 sec)

Administración de Base de Datos | Ing. Sistemas Computacionales 27


Bitácora de Oracle MySQL

77. Esta subconsulta muestra el nombre, el cargo y el salario del empleado que gane menos.
mysql> SELECT ename, job, sal FROM emp WHERE sal = (SELECT MIN(sal) FROM emp);
+-------+-------+--------+
| ename | job | sal |
+-------+-------+--------+
| SMITH | CLERK | 800.00 |
+-------+-------+--------+
1 row in set (0.03 sec)
78. Esta subconsulta muestra el número de departamento, el salario minimo de los
empleados por número de departamento
mysql> SELECT deptno, MIN(sal) FROM emp GROUP BY deptno HAVING MIN(sal) > (SELECT
MIN(sal) FROM emp WHERE deptno = 20);
+--------+----------+
| deptno | MIN(sal) |
+--------+----------+
| 10 | 1300.00 |
| 30 | 950.00 |
| 40 | 1200.00 |
+--------+----------+
3 rows in set (0.05 sec)

Subconsultas | 14 de marzo de 2018


79. Esta consulta muestra número de empleado, el nombre del empleado y el trabajo donde
por lo menos un salario de cada uno de los empleados sea menores o distintos que el
salario de CLERK.
mysql> SELECT empno, ename, job FROM emp WHERE sal < ANY (SELECT sal FROM emp WHERE job=
'CLERK') AND job <> 'CLERK';
+-------+--------+----------+
| empno | ename | job |
+-------+--------+----------+
| 7521 | WARD | SALESMAN |
| 7654 | MARTIN | SALESMAN |
+-------+--------+----------+
2 rows in set (0.05 sec)

80. Esta consulta muestra el número de empleado, el nombre del empleado y el trabajo de
todos los empleados que cobran más que
la media de salarios de su departamento.
mysql> SELECT empno, ename, job FROM emp WHERE sal > ALL(SELECT AVG(sal) FROM emp GROUP
BY deptno);
+-------+-------+-----------+
| empno | ename | job |
+-------+-------+-----------+
| 7566 | JONES | MANAGER |
| 7788 | SCOTT | ANALYST |
| 7839 | KING | PRESIDENT |
| 7902 | FORD | ANLYST |

Administración de Base de Datos | Ing. Sistemas Computacionales 28


Bitácora de Oracle MySQL
+-------+-------+-----------+
4 rows in set (0.50 sec)

81. Con esta consulta se obtienen los empleados que tienen una cuota superior a la cuota de
alguno de sus compañeros de oficina, es decir, los empleados que no tengan la menor
cuota de su oficina.
SELECT * FROM empleados WHERE cuota > ANY (SELECT cuota FROM empleados empleados2 WHERE
empleados.oficina = empleados2.oficina);

82. Esta consulta muestra los empleados que tengan una cuota superior a todas las cuotas
de la oficina del empleado.
SELECT * FROM empleados WHERE cuota > ALL (SELECT cuota FROM empleados empleados2 WHERE
empleados.oficina. = empleados2.oficina AND empleados.cuota <> empleados2.cuota);

Vistas

83. Esta vista contiene el número, el nombre y el cargo de los empleados del departamento
con el número 10.
mysql> CREATE VIEW empvu10 AS SELECT empno, ename, job FROM emp WHERE deptno=10;
Query OK, 0 rows affected (0.20 sec)
84. Hacemos una consulta para ver el contenido de la vista empvu10.
mysql> SELECT * FROM empvu10;
+-------+--------+-----------+
| empno | ename | job |
+-------+--------+-----------+
| 7782 | CLARK | MANAGER |
| 7839 | KING | PRESIDENT |
| 7934 | MILLER | CLERK |
+-------+--------+-----------+
3 rows in set (0.05 sec)

85. Esta vista contiene el número, el nombre y el salario de los empleados con el
departamento número 30.
mysql> CREATE VIEW salvu30
-> AS SELECT empno NUMERO_REGISTRO, ename EMPLEADO, sal SALARIO
-> FROM emp WHERE deptno=30;
Query OK, 0 rows affected (0.09 sec)

86. Hacemos de igual forma, una consulta para ver el contenido de la vista salvu30.
mysql> SELECT * FROM salvu30;
+-----------------+----------+---------+
| NUMERO_REGISTRO | EMPLEADO | SALARIO |
+-----------------+----------+---------+
| 7499 | ALLEN | 1600.00 |
| 7521 | WARD | 1250.00 |
| 7654 | MARTIN | 1250.00 |
| 7698 | BLAKE | 2850.00 |

Administración de Base de Datos | Ing. Sistemas Computacionales 29


Bitácora de Oracle MySQL
| 7844 | TURNER | 1500.00 |
| 7900 | JAMES | 950.00 |
+-----------------+----------+---------+
6 rows in set (0.00 sec)

Vistas simples

87. Esta vista contiene el nombre, el cargo y el salario de todos los empleados que sean
vendedores.
mysql> CREATE VIEW vista_salesman
-> AS SELECT ename NOMBRE_EMPLEADO, job CARGO, sal SALARIO
-> FROM emp
-> WHERE job = 'SALESMAN';
Query OK, 0 rows affected (0.11 sec)
88. Hacemos una consulta para ver el contenido de la vista vista_salesman.
mysql> SELECT * FROM vista_salesman;
+-----------------+----------+---------+
| NOMBRE_EMPLEADO | CARGO | SALARIO |
+-----------------+----------+---------+
| ALLEN | SALESMAN | 1600.00 |
| WARD | SALESMAN | 1250.00 |
| MARTIN | SALESMAN | 1250.00 |
| TURNER | SALESMAN | 1500.00 |
+-----------------+----------+---------+
4 rows in set (0.06 sec)

89. Esta vista contiene el nombre de dos empleados, el que gane más y el que gana menos
mysql> CREATE VIEW view_max_min_sal
-> AS SELECT ename NOMBRE_EMPLEADO
-> FROM emp
-> WHERE sal = (SELECT MAX(sal) FROM emp) OR sal = (SELECT MIN(sal) FROM emp);
Query OK, 0 rows affected (0.19 sec)
90. Hacemos una consulta para ver el contenido de la vista view_max_min_sal.
mysql> SELECT * FROM view_max_min_sal;
+-----------------+
| NOMBRE_EMPLEADO |
+-----------------+
| SMITH |
| KING |
+-----------------+
2 rows in set (0.00 sec)

Administración de Base de Datos | Ing. Sistemas Computacionales 30


Bitácora de Oracle MySQL

Vistas complejas

91. Esta vista contiene el nombre, la tarifa y el departamento de los cursos.


mysql> CREATE VIEW view_curso_dept
-> (Nombre_Curso, Tarifa, Departamento)
-> AS SELECT c.Cnombre, c.Ctarifa, d.Dept
-> FROM curso c, departamento d
-> WHERE d.Dept = c.Cdept;
Query OK, 0 rows affected (0.20 sec)
92. Hacemos una consulta para ver el contenido de la vista view_curso_dept.
mysql> SELECT * FROM view_curso_dept;
+-----------------------+--------+--------------+
| Nombre_Curso | Tarifa | Departamento |
+-----------------------+--------+--------------+
| INTROD. A LAS CC. | 100 | CIS |
| ESTRUCT. DE DATOS | 50 | CIS |
| MATEMATICAS DISCRETAS | 0 | CIS |
| CIRCUITOS DIGITALES | 0 | CIS |
| ARQUITECT. COMPUTADOR | 100 | CIS |
| BASES DE DATOS RELAC. | 176 | CIS |
| EMPIRISMO | 100 | PHIL |
| RACIONALISMO | 50 | PHIL |
| EXISTENCIALISMO | 200 | PHIL |
| SOLIPSISMO | 0 | PHIL |
| ESCOLASTICISMO | 150 | THEO |
| FUNDAMENTALISMO | 90 | THEO |
| HEDONISMO | 0 | THEO |
| COMUNISMO | 200 | THEO |
| GEOMETRÍA | 140 | CIS |
+-----------------------+--------+--------------+
15 rows in set (0.11 sec)
93. Esta vista contiene el nombre del curso, el departamento y el edificio donde se imparten.
mysql> CREATE VIEW view_dept_edif_curso
-> (NOMBRE_CURSO, DEPARTAMENTO, EDIFICIO)
-> AS SELECT c.Cnombre, d.Dept, d.Dedif
-> FROM curso c, departamento d
-> WHERE d.dept = c.Cdept;
Query OK, 0 rows affected (0.55 sec)
94. Hacemos la siguiente para ver el contenido de la vista view_dept_edif_curso.
mysql> SELECT * FROM view_dept_edif_curso;
+-----------------------+--------------+----------+
| NOMBRE_CURSO | DEPARTAMENTO | EDIFICIO |
+-----------------------+--------------+----------+
| INTROD. A LAS CC. | CIS | SC |
| ESTRUCT. DE DATOS | CIS | SC |
| MATEMATICAS DISCRETAS | CIS | SC |

Administración de Base de Datos | Ing. Sistemas Computacionales 31


Bitácora de Oracle MySQL
| CIRCUITOS DIGITALES | CIS | SC |
| ARQUITECT. COMPUTADOR | CIS | SC |
| BASES DE DATOS RELAC. | CIS | SC |
| EMPIRISMO | PHIL | HU |
| RACIONALISMO | PHIL | HU |
| EXISTENCIALISMO | PHIL | HU |
| SOLIPSISMO | PHIL | HU |
| ESCOLASTICISMO | THEO | HU |
| FUNDAMENTALISMO | THEO | HU |
| HEDONISMO | THEO | HU |
| COMUNISMO | THEO | HU |
| GEOMETRÍA | CIS | SC |
+-----------------------+--------------+----------+
15 rows in set (0.00 sec)

Tarea especial (45 tablas)

95. Creación de la base de datos.


mysql> CREATE DATABASE especial;
Query OK, 1 row affected (0.00 sec)
mysql> USE especial;

96. Creación de la tabla oficinas.


mysql> CREATE TABLE oficinas(
-> clave_oficina INTEGER NOT NULL,
-> pais VARCHAR(15),
-> calle VARCHAR(20),
-> colonia VARCHAR(20),
-> numero NUMERIC(5),
-> ciudad VARCHAR(15),
-> telefono NUMERIC(10),
-> nombre_encargado VARCHAR(30),
-> apellidos_encargado VARCHAR(30),
-> descripcion TEXT,
-> PRIMARY KEY(clave_oficina));
97. Hacemos una consulta sencilla para recuperar los registros insertados en la tabla.
mysql> SELECT * FROM oficinas;
+---------------+--------+---------------------+------------------+--------+------------+------------+--------
----------+---------------------+--------------------------+
| clave_oficina | pais | calle | colonia | numero | ciudad | telefono |
nombre_encargado | apellidos_encargado | descripcion |
+---------------+--------+---------------------+------------------+--------+------------+------------+--------
----------+---------------------+--------------------------+
| 1 | México | Ernesto Madrazo | Centro | 1 | Comalcalco | 9334567439 | Raul
| Velazquez | Oficina del director |
| 2 | México | Leandro Adriano | Central | 2 | Cárdenas | 9374547236 | Diego
| Torre | Oficina de la secretaria |

Administración de Base de Datos | Ing. Sistemas Computacionales 32


Bitácora de Oracle MySQL
| 3 | México | Adolfo Lopez | Centro | 3 | Cárdenas | 9376517334 |
Fernanado | Fuente | Oficina del empleado |
| 4 | México | Venustiano Carranza | Centro | 4 | Cunducán | 923456774 |
Bernardo | Oliva | Oficina del empleado |
| 5 | México | Carlos Madrazo | El encanto | 5 | Cárdenas | 9373427856 | Genáro
| Palacios | Oficina del empleado |
| 6 | México | Josefa Ortiz | Infonavit | 6 | Cárdenas | 937342356 | Pedro
| Sanchéz | Oficina del empleado |
| 7 | México | Emiliano Zapata | Leandro Rovirosa | 7 | Comalcalco | 9335678336 |
Alejandro | Sanchéz | Oficina del empleado |
| 8 | México | Miguel Hidalgo | Centro | 8 | Comalcalco | 9334569087 | Ericka
| Perez | Oficina del empleado |
| 9 | México | Ernesto la Fuente | Centro | 9 | Comalcalco | 9330997311 | Alberto
| Oliva | Oficina del empleado |
| 10 | México | Eduardo Chavez | Poblado c 27 | 10 | Cárdenas | 9378975643 | Beto
| Oliva | Oficina del empleado |
+---------------+--------+---------------------+------------------+--------+------------+------------+--------
----------+---------------------+--------------------------+
10 rows in set (0.00 sec)

98. Creación de la tabla personal.


mysql> CREATE TABLE personal(
-> clave_emp INTEGER NOT NULL,
-> nombre VARCHAR(30),
-> apellidos VARCHAR(30),
-> telefono NUMERIC(10),
-> correo VARCHAR(30),
-> direccion VARCHAR(50),
-> twitter VARCHAR(15),
-> pais VARCHAR(15),
-> cumpleaños DATE,
-> clave_oficina INT NOT NULL,
-> pais_oficina VARCHAR(15),
-> descripcion TEXT,
-> CONSTRAINT pk_primaria PRIMARY KEY(clave_emp, clave_oficina),
-> CONSTRAINT fk_externa FOREIGN KEY(clave_oficina, pais_oficina)
-> REFERENCES oficinas(clave_oficina, pais));
Query OK, 0 rows affected (0.09 sec)

99. Hacemos una consulta para recuperar los campos de la tabla.


mysql> SELECT * FROM personal;
+-----------+-----------+-----------+------------+---------------------+------------+-----------+--------+------------+---------------+--------------+---------------+
| clave_emp | nombre | apellidos | telefono | correo | direccion | twitter | pais | cumpleaños | clave_oficina | pais_oficina | descripcion |
+-----------+-----------+-----------+------------+---------------------+------------+-----------+--------+------------+---------------+--------------+---------------+
| 100 | Miguel | Carmelo | 9376548976 | miguel@gmail.com | Comalcalco | miguel32 | México | 2018-02-22 | 10 | México | Director |
| 101 | Orlando | Santos | 9376574389 | orlando@gmail.com | Comalcalco | orlando | México | 2018-06-12 | 11 | México | Secretario |
| 102 | Joaquin | Oliva | 9373287629 | joaquin@gmail.com | Cárdenas | joaquin | México | 2018-01-20 | 12 | México | Chofer |
| 103 | Alejandro | Sanchez | 9372186548 | alex@gmail.com | Cárdenas | alejandro | México | 2018-01-28 | 13 | México | Secreatrio |
| 104 | Asunción | Sanchez | 9376573899 | asuncion@gmail.com | Cárdenas | asuncion | México | 2018-03-31 | 14 | México | Secretario |
| 105 | Cristiano | Angel | 93728228 | cristiano@gmail.com | Cárdenas | cristiano | México | 2018-05-31 | 15 | México | Jefe |
| 106 | Diego | Luna | 93747894 | diego@gmail.com | Cárdenas | Cárdenas | México | 2018-08-31 | 16 | México | Secreatria |
| 107 | Alberto | Martinez | 9373785987 | alberto@gmail.com | Cárdenas | Cárdenas | México | 2018-01-11 | 17 | México | Chofer |
| 108 | Alexander | Cuevas | 9371232199 | alexander@gmail.com | Cárdenas | josefina | México | 2018-07-10 | 18 | México | Analista |
| 109 | Martin | Escobedo | 937325678 | martin@gmail.com | Cárdenas | rafael | México | 2018-06-17 | 19 | México | Administrador |
| 110 | Cris | Jimenez | 9372342134 | cris@gmail.com | Cárdenas | Guadalupe | México | 2018-09-12 | 20 | México | Administrador |
+-----------+-----------+-----------+------------+---------------------+------------+-----------+--------+------------+---------------+--------------+---------------+
11 rows in set (0.11 sec)

Administración de Base de Datos | Ing. Sistemas Computacionales 33


Bitácora de Oracle MySQL

100. Creación de la tabla teamstudents.


mysql> CREATE TABLE teamstudents(
-> clavets INTEGER NOT NULL,
-> clavep INT(11) NOT NULL,
-> nombre VARCHAR(30),
-> apellidos VARCHAR(30),
-> area VARCHAR(25),
-> correo VARCHAR(30),
-> telefono_area NUMERIC(10),
-> descripcion_area TEXT,
-> clave_oficina INT NOT NULL,
-> pais_oficina VARCHAR(15),
-> status VARCHAR(10),
-> CONSTRAINT pk_primaria1 PRIMARY KEY(clavets, clavep),
-> CONSTRAINT fk_externa1 FOREIGN KEY(clavep, nombre, apellidos, clave_oficina, pais_oficina)
REFERENCES personal(clave_emp, nombre, apellidos, clave_oficina, pais_oficina));
Query OK, 0 rows affected (1.67 sec)

101. Hacemos una consulta para recuperar dichos campos.


mysql> SELECT * FROM teamstudents;
+---------+--------+-----------+-----------+---------------------+---------------------------+---------------+------------------------+---------------+--------------+----------
--+
| clavets | clavep | nombre | apellidos | area | correo | telefono_area | descripcion_area | clave_oficina | pais_oficina | status
|
+---------+--------+-----------+-----------+---------------------+---------------------------+---------------+------------------------+---------------+--------------+----------
--+
| 1 | 1 | José | Hernández | Sistemas | josehernandez@hotmail.com | 9377683299 | Area de sistemas | 10 | México |
Disponible |
| 2 | 2 | Eduardo | Martinez | Bilogia | eduardomart@hotmail.com | 9374674381 | Area de biologia | 11 | México |
Disponible |
| 3 | 3 | Carlos | López | Electrónica | carloslopez@hotmail.com | 9373291908 | Area de electrónica | 12 | México |
Disponible |
| 4 | 4 | Lucy | Salas | Electricidad | lucy@hotmail.com | 9373457892 | Area de electricidad | 13 | México |
Disponible |
| 5 | 5 | Alejandra | Medellin | Gestión empresarial | alejandra@hotmail.com | 9374563298 | Area de gestión | 14 | México |
Disponible |
| 6 | 6 | Armando | Vazquez | Admin. de empresas | armando@hotmail.com | 9374383209 | Area de administración | 15 | México |
Disponible |
| 7 | 7 | Rodolfo | Rodriguez | Admin. de empresas | rodolfo@hotmail.com | 937345099 | Area de empresas | 16 | México |
Disponible |
| 8 | 8 | Enrique | Ventura | Bilogia | enrique@hotmail.com | 9379002289 | Area de bilogia | 17 | México |
Disponible |
| 9 | 9 | Sara | Ventura | Quimica | sara@gmail.com | 9378907648 | Area de quimica | 18 | México |
Disponible |
| 10 | 10 | Karina | Ventura | Ambiental | karina@gmail.com | 9372892198 | Area de ambiental | 19 | México |
Disponible |
+---------+--------+-----------+-----------+---------------------+---------------------------+---------------+------------------------+---------------+--------------+----------
--+
10 rows in set (0.09 sec)

102. Creación de la tabla maestros.


mysql> CREATE TABLE maestros(
-> clavem INTEGER NOT NULL,
-> nombre VARCHAR(30),
-> apellidos VARCHAR(30),
-> telefono NUMERIC(10),
-> correo VARCHAR(30),
-> direccion VARCHAR(30),

Administración de Base de Datos | Ing. Sistemas Computacionales 34


Bitácora de Oracle MySQL
-> twitter VARCHAR(15),
-> especialidad VARCHAR(15),
-> pais VARCHAR(15),
-> descripcion TEXT,
-> PRIMARY KEY(clavem));
Query OK, 0 rows affected (0.39 sec)
103. Hacemos una consulta para recuperar los registros insertados.
mysql> SELECT * FROM maestros;
+--------+------------+---------------------+------------+------------------------------+------------+----------------+---------------+--------+---------------------------+
| clavem | nombre | apellidos | telefono | correo | direccion | twitter | especialidad | pais | descripcion |
+--------+------------+---------------------+------------+------------------------------+------------+----------------+---------------+--------+---------------------------+
| 27000 | Wilbert | Colorado Canto | 9331258312 | wilbert@campus.itsc.edu.mx | Comalcalco | wilbercolorado | Base de Datos | México | NULL |
| 27001 | Rosa Norma | García Morales | 9337890229 | rosa.n@campus.itsc.edu.mx | Comalcalco | NULL | Redes | México | Imparte otras asignaturas |
| 27002 | Maricruz | Torres Gonzalez | 9332338190 | maricruz@campus.itsc.edu.mx | Comalcalco | NULL | Software | México | NULL |
| 27003 | Janette | Moreno Sandoval | 9333547745 | janette.m@campus.itsc.edu.mx | Comalcalco | janettemoreno | Álgebra | México | Imparte otras asignaturas |
| 27004 | Elda Luz | Rodriguez Alejandro | 9331102321 | elda.luz@campus.itsc.edu.mx | Comalcalco | NULL | Redes | México | Imparte otras asignaturas |
| 27005 | Claudia | Morales Barrón | 9371553300 | claudia@campus.itsc.edu.mx | Cárdenas | claudiabarrron | Base de Datos | México | Imparte otras asignaturas |
| 27006 | Luz Elva | Castillo Izquierdo | 9339823327 | luz.elva@campus.itsc.edu.mx | Comalcalco | luzcastillo | Programación | México | NULL |
| 27007 | Elias | Rodriguez Rodriguez | 9142774521 | alias@campus.itsc.edu.mx | Cunducán | NULL | Programación | México | NULL |
| 27008 | Gustavo | de la Cruz | 9332657899 | gustavo@campus.itsc.edu.mx | Comalcalco | NULL | Física | México | NULL |
| 27009 | Carlos | García | 9334556766 | carlos@campus.itsc.edu.mx | Comalcalco | NULL | Inglés | México | NULL |
| 27010 | Alejandro | García | 9333218977 | alejandro@campus.itsc.edu.mx | Comalcalco | NULL | Diseño | México | NULL |
+--------+------------+---------------------+------------+------------------------------+------------+----------------+---------------+--------+---------------------------+
11 rows in set (0.28 sec)

104. Creación de la tabla estudiante.


mysql> CREATE TABLE estudiante(
-> matricula INTEGER NOT NULL,
-> nombre VARCHAR(30),
-> apellidos VARCHAR(30),
-> correo VARCHAR(30),
-> twitter VARCHAR(15),
-> facebook VARCHAR(20),
-> telefono NUMERIC(10),
-> ranking INTEGER,
-> especialidad VARCHAR(20),
-> curso_actual VARCHAR(30),
-> PRIMARY KEY(matricula));
Query OK, 0 rows affected (0.35 sec)
105. Hacemos una consulta para recuperar todos los datos que se insertaron para la tabla
estudiante.
mysql> select * from estudiante;
+-----------+------------+---------------------+----------------------------+-----------------+--------------------
-+------------+---------+--------------+------------------------+
| matricula | nombre | apellidos | correo | twitter | facebook
| telefono | ranking | especialidad | curso_actual |
+-----------+------------+---------------------+----------------------------+-----------------+--------------------
-+------------+---------+--------------+------------------------+
| 23780 | Emanuel | Córdova Montiel | emanuelarrobahotmail.com | emanuelcordova_ | Emanuel Córdova
| 9371542592 | 1 | Software | Programación |
| 36789 | Carlos | Jimenez Martinez | carlosarrobalive.com | carlos34 | Carlos J
| 9375678976 | 2 | Software | Programación |
| 23476 | Hugo | López Rodriguez | hugolopezarrobahotmail.com | HugoLopez | Hugo López
| 9937895633 | 3 | Redes | Redes de Computadora |
| 567456 | Gerardo | Dominguez Castillo | gerardo38arrobahotmail.com | gerardocast | Gerardo Castillo
| 9332543911 | 4 | Software | Programación |
| 678946 | Mayra | Campos Suarez | mayracamarrobagmail.com | mayracampos | Mayra Campos
| 9372367898 | 5 | Redes | Redes de Computadora |

Administración de Base de Datos | Ing. Sistemas Computacionales 35


Bitácora de Oracle MySQL
| 45376 | Francisco | Hernández Plancarte | pancho97arrobagmail.com | panchohernan | Francisco Hernández
| 9378907656 | 6 | Software | Programación |
| 78967 | Monica | Morales Gonzales | moni88moraarrobargmail.com | mogonica | Monica Mora
| 9371258415 | 7 | Redes | Programacion |
| 98348 | Eduardo | Garcia Cao | lalocao77arrobagmail.com | lalocao | Eduardo Garcia Cao
| 9371269833 | 8 | Software | Redes de computadoras |
| 78345 | Juan Pablo | Brito Rodriguez | juan56britoarrobagmil.com | juanbrito | Juan Pablo Brito
| 9371578318 | 9 | Redes | Redes de computadoras |
| 23235 | Aurora | Gil Custodio | auroragilcarrobagmail.com | Auroragil5 | Aurora Gil
| 9371596318 | 10 | Redes | Redes de Computadoras |
+-----------+------------+---------------------+----------------------------+-----------------+--------------------
-+------------+---------+--------------+------------------------+
10 rows in set (0.00 sec)

106. Creación de la tabla método_pago.


mysql> CREATE TABLE metodo_pago(
-> clavemp INTEGER NOT NULL,
-> tipo VARCHAR(15),
-> cantidad NUMERIC(5),
-> acceso_cursot VARCHAR(2),
-> acceso_curson VARCHAR(2),
-> meses INTEGER,
-> lugar_pago VARCHAR(10),
-> pais VARCHAR(15),
-> acceso_ts VARCHAR(2),
-> acceso_pc VARCHAR(2),
-> PRIMARY KEY(clavemp));
Query OK, 0 rows affected (0.37 sec)
107. Hacemos de la misma manera una consulta para recuperar los campos con sus
registros.
mysql> SELECT * FROM metodo_pago;
+---------+----------+----------+---------------+---------------+-------+------------+--------+-----------+-----------+
| clavemp | tipo | cantidad | acceso_cursot | acceso_curson | meses | lugar_pago | pais | acceso_ts | acceso_pc |
+---------+----------+----------+---------------+---------------+-------+------------+--------+-----------+-----------+
| 1 | Tarjeta | 55 | NULL | NULL | 3 | Centro | México | NULL | NULL |
| 2 | Tarjeta | 59 | NULL | NULL | 6 | Centro | México | NULL | NULL |
| 3 | Efectivo | 150 | NULL | NULL | 1 | Pajaros | México | NULL | NULL |
| 4 | Tarjeta | 23 | NULL | NULL | 7 | Adolfo L. | México | NULL | NULL |
| 5 | Efectivo | 230 | NULL | NULL | 2 | Carlos E. | México | NULL | NULL |
| 6 | Efectivo | 570 | NULL | NULL | 12 | Reyes H. | México | NULL | NULL |
| 7 | Efectivo | 200 | NULL | NULL | 8 | Reyes H. | México | NULL | NULL |
| 8 | Tarjeta | 78 | NULL | NULL | 3 | Leandro A. | México | NULL | NULL |
| 9 | Efectivo | 80 | NULL | NULL | 6 | Leandro A. | México | NULL | NULL |
| 10 | Efectivo | 789 | NULL | NULL | 6 | Leandro A. | México | NULL | NULL |
+---------+----------+----------+---------------+---------------+-------+------------+--------+-----------+-----------+
10 rows in set (0.28 sec)

108. Creación de la tabla suscripcion.


mysql> CREATE TABLE suscripcion(
-> clave_suscripcion INTEGER NOT NULL,
-> clavee INTEGER NOT NULL,
-> clavemp INTEGER NOT NULL,
-> fechai VARCHAR(20),
-> fechaf VARCHAR(20),

Administración de Base de Datos | Ing. Sistemas Computacionales 36


Bitácora de Oracle MySQL
-> descripcion_tipo VARCHAR(50),
-> er NUMERIC(3),
-> ai NUMERIC(3),
-> ci NUMERIC(3),
-> lugaract INTEGER NOT NULL,
-> CONSTRAINT PK_PRIMARIA2 PRIMARY KEY(clave_suscripcion, clavee),
-> FOREIGN KEY(clavemp) REFERENCES metodo_pago(claveemp),
-> FOREIGN KEY(lugaract) REFERENCES oficinas(clave_oficina));
Query OK, 0 rows affected (0.17 sec)
109. Hacemos una consulta para recuperar los campos.
mysql> SELECT * FROM suscripcion;
+-------------------+--------+---------+--------+--------+------------------+------+------+------+----------+
| clave_suscripcion | clavee | clavemp | fechai | fechaf | descripcion_tipo | er | ai | ci | lugaract |
+-------------------+--------+---------+--------+--------+------------------+------+------+------+----------+
| 1 | 1 | 1 | Mayo | Junio | Suscripción | 1 | 2 | 3 | 11 |
| 2 | 2 | 2 | Mayo | Junio | Reexpidición | 2 | 3 | 4 | 12 |
| 3 | 3 | 3 | Mayo | Junio | Reporte | 2 | 3 | 4 | 13 |
| 4 | 4 | 4 | Mayo | Junio | Constancia | 2 | 3 | 4 | 14 |
| 5 | 5 | 5 | Mayo | Junio | Suscripción | 2 | 3 | 4 | 15 |
| 6 | 6 | 6 | Mayo | Junio | Suscripción | 2 | 3 | 4 | 16 |
| 7 | 7 | 7 | Mayo | Junio | Suscripción | 2 | 3 | 4 | 17 |
| 8 | 8 | 8 | Mayo | Junio | Suscripción | 2 | 3 | 4 | 18 |
| 9 | 9 | 9 | Mayo | Junio | Suscripción | 2 | 3 | 4 | 19 |
| 10 | 10 | 10 | Mayo | Junio | Suscripción | 2 | 3 | 4 | 20 |
+-------------------+--------+---------+--------+--------+------------------+------+------+------+----------+
10 rows in set (0.31 sec)

110. Creación de la tabla autentificacion.


mysql> CREATE TABLE autentificacion(
-> clave_auto INTEGER NOT NULL,
-> fecha DATE,
-> lugar VARCHAR(15),
-> empresa VARCHAR(10),
-> nombre_ceo VARCHAR(30),
-> nombre_coo VARCHAR(30),
-> codigo1 INTEGER(5),
-> codigo2 INTEGER(5),
-> codigo3 INTEGER(5),
-> codigo4 INTEGER(5),
-> PRIMARY KEY(clave_auto));
Query OK, 0 rows affected (0.12 sec)

111. Hacemos una consulta para recuperar dichos campos.


mysql> SELECT * FROM autentificacion;
+------------+------------+-----------------+------------+-------------------+-----------
-----------+---------+---------+---------+---------+
| clave_auto | fecha | lugar | empresa | nombre_ceo | nombre_coo
| codigo1 | codigo2 | codigo3 | codigo4 |
+------------+------------+-----------------+------------+-------------------+-----------
-----------+---------+---------+---------+---------+

Administración de Base de Datos | Ing. Sistemas Computacionales 37


Bitácora de Oracle MySQL
| 201 | 2018-03-01 | Comalcalco | Pardos | Javier López | Juan José
Martinez | 11 | 34 | 78 | 89 |
| 202 | 2018-03-01 | Comalcalco | Lopez | Javier López | Juan José
Martinez | 11 | 34 | 78 | 89 |
| 203 | 2018-03-01 | Cárdenas | La Colmena | Beatriz Gutierrez | Ricardo
Asencio | 32 | 65 | 98 | 18 |
| 204 | 2018-03-01 | Cunduacán | Los Mofles | Ricardo Laredo | Karla Díaz
| 89 | 17 | 9 | 71 |
| 205 | 2018-03-01 | Jalpa de Mendez | AyE | Aurora Dominguez | Francisco
Gutierrez | 4 | 5 | 1 | 88 |
| 206 | 2018-03-01 | Tenosique | Corcamsa | Carlos Córdova | Suny
Montejo | 44 | 21 | 45 | 9 |
| 207 | 2018-03-01 | Villahermosa | Jarochos | Ariana Oliva | Juana
Saldivar | 23 | 18 | 3 | 97 |
| 208 | 2018-03-01 | Cárdenas | Saldivar | Antonio Saldivar | José May
| 20 | 1 | 18 | 14 |
| 209 | 2018-03-01 | Cárdenas | Cockster | Jorge Avalos | Natividad
del Carmen | 26 | 4 | 18 | 19 |
| 210 | 2018-03-01 | Emiliano Zapato | Cuernavaca | Jassiel Elimas | Fany Badal
| 24 | 9 | 66 | 23 |
+------------+------------+-----------------+------------+-------------------+-----------
-----------+---------+---------+---------+---------+
10 rows in set (0.13 sec)

112. Creación de la tabla logos.


mysql> CREATE TABLE logos(
-> clave_logo INT NOT NULL,
-> tipo VARCHAR(10),
-> formato VARCHAR(10),
-> medidas VARCHAR(10),
-> campana VARCHAR(10),
-> color VARCHAR(10),
-> direccion VARCHAR(15),
-> creador VARCHAR(20),
-> fecha_elab VARCHAR(12),
-> PRIMARY KEY(clave_logo));
Query OK, 0 rows affected (0.29 sec)
113. Hacemos una consulta para recuperar los campos.
mysql> SELECT * FROM logos;
+------------+------------+---------+---------+---------+----------+------------+---------+---------
---+
| clave_logo | tipo | formato | medidas | campana | color | direccion | creador |
fecha_elab |
+------------+------------+---------+---------+---------+----------+------------+---------+---------
---+
| 1 | Escuela | JPG | 10 cm | NULL | Azul | Comalcalco | Julio | Marzo
|
| 2 | Iglesi | PNG | 50 cm | NULL | Rojo | Cárdenas | Pedro | Enero
|
| 3 | Casa | PNG | 30 cm | NULL | Rosado | Cunducán | Mayra | Febrero
|
| 4 | Escuela | JPGE | 20 cm | NULL | Amarillo | Comalcalco | Mayra | Julio
|

Administración de Base de Datos | Ing. Sistemas Computacionales 38


Bitácora de Oracle MySQL
| 5 | Escuela | JPGE | 10 cm | NULL | Rojo | Cárdenas | Julio | Mayo
|
| 6 | Tienda | PNG | 80 cm | NULL | Azul | Comalcalco | Pedro | Mayo
|
| 7 | Tienda | PNG | 40 cm | NULL | Azul | Comalcalco | Pedro | Mayo
|
| 8 | Tienda | PNG | 20 cm | NULL | Blanco | Cárdenas | Mayra | Abril
|
| 9 | Abarrotera | JPG | 10 cm | NULL | Morado | Cárdenas | Mayra | Abril
|
| 10 | Prepa | PNG | 60 cm | NULL | Azul | Cuduacán | Julio | Mayo
|
+------------+------------+---------+---------+---------+----------+------------+---------+---------
---+
10 rows in set (0.05 sec)

114. Creación de la tabla videos.


mysql> CREATE TABLE videos(
-> clave_video INTEGER NOT NULL,
-> curso_video VARCHAR(10),
-> clase INTEGER,
-> direccion VARCHAR(10),
-> fecha_elab VARCHAR(10),
-> editor VARCHAR(10),
-> responsable INTEGER NOT NULL,
-> formato VARCHAR(5),
-> tamaño VARCHAR(8),
-> PRIMARY KEY(clave_video),
-> FOREIGN KEY(responsable) REFERENCES personal(clave_emp));
Query OK, 0 rows affected (0.48 sec)

115. Hacemos una consulta para recuperar dichos campos de la tabla.


mysql> SELECT * FROM videos;
+-------------+-------------+-------+-----------+------------+--------+-------------+----
-----+---------+
| clave_video | curso_video | clase | direccion | fecha_elab | editor | responsable |
formato | tamaño |
+-------------+-------------+-------+-----------+------------+--------+-------------+----
-----+---------+
| 1 | 1 | 1 | Occidente | Mayo | Pedro | 1 | MP4
| 457 MB |
| 2 | 2 | 2 | Occidente | Mayo | Julio | 2 | AVI
| 2.67 GB |
| 7 | 7 | 7 | Sara | Mayo | Mayra | 7 | MP4
| 23 MB |
| 8 | 8 | 8 | Alberto | Mayo | Pedro | 8 | MP4
| 78 MB |
| 9 | 9 | 9 | Asuncion | Mayo | Pedro | 9 | MP4
| 400 MB |
| 10 | 10 | 10 | Occidente | Mayo | Julio | 10 | MP4
| 400 MB |
| 3 | 3 | 3 | Occidente | Mayo | Julio | 2 | AVI
| 45 MB |

Administración de Base de Datos | Ing. Sistemas Computacionales 39


Bitácora de Oracle MySQL
| 4 | 4 | 4 | Centro | Mayo | Mayra | 3 | MP4
| 112 MB |
| 5 | 5 | 5 | Centro | Mayo | Julio | 5 | MP4
| 34 MB |
| 6 | 6 | 6 | Josefa | Mayo | Pedro | 6 | MP4
| 230 MB |
+-------------+-------------+-------+-----------+------------+--------+-------------+----
-----+---------+
10 rows in set (0.14 sec)

116. Creación de la tabla lanzamiento.


mysql> CREATE TABLE lanzamiento(
-> clave_lanzamiento INTEGER NOT NULL,
-> curso VARCHAR(15),
-> envivo VARCHAR(2),
-> profesor VARCHAR(10),
-> preguntador VARCHAR(10),
-> fecha DATE,
-> facebook VARCHAR(30),
-> twtter VARCHAR(30),
-> youtube VARCHAR(30),
-> instagram VARCHAR(30),
-> duracion INTEGER(2),
-> PRIMARY KEY(clave_lanzamiento));
Query OK, 0 rows affected (0.15 sec)
117. Hacemos una consulta para recuperar los campos con sus registros.
mysql> SELECT * FROM lanzamiento;
+-------------------+----------------+--------+----------+-------------+------------+----
------+--------+---------------+---------------+----------+
| clave_lanzamiento | curso | envivo | profesor | preguntador | fecha |
facebook | twtter | youtube | instagram | duracion |
+-------------------+----------------+--------+----------+-------------+------------+----
------+--------+---------------+---------------+----------+
| 1 | Java | Si | Elias | José | 2018-05-01 |
Platzi | platzi | PlatziYoutube | platzioficial | 10 |
| 2 | C++ | Si | Elias | Lucas | 2018-05-01 |
Platzi | platzi | PlatziYoutube | platzioficial | 15 |
| 3 | Diseño Web | Si | Wilbert | Elisa | 2018-05-01 |
Platzi | platzi | PlatziYoutube | platzioficial | 15 |
| 4 | Diseño Respo. | Si | Wilbert | Ana | 2018-05-01 |
Platzi | platzi | PlatziYoutube | platzioficial | 15 |
| 5 | Data Science | Si | Luz Elva | Emanuel | 2018-05-01 |
Platzi | platzi | PlatziYoutube | platzioficial | 15 |
| 6 | Ciberseguridad | Si | Luz Elva | Emanuel | 2018-05-01 |
Platzi | platzi | PlatziYoutube | platzioficial | 15 |
| 7 | Linux Básico | Si | Steve | Henry | 2018-05-01 |
Platzi | platzi | PlatziYoutube | platzioficial | 15 |
| 8 | Python | Si | Iván | Gerardo | 2018-05-01 |
Platzi | platzi | PlatziYoutube | platzioficial | 15 |
| 9 | PHP | Si | Emanuel | Erick | 2018-05-01 |
Platzi | platzi | PlatziYoutube | platzioficial | 15 |
| 10 | Javascript | Si | Emanuel | Erick | 2018-05-01 |
Platzi | platzi | PlatziYoutube | platzioficial | 15 |

Administración de Base de Datos | Ing. Sistemas Computacionales 40


Bitácora de Oracle MySQL
+-------------------+----------------+--------+----------+-------------+------------+----
------+--------+---------------+---------------+----------+
10 rows in set (0.44 sec)

118. Creación de la tabla live.


mysql> CREATE TABLE live(
-> clave_live INTEGER NOT NULL,
-> fecha DATE,
-> conductor VARCHAR(30),
-> invitados VARCHAR(30),
-> oficina INTEGER NOT NULL,
-> temas VARCHAR(60),
-> transface VARCHAR(2),
->
-> hora TIME,
-> encargado VARCHAR(30),
-> free VARCHAR(2),
-> PRIMARY KEY(clave_live),
-> FOREIGN KEY(oficina) REFERENCES oficinas(clave_oficina));
Query OK, 0 rows affected (0.22 sec)
119. Hacemos una consulta para recuperar los campos de la tabla con sus registros.
mysql> SELECT * FROM live;
+------------+------------+-----------+-----------+---------+----------------------------
-------+-----------+----------+-----------+------+
| clave_live | fecha | conductor | invitados | oficina | temas
| transface | hora | encargado | free |
+------------+------------+-----------+-----------+---------+----------------------------
-------+-----------+----------+-----------+------+
| 1 | 2018-05-27 | Pedro | 79 | 1 | Contaminación del ambiente
| NULL | 12:00:00 | Joaquin | NULL |
| 2 | 2018-05-27 | Juan José | 83 | 2 | Economia
| NULL | 13:00:00 | Joaquin | NULL |
| 3 | 2018-05-27 | Henry | 78 | 3 | Politica
| NULL | 14:00:00 | Joaquin | NULL |
| 4 | 2018-05-27 | Erick | 66 | 4 | Tecnologia
| NULL | 15:00:00 | Diego | NULL |
| 5 | 2018-05-28 | Pedro | 79 | 5 | Bilogia
| NULL | 12:00:00 | Joaquin | NULL |
| 6 | 2018-05-28 | Elizabeth | 90 | 6 | Base de datos en la vida
cotdiana | NULL | 13:00:00 | Joaquin | NULL |
| 7 | 2018-05-28 | Gerardo | 45 | 7 | Ciencia de los Datos
| NULL | 14:00:00 | Joaquin | NULL |
| 8 | 2018-05-28 | Diana | 100 | 8 | Ciberseguridad
| NULL | 16:00:00 | Emanuel | NULL |
| 9 | 2018-05-28 | Emanuel | 110 | 9 | Inteligencia Artificial
| NULL | 18:00:00 | Emanuel | NULL |
| 10 | 2018-05-29 | Jony | 90 | 10 | Seguridad y los datos
| NULL | 12:00:00 | Emanuel | NULL |
+------------+------------+-----------+-----------+---------+----------------------------
-------+-----------+----------+-----------+------+
10 rows in set (0.22 sec)

Administración de Base de Datos | Ing. Sistemas Computacionales 41


Bitácora de Oracle MySQL

120. Creación de la tabla agenda.


mysql> CREATE TABLE agenda(
-> clave_agenda INTEGER NOT NULL,
-> clave_lanzamiento INTEGER NOT NULL,
-> platziconf VARCHAR(15),
-> platzitalk VARCHAR(13),
-> live VARCHAR(10),
-> fecha DATE,
-> enlace_calendar VARCHAR(10),
-> hora TIME,
-> evento_encar VARCHAR(10),
-> fecha_mod VARCHAR(12),
-> CONSTRAINT pk_primaria5 PRIMARY KEY(clave_agenda, clave_lanzamiento));
Query OK, 0 rows affected (0.33 sec)
121. Hacemos una consulta para recuperar dichos campos de las tablas.
mysql> SELECT * FROM agenda;
+--------------+-------------------+------------+------------+------+------------+-------
----------+----------+--------------+-----------+
| clave_agenda | clave_lanzamiento | platziconf | platzitalk | live | fecha |
enlace_calendar | hora | evento_encar | fecha_mod |
+--------------+-------------------+------------+------------+------+------------+-------
----------+----------+--------------+-----------+
| 1 | 1 | 1 | 20 | Si | 2018-01-01 | Si
| 07:00:00 | José | Enero |
| 2 | 2 | 2 | 21 | Si | 2018-01-01 | Si
| 07:00:00 | Noé | Enero |
| 3 | 3 | 3 | 22 | Si | 2018-01-01 | Si
| 07:00:00 | Carlos | Enero |
| 4 | 4 | 4 | 23 | Si | 2018-01-01 | Si
| 07:00:00 | Henry | Enero |
| 5 | 5 | 5 | 24 | Si | 2018-01-01 | Si
| 07:00:00 | Asunción | Enero |
| 6 | 6 | 6 | 25 | Si | 2018-01-01 | Si
| 07:00:00 | Daniel | Enero |
| 7 | 7 | 7 | 26 | Si | 2018-01-01 | Si
| 07:00:00 | Leopoldo | Enero |
| 8 | 8 | 8 | 27 | Si | 2018-01-01 | Si
| 07:00:00 | Jony | Enero |
| 9 | 9 | 9 | 28 | Si | 2018-01-01 | Si
| 07:00:00 | Eduardo | Enero |
| 10 | 10 | 10 | 29 | Si | 2018-01-01 | Si
| 07:00:00 | Emanuel | Enero |
+--------------+-------------------+------------+------------+------+------------+-------
----------+----------+--------------+-----------+
10 rows in set (0.09 sec)

122. Creación de la tabla souvenir.


mysql> CREATE TABLE souvenir(
-> clave_souvenir INTEGER NOT NULL,
-> tipo VARCHAR(12),
-> cantidad VARCHAR(10),
-> color VARCHAR(10),

Administración de Base de Datos | Ing. Sistemas Computacionales 42


Bitácora de Oracle MySQL
-> campaña VARCHAR(10),
-> oficina VARCHAR(10),
-> envios VARCHAR(10),
-> precio NUMERIC(10),
-> tamaño VARCHAR(10),
-> peso VARCHAR(10),
-> PRIMARY KEY(clave_souvenir));
Query OK, 0 rows affected (0.12 sec)

123. Hacemos una consulta para recuperar dichos campos de las tablas.
mysql> SELECT * FROM souvenir;
+----------------+------+----------+----------+---------+---------+--------+--------+----
----+------+
| clave_souvenir | tipo | cantidad | color | campaña | oficina | envios | precio |
tamaño | peso |
+----------------+------+----------+----------+---------+---------+--------+--------+----
----+------+
| 1 | NULL | 1 | Azul | NULL | 10 | NULL | 12 |
NULL | 3 |
| 2 | NULL | 2 | Blanco | NULL | 11 | NULL | 13 |
NULL | 4 |
| 3 | NULL | 3 | Negro | NULL | 12 | NULL | 14 |
NULL | 5 |
| 4 | NULL | 4 | Amarillo | NULL | 13 | NULL | 15 |
NULL | 6 |
| 5 | NULL | 5 | Balnco | NULL | 14 | NULL | 16 |
NULL | 7 |
| 6 | NULL | 6 | Violeta | NULL | 15 | NULL | 17 |
NULL | 8 |
| 7 | NULL | 7 | Negro | NULL | 16 | NULL | 18 |
NULL | 9 |
| 8 | NULL | 8 | Blanco | NULL | 17 | NULL | 19 |
NULL | 10 |
| 9 | NULL | 9 | Azul | NULL | 18 | NULL | 20 |
NULL | 11 |
| 10 | NULL | 10 | Blanco | NULL | 19 | NULL | 21 |
NULL | 12 |
+----------------+------+----------+----------+---------+---------+--------+--------+----
----+------+
10 rows in set (0.13 sec)

124. Creación de la tabla media.


mysql> CREATE TABLE media(
-> clave_media INTEGER NOT NULL,
-> red VARCHAR(10),
-> cuenta VARCHAR(10),
-> contraseña VARCHAR(10),
-> tipo_contenido VARCHAR(25),
-> encargado VARCHAR(15),
-> video VARCHAR(2),
-> foto VARCHAR(2),
-> diseño VARCHAR(2),

Administración de Base de Datos | Ing. Sistemas Computacionales 43


Bitácora de Oracle MySQL
-> descripcion TEXT,
-> PRIMARY KEY(clave_media));
Query OK, 0 rows affected (0.62 sec)

125. Hacemos una consulta para recuperar los campos con sus registros de la tabla.
mysql> SELECT * FROM media;
+-------------+---------+--------+------------+----------------+--------------+-------+--
----+--------+-------------+
| clave_media | red | cuenta | contraseña | tipo_contenido | encargado | video |
foto | diseño | descripcion |
+-------------+---------+--------+------------+----------------+--------------+-------+--
----+--------+-------------+
| 120 | Publica | user1 | password1 | Video | José Perez | SI |
NO | NULL | Videos |
| 121 | Publica | user2 | password2 | Video | Joan Laredo | SI |
NO | NULL | Videos |
| 122 | Privada | admin | password3 | Foto | Hugo | NO |
SI | NULL | Fotos |
| 123 | Publica | user4 | password4 | Video | Juan Alberto | SI |
NO | NULL | Videos |
| 124 | Publica | user5 | password5 | Foto | Pedro | NO |
SI | NULL | Fotos |
| 125 | Privada | admin2 | password6 | Videos | Sergio | SI |
NO | NULL | Videos |
| 126 | Publica | user6 | password6 | Videos | Martin | SI |
NO | NULL | Videos |
| 127 | Publica | user7 | password7 | Videos | Alicia | SI |
NO | NULL | Videos |
| 128 | Publica | user8 | password8 | Fotos | Ericka | NO |
SI | NULL | Fotos |
| 129 | Publica | user9 | password9 | Fotos | Alberto | NO |
SI | NULL | Fotos |
| 130 | Privada | user10 | password10 | Videos | Raciel | SI |
NO | NULL | Videos |
+-------------+---------+--------+------------+----------------+--------------+-------+--
----+--------+-------------+
11 rows in set (0.33 sec)

126. Creación de la tabla empresas.


mysql> CREATE TABLE empresas(
-> clave_emp INTEGER NOT NULL,
-> clave_souvenir INTEGER NOT NULL,
-> nombre VARCHAR(15),
-> direccion VARCHAR(30),
-> telefono NUMERIC(15),
-> pais VARCHAR(15),
-> convenio VARCHAR(2),
-> duracion_meses NUMERIC(2),
-> inicio_convenio DATE,
-> fin_convenio DATE,
-> descripcion TEXT,
-> CONSTRAINT pk_primari6 PRIMARY KEY(clave_emp, clave_souvenir),

Administración de Base de Datos | Ing. Sistemas Computacionales 44


Bitácora de Oracle MySQL
-> CONSTRAINT fk_externa10 FOREIGN KEY(clave_souvenir) REFERENCES
souvenir(clave_souvenir));
Query OK, 0 rows affected (0.28 sec)
127. Recuperamos los campos de la tabla con sus registros.
mysql> SELECT * FROM empresas;
+-----------+----------------+----------------+-----------------+------------+--------+--
--------+----------------+-----------------+--------------+-------------+
| clave_emp | clave_souvenir | nombre | direccion | telefono | pais |
convenio | duracion_meses | inicio_convenio | fin_convenio | descripcion |
+-----------+----------------+----------------+-----------------+------------+--------+--
--------+----------------+-----------------+--------------+-------------+
| 1 | 1 | Pardos | Comalcalco | 9331673289 | México |
56 | 18 | 2013-01-28 | 2020-05-22 | NULL |
| 2 | 2 | García | Comalcalco | 9334328973 | México |
33 | 13 | 2011-03-11 | 2020-05-22 | NULL |
| 3 | 3 | Era Digital | Cárdenas | 9333748973 | México |
23 | 12 | 2010-02-03 | 2019-03-21 | NULL |
| 4 | 4 | Emp. Rodriguez | Cunducán | 9142785438 | México |
12 | 18 | 2010-05-03 | 2021-06-10 | NULL |
| 5 | 5 | López S. A. | Jalpa de Mendez | 9138793288 | México |
17 | 22 | 2009-01-12 | 2020-06-08 | NULL |
| 6 | 6 | El Rey | Cárdenas | 9376753287 | México |
13 | 12 | 2010-07-22 | 2020-06-02 | NULL |
| 7 | 7 | Sanchez | Cárdenas | 9371872998 | México |
16 | 34 | 2010-02-11 | 2019-02-04 | NULL |
| 8 | 8 | Oliva | Cárdenas | 9373228768 | México |
13 | 78 | 2009-08-15 | 2018-02-04 | NULL |
| 9 | 9 | Pollo Fliz | Cárdenas | 9376542372 | México |
11 | 22 | 2007-08-18 | 2018-06-02 | NULL |
| 10 | 10 | Pollo Fliz | Big Burger | 9371001773 | México |
29 | 10 | 2009-02-01 | 2018-06-02 | NULL |
+-----------+----------------+----------------+-----------------+------------+--------+--
--------+----------------+-----------------+--------------+-------------+
10 rows in set (0.00 sec)

128. Creación de la tabla cprogramacion.


mysql> CREATE TABLE cprogramacion(
-> clave_cpro INTEGER NOT NULL,
-> clavee INTEGER NOT NULL,
-> clave_curso INTEGER NOT NULL,
-> nombre_curso VARCHAR(30),
-> clavem INTEGER NOT NULL,
-> twitter_maestro VARCHAR(15),
-> videos NUMERIC(2),
-> clave_logo INT NOT NULL,
-> descripcion TEXT,
-> examen_nivel NUMERIC(1),
-> PRIMARY KEY(clave_cpro),
-> CONSTRAINT fk_externa01 FOREIGN KEY(clavee) REFERENCES estudiante(matricula),
-> CONSTRAINT fk_externa04 FOREIGN KEY(clavem, twitter_maestro) REFERENCES
maestros(clavem, twitter));
Query OK, 0 rows affected (0.82 sec)

Administración de Base de Datos | Ing. Sistemas Computacionales 45


Bitácora de Oracle MySQL

129. Hacemos una consulta para recuperar los campos de la tabla.


mysql> SELECT * FROM cprogramacion;
+------------+--------+-------------+------------------+--------+-----------------+------
--+------------+-------------+--------------+
| clave_cpro | clavee | clave_curso | nombre_curso | clavem | twitter_maestro |
videos | clave_logo | descripcion | examen_nivel |
+------------+--------+-------------+------------------+--------+-----------------+------
--+------------+-------------+--------------+
| 1 | 1 | 1 | Aprende Office | 2001 | carlos |
NULL | 1 | NULL | 2 |
| 2 | 2 | 2 | Aprende Office | 2002 | carlos |
NULL | 2 | NULL | 2 |
| 3 | 3 | 3 | Aprende Office 2 | 2003 | juanluis |
NULL | 3 | NULL | 1 |
| 4 | 4 | 4 | Informatica 1 | 2004 | juanluis |
NULL | 4 | NULL | 4 |
| 5 | 5 | 5 | Programación | 2005 | rodolfo |
NULL | 5 | NULL | 2 |
| 6 | 6 | 6 | Ética | 2006 | francisco |
NULL | 6 | NULL | 4 |
| 7 | 7 | 7 | Español | 2007 | aurora |
NULL | 7 | NULL | 3 |
| 8 | 8 | 8 | Matemáticas | 2008 | david |
NULL | 8 | NULL | 6 |
| 9 | 9 | 9 | Ofimatica | 2009 | mayra |
NULL | 9 | NULL | 4 |
| 10 | 10 | 10 | Geografía | 2010 | enrique |
NULL | 10 | NULL | 8 |
+------------+--------+-------------+------------------+--------+-----------------+------
--+------------+-------------+--------------+
10 rows in set (0.45 sec)

130. Creación de la tabla capps.


mysql> CREATE TABLE capps(
-> clave_capp INTEGER NOT NULL,
-> clavee INTEGER NOT NULL,
-> clave_curso INTEGER NOT NULL,
-> nombre_curso VARCHAR(30),
-> clavem INTEGER NOT NULL,
-> twitter_maestro VARCHAR(15),
-> videos NUMERIC(2),
-> clave_logo INT NOT NULL,
-> descripcion TEXT,
-> examen_nivel NUMERIC(1),
-> PRIMARY KEY(clave_capp),
-> CONSTRAINT fk_externa03 FOREIGN KEY(clavee) REFERENCES estudiante(matricula),
-> CONSTRAINT fk_externa04 FOREIGN KEY(clavem, twitter_maestro) REFERENCES
maestros(clavem, twitter));
Query OK, 0 rows affected (0.24 sec)

Administración de Base de Datos | Ing. Sistemas Computacionales 46


Bitácora de Oracle MySQL

131. Hacemos una consulta para recuperar los campos.


mysql> SELECT * FROM capps;
+------------+--------+-------------+----------------------+--------+-----------------+--
------+------------+-------------+--------------+
| clave_capp | clavee | clave_curso | nombre_curso | clavem | twitter_maestro |
videos | clave_logo | descripcion | examen_nivel |
+------------+--------+-------------+----------------------+--------+-----------------+--
------+------------+-------------+--------------+
| 200 | 23780 | 1 | Programación | 20 | antonio34 |
NULL | 1 | ... | 4 |
| 201 | 36789 | 2 | Programación | 21 | marcoantonio |
NULL | 2 | ... | 2 |
| 202 | 23476 | 3 | Redes de Computadora | 22 | cirocast |
NULL | 3 | ... | 2 |
| 203 | 23475 | 4 | Programación | 23 | oneyj |
NULL | 4 | ... | 6 |
| 204 | 23472 | 5 | Redes de Computadora | 24 | wilbert |
NULL | 5 | ... | 5 |
| 205 | 23411 | 6 | Redes de Computadora | 25 | wilbert |
NULL | 6 | ... | 5 |
| 206 | 23433 | 7 | Programaciòn | 26 | eldaluz |
NULL | 7 | ... | 4 |
| 207 | 23436 | 8 | Redes de Computadora | 27 | david |
NULL | 8 | ... | 3 |
| 208 | 23439 | 9 | Programación | 28 | eliasrodrig |
NULL | 9 | ... | 6 |
| 209 | 23409 | 10 | Programación | 29 | eliasrodrig |
NULL | 10 | ... | 6 |
+------------+--------+-------------+----------------------+--------+-----------------+--
------+------------+-------------+--------------+
10 rows in set (0.31 sec)

132. Creación de la tabla cdb.


mysql> CREATE TABLE cdb(
-> clave_cdb INTEGER NOT NULL,
-> clavee INTEGER NOT NULL,
-> clave_curso INTEGER NOT NULL,
-> clavem INTEGER NOT NULL,
-> twitter_maestro VARCHAR(15),
-> videos NUMERIC(2),
-> clave_logo INT NOT NULL,
-> descripcion TEXT,
-> examen_nivel NUMERIC(1),
-> PRIMARY KEY(clave_cdb),
-> CONSTRAINT fk_externa05 FOREIGN KEY(clavem, twitter_maestro) REFERENCES
maestros(clavem, twitter));
Query OK, 0 rows affected (0.12 sec)
133. De igual manera hacemos una consulta para recuperar los campos de la tabla.
mysql> SELECT * FROM cdb;
+-----------+--------+-------------+--------+-----------------+--------+--------
----+-----------------+--------------+

Administración de Base de Datos | Ing. Sistemas Computacionales 47


Bitácora de Oracle MySQL
| clave_cdb | clavee | clave_curso | clavem | twitter_maestro | videos |
clave_logo | descripcion | examen_nivel |
+-----------+--------+-------------+--------+-----------------+--------+--------
----+-----------------+--------------+
| 1 | 2001 | 3001 | 2300 | humberto_oyosa | NULL |
4001 | Escuela privada | 3 |
| 2 | 2002 | 3002 | 2301 | jassielelimas34 | NULL |
4002 | Escuela publica | 5 |
| 3 | 2003 | 3003 | 2302 | erick_alberto32 | NULL |
4003 | Escuela publica | 9 |
| 4 | 2004 | 3004 | 2303 | maximiliano2 | NULL |
4004 | Escuela privada | 1 |
| 5 | 2005 | 3005 | 2304 | aschii45 | NULL |
4005 | Escuela publica | 4 |
| 6 | 2006 | 3006 | 2305 | antonio | NULL |
4006 | Escuela publica | 7 |
| 7 | 2007 | 3007 | 2306 | jose_alberto09 | NULL |
4007 | Escuela privada | 3 |
| 8 | 2008 | 3008 | 2307 | rosariotijeras | NULL |
4008 | Escuela privada | 2 |
| 9 | 2009 | 3009 | 2308 | francisco | NULL |
4009 | Escuela privada | 6 |
| 10 | 2010 | 3010 | 2309 | ivàn34 | NULL |
4010 | Escuela publica | 5 |
+-----------+--------+-------------+--------+-----------------+--------+--------
----+-----------------+--------------+
10 rows in set (0.39 sec)

134. Creación de la tabla cmarketing.


mysql> CREATE TABLE cmarketing(
-> clave_marketing INTEGER NOT NULL,
-> clavee INTEGER NOT NULL,
-> clave_curso INTEGER NOT NULL,
-> nombre_curso VARCHAR(30),
-> clavem INTEGER NOT NULL,
-> twitter_maestro VARCHAR(15),
-> videos NUMERIC(2),
-> clave_logo INT NOT NULL,
-> descripcion TEXT,
-> examen_nivel NUMERIC(1),
-> PRIMARY KEY(clave_marketing),
-> CONSTRAINT fk_externa05 FOREIGN KEY(clavee) REFERENCES estudiante(matricula),
-> CONSTRAINT fk_externa06 FOREIGN KEY(clavem, twitter_maestro) REFERENCES
maestros(clavem, twitter));
Query OK, 0 rows affected (0.61 sec)
135. Hacemos una consulta para recuperar todos los registros de la tabla.
mysql> SELECT * FROM cmarketing;
+-----------------+--------+-------------+--------------------------+--------+-----------
------+--------+------------+-------------+--------------+

Administración de Base de Datos | Ing. Sistemas Computacionales 48


Bitácora de Oracle MySQL
| clave_marketing | clavee | clave_curso | nombre_curso | clavem |
twitter_maestro | videos | clave_logo | descripcion | examen_nivel |
+-----------------+--------+-------------+--------------------------+--------+-----------
------+--------+------------+-------------+--------------+
| 1 | 1 | 1 | Mantenimiento preventivo | 2001 | fernando
| NULL | 1 | NULL | 4 |
| 2 | 2 | 2 | Aprende Office | 2002 | carlos
| NULL | 2 | NULL | 2 |
| 3 | 3 | 3 | Aprende Office 2 | 2003 | juanluis
| NULL | 3 | NULL | 1 |
| 4 | 4 | 4 | Informatica 1 | 2004 | juanluis
| NULL | 4 | NULL | 4 |
| 5 | 5 | 5 | Programación | 2005 | rodolfo
| NULL | 5 | NULL | 2 |
| 6 | 6 | 6 | Ética | 2006 | francisco
| NULL | 6 | NULL | 4 |
| 7 | 7 | 7 | Español | 2007 | aurora
| NULL | 7 | NULL | 3 |
| 8 | 8 | 8 | Matemáticas | 2008 | david
| NULL | 8 | NULL | 6 |
| 9 | 9 | 9 | Ofimatica | 2009 | mayra
| NULL | 9 | NULL | 4 |
| 10 | 10 | 10 | Geografía | 2010 | enrique
| NULL | 10 | NULL | 8 |
+-----------------+--------+-------------+--------------------------+--------+-----------
------+--------+------------+-------------+--------------+
10 rows in set (0.36 sec)

136. Creación de la tabla cdiseño.


mysql> CREATE TABLE cdiseño(
-> clave_cdiseño INTEGER NOT NULL,
-> clavee INTEGER NOT NULL,
-> clave_curso INTEGER NOT NULL,
-> clavem INTEGER NOT NULL,
-> twitter_maestro VARCHAR(15),
-> videos NUMERIC(2),
-> clave_logo INT NOT NULL,
-> descripcion TEXT,
-> examen_nivel NUMERIC(1),
-> PRIMARY KEY(clave_cdiseño),
-> CONSTRAINT fk_externa05 FOREIGN KEY(clavee) REFERENCES estudiante(matricula),
-> CONSTRAINT fk_externa06 FOREIGN KEY(clavem, twitter_maestro) REFERENCES
maestros(clavem, twitter));
Query OK, 0 rows affected (0.07 sec)
137. Hacemos una consulta para recuperar todos los campos con los registros de la tabla.
mysql> SELECT * FROM cdiseño;
+---------------+--------+-------------+--------+-----------------+--------+------------
+--------------+--------------+
| clave_cdiseño | clavee | clave_curso | clavem | twitter_maestro | videos | clave_logo |
descripcion | examen_nivel |
+---------------+--------+-------------+--------+-----------------+--------+------------
+--------------+--------------+

Administración de Base de Datos | Ing. Sistemas Computacionales 49


Bitácora de Oracle MySQL
| 1 | 1 | 1 | 2001 | luz_elvaitsc | NULL | 1 |
Bootstrap 4 | 1 |
| 2 | 2 | 2 | 2002 | wilbert_itsc | NULL | 2 |
Bootstrap 5 | 2 |
| 3 | 3 | 3 | 2003 | isidro_itsc | NULL | 3 |
Bootstrap 2 | 3 |
| 4 | 4 | 4 | 2004 | carlos_itsc | NULL | 4 |
Bootstrap 2 | 4 |
| 5 | 5 | 5 | 2005 | maria_itsc | NULL | 5 |
Bootstrap 3 | 5 |
| 6 | 6 | 6 | 2006 | elias_itsc | NULL | 6 |
Bootstrap 6 | 6 |
| 7 | 7 | 7 | 2007 | janette_itsc | NULL | 7 |
Bootstrap 8 | 7 |
| 8 | 8 | 8 | 2008 | edgar_itsc | NULL | 8 |
Bootstrap 4 | 8 |
| 9 | 9 | 9 | 2009 | tatiana_itsc | NULL | 9 |
Bootstrap 4 | 9 |
| 10 | 10 | 10 | 2010 | custodio_itsc | NULL | 10 |
Bootstrap 10 | 1 |
+---------------+--------+-------------+--------+-----------------+--------+------------
+--------------+--------------+
10 rows in set (0.20 sec)

138. Creación de la tabla cservidores.


mysql> CREATE TABLE cservidores(
-> clave_server INTEGER NOT NULL,
-> clavee INTEGER NOT NULL,
-> clave_curso INTEGER NOT NULL,
-> nombre_curso VARCHAR(30),
-> clavem INTEGER NOT NULL,
-> twitter_maestro VARCHAR(15),
-> videos NUMERIC(2),
-> clave_logo INT NOT NULL,
-> descripcion TEXT,
-> examen_nivel NUMERIC(1),
-> PRIMARY KEY(clave_server),
-> CONSTRAINT fk_externa05 FOREIGN KEY(clavee) REFERENCES estudiante(matricula),
-> CONSTRAINT fk_externa06 FOREIGN KEY(clavem, twitter_maestro) REFERENCES
maestros(clavem, twitter));
Query OK, 0 rows affected (0.40 sec)
139. Hacemos una consulta para recuperar los campos de la tabla.
mysql> SELECT * FROM cservidores;
+--------------+--------+-------------+------------------+--------+-----------------+--------+------------+-------------+--------------+
| clave_server | clavee | clave_curso | nombre_curso | clavem | twitter_maestro | videos | clave_logo | descripcion | examen_nivel |
+--------------+--------+-------------+------------------+--------+-----------------+--------+------------+-------------+--------------+
| 1 | 1 | 1 | Aprende Office | 2001 | carlos | NULL | 1 | NULL | 2 |
| 2 | 2 | 2 | Aprende Office | 2002 | carlos | NULL | 2 | NULL | 2 |
| 3 | 3 | 3 | Aprende Office 2 | 2003 | juanluis | NULL | 3 | NULL | 1 |
| 4 | 4 | 4 | Informatica 1 | 2004 | juanluis | NULL | 4 | NULL | 4 |
| 5 | 5 | 5 | Programación | 2005 | rodolfo | NULL | 5 | NULL | 2 |
| 6 | 6 | 6 | Ética | 2006 | francisco | NULL | 6 | NULL | 4 |
| 7 | 7 | 7 | Español | 2007 | aurora | NULL | 7 | NULL | 3 |
| 8 | 8 | 8 | Matemáticas | 2008 | david | NULL | 8 | NULL | 6 |
| 9 | 9 | 9 | Ofimatica | 2009 | mayra | NULL | 9 | NULL | 4 |

Administración de Base de Datos | Ing. Sistemas Computacionales 50


Bitácora de Oracle MySQL
| 10 | 10 | 10 | Geografía | 2010 | enrique | NULL | 10 | NULL | 8 |
+--------------+--------+-------------+------------------+--------+-----------------+--------+------------+-------------+--------------+
10 rows in set (0.55 sec)

140. Creación de la tabla cnegocios.


mysql> CREATE TABLE cnegocios(
-> clave_negocio INTEGER NOT NULL,
-> clavee INTEGER NOT NULL,
-> clave_curso INTEGER NOT NULL,
-> nombre_curso VARCHAR(30),
-> clavem INTEGER NOT NULL,
-> twitter_maestro VARCHAR(15),
-> videos NUMERIC(2),
-> clave_logo INT NOT NULL,
-> descripcion VARCHAR(10),
-> examen_nivel NUMERIC(1),
-> PRIMARY KEY(clave_negocio),
-> CONSTRAINT fk_externa05 FOREIGN KEY(clavee) REFERENCES estudiante(matricula),
-> CONSTRAINT fk_externa06 FOREIGN KEY(clavem, twitter_maestro) REFERENCES
maestros(clavem, twitter));
Query OK, 0 rows affected (0.60 sec)
141. Hacemos una consulta para recuperar los campos de la tabla.
mysql> SELECT * FROM cnegocios;
+---------------+--------+-------------+--------------------------+--------+-----------------+--------+------------+-------------+--------------+
| clave_negocio | clavee | clave_curso | nombre_curso | clavem | twitter_maestro | videos | clave_logo | descripcion | examen_nivel |
+---------------+--------+-------------+--------------------------+--------+-----------------+--------+------------+-------------+--------------+
| 1 | 1 | 1 | Mantenimiento preventivo | 2001 | fernando | NULL | 1 | NULL | 4 |
| 2 | 2 | 2 | Aprende Office | 2002 | carlos | NULL | 2 | NULL | 2 |
| 3 | 3 | 3 | Aprende Office 2 | 2003 | juanluis | NULL | 3 | NULL | 1 |
| 4 | 4 | 4 | Informatica 1 | 2004 | juanluis | NULL | 4 | NULL | 4 |
| 5 | 5 | 5 | Programación | 2005 | rodolfo | NULL | 5 | NULL | 2 |
| 6 | 6 | 6 | Ética | 2006 | francisco | NULL | 6 | NULL | 4 |
| 7 | 7 | 7 | Español | 2007 | aurora | NULL | 7 | NULL | 3 |
| 8 | 8 | 8 | Matemáticas | 2008 | david | NULL | 8 | NULL | 6 |
| 9 | 9 | 9 | Ofimatica | 2009 | mayra | NULL | 9 | NULL | 4 |
| 10 | 10 | 10 | Geografía | 2010 | enrique | NULL | 10 | NULL | 8 |
+---------------+--------+-------------+--------------------------+--------+-----------------+--------+------------+-------------+--------------+
10 rows in set (0.19 sec)

142. Creación de la tabla caudiovi.


mysql> CREATE TABLE caudiovi(
-> clave_caudiovi INTEGER NOT NULL,
-> clavee INTEGER NOT NULL,
-> clave_curso INTEGER NOT NULL,
-> nombre_curso VARCHAR(30),
-> clavem INTEGER NOT NULL,
-> twitter_maestro VARCHAR(15),
-> videos NUMERIC(2),
-> clave_logo INT NOT NULL,
-> descripcion TEXT,
-> examen_nivel NUMERIC(1),
-> PRIMARY KEY(clave_caudiovi),
-> CONSTRAINT fk_externa05 FOREIGN KEY(clavee) REFERENCES estudiante(matricula),

Administración de Base de Datos | Ing. Sistemas Computacionales 51


Bitácora de Oracle MySQL
-> CONSTRAINT fk_externa06 FOREIGN KEY(clavem, twitter_maestro) REFERENCES
maestros(clavem, twitter));
Query OK, 0 rows affected (0.09 sec)
143. Hacemos una consulta para recuperar los campos de la tabla.
mysql> SELECT * FROM caudiovi;
+----------------+--------+-------------+----------------------------+--------+-----------------+--------+------------+------
-----------------------------------------+--------------+
| clave_caudiovi | clavee | clave_curso | nombre_curso | clavem | twitter_maestro | videos | clave_logo |
descripcion | examen_nivel |
+----------------+--------+-------------+----------------------------+--------+-----------------+--------+------------+------
-----------------------------------------+--------------+
| 3001 | 1001 | 1 | Programación con Java | 2001 | eliasrodrig | NULL | 20 |
Fundamentos | 1 |
| 3002 | 1002 | 2 | Programación con C++ | 2002 | eliasrodrig | NULL | 21 | Curso
avanzado | 2 |
| 3003 | 1003 | 3 | Programación con Perl | 2003 | emanuelcordova | NULL | 23 | Curso
avanzado | 3 |
| 3004 | 1004 | 4 | Programación con PHP 7 | 2004 | wilbert | NULL | 24 | Curso
avanzado | 4 |
| 3005 | 1005 | 5 | HTML & CSS3 | 2005 | david | NULL | 25 |
Aprende lo básico | 5 |
| 3006 | 1006 | 6 | Javascript y HTML5 | 2006 | erick | NULL | 26 | Crea
un sitio web dinámico | 6 |
| 3007 | 1007 | 7 | Python avanzado | 2007 | alejandro | NULL | 27 |
Aprende la ciencia de los datos | 7 |
| 3008 | 1008 | 8 | Desarrollo de Apps Moviles | 2008 | emanuelcordova | NULL | 28 |
Aprende el desarrollo de aplicaciones moviles | 8 |
| 3009 | 1009 | 9 | Desarroll0 de sitios web | 2009 | emanuelcordova | NULL | 29 |
Aprende el desarrollo de sitios web | 9 |
| 3010 | 1010 | 10 | Base de Datos | 2010 | wilbert | NULL | 30 |
Aprende a administrar una base de datos | 1 |
+----------------+--------+-------------+----------------------------+--------+-----------------+--------+------------+------
-----------------------------------------+--------------+
10 rows in set (0.28 sec)

144. Creación de la tabla csegun.


mysql> CREATE TABLE csegu(
-> clave_csegu INTEGER NOT NULL,
-> clavee INTEGER NOT NULL,
-> clave_curso INTEGER NOT NULL,
-> nombre_curso VARCHAR(30),
-> clavem INTEGER NOT NULL,
-> twitter_maestro VARCHAR(15),
-> videos NUMERIC(2),
-> clave_logo INT NOT NULL,
-> descripcion TEXT,
-> examen_nivel NUMERIC(1),
-> PRIMARY KEY(clave_csegu),
-> CONSTRAINT fk_externa05 FOREIGN KEY(clavee) REFERENCES estudiante(matricula),
-> CONSTRAINT fk_externa06 FOREIGN KEY(clavem, twitter_maestro) REFERENCES
maestros(clavem, twitter));
Query OK, 0 rows affected (0.07 sec)
145. De igual manera hacemos se hace una consulta para recuperar los campos de la
tabla.
mysql> SELECT * FROM csegu;
+-------------+--------+-------------+------------------+--------+-----------------+--------+------------+-------------+--------------+
| clave_csegu | clavee | clave_curso | nombre_curso | clavem | twitter_maestro | videos | clave_logo | descripcion | examen_nivel |
+-------------+--------+-------------+------------------+--------+-----------------+--------+------------+-------------+--------------+

Administración de Base de Datos | Ing. Sistemas Computacionales 52


Bitácora de Oracle MySQL
| 1 | 1 | 1 | Aprende Office | 2001 | carlos | NULL | 1 | NULL | 2 |
| 2 | 2 | 2 | Aprende Office | 2002 | carlos | NULL | 2 | NULL | 2 |
| 3 | 3 | 3 | Aprende Office 2 | 2003 | juanluis | NULL | 3 | NULL | 1 |
| 4 | 4 | 4 | Informatica 1 | 2004 | juanluis | NULL | 4 | NULL | 4 |
| 5 | 5 | 5 | Programación | 2005 | rodolfo | NULL | 5 | NULL | 2 |
| 6 | 6 | 6 | Ética | 2006 | francisco | NULL | 6 | NULL | 4 |
| 7 | 7 | 7 | Español | 2007 | aurora | NULL | 7 | NULL | 3 |
| 8 | 8 | 8 | Matemáticas | 2008 | david | NULL | 8 | NULL | 6 |
| 9 | 9 | 9 | Ofimatica | 2009 | mayra | NULL | 9 | NULL | 4 |
| 10 | 10 | 10 | Geografía | 2010 | enrique | NULL | 10 | NULL | 8 |
+-------------+--------+-------------+------------------+--------+-----------------+--------+------------+-------------+--------------+
10 rows in set (0.11 sec)

146. Creación de la tabla cia.


mysql> CREATE TABLE cia(
-> clave_cia INTEGER NOT NULL,
-> clavee INTEGER NOT NULL,
-> clave_curso INTEGER NOT NULL,
-> nombre_curso VARCHAR(30),
-> clavem INTEGER NOT NULL,
-> twitter_maestro VARCHAR(15),
-> videos NUMERIC(2),
-> clave_logo INT NOT NULL,
-> descripcion TEXT,
-> examen_nivel NUMERIC(1),
-> PRIMARY KEY(clave_cia),
-> CONSTRAINT fk_externa05 FOREIGN KEY(clavee) REFERENCES estudiante(matricula),
-> CONSTRAINT fk_externa06 FOREIGN KEY(clavee, twitter_maestro) REFERENCES
maestros(clavem, twitter));
Query OK, 0 rows affected (0.07 sec)
147. Hacemos una consulta para recuperar los registros de la tabla.
mysql> SELECT * FROM cia;
+-----------+--------+-------------+-----------------------+--------+-----------------+--------+------------+-------------+--------------+
| clave_cia | clavee | clave_curso | nombre_curso | clavem | twitter_maestro | videos | clave_logo | descripcion | examen_nivel |
+-----------+--------+-------------+-----------------------+--------+-----------------+--------+------------+-------------+--------------+
| 1001 | 101 | 1 | Programación | 1 | wilbert | NULL | 1 | NULL | 3 |
| 1002 | 102 | 2 | Lenguajes | 2 | janettemoreno | NULL | 2 | NULL | 2 |
| 1003 | 103 | 3 | Lenguajes de interfaz | 3 | rosanormal | NULL | 3 | NULL | 6 |
| 1004 | 104 | 4 | Arquitectura de C. | 4 | rosanorma | NULL | 4 | NULL | 4 |
| 1005 | 105 | 5 | Linux I | 5 | rosanorma | NULL | 5 | NULL | 5 |
| 1006 | 106 | 6 | Sistemas Oper. | 6 | elias | NULL | 6 | NULL | 1 |
| 1007 | 107 | 7 | Redes | 7 | luz_elda | NULL | 7 | NULL | 6 |
| 1008 | 108 | 8 | Base de datos | 8 | wilbert | NULL | 8 | NULL | 6 |
| 1009 | 109 | 9 | Fundamentos de P. | 9 | luz_elba | NULL | 9 | NULL | 1 |
| 1010 | 110 | 10 | Algebra | 10 | janettemoreno | NULL | 10 | NULL | 2 |
+-----------+--------+-------------+-----------------------+--------+-----------------+--------+------------+-------------+--------------+
10 rows in set (0.52 sec)

148. Creación de la tabla ciot.


mysql> CREATE TABLE ciot(
-> clave_ciot INTEGER NOT NULL,
-> clavee INTEGER NOT NULL,
-> clave_curso INTEGER NOT NULL,
-> nombre_curso VARCHAR(30),
-> clavem INTEGER NOT NULL,

Administración de Base de Datos | Ing. Sistemas Computacionales 53


Bitácora de Oracle MySQL
-> twitter_maestro VARCHAR(15),
-> videos NUMERIC(2),
-> clave_logo INT NOT NULL,
-> descripcion TEXT,
-> examen_nivel NUMERIC(1),
-> PRIMARY KEY(clave_ciot),
-> CONSTRAINT fk_externa05 FOREIGN KEY(clavee) REFERENCES estudiante(matricula),
-> CONSTRAINT fk_externa06 FOREIGN KEY(clavem, twitter_maestro) REFERENCES
maestros(clavem, twitter));
Query OK, 0 rows affected (0.07 sec)
149. Hacemos una consulta para recuperar los campos con sus registros de la tabla.
mysql> SELECT * FROM ciot;
+------------+--------+-------------+-----------------------+--------+-----------------+--------+------------+-------------+--------------+
| clave_ciot | clavee | clave_curso | nombre_curso | clavem | twitter_maestro | videos | clave_logo | descripcion | examen_nivel |
+------------+--------+-------------+-----------------------+--------+-----------------+--------+------------+-------------+--------------+
| 1001 | 101 | 1 | Programación | 1 | wilbert | NULL | 1 | NULL | 3 |
| 1002 | 102 | 2 | Lenguajes | 2 | janettemoreno | NULL | 2 | NULL | 2 |
| 1003 | 103 | 3 | Lenguajes de interfaz | 3 | rosanormal | NULL | 3 | NULL | 6 |
| 1004 | 104 | 4 | Arquitectura de C. | 4 | rosanorma | NULL | 4 | NULL | 4 |
| 1005 | 105 | 5 | Linux I | 5 | rosanorma | NULL | 5 | NULL | 5 |
| 1006 | 106 | 6 | Sistemas Oper. | 6 | elias | NULL | 6 | NULL | 1 |
| 1007 | 107 | 7 | Redes | 7 | luz_elda | NULL | 7 | NULL | 6 |
| 1008 | 108 | 8 | Base de datos | 8 | wilbert | NULL | 8 | NULL | 6 |
| 1009 | 109 | 9 | Fundamentos de P. | 9 | luz_elba | NULL | 9 | NULL | 1 |
| 1010 | 110 | 10 | Algebra | 10 | janettemoreno | NULL | 10 | NULL | 2 |
+------------+--------+-------------+-----------------------+--------+-----------------+--------+------------+-------------+--------------+
10 rows in set (0.45 sec)

150. Creación de la tabla cvideojue.


mysql> CREATE TABLE cvideojue(
-> clave_cvj INTEGER NOT NULL,
-> clavee INTEGER NOT NULL,
-> clave_curso INTEGER NOT NULL,
-> clavem INTEGER NOT NULL,
-> twitter_maestro VARCHAR(15),
-> videos NUMERIC(2),
-> clave_logo INT NOT NULL,
-> descripcion VARCHAR(10),
-> examen_nivel NUMERIC(1),
-> PRIMARY KEY(clave_cvj),
-> CONSTRAINT fk_externa05 FOREIGN KEY(clavee) REFERENCES estudiante(matricula),
-> CONSTRAINT fk_externa06 FOREIGN KEY(clavem, twitter_maestro) REFERENCES
maestros(clavem, twitter));
Query OK, 0 rows affected (0.26 sec)
151. Hacemos de igual manera una consulta para ver los registros insertados.
mysql> SELECT * FROM cvideojue;
+-----------+--------+-------------+--------+-----------------+--------+------------+-------------+--------------+
| clave_cvj | clavee | clave_curso | clavem | twitter_maestro | videos | clave_logo | descripcion | examen_nivel |
+-----------+--------+-------------+--------+-----------------+--------+------------+-------------+--------------+
| 1 | 1 | 1 | 2001 | elias | NULL | 2 | NULL | 3 |
| 2 | 2 | 2 | 2002 | pedro | NULL | 1 | NULL | 2 |
| 3 | 3 | 3 | 2003 | carlos | NULL | 3 | NULL | 4 |
| 4 | 4 | 4 | 2004 | luis | NULL | 4 | NULL | 2 |
| 5 | 5 | 5 | 2005 | tony | NULL | 5 | NULL | 3 |

Administración de Base de Datos | Ing. Sistemas Computacionales 54


Bitácora de Oracle MySQL
| 6 | 6 | 6 | 2006 | juan | NULL | 6 | NULL | 7 |
| 7 | 7 | 7 | 2007 | enrique | NULL | 5 | NULL | 2 |
| 8 | 8 | 8 | 2008 | sara | NULL | 8 | NULL | 5 |
| 9 | 9 | 9 | 2009 | luis | NULL | 9 | NULL | 2 |
| 10 | 10 | 10 | 2010 | carmen | NULL | 10 | NULL | 6 |
+-----------+--------+-------------+--------+-----------------+--------+------------+-------------+--------------+
10 rows in set (0.13 sec)

152. Creación de la tabla certificado.


mysql> CREATE TABLE certificado(
-> clave_cer INTEGER NOT NULL,
-> clavee INTEGER NOT NULL,
-> clave_auto INTEGER NOT NULL,
-> clave_logo VARCHAR(15),
-> direccion_logo VARCHAR(15),
-> plantilla_dir VARCHAR(15),
-> nombree VARCHAR(30),
-> apellidoe VARCHAR(30),
-> clave_maestro INTEGER NOT NULL,
-> fecha DATE,
-> CONSTRAINT pk_primaria100 PRIMARY KEY(clave_cer, clavee),
-> CONSTRAINT fk_externa100 FOREIGN KEY(clavee, nombree, apellidoe) REFERENCES
estudiante(matricula, nombre, apellidos),
-> CONSTRAINT fk_externa101 FOREIGN KEY(clave_logo) REFERENCES logos(clave_logo),
-> CONSTRAINT fk_externa102 FOREIGN KEY(clave_maestro) REFERENCES maestros(clavem));
Query OK, 0 rows affected (0.13 sec)
153. Hacemos una consulta para recuperar los campos con sus registros.
mysql> SELECT * FROM certificado;
+-----------+--------+------------+------------+-----------------+---------------+-----------+-----------+---------------+------------+
| clave_cer | clavee | clave_auto | clave_logo | direccion_logo | plantilla_dir | nombree | apellidoe | clave_maestro | fecha |
+-----------+--------+------------+------------+-----------------+---------------+-----------+-----------+---------------+------------+
| 3456 | 2001 | 1340 | 1 | Ernesto Aguirre | Adolfo Lopez | Jassiel | Elimas | 1 | 2018-05-28 |
| 3423 | 2002 | 1367 | 2 | Enrique García | Adolfo Lopez | Sergio | Granier | 2 | 2018-05-28 |
| 3467 | 2003 | 1390 | 3 | Henry Dominguez | Benito Juarez | Ricardo | Martinez | 3 | 2018-05-28 |
| 3433 | 2004 | 1389 | 4 | Josefa Ortiz | Carranza | Emanuel | Córdova | 4 | 2018-05-28 |
| 3445 | 2005 | 1393 | 5 | Miguel Hidalgo | El Mercado | Valeria | Medellin | 5 | 2018-05-28 |
| 3444 | 2006 | 1321 | 6 | Melchor Ocampo | Asunción | Antonio | Morales | 6 | 2018-05-28 |
| 3411 | 2007 | 1344 | 7 | José Eduardo | Nueva Zelanda | Martin | Garcia | 7 | 2018-05-28 |
| 3449 | 2008 | 1366 | 8 | Reyes Hernández | Cañales | Lissandro | Cruz | 8 | 2018-05-28 |
| 3447 | 2009 | 1367 | 9 | Revolución | Centro | Josefina | Mota | 9 | 2018-05-28 |
| 3422 | 2010 | 1309 | 10 | Virginia | Centro | Maria | Mayo | 10 | 2018-05-28 |
+-----------+--------+------------+------------+-----------------+---------------+-----------+-----------+---------------+------------+
10 rows in set (1.19 sec)

154. Creación de la tabla aula.


mysql> CREATE TABLE aula(
-> numero_aula INT NOT NULL,
-> clavem INT(11) NOT NULL,
-> numero_sillas INT(2),
-> ancho INT(5),
-> alto INT(5),
-> color VARCHAR(10),

Administración de Base de Datos | Ing. Sistemas Computacionales 55


Bitácora de Oracle MySQL
-> PRIMARY KEY(numero_aula),
-> CONSTRAINT fk_externa05 FOREIGN KEY(clavem) REFERENCES maestros(clavem));
Query OK, 0 rows affected (0.10 sec)

mysql> SELECT * FROM aula;


+-------------+--------+---------------+-------+------+--------+
| numero_aula | clavem | numero_sillas | ancho | alto | color |
+-------------+--------+---------------+-------+------+--------+
| 1 | 12345 | 35 | 5 | 4 | Blanco |
| 2 | 23786 | 24 | 5 | 4 | Blanco |
| 3 | 24985 | 38 | 5 | 4 | Blanco |
| 4 | 56328 | 40 | 5 | 4 | Blanco |
| 5 | 90675 | 39 | 5 | 4 | Blanco |
| 6 | 45654 | 37 | 5 | 4 | Blanco |
| 7 | 34786 | 31 | 5 | 4 | Blanco |
| 8 | 78326 | 33 | 5 | 4 | Blanco |
| 9 | 34678 | 37 | 5 | 4 | Blanco |
| 10 | 12690 | 38 | 5 | 4 | Blanco |
+-------------+--------+---------------+-------+------+--------+
10 rows in set (0.00 sec)

155. Creación de la tabla materia.


mysql> CREATE TABLE materia(
-> clave_materia INT(15) NOT NULL,
-> matricula_e INT(11) NOT NULL,
-> clave_profesor INT(11) NOT NULL,
-> nombre_m VARCHAR(30),
-> creditos INT(2),
-> categoria_m VARCHAR(20),
-> carrera VARCHAR(20),
-> horario TIME,
-> clases_dias VARCHAR(10),
-> grado NUMERIC(2),
-> grupo VARCHAR(2),
-> PRIMARY KEY(clave_materia),
-> CONSTRAINT fk_externa05 FOREIGN KEY(matricula_e) REFERENCES estudiante(matricula),
-> CONSTRAINT fk_externa06 FOREIGN KEY(clave_profesor) REFERENCES maestros(clavem));
Query OK, 0 rows affected (0.04 sec)

156. Hacemos una consulta para recuperar todos los campos de la tabla materia.
mysql> SELECT * FROM materia ;
+---------------+-------------+----------------+--------------------------+----------+-------------+------------------+----------+-------------+-------+-------+
| clave_materia | matricula_e | clave_profesor | nombre_m | creditos | categoria_m | carrera | horario | clases_dias | grado | grupo |
+---------------+-------------+----------------+--------------------------+----------+-------------+------------------+----------+-------------+-------+-------+
| 123 | 23235 | 12345 | Lenguajes y Automátas | 5 | Ciencias | Ing. Sistemas | 07:00:00 | Lunes | 6 | A |
| 456 | 23476 | 23786 | Cálculo | 5 | Ciencias | Ing. Sistemas | 08:00:00 | Martes | 2 | A |
| 784 | 23780 | 24985 | Matematicas | 5 | ciencias | Ing. Industrial | 09:00:00 | Jueves | 4 | C |
| 678 | 36789 | 56328 | Ingles | 5 | Ciencias | Ing. Ambiental | 07:00:00 | Viernes | 2 | A |
| 783 | 45378 | 90675 | Calculo | 8 | Ciencias | Ing. Sistemas | 06:00:00 | Lunes | 1 | B |
| 726 | 78345 | 34786 | Desarrollo Sustentable | 4 | Ciencias | Ing. Ambiental | 11:00:00 | Miercoles | 6 | C |
| 686 | 78967 | 45654 | Lenguaje de Interfaz | 4 | ciencias | Ing. Sistemas | 13:00:00 | Viernes | 5 | B |
| 829 | 98348 | 56328 | Calculo Diferencial | 5 | ciencias | Ing. Mecatronica | 14:00:00 | Lunes | 3 | C |

Administración de Base de Datos | Ing. Sistemas Computacionales 56


Bitácora de Oracle MySQL
| 360 | 567456 | 78326 | Ecuaciones Diferenciales | 6 | Ciencias | Ing. Civil | 11:00:00 | Jueves | 5 | B |
| 86 | 678946 | 90675 | Ecologia | 5 | Ciencias | Ing. Ambiental | 08:00:00 | Martes | 2 | C |
+---------------+-------------+----------------+--------------------------+----------+-------------+------------------+----------+-------------+-------+-------+
10 rows in set (0.00 sec)

157. Creación de la tabla turno.


mysql> CREATE TABLE turno(
-> codigo_turno INT NOT NULL,
-> turno VARCHAR(15),
-> matricula_e INT(11) NOT NULL,
-> horario TIME,
-> grados INT(2),
-> grupos VARCHAR(2),
-> PRIMARY KEY(codigo_turno),
-> CONSTRAINT fk_externa05 FOREIGN KEY(matricula_e) REFERENCES
estudiante(matricula));
Query OK, 0 rows affected (0.06 sec)

158. Hacemos una consulta para recuperar todos los campos de la


tabla truno.
mysql> select * FROM Turno;
+--------------+----------+-------------+----------+--------+--------+
| codigo_turno | turno | matricula_e | horario | grados | grupos |
+--------------+----------+-------------+----------+--------+--------+
| 374 | Matutino | 23235 | 07:00:00 | 5 | C |
| 693 | Matutino | 23476 | 10:00:00 | 6 | B |
| 892 | Matutino | 23780 | 09:00:00 | 5 | A |
| 932 | Matutino | 36789 | 06:00:00 | 4 | C |
| 293 | Matutino | 45476 | 09:00:00 | 3 | A |
| 291 | Matutino | 78345 | 08:00:00 | 2 | B |
| 206 | Matutino | 78967 | 07:00:00 | 1 | C |
| 26 | Matutino | 98348 | 09:00:00 | 3 | B |
| 273 | Matutino | 567456 | 12:00:00 | 5 | A |
| 583 | Matutino | 678946 | 08:00:00 | 4 | C |
+--------------+----------+-------------+----------+--------+--------+
10 rows in set (0.00 sec)

159. Creación de la tabla equipo_futbol.


mysql> CREATE TABLE equipo_futbol(
-> clave_equipo INT NOT NULL,
-> nombre VARCHAR(30),
-> nombre_jugador VARCHAR(30),
-> apellido_ma_jugador VARCHAR(20),
-> numero_jugador NUMERIC(2),
-> copas NUMERIC(5),
-> partidos_perdidos NUMERIC(5),
-> partidos_jugados NUMERIC(5),
-> nombre_dirtecnico VARCHAR(20),
-> apellidos_dirtecnico VARCHAR(30),
-> PRIMARY KEY(clave_equipo));

Administración de Base de Datos | Ing. Sistemas Computacionales 57


Bitácora de Oracle MySQL
Query OK, 0 rows affected (0.07 sec)

160. De igual manera, hacemos una consulta para recuperar todos los campos de la tabla
equipo_futbol.
mysql> select * from equipo_futol;
+--------------+-----------------------------+----------------+---------------------+----------------+-------+---------------
----+------------------+-------------------+----------------------+
| clave_equipo | nombre | nombre_jugador | apellido_ma_jugador | numero_jugador | copas |
partidos_perdidos | partidos_jugados | nombre_dirtecnico | apellidos_dirtecnico |
+--------------+-----------------------------+----------------+---------------------+----------------+-------+---------------
----+------------------+-------------------+----------------------+
| 45 | Los Jaguares | Raciel | Jimenez Leon | 5 | 7 |
3 | 6 | José | Sandoval |
| 46 | Tigres | Francisco | Jimenez Leon | 2 | 3 |
6 | 6 | Carlos | Enriquez |
| 48 | Osos | Jesús | Sanchez Garcia | 5 | 3 |
2 | 4 | Juan | Mendez |
| 89 | Los Rayos | Manuel | Córdova Gil | 4 | 3 |
8 | 9 | Julios | Mendoza |
| 98 | Los Correcaminos | Jesús | Benitez | 1 | 7 |
8 | 3 | Gerardo | Hernández |
| 67 | Los Tiburones | Alejandro | Gonzales Lopez | 3 | 5 |
9 | 4 | Benito | Gómez |
| 33 | Huracanes | Alexander | Palma | 1 | 4 |
3 | 8 | Pablo | Ochoa |
| 21 | Los Cuervos Negros Salvajes | Ronaldo | Naranjo | 7 | 3 |
1 | 4 | Iván | González |
| 44 | Relampago | Fidencio | de la Cruz | 8 | 7 |
2 | 9 | Ramón | Oliva |
| 88 | Pumas | Raúl | Ortega | 5 | 2 |
6 | 9 | Rafa | Custodio |
+--------------+-----------------------------+----------------+---------------------+----------------+-------+---------------
----+------------------+-------------------+----------------------+
10 rows in set (0.00 sec)

161. Creación de la tabla equipo_voleibol.


mysql> CREATE TABLE equipo_voleibol(
-> clave_equipo INT NOT NULL,
-> nombre VARCHAR(30),
-> nombre_jugador VARCHAR(30),
-> apellido_ma_jugador VARCHAR(20),
-> apellido_pa_jugador VARCHAR(20),
-> numero_jugador NUMERIC(2),
-> copas NUMERIC(5),
-> partidos_perdidos NUMERIC(5),
-> patidos_jugados NUMERIC(5),
-> nombre_dirtecnico VARCHAR(20),
-> apellidos_dirtecnico VARCHAR(30),
-> PRIMARY KEY(clave_equipo));
Query OK, 0 rows affected (0.06 sec)
162. Hacemos una consulta para recuperar los campos de la tabla.
mysql> SELECT * FROM equipo_voleibol;
+--------------+-----------------------+----------------+---------------------+---------------------+---------
-------+-------+-------------------+-----------------+-------------------+----------------------+
| clave_equipo | nombre | nombre_jugador | apellido_ma_jugador | apellido_pa_jugador |
numero_jugador | copas | partidos_perdidos | patidos_jugados | nombre_dirtecnico | apellidos_dirtecnico |
+--------------+-----------------------+----------------+---------------------+---------------------+---------
-------+-------+-------------------+-----------------+-------------------+----------------------+

Administración de Base de Datos | Ing. Sistemas Computacionales 58


Bitácora de Oracle MySQL
| 1 | La Sultana | Guillermo | Gonzalez | Gutierrez |
3 | 4 | 10 | 9 | Francisco Pancho | Torres Jimenez |
| 2 | Los Trail Blazers | Antonio | Dominguez | Dominguez |
1 | 2 | 5 | 8 | Miguel | Fonseca |
| 3 | Los Huracanes | José Armando | Pineda | Plancarte |
6 | 4 | 3 | 9 | Claudio | Broca |
| 4 | Los Dinamita | Miguel | Palacios | Palacios |
6 | 2 | 1 | 5 | Eduardo | Arias Perez |
| 5 | Fast & Furious La | David | Palma | Córdova |
9 | 3 | 7 | 3 | Lenin | Córdova H. |
| 6 | El Muro | Jonathan | de la Cruz | NULL |
45 | 6 | 2 | 12 | Henry | Montejo Montejo |
| 7 | Ba-Da-Bing Ba-Da-Bump | Jason | Pereira | Pereira |
7 | 6 | 5 | 9 | Daniel | Suarez Ricardez |
| 8 | Misión Unblockables | Jesús | Oliva | Palma |
1 | 2 | 4 | 9 | Javier | Benites Sanchez |
| 9 | Los Trituradores | Paco | Rodriguez | Gaudiano |
10 | 5 | 4 | 11 | Roberto | Gonzalo |
| 10 | Los Huelguistas | Juan | Gil | Custodio |
13 | 3 | 1 | 7 | Isidro | Jimenez de la Cruz |
+--------------+-----------------------+----------------+---------------------+---------------------+---------
-------+-------+-------------------+-----------------+-------------------+----------------------+
10 rows in set (0.30 sec)

163. Creación de la tabla equipo_basquetbol.


mysql> CREATE TABLE equipo_basquetbol(
-> clave_equipo INT NOT NULL,
-> nombre VARCHAR(20),
-> nombre_jugador VARCHAR(20),
-> apellido_ma_jugador VARCHAR(20),
-> apellido_pa_jugador VARCHAR(20),
-> numero_jugador NUMERIC(2),
-> copas NUMERIC(5),
-> partidos_perdidos NUMERIC(5),
-> partidos_jugados NUMERIC(5),
-> nombre_dirtecnico VARCHAR(20),
-> apellidos_dirtecnico VARCHAR(30),
-> PRIMARY KEY(clave_equipo));
Query OK, 0 rows affected (0.07 sec)
164. De igual manera hacemos una consulta para recuperar los
campos y sus registros de la tabla.
mysql> SELECT * FROM equipo_basquetbol;
+--------------+---------------------+----------------+---------------------+--------------------
-+----------------+-------+-------------------+------------------+-------------------+-----------
-----------+
| clave_equipo | nombre | nombre_jugador | apellido_ma_jugador | apellido_pa_jugador
| numero_jugador | copas | partidos_perdidos | partidos_jugados | nombre_dirtecnico |
apellidos_dirtecnico |
+--------------+---------------------+----------------+---------------------+--------------------
-+----------------+-------+-------------------+------------------+-------------------+-----------
-----------+
| 1 | Boston Celtics | Jayson | Tatum | NULL
| 0 | 2 | 4 | 7 | Brad | Stevens
|

Administración de Base de Datos | Ing. Sistemas Computacionales 59


Bitácora de Oracle MySQL
| 2 | Golden State W. | Stephen | Curry | NULL
| 3 | 1 | 5 | 8 | Kevin | Durant
|
| 3 | Cleveland Cavaliers | LeBron | Jmaes | NULL
| 2 | 3 | 3 | 7 | Tyronn | Lue
|
| 4 | Chicago Bulls | Zach | LaVine | NULL
| 4 | 2 | 4 | 5 | Dick | Klein
|
| 5 | Oklahoma City T. | Paul | Goerge | NULL
| 2 | 3 | 4 | 6 | Billy | Donovan
|
| 6 | Brookyln Nets | Jeremy | Lin | NULL
| 7 | 2 | 4 | 5 | Kenny | Atkinson
|
| 7 | Houston Rockets | James | Harden | NULL
| 13 | 4 | 5 | 9 | Mike | D Antoni
|
| 8 | San Antonio Spurs | Kawhi | Leonard | NULL
| 2 | 3 | 4 | 7 | Gregg | Popovich
|
| 9 | New York Knicks | Frank | Ntilikina | NULL
| 11 | 2 | 5 | 7 | David | Fizdale
|
| 10 | Orlando Magic | Aaron | Gordon | NULL
| 0 | 1 | 3 | 3 | Frank | Vogel
|
+--------------+---------------------+----------------+---------------------+--------------------
-+----------------+-------+-------------------+------------------+-------------------+-----------
-----------+
10 rows in set (0.56 sec)

165. Creación de la tabla equipo_futbol_americano.


mysql> CREATE TABLE equipo_futbol_americano(
-> clave_equipo INT NOT NULL,
-> nombre VARCHAR(20),
-> nombre_jugador VARCHAR(20),
-> apellido_ma_jugador VARCHAR(20),
-> apellido_pa_jugador VARCHAR(20),
-> numero_jugador NUMERIC(2),
-> copas NUMERIC(5),
-> partidos_perdidos NUMERIC(5),
-> partidos_jugados NUMERIC(5),
-> nombre_dirtecnico VARCHAR(30),
-> apellidos_dirtecnico VARCHAR(30),
-> PRIMARY KEY(clave_equipo));
Query OK, 0 rows affected (0.06 sec)
166. Hacemos una consulta para recuperar los registros.
mysql> SELECT * FROM equipo_futbol_americano;
+--------------+----------------------+----------------+---------------------+-------------------
--+----------------+-------+-------------------+------------------+-------------------+----------
------------+

Administración de Base de Datos | Ing. Sistemas Computacionales 60


Bitácora de Oracle MySQL
| clave_equipo | nombre | nombre_jugador | apellido_ma_jugador |
apellido_pa_jugador | numero_jugador | copas | partidos_perdidos | partidos_jugados |
nombre_dirtecnico | apellidos_dirtecnico |
+--------------+----------------------+----------------+---------------------+-------------------
--+----------------+-------+-------------------+------------------+-------------------+----------
------------+
| 1 | Dallas Comboys | Dak | Prescott | NULL
| 4 | 3 | 5 | 14 | Jason | Garrett
|
| 2 | New York Giants | Eli | Manning | NULL
| 10 | 2 | 4 | 11 | Pat | Shurmur
|
| 3 | Philadelphi Eagles | Nick | Foles | NULL
| 9 | 4 | 3 | 12 | Doug | Pederson
|
| 4 | Washington Redskins | Alex | Smith | NULL
| 11 | 3 | 2 | 8 | Daniel | Snyder
|
| 5 | Buffalo Bills | Josh | Allen | NULL
| 17 | 5 | 2 | 15 | Sean | McDermott
|
| 6 | Miami Dolphins | Ryan | Tannehill | NULL
| 17 | 2 | 5 | 8 | Adam | Gase
|
| 7 | New England Patriots | Tom | Brady | NULL
| 12 | 4 | 3 | 9 | Bill | Belichick
|
| 8 | New York Jets | Sam | Darnold | NULL
| 14 | 3 | 2 | 7 | Todd | Bowles
|
| 9 | Arizona Cardinals | Larry | Fitzgerald | NULL
| 11 | 4 | 3 | 12 | Steven | Wilks
|
| 10 | Denver Broncos | Case | Keenum | NULL
| 4 | 3 | 2 | 10 | Vance | Joseph
|
+--------------+----------------------+----------------+---------------------+-------------------
--+----------------+-------+-------------------+------------------+-------------------+----------
------------+
10 rows in set (0.56 sec)

167. Creación de la tabla teachers.


mysql> CREATE TABLE teachers(
-> clavem INT NOT NULL,
-> nombre VARCHAR(20),
-> apellido_ma VARCHAR(20),
-> apellido_pa VARCHAR(20),
-> direccion VARCHAR(50),
-> provincia VARCHAR(30),
-> edad NUMERIC(3),
-> fecha_nacimiento DATE,
-> telefono NUMERIC(15),
-> DNI VARCHAR(20),
-> PRIMARY KEY(clavem));

Administración de Base de Datos | Ing. Sistemas Computacionales 61


Bitácora de Oracle MySQL
Query OK, 0 rows affected (0.08 sec)
168. Hacemos una consulta para recuperar los campos y sus
registros.
mysql> SELECT * FROM teachers;
+--------+-----------+-------------+-------------+------------+-----------+------+------------------+------------+--------+
| clavem | nombre | apellido_ma | apellido_pa | direccion | provincia | edad | fecha_nacimiento | telefono | DNI |
+--------+-----------+-------------+-------------+------------+-----------+------+------------------+------------+--------+
| 1 | Tatina | Garcia | Martinez | Cárdenas | NULL | 36 | 1981-03-28 | 9378967652 | 678993 |
| 2 | Maria | Lopez | Lopez | Comalcalco | NULL | 38 | 1980-02-28 | 9372327896 | 672393 |
| 3 | Carlos | Perez | Perez | Cárdenas | NULL | 39 | 1989-01-21 | 9376785369 | 672311 |
| 4 | Alexander | Rivera | Perez | Comalcalco | NULL | 40 | 1971-03-29 | 9376785369 | 672311 |
| 5 | Torruco | Rivera | García | Cárdenas | NULL | 34 | 1974-09-21 | 9373288769 | 675511 |
| 6 | María | Peña | Minerva | Comalcalco | NULL | 40 | 1978-09-21 | 9373288769 | 675511 |
| 7 | Rafael | Custodio | NULL | Cunducán | NULL | 45 | 1978-10-21 | 9373348769 | 675533 |
| 8 | Juan | Rivera | NULL | Comalcalco | NULL | 41 | 1977-11-23 | 9374783299 | 675545 |
| 9 | Alexander | Sanchez | NULL | Comalcalco | NULL | 32 | 1970-11-21 | 9932683922 | 675555 |
| 10 | Raymundo | Almedia | NULL | Comalcalco | NULL | 32 | 1970-11-21 | 9932355922 | 675544 |
+--------+-----------+-------------+-------------+------------+-----------+------+------------------+------------+--------+
10 rows in set (0.81 sec)

169. Creación de la tabla curso_ingles


mysql> CREATE TABLE curso_ingles(
-> clave_curso INT NOT NULL,
-> nivel VARCHAR(10),
-> clavem INT NOT NULL,
-> fecha_inicio DATE,
-> fecha_termino DATE,
-> horario TIME,
-> horario2 TIME,
-> total_alumnos NUMERIC(3),
-> incidencias VARCHAR(30),
-> creditos VARCHAR(20),
-> PRIMARY KEY(clave_curso),
-> CONSTRAINT fk_externa05 FOREIGN KEY(clavem) REFERENCES teachers(clavem));
Query OK, 0 rows affected (0.06 sec)

170. De igual manera hacemos una consulta para recuperar todos los
registros de la tabla.
mysql> SELECT * FROM curso_ingles;
+-------------+---------+--------+--------------+---------------+----------+----------+---------------+-------------+--------
--+
| clave_curso | nivel | clavem | fecha_inicio | fecha_termino | horario | horario2 | total_alumnos | incidencias |
creditos |
+-------------+---------+--------+--------------+---------------+----------+----------+---------------+-------------+--------
--+
| 1 | Nivel 1 | 2001 | 2018-02-15 | 2018-04-18 | 14:00:00 | 16:00:00 | 44 | NULL | 30
|
| 2 | Nivel 2 | 2002 | 2018-02-15 | 2018-04-18 | 12:00:00 | 14:00:00 | 35 | NULL | 30
|
| 3 | Nivel 5 | 2003 | 2018-02-19 | 2018-04-02 | 08:00:00 | 13:00:00 | 37 | NULL | 30
|
| 4 | Nivel 3 | 2004 | 2018-02-15 | 2018-04-18 | 14:00:00 | 16:00:00 | 40 | NULL | 30
|
| 5 | Nivel 1 | 2005 | 2018-02-15 | 2018-04-18 | 16:00:00 | 18:00:00 | 44 | NULL | 30
|

Administración de Base de Datos | Ing. Sistemas Computacionales 62


Bitácora de Oracle MySQL
| 6 | Nivel 6 | 2006 | 2018-02-15 | 2018-04-18 | 16:00:00 | 18:00:00 | 30 | NULL | 30
|
| 7 | Nivel 2 | 2007 | 2018-02-15 | 2018-04-18 | 16:00:00 | 18:00:00 | 35 | NULL | 30
|
| 8 | Nivel 4 | 2008 | 2018-02-15 | 2018-04-18 | 10:00:00 | 12:00:00 | 35 | NULL | 30
|
| 9 | Nivel 6 | 2009 | 2018-02-15 | 2018-04-18 | 08:00:00 | 10:00:00 | 39 | NULL | 30
|
| 10 | Nivel 2 | 2010 | 2018-02-15 | 2018-04-18 | 14:00:00 | 16:00:00 | 45 | NULL | 30
|
+-------------+---------+--------+--------------+---------------+----------+----------+---------------+-------------+--------
--+
10 rows in set (0.08 sec)

171. Creación de la tabla calificaciones.


mysql> CREATE TABLE calificaciones(
-> clave INT NOT NULL,
-> clave_curso INT NOT NULL,
-> nota_final NUMERIC(5),
-> descripcion TEXT,
-> PRIMARY KEY(clave),
-> CONSTRAINT fk_extern05 FOREIGN KEY(clave_curso) REFERENCES
curso_ingles(clave_curso));
Query OK, 0 rows affected (0.12 sec)
172. Hacemos una consulta para recuperar todos los campos con
todos registros de la tabla.
mysql> SELECT * FROM calificaciones;
+-------+-------------+------------+------------------------+
| clave | clave_curso | nota_final | descripcion |
+-------+-------------+------------+------------------------+
| 1 | 3401 | 9 | Buen aprovechamiento |
| 2 | 3402 | 7 | Mejora |
| 3 | 3403 | 8 | Bien |
| 4 | 3404 | 10 | Exelente |
| 5 | 3405 | 10 | Exelente |
| 6 | 3406 | 5 | Mejora tu calificación |
| 7 | 3407 | 6 | Mejora |
| 8 | 3408 | 8 | Bien |
| 9 | 3409 | 9 | Buen aprovechamiento |
| 10 | 3410 | 10 | Excelente |
+-------+-------------+------------+------------------------+
10 rows in set (0.36 sec)

173. Creación de la tabla tutor.


mysql> CREATE TABLE tutor(
-> CURP VARCHAR(15) NOT NULL,
-> nombre VARCHAR(20),
-> apellido_pa VARCHAR(20),
-> apellido_ma VARCHAR(20),
-> direccion VARCHAR(50),
-> edad NUMERIC(2),
-> telefono_casa NUMERIC(15),

Administración de Base de Datos | Ing. Sistemas Computacionales 63


Bitácora de Oracle MySQL
-> teñefono_movil NUMERIC(15),
-> estado_civil VARCHAR(10),
-> matricula_es INT(11) NOT NULL,
-> PRIMARY KEY(CURP),
-> CONSTRAINT fk_externa05 FOREIGN KEY(matricula_es) REFERENCES
estudiante(matricula));
Query OK, 0 rows affected (0.05 sec)
174. Hacemos una consulta para recuperar los campos y sus
registros de la tabla.
mysql> SELECT * FROM tutor;
+-----------------+-------------------+-------------+-------------+--------------+------+---------------+----------------+--------------+--------------+
| CURP | nombre | apellido_pa | apellido_ma | direccion | edad | telefono_casa | teñefono_movil | estado_civil | matricula_es |
+-----------------+-------------------+-------------+-------------+--------------+------+---------------+----------------+--------------+--------------+
| AECJ940429HCHRR | Jesus Leonardo | Cardenas | Arevalo | Villahermosa | 24 | 9937688932 | 9936834789 | Soltero | 16060637 |
| AIHP911101MCHRR | Perla Clarissa | Hernandez | Arias | Villahermosa | 24 | 9937682432 | 9935831748 | Soltero | 16060632 |
| BAVC840614HCHRL | Carlos | Barrera | Villanueva | Villahermosa | 24 | 9937624332 | 9932811546 | Soltero | 16060619 |
| CAMJ900421HCHRR | Juan Manuel | Martinez | Carrasco | Villahermosa | 24 | 9933231378 | 9934842126 | Soltero | 16060631 |
| CEMR880711HCHBR | Ruben Antonio | Ceballos | Martinez | Villahermosa | 24 | 9932352378 | 9934167896 | Soltero | 16060622 |
| CEJE930315HCHRR | Eddy Fabian | Cera | Juárez | Villahermosa | 24 | 9934781278 | 9933456596 | Soltero | 16060694 |
| COBC891127MCHRL | María Cristina | Corral | Balderrama | Villahermosa | 24 | 9935345278 | 9933342596 | Soltero | 16060629 |
| COCA761007MDGRN | Ana Soledad | Correa | Contreras | Villahermosa | 24 | 9933085768 | 9931230987 | Soltero | 16060624 |
| EIGJ920806HCHL | Joan | Garcia | Mimbela | Villahermosa | 24 | 9967832898 | 9931275489 | Soltero | 16060634 |
| VIRF890629HSLZ | Francisco Alberto | Vizcarra | Robles | Villahermosa | 24 | 9934678908 | 9932389789 | Soltero | 16060625 |
+-----------------+-------------------+-------------+-------------+--------------+------+---------------+----------------+--------------+--------------+

10 rows in set (0.63 sec )

175. Creación de la tabla autobus.


mysql> CREATE TABLE autobus(
-> numero_placa VARCHAR(15) NOT NULL,
-> nombre VARCHAR(20),
-> numero_asientos NUMERIC(14),
-> color VARCHAR(20),
-> peso VARCHAR(10),
-> tamaño VARCHAR(10),
-> modelo VARCHAR(15),
-> velocidad_max VARCHAR(10),
-> velocidad_pro VARCHAR(10),
-> clave_chofer INT(11) NOT NULL,
-> PRIMARY KEY(numero_placa),
-> CONSTRAINT fk_externa05 FOREIGN KEY(clave_chofer) REFERENCES personal(clave_emp));
Query OK, 0 rows affected (0.06 sec)
176. Hacemos una consulta para recuperar los registros de la tabla.
mysql> SELECT * FROM autobus;
+--------------+-----------+-----------------+----------------+------------+--------+-----------+---------------+---------------+--------------+
| numero_placa | nombre | numero_asientos | color | peso | tamaño | modelo | velocidad_max | velocidad_pro | clave_chofer |
+--------------+-----------+-----------------+----------------+------------+--------+-----------+---------------+---------------+--------------+
| PLE9945 | Marcopolo | 49 | Blanco | 1 tonelada | NULL | Mercury | 80 km/h | 70 km/h | 10001 |
| GHT5323 | Marcopolo | 30 | Amarillo | 789 kg | NULL | Ford | 80 km/h | 70 km/h | 10002 |
| PMA1359 | Marcopolo | 35 | Amarillo | 812 kg | NULL | Sedan | 85 km/h | 70 km/h | 10003 |
| GGN3426 | Marcopolo | 37 | Azul | 900 kg | NULL | Tsuru | 80 km/h | 80 km/h | 10004 |
| LTU5408 | Marcopolo | 45 | Naranja y Rojo | 985 kg | NULL | Sedan | 80 km/h | 80 km/h | 10005 |
| PJZ1542 | Marcopolo | 49 | Blanco | 995 kg | NULL | Combi | 75 km/h | 60 km/h | 10006 |
| PFM5794 | Marcopolo | 30 | Azul | 600 kg | NULL | Combi | 80 km/h | 70 km/h | 10007 |
| PJC8032 | Marcopolo | 43 | Rojo | 700 kg | NULL | Audi | 85 km/h | 75 km/h | 10008 |
| PHG1109 | Marcopolo | 21 | Amarillo | 1 tonelada | NULL | Chevrolet | 80 km/h | 80 km/h | 10009 |
| HZL3652 | Marcopolo | 49 | Rojo | 1 tonelada | NULL | Chevrolet | 80 km/h | 80 km/h | 100010 |
+--------------+-----------+-----------------+----------------+------------+--------+-----------+---------------+---------------+--------------+

Administración de Base de Datos | Ing. Sistemas Computacionales 64


Bitácora de Oracle MySQL

177. Creación de la tabla examen.


mysql> CREATE TABLE examen(
-> numero_examen INT NOT NULL,
-> numero_pregunta INT NOT NULL,
-> fecha_aplicacion DATE,
-> ciclo VARCHAR(30),
-> semestre NUMERIC(2),
-> carrera VARCHAR(30),
-> materia VARCHAR(20),
-> horario TIME,
-> matricula_a INT(11) NOT NULL,
-> PRIMARY KEY(numero_examen),
-> CONSTRAINT fk_externa05 FOREIGN KEY(matricula_a) REFERENCES
estudiante(matricula));
Query OK, 0 rows affected (0.10 sec)
178. Hacemos una consulta para recuperar los campos y sus
registros de la tabla.
mysql> SELECT * FROM examen;
+---------------+-----------------+------------------+-------+----------+-------------------------------+---------------------+----------+-------------+
| numero_examen | numero_pregunta | fecha_aplicacion | ciclo | semestre | carrera | materia | horario | matricula_a |
+---------------+-----------------+------------------+-------+----------+-------------------------------+---------------------+----------+-------------+
| 1 | 10 | 2018-07-12 | 2018A | 6 | Ing. Sistemas Computacionales | Bases de Datos | 07:00:00 | 10001 |
| 2 | 8 | 2018-07-12 | 2018A | 5 | Ing. Sistemas Computacionales | Bases de Datos | 08:00:00 | 10002 |
| 3 | 7 | 2018-07-12 | 2018A | 1 | Ing. Mecatronica | Fisíca | 08:00:00 | 10003 |
| 4 | 1 | 2018-07-12 | 2018A | 3 | Ing. Ambiental | Cálculo Integral | 09:00:00 | 10004 |
| 5 | 4 | 2018-07-12 | 2018A | 2 | Ing. Sistemas Computacionales | Cálculo Diferencial | 08:00:00 | 10005 |
| 6 | 6 | 2018-07-12 | 2018A | 2 | Ing. Sistemas Computacionales | Cálculo Integral | 10:00:00 | 10006 |
| 7 | 8 | 2018-07-12 | 2018A | 2 | Ing. Electronica | Principios Elect. | 80:00:00 | 10007 |
| 8 | 8 | 2018-07-12 | 2018A | 6 | Ing. Sistemas Computacionales | Ética | 07:00:00 | 10008 |
| 9 | 2 | 2018-07-12 | 2018A | 6 | Ing. Sistemas Computacionales | Automatas | 11:00:00 | 10009 |
| 10 | 9 | 2018-07-13 | 2018A | 6 | Ing. Sistemas Computacionales | Lenguajes de I. | 08:00:00 | 10010 |
+---------------+-----------------+------------------+-------+----------+-------------------------------+---------------------+----------+-------------+
10 rows in set (0.19 sec)

179. Creación de la tabla ficha_examen.


mysql> CREATE TABLE ficha_examen(
-> folio INT(15) NOT NULL,
-> CURP VARCHAR(20) NOT NULL,
-> nombre_aspirante VARCHAR(20),
-> apellido_materno_aspirante VARCHAR(20),
-> apellido_paterno_aspirante VARCHAR(20),
-> carrera VARCHAR(50),
-> lugar VARCHAR(40),
-> fecha_aplicacion DATE,
-> hora TIME,
-> descripcion TEXT,
->
-> PRIMARY KEY(folio));
Query OK, 0 rows affected (0.06 sec)

180. Se hace una consulta para recuperar los registros de la tabla.


mysql> SELECT * FROM ficha_examen;

Administración de Base de Datos | Ing. Sistemas Computacionales 65


Bitácora de Oracle MySQL
+-------+--------------------+------------------+----------------------------+----------------------------+---
----------------------------+--------------+------------------+----------+-------------+
| folio | CURP | nombre_aspirante | apellido_materno_aspirante | apellido_paterno_aspirante |
carrera | lugar | fecha_aplicacion | hora | descripcion |
+-------+--------------------+------------------+----------------------------+----------------------------+---
----------------------------+--------------+------------------+----------+-------------+
| 2700 | AECJ940429HCHRRS01 | Jesus Leonardo | Arevalo | Cardenas |
Ing. Industrial | Villahermosa | 2018-06-15 | 08:00:00 | NULL |
| 2701 | AIHP911101MCHRRR03 | Perla Clarissa | Arias | Herández |
Ing. Industrial | Villahermosa | 2018-06-15 | 08:00:00 | NULL |
| 2702 | BAVC840614HCHRLR04 | Carlos | Barrera | Villanueva |
Ing. Sistemas Computacionales | Villahermosa | 2018-06-16 | 08:00:00 | NULL |
| 2703 | CAMJ900421HCHRRN05 | Juan Manuel | Carrasco | Martinez |
Ing. Ambiental | Villahermosa | 2018-06-16 | 08:00:00 | NULL |
| 2704 | CEMR880711HCHBR00 | Ruben Antonio | Ceballos | Martinez |
Ing. Ambiental | Villahermosa | 2018-06-16 | 08:00:00 | NULL |
| 2705 | CEJE930315HCHRRD06 | Eddy Fabián | Cera | Juárez |
Ing. Industrial | Villahermosa | 2018-06-17 | 08:00:00 | NULL |
| 2706 | COBC891127MCHRLR08 | María Cristina | Corral | Balderrama |
Ing. Industrial | Villahermosa | 2018-06-17 | 08:00:00 | NULL |
| 2707 | COCA761007MDGRNN02 | Ana Soledad | Correa | Contreras |
Ing. Gestión Empresarial | Villahermosa | 2018-06-19 | 08:00:00 | NULL |
| 2708 | DEMS901008HCHLXR04 | Sergio Alejandro | Delgado | Muñoz |
Ing. Gestión Empresarial | Villahermosa | 2018-06-19 | 08:00:00 | NULL |
| 2709 | EIGJ920806HCHNYLO7 | Julio Cesar | Enriquez | Gaytan |
Ing. Gestión Empresarial | Villahermosa | 2018-06-19 | 08:00:00 | NULL |
| 2710 | GAMJ850314HCHRMR05 | Jorge Joan | García | Miembela |
Ing. Mecatronica | Villahermosa | 2018-06-20 | 08:00:00 | NULL |
+-------+--------------------+------------------+----------------------------+----------------------------+---
----------------------------+--------------+------------------+----------+-------------+
11 rows in set (0.55 sec)

181. Creación de la tabla historial_academico.


mysql> CREATE TABLE historial_academico(
-> matricula_es INT(11) NOT NULL,
-> nombre_es VARCHAR(20),
-> apellido_ma VARCHAR(20),
-> apellido_pa VARCHAR(20),
-> carrera VARCHAR(40),
-> semestre NUMERIC(5),
-> turno INT(11) NOT NULL,
-> materia INT(15) NOT NULL,
-> calificacion_final NUMERIC(5),
-> PRIMARY KEY(matricula_es),
-> CONSTRAINT fk_externa05 FOREIGN KEY(turno) REFERENCES turno(codigo_turno),
-> CONSTRAINT fk_externa06 FOREIGN KEY(materia) REFERENCES materia(clave_materia));
Query OK, 0 rows affected (0.07 sec)
182. Se hace de nuevo la última consulta para recuperar los registros
de la tabla.
mysql> SELECT * FROM historial_academico;
+--------------+---------------+-------------+-------------+-------------------------------+----------+-------+---------+--------------------+
| matricula_es | nombre_es | apellido_ma | apellido_pa | carrera | semestre | turno | materia | calificacion_final |
+--------------+---------------+-------------+-------------+-------------------------------+----------+-------+---------+--------------------+
| 2300 | Henry | Dominguez | Dominguez | Ing. Sistemas Computacionales | 6 | 1 | 1 | 100 |
| 2301 | Fany | Badal | Gomez | Ing. Sistemas Computacionales | 6 | 2 | 2 | 80 |
| 2302 | Emanuel | Córdova | Montiel | Ing. Sistemas Computacionales | 6 | 3 | 3 | 100 |

Administración de Base de Datos | Ing. Sistemas Computacionales 66


Bitácora de Oracle MySQL
| 2303 | Anibal | Perez | Perez | Ing. Sistemas Computacionales | 6 | 4 | 4 | 70 |
| 2304 | Ricardo | Martinez | López | Ing. Sistemas Computacionales | 6 | 5 | 5 | 90 |
| 2305 | Gerardo | López | Javier | Ing. Sistemas Computacionales | 6 | 6 | 6 | 80 |
| 2306 | Iván | Peréz | León | Ing. Sistemas Computacionales | 6 | 7 | 7 | 80 |
| 2307 | Luis Fernando | Hayabusa | Dominguez | Ing. Sistemas Computacionales | 6 | 8 | 8 | 80 |
| 2308 | Elizabeth | García | Herández | Ing. Sistemas Computacionales | 6 | 9 | 9 | 90 |
| 2309 | Alejandro | Calderón | del Valle | Ing. Sistemas Computacionales | 6 | 10 | 10 | 77 |
| 2310 | Juan David | López | Valenzuela | Ing. Sistemas Computacionales | 6 | 11 | 11 | 80 |
+--------------+---------------+-------------+-------------+-------------------------------+----------+-------+---------+--------------------+
11 rows in set (0.20 sec)

183. Creación de la tabla intendentes.


mysql> CREATE TABLE intendentes(
-> clave INT(11) NOT NULL,
-> nombre VARCHAR(20),
-> apellido_pa VARCHAR(30),
-> estado_civil VARCHAR(10),
-> domicilio VARCHAR(100),
-> numero_movil decimal(18,0),
-> seguro_social CHAR(3),
-> PRIMARY KEY(clave));
Query OK, 0 rows affected (0.07 sec)

184. Hacemos una consulta para ver los registros.


mysql> SELECT * FROM intendentes;
+-------+----------+-------------------+--------------+-----------------+--------------+---------------+
| clave | nombre | apellido_pa | estado_civil | domicilio | numero_movil | seguro_social |
+-------+----------+-------------------+--------------+-----------------+--------------+---------------+
| 1 | José | Lopez Lopez | Casado | Comalcalco | 9332701432 | SI |
| 2 | Roberto | Palacios Cisneros | Casado | Comalcalco | 9334527862 | SI |
| 3 | Karina | García | Soltera | Comalcalco | 9336725627 | NO |
| 4 | María | Tiquet | Viuda | Cunducán | 9142115336 | SI |
| 5 | Cristina | García | Casada | Jalpa de Mendez | 9145662782 | SI |
| 6 | Moises | Casango | Soltera | Comalcalco | 9332556272 | NO |
| 7 | Raúl | Orlando | Casado | Comalcalco | 9337652112 | SI |
| 8 | Carlos | Rivera | Casado | Comalcalco | 9335552882 | NO |
| 9 | Rodolfo | Ricardez | Casado | Comalcalco | 9335672828 | SI |
| 10 | Antonio | Ochoa | Casado | Comalcalco | 9336662722 | SI |
+-------+----------+-------------------+--------------+-----------------+--------------+---------------+
10 rows in set (0.01 sec)

Administración de Base de Datos | Ing. Sistemas Computacionales 67


Bitácora de Oracle MySQL

Tarea especial (30 vistas nuevas con alias)

185. Esta vista contiene el nombre, el trabajo y el salario de los empleados.


mysql> CREATE VIEW emp_view1
-> AS SELECT ename NOMBRE_EMPLEADO, job TRABAJO, sal SALARIO
-> FROM emp;
Query OK, 0 rows affected (0.09 sec)

186. Hacemos una consulta para recuperar el contenido de la vista emp_view1.


mysql> SELECT * FROM emp_view1;
+-----------------+-----------+---------+
| NOMBRE_EMPLEADO | TRABAJO | SALARIO |
+-----------------+-----------+---------+
| JINKS | CLERK | 1200.00 |
| SMITH | CLERK | 800.00 |
| ALLEN | SALESMAN | 1600.00 |
| WARD | SALESMAN | 1250.00 |
| JONES | MANAGER | 3075.00 |
| MARTIN | SALESMAN | 1250.00 |
| BLAKE | MANAGER | 2850.00 |
| CLARK | MANAGER | 2450.00 |
| SCOTT | ANALYST | 3000.00 |
| KING | PRESIDENT | 5000.00 |
| TURNER | SALESMAN | 1500.00 |
| ADAMS | CLERK | 1100.00 |
| JAMES | CLERK | 950.00 |
| FORD | ANLYST | 3000.00 |
| MILLER | CLERK | 1300.00 |
+-----------------+-----------+---------+
15 rows in set (0.02 sec)

187. Esta vista contiene el nombre y el cargo de los empleados que sean analistas.
mysql> CREATE VIEW emp_view2
-> AS SELECT ename NOMBRE_EMPLEADO, job TRABAJO
-> FROM emp
-> WHERE job='ANALYST' OR job='ANLYST';
Query OK, 0 rows affected (0.13 sec)

188. Hacemos una consulta para ver el contenido de la vista emp_view2.


mysql> SELECT * FROM emp_view2;
+-----------------+---------+
| NOMBRE_EMPLEADO | TRABAJO |
+-----------------+---------+

Administración de Base de Datos | Ing. Sistemas Computacionales 68


Bitácora de Oracle MySQL
| SCOTT | ANALYST |
| FORD | ANLYST |
+-----------------+---------+
2 rows in set (0.01 sec)

189. Esta vista contiene el salario de los empleados que ejerzan el trabajo como “Clerk”.
mysql> CREATE VIEW emp_view3
-> AS SELECT job TRABAJO, sal SALARIO
-> FROM emp
-> WHERE job='CLERK';
Query OK, 0 rows affected (0.07 sec)

mysql> SELECT * FROM emp_view3;


+---------+---------+
| TRABAJO | SALARIO |
+---------+---------+
| CLERK | 1200.00 |
| CLERK | 800.00 |
| CLERK | 1100.00 |
| CLERK | 950.00 |
| CLERK | 1300.00 |
+---------+---------+
5 rows in set (0.00 sec)

190. Esta vista contiene el nombre, el trabajo y el departamento al que pertenecen los
empleados.
mysql> CREATE VIEW emp_dept_view4
-> (NOMBRE_EMPLEADO, TRABAJO, NOMBRE_EDIFICIO)
-> AS SELECT e.ename, e.job, d.dname
-> FROM emp e, dept d
-> WHERE e.deptno = d.deptno;
Query OK, 0 rows affected (0.12 sec)

191. Hacemos una consulta para recuperar el contenido de la vista emp_dept_view4.


mysql> SELECT * FROM emp_dept_view4;
+-----------------+-----------+-----------------+
| NOMBRE_EMPLEADO | TRABAJO | NOMBRE_EDIFICIO |
+-----------------+-----------+-----------------+
| JINKS | CLERK | OPERATIONS |
| SMITH | CLERK | RESEARCH |
| ALLEN | SALESMAN | SALES |
| WARD | SALESMAN | SALES |
| JONES | MANAGER | RESEARCH |
| MARTIN | SALESMAN | SALES |
| BLAKE | MANAGER | SALES |
| CLARK | MANAGER | ACCOUNTING |
| SCOTT | ANALYST | RESEARCH |
| KING | PRESIDENT | ACCOUNTING |
| TURNER | SALESMAN | SALES |

Administración de Base de Datos | Ing. Sistemas Computacionales 69


Bitácora de Oracle MySQL
| ADAMS | CLERK | RESEARCH |
| JAMES | CLERK | SALES |
| FORD | ANLYST | RESEARCH |
| MILLER | CLERK | ACCOUNTING |
+-----------------+-----------+-----------------+
15 rows in set (0.03 sec)

192. Esta vista contiene el nombre, el departamento y el edificio donde se imparten los
cursos.
mysql> CREATE VIEW curso_depart_view5
-> (CURSO, DEPARTAMENTO, EDIFICIO)
-> AS SELECT c.Cnombre, d.Dept, d.Dedif
-> FROM curso c, departamento d
-> WHERE c.Cdept = d.Dept;
Query OK, 0 rows affected (0.04 sec)

193. Hacemos una consulta para recuperar el contenido de la vista curso_depart_view5;


mysql> SELECT * FROM curso_depart_view5;
+-----------------------+--------------+----------+
| CURSO | DEPARTAMENTO | EDIFICIO |
+-----------------------+--------------+----------+
| INTROD. A LAS CC. | CIS | SC |
| ESTRUCT. DE DATOS | CIS | SC |
| MATEMATICAS DISCRETAS | CIS | SC |
| CIRCUITOS DIGITALES | CIS | SC |
| ARQUITECT. COMPUTADOR | CIS | SC |
| BASES DE DATOS RELAC. | CIS | SC |
| EMPIRISMO | PHIL | HU |
| RACIONALISMO | PHIL | HU |
| EXISTENCIALISMO | PHIL | HU |
| SOLIPSISMO | PHIL | HU |
| ESCOLASTICISMO | THEO | HU |
| FUNDAMENTALISMO | THEO | HU |
| HEDONISMO | THEO | HU |
| COMUNISMO | THEO | HU |
| GEOMETRÍA | CIS | SC |
+-----------------------+--------------+----------+
15 rows in set (0.01 sec)

194. Esta vista contiene el nombre, el teléfono y la fecha de la matrícula de los estudiantes.
mysql> CREATE VIEW est_matricula_view6
-> (NOMBRE_ESTUDIANTE, TELEFONO, FECHA)
-> AS SELECT es.Snombre, es.Stlfno, ma.Fechamat
-> FROM estudiante es, matricula ma
-> WHERE es.Sno = ma.Sno;
Query OK, 0 rows affected (0.12 sec)

Administración de Base de Datos | Ing. Sistemas Computacionales 70


Bitácora de Oracle MySQL

195. Hacemos una consulta para recuperar el contenido de la vista est_matricula_view6.


mysql> SELECT * FROM est_matricula_view6;
+-------------------+--------------+------------+
| NOMBRE_ESTUDIANTE | TELEFONO | FECHA |
+-------------------+--------------+------------+
| CURLEY DUBAY | 203-123-4567 | 1987-01-04 |
| ROCKY BALBOA | 112-112-1122 | 1987-12-15 |
| MOE DUBAY | 203-123-4567 | 1987-12-17 |
| LARRY DUBAY | 203-123-4567 | 1987-12-17 |
| MOE DUBAY | 203-123-4567 | 1987-12-23 |
| ROCKY BALBOA | 112-112-1122 | 1987-12-23 |
| MOE DUBAY | 203-123-4567 | 1987-12-23 |
| LARRY DUBAY | 203-123-4567 | 1987-12-15 |
| ROCKY BALBOA | 112-112-1122 | 1987-12-15 |
+-------------------+--------------+------------+
9 rows in set (0.00 sec)

196. Esta vista contiene el horario de los cursos.


mysql> CREATE VIEW clas_es_view7
-> (CURSO, HORARIO)
-> AS SELECT c.Cnombre, cla.Chora
-> FROM curso c, clase cla
-> WHERE c.Cno = cla.Cno;
Query OK, 0 rows affected (0.23 sec)

197. Hacemos una consulta para ver el contenido de la vista clas_es_view7.


mysql> SELECT * FROM clas_es_view7;
+-----------------------+----------------+
| CURSO | HORARIO |
+-----------------------+----------------+
| INTROD. A LAS CC. | 08:00-09:00 AM |
| INTROD. A LAS CC. | 08:00-09:00 AM |
| MATEMATICAS DISCRETAS | 09:00-10:00 AM |
| ARQUITECT. COMPUTADOR | 11:00-12:00 AM |
| EMPIRISMO | 09:00-10:00 AM |
| EXISTENCIALISMO | 11:00-12:00 AM |
| ESCOLASTICISMO | 10:00-11:00 AM |
| ESCOLASTICISMO | 10:00-11:00 AM |
| HEDONISMO | 11:00-12:00 AM |
+-----------------------+----------------+
9 rows in set (0.00 sec)

198. Esta vista contiene el día que se imparten los cursos.


mysql> CREATE VIEW clas_cu_view8
-> (CURSO, DIA)
-> AS SELECT cu.Cnombre, cla.Cdia
-> FROM curso cu, clase cla
-> WHERE cu.Cno = cla.Cno;

Administración de Base de Datos | Ing. Sistemas Computacionales 71


Bitácora de Oracle MySQL
Query OK, 0 rows affected (0.05 sec)

199. Hacemos una consulta para recuperar el contenido de la vista clas_cu_view8.


mysql> SELECT * FROM clas_cu_view8;
+-----------------------+-----+
| CURSO | DIA |
+-----------------------+-----+
| INTROD. A LAS CC. | LU |
| INTROD. A LAS CC. | MA |
| MATEMATICAS DISCRETAS | MI |
| ARQUITECT. COMPUTADOR | JU |
| EMPIRISMO | JU |
| EXISTENCIALISMO | VI |
| ESCOLASTICISMO | LU |
| ESCOLASTICISMO | LU |
| HEDONISMO | MI |
+-----------------------+-----+
9 rows in set (0.00 sec)

200. Esta vista contiene el nombre del personal y el departamento al que pertenecen.
mysql> CREATE VIEW clau_dept_view9
-> (NOMBRE, DEPARTAMENTO)
-> AS SELECT clau.Fnombre, dept.Dept
-> FROM claustro clau, departamento dept
-> WHERE clau.Fdept = dept.Dept;
Query OK, 0 rows affected (0.05 sec)

201. Hacemos una consulta para recuperar el contenido de la vista clau_dept_view9.


mysql> SELECT * FROM clau_dept_view9;
+---------------+--------------+
| NOMBRE | DEPARTAMENTO |
+---------------+--------------+
| KATHY PEPE | PHIL |
| JESSIE MARTIN | THEO |
| JOSE COHN | CIS |
| AL HARTLEY | CIS |
| JULIA MARTIN | PHIL |
| LISA BOBAK | THEO |
| BARB HLAVATY | CIS |
+---------------+--------------+
7 rows in set (0.01 sec)

202. Esta vista contiene el nombre del claustro que gana más.
mysql> CREATE VIEW claus_view10
-> AS SELECT Fnombre NOMBRE
-> FROM claustro clau
-> WHERE Fsueldo = (SELECT MAX(Fsueldo) FROM claustro);

Administración de Base de Datos | Ing. Sistemas Computacionales 72


Bitácora de Oracle MySQL
Query OK, 0 rows affected (0.05 sec)

203. Hacemos una consulta para recuperar el contenido de la vista claus_view10.


mysql> SELECT * FROM claus_view10;
+---------------+
| NOMBRE |
+---------------+
| JESSIE MARTIN |
| AL HARTLEY |
| JULIA MARTIN |
+---------------+
3 rows in set (0.00 sec)

204. Esta vista contiene el nombre del claustro que gana menos.
mysql> CREATE VIEW claus_view11
-> AS SELECT Fnombre NOMBRE
-> FROM claustro clau
-> WHERE Fsueldo = (SELECT MIN(Fsueldo) FROM claustro);
Query OK, 0 rows affected (0.07 sec)

205. Hacemos una consulta para recuperar el contenido de la vista Claus_view11.


mysql> SELECT * FROM claus_view11;
+--------------+
| NOMBRE |
+--------------+
| KATHY PEPE |
| JOSE COHN |
| BARB HLAVATY |
+--------------+
3 rows in set (0.01 sec)

206. Esta vista contiene el sueldo que tiene un ladrón.


mysql> CREATE VIEW persl_view12
-> AS SELECT Enombre NOMBRE, Cargo CARGO, Esueldo SUELDO
-> FROM personal persl
-> WHERE Cargo = 'LADRÓN';
Query OK, 0 rows affected (0.04 sec)

207. Hacemos una consulta para recuperar el contenido de la vista persl_view12.


mysql> SELECT * FROM persl_view12;
+----------+--------+--------+
| NOMBRE | CARGO | SUELDO |
+----------+--------+--------+
| DICK NIX | LADRÓN | 25001 |
+----------+--------+--------+
1 row in set (0.00 sec)

Administración de Base de Datos | Ing. Sistemas Computacionales 73


Bitácora de Oracle MySQL

208. Esta vista contiene los cursos y el claustro que imparte esos cursos.
mysql> CREATE VIEW claus_cur_view13
-> (CURSO, NOMBRE)
-> AS SELECT cu.Cnombre, claus.Fnombre
-> FROM curso cu, claustro claus
-> WHERE cu.Cdept = claus.Fdept;
Query OK, 0 rows affected (0.14 sec)

209. Hacemos una consulta para recuperar el contenido de la vista Claus_cur_view18.


mysql> SELECT * FROM claus_cur_view13;
+-----------------------+---------------+
| CURSO | NOMBRE |
+-----------------------+---------------+
| INTROD. A LAS CC. | JOSE COHN |
| INTROD. A LAS CC. | AL HARTLEY |
| INTROD. A LAS CC. | BARB HLAVATY |
| ESTRUCT. DE DATOS | JOSE COHN |
| ESTRUCT. DE DATOS | AL HARTLEY |
| ESTRUCT. DE DATOS | BARB HLAVATY |
| MATEMATICAS DISCRETAS | JOSE COHN |
| MATEMATICAS DISCRETAS | AL HARTLEY |
| MATEMATICAS DISCRETAS | BARB HLAVATY |
| CIRCUITOS DIGITALES | JOSE COHN |
| CIRCUITOS DIGITALES | AL HARTLEY |
| CIRCUITOS DIGITALES | BARB HLAVATY |
| ARQUITECT. COMPUTADOR | JOSE COHN |
| ARQUITECT. COMPUTADOR | AL HARTLEY |
| ARQUITECT. COMPUTADOR | BARB HLAVATY |
| BASES DE DATOS RELAC. | JOSE COHN |
| BASES DE DATOS RELAC. | AL HARTLEY |
| BASES DE DATOS RELAC. | BARB HLAVATY |
| EMPIRISMO | KATHY PEPE |
| EMPIRISMO | JULIA MARTIN |
| RACIONALISMO | KATHY PEPE |
| RACIONALISMO | JULIA MARTIN |
| EXISTENCIALISMO | KATHY PEPE |
| EXISTENCIALISMO | JULIA MARTIN |
| SOLIPSISMO | KATHY PEPE |
| SOLIPSISMO | JULIA MARTIN |
| ESCOLASTICISMO | JESSIE MARTIN |
| ESCOLASTICISMO | LISA BOBAK |
| FUNDAMENTALISMO | JESSIE MARTIN |
| FUNDAMENTALISMO | LISA BOBAK |
| HEDONISMO | JESSIE MARTIN |
| HEDONISMO | LISA BOBAK |
| COMUNISMO | JESSIE MARTIN |
| COMUNISMO | LISA BOBAK |
| GEOMETRÍA | JOSE COHN |
| GEOMETRÍA | AL HARTLEY |

Administración de Base de Datos | Ing. Sistemas Computacionales 74


Bitácora de Oracle MySQL
| GEOMETRÍA | BARB HLAVATY |
+-----------------------+---------------+
37 rows in set (0.00 sec)

210. Esta vista contiene el curso con la tarifa más alta.


mysql> CREATE VIEW curso_view14
-> AS SELECT Cnombre NOMBRE_CURSO_TARIFA_MAXIMA
-> FROM curso
-> WHERE Ctarifa = (SELECT MAX(Ctarifa) FROM curso);
Query OK, 0 rows affected (0.06 sec)

211. Hacemos una consulta para recuperar el contenido de la vista curso_view14.


mysql> SELECT * FROM curso_view14;
+----------------------------+
| NOMBRE_CURSO_TARIFA_MAXIMA |
+----------------------------+
| EXISTENCIALISMO |
| COMUNISMO |
+----------------------------+
2 rows in set (0.00 sec)

212. Esta vista contiene a los estudiantes y los cursos que llevan.
mysql> CREATE VIEW es_cur_view15
-> (NOMBRE_ESTUDIANTE, CURSO)
-> AS SELECT es.Snombre, cu.Cnombre
-> FROM estudiante es, curso cu
-> WHERE es.Sesp = cu.Cdept;
Query OK, 0 rows affected (0.06 sec)

213. Hacemos una consulta para recuperar el contenido de la vista es_cur_view15.


mysql> SELECT * FROM es_cur_view15;
+-------------------+-----------------------+
| NOMBRE_ESTUDIANTE | CURSO |
+-------------------+-----------------------+
| LARRY DUBAY | INTROD. A LAS CC. |
| LARRY DUBAY | ESTRUCT. DE DATOS |
| LARRY DUBAY | MATEMATICAS DISCRETAS |
| LARRY DUBAY | CIRCUITOS DIGITALES |
| LARRY DUBAY | ARQUITECT. COMPUTADOR |
| LARRY DUBAY | BASES DE DATOS RELAC. |
| ROCKY BALBOA | EMPIRISMO |
| ROCKY BALBOA | RACIONALISMO |
| ROCKY BALBOA | EXISTENCIALISMO |
| ROCKY BALBOA | SOLIPSISMO |
| CURLEY DUBAY | ESCOLASTICISMO |
| MOE DUBAY | ESCOLASTICISMO |
| CURLEY DUBAY | FUNDAMENTALISMO |
| MOE DUBAY | FUNDAMENTALISMO |
| CURLEY DUBAY | HEDONISMO |

Administración de Base de Datos | Ing. Sistemas Computacionales 75


Bitácora de Oracle MySQL
| MOE DUBAY | HEDONISMO |
| CURLEY DUBAY | COMUNISMO |
| MOE DUBAY | COMUNISMO |
| LARRY DUBAY | GEOMETRÍA |
+-------------------+-----------------------+
19 rows in set (0.00 sec)

214. Esta vista contiene los cursos que pertenecen al departamento “PHIL” o “THEO”.
mysql> CREATE VIEW curso_view16
-> AS SELECT Cnombre NOMBRE_CURSO, Cdept DEPARTAMENTO
-> FROM curso
-> WHERE Cdept = 'PHIL' OR Cdept = 'THEO';
Query OK, 0 rows affected (0.07 sec)

215. Hacemos una consulta para recuperar el contenido de la vista curso_view16


mysql> SELECT * FROM curso_view16;
+-----------------+--------------+
| NOMBRE_CURSO | DEPARTAMENTO |
+-----------------+--------------+
| EMPIRISMO | PHIL |
| RACIONALISMO | PHIL |
| EXISTENCIALISMO | PHIL |
| SOLIPSISMO | PHIL |
| ESCOLASTICISMO | THEO |
| FUNDAMENTALISMO | THEO |
| HEDONISMO | THEO |
| COMUNISMO | THEO |
+-----------------+--------------+
8 rows in set (0.01 sec)

216. Esta vista contiene los estudiantes que pertenezcan al departamento “PHIL” o “THEO”.
mysql> CREATE VIEW es_cur_view17
-> (NOMBRE_ESTUDIANTE, DEPARTAMENTO)
-> AS SELECT es.Snombre, cu.Cdept
-> FROM estudiante es, curso cu
-> WHERE es.Sesp = cu.Cdept AND Cdept = 'PHIL' OR Cdept = 'THEO';
Query OK, 0 rows affected (0.07 sec)
217. Hacemos una consulta para recuperar el contenido de la vista es_cur_view17.
mysql> SELECT * FROM es_cur_view17;
+-------------------+--------------+
| NOMBRE_ESTUDIANTE | DEPARTAMENTO |
+-------------------+--------------+
| CURLEY DUBAY | THEO |
| CURLEY DUBAY | THEO |
| CURLEY DUBAY | THEO |
| CURLEY DUBAY | THEO |
| LARRY DUBAY | THEO |
| LARRY DUBAY | THEO |
| LARRY DUBAY | THEO |
| LARRY DUBAY | THEO |
| MOE DUBAY | THEO |
| MOE DUBAY | THEO |

Administración de Base de Datos | Ing. Sistemas Computacionales 76


Bitácora de Oracle MySQL
| MOE DUBAY | THEO |
| MOE DUBAY | THEO |
| ROCKY BALBOA | PHIL |
| ROCKY BALBOA | PHIL |
| ROCKY BALBOA | PHIL |
| ROCKY BALBOA | PHIL |
| ROCKY BALBOA | THEO |
| ROCKY BALBOA | THEO |
| ROCKY BALBOA | THEO |
| ROCKY BALBOA | THEO |
+-------------------+--------------+
20 rows in set (0.00 sec)

218. Esta vista contiene los cursos que tiene más créditos.
mysql> CREATE VIEW curso_credmax_view18
-> AS SELECT Cnombre NOMBRE_CURSO_CREDMAXIMO
-> FROM curso
-> WHERE Cred = (SELECT MAX(Cred) FROM curso);
Query OK, 0 rows affected (0.07 sec)

219. Hacemos una consulta para recuperar el contenido de la vista


curso_credmax_view18.
mysql> SELECT * FROM curso_credmax_view18;
+-------------------------+
| NOMBRE_CURSO_CREDMAXIMO |
+-------------------------+
| SOLIPSISMO |
| COMUNISMO |
| GEOMETRÍA |
+-------------------------+
3 rows in set (0.02 sec)

220. Esta vista contiene la fecha de los productos que se vendieron.


mysql> CREATE VIEW pro_ven_view19
-> (NOMBRE_PRODUCTO, FECHA_DE_VENTA)
-> AS SELECT prod.nombre, ven.fecha_venta
-> FROM producto prod, ventas ven
-> WHERE prod.id_producto = ven.id_producto;
Query OK, 0 rows affected (0.06 sec)

221. Hacemos una consulta para recuperar el contenido de la vista pro_ven_view19.


mysql> SELECT * FROM pro_ven_view19;
+-----------------+----------------+
| NOMBRE_PRODUCTO | FECHA_DE_VENTA |
+-----------------+----------------+
| Mouse | 2011-05-24 |
| Teclado | 2011-02-24 |
| Silla | 2010-12-24 |
| Mesa | 2010-11-30 |
| Polera | 2011-01-04 |
| Chaqueta | 2011-02-26 |

Administración de Base de Datos | Ing. Sistemas Computacionales 77


Bitácora de Oracle MySQL
| Zapatillas | 2011-01-29 |
| Tallarinez | 2011-03-01 |
| Lentejas | 2011-03-02 |
| Arroz | 2011-03-24 |
| Tallarinez | 2011-03-05 |
| Lentejas | 2011-03-16 |
| Arroz | 2011-03-19 |
| Silla | 2011-01-30 |
| Mesa | 2011-04-11 |
| Mouse | 2010-12-17 |
| Teclado | 2010-12-07 |
| Mouse | 2011-09-20 |
+-----------------+----------------+
18 rows in set (0.00 sec)

222. Esta vista contiene la cantidad de productos que se vendieron.


mysql> CREATE VIEW pro_ven_view20
-> (NOMBRE_PRODUTO, CANTIDAD_VENDIDA)
-> AS SELECT prod.nombre, ven.cantidad
-> FROM producto prod, ventas ven
-> WHERE prod.id_producto = ven.id_producto;
Query OK, 0 rows affected (0.06 sec)

223. Hacemos una consulta para recuperar el contenido de la vista pro_ven_view20.


mysql> SELECT * FROM pro_ven_view20;
+----------------+------------------+
| NOMBRE_PRODUTO | CANTIDAD_VENDIDA |
+----------------+------------------+
| Mouse | 8 |
| Teclado | 12 |
| Silla | 20 |
| Mesa | 21 |
| Polera | 101 |
| Chaqueta | 24 |
| Zapatillas | 10 |
| Tallarinez | 430 |
| Lentejas | 410 |
| Arroz | 356 |
| Tallarinez | 106 |
| Lentejas | 167 |
| Arroz | 135 |
| Silla | 40 |
| Mesa | 45 |
| Mouse | 98 |
| Teclado | 79 |
| Mouse | 100 |
+----------------+------------------+
18 rows in set (0.00 sec)

Administración de Base de Datos | Ing. Sistemas Computacionales 78


Bitácora de Oracle MySQL

224. Esta vista contiene las letras de los productos que se encuentran almacenadas en las
bodegas.
mysql> CREATE VIEW alm_pro_view21
-> (NOMBRE_PRODUCTO, LETRA_BODEGA)
-> AS SELECT pro.nombre, al.bodega_letra
-> FROM producto pro, almacenaje al
-> WHERE pro.id_producto = al.id_producto;
Query OK, 0 rows affected (0.08 sec)

225. Hacemos una consulta para recuperar el contenido de la vista alm_pro_view21.


mysql> SELECT * FROM alm_pro_view21;
+-----------------+--------------+
| NOMBRE_PRODUCTO | LETRA_BODEGA |
+-----------------+--------------+
| Mouse | A |
| Teclado | A |
| Silla | Z |
| Mesa | Y |
| Polera | F |
| Chaqueta | F |
| Zapatillas | F |
| Tallarinez | H |
| Lentejas | H |
| Arroz | H |
| Mouse | B |
| Teclado | B |
| Mouse | P |
+-----------------+--------------+
13 rows in set (0.00 sec)

226. Esta vista contiene la cantidad de productos que se encuentran almacenados en la


bodega.
mysql> CREATE VIEW alm_pro_view22
-> (NOMBRE_PRODUCTO, LETRA_BODEGA, CANTIDAD)
-> AS SELECT pro.nombre, al.bodega_letra, al.cantidad
-> FROM producto pro, almacenaje al
-> WHERE pro.id_producto = al.id_producto;
Query OK, 0 rows affected (0.05 sec)

227. Hacemos una consulta para recuperar el contenido de la vista alm_pro_view22.


mysql> SELECT * FROM alm_pro_view22;
+-----------------+--------------+----------+
| NOMBRE_PRODUCTO | LETRA_BODEGA | CANTIDAD |
+-----------------+--------------+----------+
| Mouse | A | 40 |
| Teclado | A | 55 |
| Silla | Z | 36 |
| Mesa | Y | 56 |
| Polera | F | 42 |

Administración de Base de Datos | Ing. Sistemas Computacionales 79


Bitácora de Oracle MySQL
| Chaqueta | F | 66 |
| Zapatillas | F | 11 |
| Tallarinez | H | 101 |
| Lentejas | H | 186 |
| Arroz | H | 195 |
| Mouse | B | 50 |
| Teclado | B | 61 |
| Mouse | P | 300 |
+-----------------+--------------+----------+
13 rows in set (0.00 sec)

228. Esta vista contiene el producto que cuesta menos.


mysql> CREATE VIEW pro_max_view23
-> AS SELECT nombre NOMBRE_DE_PRODUCTO_COSTO_MAXIMO
-> FROM producto
-> WHERE precio = (SELECT MAX(precio) FROM producto);
Query OK, 0 rows affected (0.06 sec)

229. Hacemos una consulta para recuperar el contenido de la vista pro_max_view23.


mysql> SELECT * FROM pro_max_view23;
+---------------------------------+
| NOMBRE_DE_PRODUCTO_COSTO_MAXIMO |
+---------------------------------+
| Mesa |
+---------------------------------+
1 row in set (0.00 sec)

230. Esta vista contiene el precio del mouse y el teclado.


mysql> CREATE VIEW precio_mou_view24
-> AS SELECT nombre NOMBRE_DE_PRODUCTO, precio PRECIO
-> FROM producto
-> WHERE nombre = 'Mouse' OR nombre = 'Teclado';
Query OK, 0 rows affected (0.08 sec)

231. Hacemos una consulta para recuperar el contenido de la vista precio_mou_view24.


mysql> SELECT * FROM precio_mou_view24;
+--------------------+--------+
| NOMBRE_DE_PRODUCTO | PRECIO |
+--------------------+--------+
| Mouse | 5000 |
| Teclado | 6000 |
+--------------------+--------+
2 rows in set (0.00 sec)

232. Esta vista contiene los productos, el precio y el número de pedidos que se hicieron.
mysql> CREATE VIEW empresa_pro_view25
-> (NOMBRE_PRODUCTO, PRECIO, CANTIDAD_PEDIDOS)

Administración de Base de Datos | Ing. Sistemas Computacionales 80


Bitácora de Oracle MySQL
-> AS SELECT prod.Descripcion, prod.Precio, ped.Cant
-> FROM productos prod, pedidos ped
-> WHERE prod.Idproducto = ped.Producto;
Query OK, 0 rows affected (0.08 sec)

233. Hacemos una consulta para recuperar el contenido de la vista empresa_pro_view25.


mysql> SELECT * FROM empresa_pro_view25;
+-----------------+--------+------------------+
| NOMBRE_PRODUCTO | PRECIO | CANTIDAD_PEDIDOS |
+-----------------+--------+------------------+
| Artículo Tipo 2 | 76 | 54 |
| Artículo Tipo 3 | 107 | 1 |
| Artículo Tipo 3 | 107 | 35 |
| Artículo Tipo 3 | 107 | 1 |
| Artículo Tipo 4 | 117 | 28 |
| Artículo Tipo 4 | 117 | 6 |
| Ajustador | 25 | 6 |
| Ajustador | 25 | 24 |
| Extractor | 2750 | 11 |
| Manivela | 652 | 1 |
| Manivela | 652 | 35 |
| Manivela | 652 | 1 |
| Cubierta | 148 | 10 |
| Bancada Motor | 243 | 10 |
| Riostra 1/2 Tm | 975 | 3 |
| Riostra 1-Tm | 1425 | 22 |
| Riostra 2-Tm | 1875 | 3 |
| Riostra 2-Tm | 1875 | 2 |
| Reductor | 355 | 20 |
| Reductor | 355 | 6 |
| Reductor | 355 | 4 |
| Reductor | 355 | 6 |
| Bisagra Dcha. | 4500 | 5 |
| Bisagra Dcha. | 4500 | 10 |
+-----------------+--------+------------------+
24 rows in set (0.00 sec)

234. Esta vista contiene el nombre de las empresas que han hecho pedidos por producto y
el importe que tienen que pagar.
mysql> CREATE VIEW empresa_ped_view26
-> (NOMBRE_DE_LA_EMPRESA, CANTIDAD_POR_PRODUCTO, IMPORTE_TOTAL_A_PAGAR)
-> AS SELECT cli.Empresa, ped.Cant, ped.Importe
-> FROM clientes cli, pedidos ped
-> WHERE cli.Numclie = ped.Clie;
Query OK, 0 rows affected (0.06 sec)

235. Hacemos una consulta para recuperar el contenido de la vista ped_view26.


mysql> SELECT * FROM empresa_ped_view26;
+----------------------+-----------------------+-----------------------+
| NOMBRE_DE_LA_EMPRESA | CANTIDAD_POR_PRODUCTO | IMPORTE_TOTAL_A_PAGAR |

Administración de Base de Datos | Ing. Sistemas Computacionales 81


Bitácora de Oracle MySQL
+----------------------+-----------------------+-----------------------+
| Peter Brothers | 1 | 652 |
| Zetacorp | 3 | 2925 |
| JCP Inc. | 35 | 3745 |
| Midwest Systems | 1 | 652 |
| Orion Corp. | 20 | 7100 |
| Ian Schmidt | 5 | 22500 |
| Zetacorp | 10 | 45000 |
| Rico Enterprises | 2 | 3750 |
| Midwest Systems | 6 | 2130 |
| Midwest Systems | 4 | 1420 |
| JCP Inc. | 24 | 600 |
| Peter Brothers | 10 | 2430 |
| Fred Lewis Corp. | 6 | 2130 |
| Chen Associates | 22 | 31350 |
+----------------------+-----------------------+-----------------------+
14 rows in set (0.00 sec)

236. Esta vista contiene la fecha del pedido que hicieron las empresas.
mysql> CREATE VIEW empresa_fecha_ped_view27
-> (NOMBRE_DE_LA_EMPRESA, CANTIDAD, FECHA_DEL_PEDIDO)
-> AS SELECT clie.Empresa, ped.Cant, ped.Fechapedido
-> FROM clientes clie, pedidos ped
-> WHERE clie.Numclie = ped.Clie;
Query OK, 0 rows affected (0.05 sec)

237. Hacemos una consulta para recuperar el contenido de la vista


empresa_fecha_ped_view27.
mysql> SELECT * FROM empresa_fecha_ped_view27;
+----------------------+----------+------------------+
| NOMBRE_DE_LA_EMPRESA | CANTIDAD | FECHA_DEL_PEDIDO |
+----------------------+----------+------------------+
| Peter Brothers | 1 | 1990-01-08 |
| Zetacorp | 3 | 1990-01-08 |
| JCP Inc. | 35 | 1990-01-11 |
| Midwest Systems | 1 | 1990-01-14 |
| Orion Corp. | 20 | 1990-01-20 |
| Ian Schmidt | 5 | 1990-02-02 |
| Zetacorp | 10 | 1990-02-02 |
| Rico Enterprises | 2 | 1990-02-10 |
| Midwest Systems | 6 | 1990-02-10 |
| Midwest Systems | 4 | 1990-02-10 |
| JCP Inc. | 24 | 1990-02-18 |
| Peter Brothers | 10 | 1990-02-24 |
| Fred Lewis Corp. | 6 | 1990-02-27 |
| Chen Associates | 22 | 1990-03-02 |
+----------------------+----------+------------------+
14 rows in set (0.00 sec)

Administración de Base de Datos | Ing. Sistemas Computacionales 82


Bitácora de Oracle MySQL

238. Esta vista contiene las empresas que tiene más límite de crédito.
mysql> CREATE VIEW empresa_clie_view28
-> AS SELECT Empresa NOMBRE_DE_LA_EMPRESA
-> FROM clientes clie
-> WHERE Limitecredito = (SELECT MAX(Limitecredito) FROM clientes);
Query OK, 0 rows affected (0.06 sec)

239. Hacemos una consulta para recuperar el contenido de la vista empresa_clie_view28.


mysql> SELECT * FROM empresa_clie_view28;
+----------------------+
| NOMBRE_DE_LA_EMPRESA |
+----------------------+
| Jones Mfg. |
| Fred Lewis Corp. |
+----------------------+
2 rows in set (0.00 sec)

240. Esta vista contiene el nombre de los CEO’S y sus empresas.


mysql> CREATE VIEW empresa_ceo_view29
-> (NOMBRE_DE_LA_EMPRESA, CEO)
-> AS SELECT clie.Empresa, repv.Nombre
-> FROM clientes clie, repventas repv
-> WHERE clie.Repclie = repv.Director;
Query OK, 0 rows affected (0.06 sec)

241. Hacemos una consulta para recuperar el contenido de la vista empresa_ceo_view29.


mysql> SELECT * FROM empresa_ceo_view29;
+----------------------+---------------+
| NOMBRE_DE_LA_EMPRESA | CEO |
+----------------------+---------------+
| Zetacorp | Sue Smith |
| Zetacorp | Nancy Angelli |
| Zetacorp | Mat¡as Clark |
| Ian Schmidt | Dan Roberts |
| Ian Schmidt | Paul Cruz |
| Ian Schmidt | Bill Adams |
| Midwest Systems | Sue Smith |
| Midwest Systems | Nancy Angelli |
| Midwest Systems | Mat¡as Clark |
+----------------------+---------------+
9 rows in set (0.00 sec)

242. Esta vista contiene el nombre, el título y la venta máxima que hizo el director.
mysql> CREATE VIEW ventas_view30
-> AS SELECT Nombre NOMBRE, Titulo TITULO, Ventas VENTAS
-> FROM repventas repv
-> WHERE Ventas = (SELECT MAX(Ventas) FROM repventas);

Administración de Base de Datos | Ing. Sistemas Computacionales 83


Bitácora de Oracle MySQL
Query OK, 0 rows affected (0.07 sec)

243. Hacemos una consulta para recuperar el contenido de la vista ventas_view30.


mysql> SELECT * FROM ventas_view30;
+-----------+------------+--------+
| NOMBRE | TITULO | VENTAS |
+-----------+------------+--------+
| Sue Smith | Rep Ventas | 474050 |
+-----------+------------+--------+
1 row in set (0.00 sec)

244. Esta vista contiene el despacho que le corresponde a cada clase.


mysql> CREATE VIEW despacho_educa
-> AS SELECT Cno NUMERO_CLASE, Cdespacho DESPACHO
-> FROM clase;
Query OK, 0 rows affected (0.28 sec)

245. Hacemos una consulta a la vista para recuperarla.


mysql> SELECT * FROM despacho_educa;
+--------------+----------+
| NUMERO_CLASE | DESPACHO |
+--------------+----------+
| C11 | 305 |
| C11 | 306 |
| C33 | 305 |
| C55 | 306 |
| P11 | 102 |
| P33 | 201 |
| T11 | 101 |
| T11 | 102 |
| T33 | 101 |
+--------------+----------+
9 rows in set (0.05 sec)

246. En esta vista contiene los cursos que tengan una tarifa entre 50 y 100.
mysql> CREATE VIEW view_cursos
-> AS SELECT Cnombre NOMBRE_CURSO, Ctarifa TARIFA
-> FROM curso
-> WHERE Ctarifa BETWEEN 50 AND 100;
Query OK, 0 rows affected (0.25 sec)
247. Se hace una consulta para recuperar el contenido de la vista.
mysql> SELECT * FROM view_cursos;
+-----------------------+--------+

Administración de Base de Datos | Ing. Sistemas Computacionales 84


Bitácora de Oracle MySQL

| NOMBRE_CURSO | TARIFA |
+-----------------------+--------+
| INTROD. A LAS CC. | 100 |
| ESTRUCT. DE DATOS | 50 |
| ARQUITECT. COMPUTADOR | 100 |
| EMPIRISMO | 100 |
| RACIONALISMO | 50 |
| FUNDAMENTALISMO | 90 |
+-----------------------+--------+
6 rows in set (0.03 sec)

248. Esta vista contiene todos los datos del curso de Base de Datos Relacional.
mysql> CREATE VIEW view_bd
-> AS SELECT * FROM curso
-> WHERE Cno = 'C66';
Query OK, 0 rows affected (0.08 sec)

249. Recuperamos el contenido de la vista con una consulta.


mysql> SELECT * FROM view_bd;
+-----+-----------------------+----------------+------+---------+-------+
| Cno | Cnombre | Cdescp | Cred | Ctarifa | Cdept |
+-----+-----------------------+----------------+------+---------+-------+
| C66 | BASES DE DATOS RELAC. | IMPRESCINDIBLE | 3 | 176 | CIS |
+-----+-----------------------+----------------+------+---------+-------+
1 row in set (0.03 sec)

250. Esta vista contiene el nombre de los empleado que tengan el cargo de Ayte. Lab.
mysql> CREATE VIEW view_personal
-> AS SELECT Enombre NOMBRE, Cargo CARGO
-> FROM personal
-> WHERE Cargo = 'AYTE. LAB.';
Query OK, 0 rows affected (0.09 sec)

251. Hacemos una consulta para recuperar el contenido de la vista.


mysql> SELECT * FROM view_personal;
+------------+------------+
| NOMBRE | CARGO |
+------------+------------+
| EUCLIDES | AYTE. LAB. |
| ARQUIMEDES | AYTE. LAB. |
| DAVINCI | AYTE. LAB. |
+------------+------------+
3 rows in set (0.00 sec)

Administración de Base de Datos | Ing. Sistemas Computacionales 85


Bitácora de Oracle MySQL

252. Esta vista contiene el nombre del empleado que gana más.
mysql> CREATE VIEW personal_salario_max
-> AS SELECT Enombre NOMBRE_EMPLEADO, Esueldo SUELDO
-> FROM personal
-> WHERE Esueldo = (SELECT MAX(Esueldo) FROM personal);
Query OK, 0 rows affected (0.19 sec)

253. Hacemos una consulta para recuperar el contenido de la vista.


mysql> SELECT * FROM personal_salario_max;
+-----------------+--------+
| NOMBRE_EMPLEADO | SUELDO |
+-----------------+--------+
| DICK NIX | 25001 |
+-----------------+--------+
1 row in set (0.02 sec)

254. Esta vista contiene el nombre del empleado que gana menos.
mysql> CREATE VIEW personal_salario_min
-> AS SELECT Enombre NOMBRE_EMPLEADO, Esueldo SUELDO
-> FROM personal
-> WHERE Esueldo = (SELECT MIN(Esueldo) FROM personal);
Query OK, 0 rows affected (0.16 sec)

255. Hacemos una consulta para recuperar la vista.


mysql> SELECT * FROM personal_salario_min;
+-----------------+--------+
| NOMBRE_EMPLEADO | SUELDO |
+-----------------+--------+
| USUARIO NUEVO | 800 |
+-----------------+--------+
1 row in set (0.03 sec)

256. Esta vista contiene el nombre de los empleados que tengan un salario mayor al
promedio de todos los salarios de esos empleados.
mysql> CREATE VIEW personal_salario_pro
-> AS SELECT Enombre NOMBRE_EMPLEADO, Esueldo SUELDO
-> FROM personal
-> WHERE Esueldo > (SELECT AVG(Esueldo) FROM personal);
Query OK, 0 rows affected (0.17 sec)

257. Hacemos una consulta para recuperar el contenido de la vista.


mysql> SELECT * FROM personal_salario_pro;
+-----------------+--------+

Administración de Base de Datos | Ing. Sistemas Computacionales 86


Bitácora de Oracle MySQL

| NOMBRE_EMPLEADO | SUELDO |
+-----------------+--------+
| DICK NIX | 25001 |
| HANK KISS | 25000 |
+-----------------+--------+
2 rows in set (0.06 sec)

258. Esta vista contiene los datos del estudiante con matricula C11.
mysql> CREATE VIEW view_matricula
-> AS SELECT * FROM matricula
-> WHERE Cno = 'C11';
Query OK, 0 rows affected (0.20 sec)
259. Hacemos una consulta para recuperar el contenido de la tabla.
mysql> SELECT * FROM view_matricula;
+-----+-----+-----+------------+----------+
| Cno | Sec | Sno | Fechamat | Horamat |
+-----+-----+-----+------------+----------+
| C11 | 01 | 325 | 1987-01-04 | 09.41.30 |
| C11 | 01 | 800 | 1987-12-15 | 11.49.00 |
| C11 | 02 | 100 | 1987-12-17 | 09.32.00 |
| C11 | 02 | 150 | 1987-12-17 | 09.32.30 |
+-----+-----+-----+------------+----------+
4 rows in set (0.05 sec)

260. Esta vista contiene los productos que se vendieron el 20 de septiembre de 2011.
mysql> CREATE VIEW ventas_fecha
-> AS SELECT fecha_venta, cantidad 'Cantidad de productos vendidos'
-> FROM ventas
-> WHERE fecha_venta= '2011-09-20';
Query OK, 0 rows affected (0.13 sec)

261. Hacemos una consulta para recuperar el contenido de la vista.


mysql> SELECT * FROM ventas_fecha;
+-------------+--------------------------------+
| fecha_venta | Cantidad de productos vendidos |
+-------------+--------------------------------+
| 2011-09-20 | 100 |
+-------------+--------------------------------+
1 row in set (0.05 sec)

262. Esta vista contiene la fecha y la cantidad de productos que mas se vendieron.
mysql> CREATE VIEW ventas_fecha2
-> AS SELECT fecha_venta, cantidad
-> FROM ventas

Administración de Base de Datos | Ing. Sistemas Computacionales 87


Bitácora de Oracle MySQL

-> WHERE cantidad = (SELECT MAX(cantidad) FROM ventas);


Query OK, 0 rows affected (0.28 sec)
263. Hacemos una consulta para ver el contenido de la vista.
mysql> SELECT * FROM ventas_fecha2;
+-------------+----------+
| fecha_venta | cantidad |
+-------------+----------+
| 2011-03-01 | 430 |
+-------------+----------+
1 row in set (0.00 sec)

264. Esta vista contiene el precio de los productos de computación.


mysql> CREATE VIEW precio_producto
-> AS SELECT nombre, precio
-> FROM producto
-> WHERE categoria = 'Computación';
Query OK, 0 rows affected (0.23 sec)

265. Hacemos una consulta para ver el contenido de la vista.


mysql> SELECT * FROM precio_producto;
+---------+--------+
| nombre | precio |
+---------+--------+
| Mouse | 5000 |
| Teclado | 6000 |
+---------+--------+
2 rows in set (0.00 sec)

266. Esta vista contiene el precio de los productos del vestuario.


mysql> CREATE VIEW precio_producto_vestuario
-> AS SELECT nombre 'Nombre de producto', precio 'Precio del producto'
-> FROM producto
-> WHERE categoria = 'Vestuario'
-> ;
Query OK, 0 rows affected (0.66 sec)
267. Hacemos una consulta para ver el contenido de la vista.
mysql> SELECT * FROM precio_producto_vestuario;
+--------------------+---------------------+
| Nombre de producto | Precio del producto |
+--------------------+---------------------+
| Polera | 9990 |
| Chaqueta | 29900 |
| Zapatillas | 15990 |
+--------------------+---------------------+

Administración de Base de Datos | Ing. Sistemas Computacionales 88


Bitácora de Oracle MySQL

268. Esta vista contiene el nombre del producto y precio.


mysql> CREATE VIEW precio_producto_muebles
-> AS SELECT nombre 'Nombre del producto', precio 'Precio del producto'
-> FROM producto
-> WHERE categoria = 'Muebles';
Query OK, 0 rows affected (0.11 sec)

269. Hacemos una consulta para ver el contenido de la vista.


mysql> SELECT * FROM precio_producto_muebles;
+---------------------+---------------------+
| Nombre del producto | Precio del producto |
+---------------------+---------------------+
| Silla | 20000 |
| Mesa | 100000 |
+---------------------+---------------------+
2 rows in set (0.03 sec)

270. Esta vista contiene el nombre y el precio de los productos de cocina.


mysql> CREATE VIEW precio_producto_cocina
-> AS SELECT nombre 'Nombre del producto', precio 'Precio del producto'
-> FROM producto
-> WHERE categoria = 'Cocina';
Query OK, 0 rows affected (0.38 sec)
271. Hacemos una consulta para ver el contenido de la vista.
mysql> SELECT * FROM precio_producto_cocina;
+---------------------+---------------------+
| Nombre del producto | Precio del producto |
+---------------------+---------------------+
| Tallarinez | 890 |
| Lentejas | 1150 |
| Arroz | 590 |
+---------------------+---------------------+
3 rows in set (0.27 sec)

Administración de Base de Datos | Ing. Sistemas Computacionales 89


Bitácora de Oracle MySQL

Triggers

272. Creación del primer trigger para la base de datos examen3.

mysql> CREATE DATABASE examen3;


Query OK, 1 row affected (0.07 sec)

273. Creacion de la tabla apuntes.


mysql> CREATE TABLE apuntes(
-> asiento INT(8),
-> linea SMALLINT(5),
-> fecha DATE,
-> texto VARCHAR(40),
-> cuenta CHAR(10),
-> debe DOUBLE(10,2),
-> haber DOUBLE(10,2),
-> PRIMARY KEY(asiento, linea),
-> KEY k2(cuenta, fecha))
-> ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
Query OK, 0 rows affected (0.38 sec)

274. Creación de la segunda tabla llamada saldos para la base de datos examen3.
mysql> CREATE TABLE saldo(
-> cuenta CHAR(10) NOT NULL,
-> ano SMALLINT(4),
-> mes TINYINT(2),
-> debe DOUBLE(10,2),
-> haber DOUBLE(10,2),
-> PRIMARY KEY(cuenta, ano, mes))
-> ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
Query OK, 0 rows affected (0.36 sec)

275. Creación del primer trigger de inserción de registro para la tabla apuntes.
mysql> CREATE TRIGGER APTS_I AFTER INSERT ON apuntes
-> FOR EACH ROW
-> BEGIN
-> INSERT INTO saldo SET
-> saldo.cuenta=new.cuenta,
-> saldo.ano=year(new.fecha),
-> saldo.mes=month(new.fecha),
-> saldo.debe=new.debe,
-> saldo.haber=new.haber
-> ON DUPLICATE KEY UPDATE
-> saldo.debe=saldo.debe+new.debe,
-> saldo.haber=saldo.haber+new.haber;
-> END;//

Administración de Base de Datos | Ing. Sistemas Computacionales 90


Bitácora de Oracle MySQL

276. Creación del trigger de actualización o modificación de asientos.


mysql> CREATE TRIGGER APTS_U AFTER UPDATE ON apuntes
-> FOR EACH ROW
-> BEGIN
-> INSERT INTO saldo SET
-> saldo.cuenta=old.cuenta,
-> saldo.ano=year(old.fecha),
-> saldo.mes=month(old.fecha),
-> saldo.debe=old.debe*(-1),
-> saldo.haber=old.haber*(-1)
-> ON DUPLICATE KEY UPDATE
-> saldo.debe=saldo.debe+(old.debe*(-1)),
-> saldo.haber=saldo.haber+(old.haber*(-1));
-> INSERT INTO saldo SET
-> saldo.cuenta=new.cuenta,
-> saldo.ano=year(new.fecha),
-> saldo.mes=month(new.fecha),
-> saldo.debe=new.debe,
-> saldo.haber=new.haber
-> ON DUPLICATE KEY UPDATE
-> saldo.debe=saldo.debe+new.debe,
-> saldo.haber=saldo.haber+new.haber;
-> END;//
Query OK, 0 rows affected (0.12 sec)

277. Creación del trigger de eliminación de apuntes.


mysql> CREATE TRIGGER APTS_D AFTER DELETE ON apuntes
-> FOR EACH ROW
-> BEGIN
-> INSERT INTO saldo SET
-> saldo.cuenta=old.cuenta,
-> saldo.ano=year(old.fecha),
-> saldo.mes=month(old.fecha),
-> saldo.debe=old.debe*(-1),
-> saldo.haber=old.haber*(-1)
-> ON DUPLICATE KEY UPDATE
-> saldo.debe=saldo.debe+(old.debe*(-1)),
-> saldo.haber=saldo.haber+(old.haber*(-1));
-> END;//
Query OK, 0 rows affected (0.09 sec)

278. A continuación, se insertan los registros de dichas tablas utilizando transacciones.


mysql> SET AUTOCOMMIT=0;
Query OK, 0 rows affected (0.03 sec)

mysql> START TRANSACTION;


Query OK, 0 rows affected (0.00 sec)

Administración de Base de Datos | Ing. Sistemas Computacionales 91


Bitácora de Oracle MySQL

mysql> INSERT INTO apuntes VALUES


-> (1, 1, '2006-02-07', 'Fra. 112 PEPE PALO', '4300000001', 1160, 0);
Query OK, 1 row affected (0.06 sec)

mysql> INSERT INTO apuntes VALUES


-> (1, 2, '2006-02-07', 'Fra. 112 PEPE PALO', '4770000001', 0, 160);
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO apuntes VALUES


-> (1, 3, '2006-02-07', 'Fra. 112 PEPE PALO', '7000000000', 0, 1000);
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO apuntes VALUES


-> (2, 1, '2006-03-20', 'Cobro Fra. 112 PEPE PALO', '5700000000',1160, 0);
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO apuntes VALUES


-> (2, 2, '2006-03-20', 'Cobro Fra. 112 PEPE PALO', '4300000001',0, 1160);
Query OK, 1 row affected (0.00 sec)

mysql> COMMIT;
Query OK, 0 rows affected (0.04 sec)

279. Para ver el resultado de lo que se hizo, se hace la siguiente consulta. Esta consulta
muestra o recupera los registros de la tabla saldo.
mysql> SELECT * FROM saldo;
+------------+------+-----+---------+---------+
| cuenta | ano | mes | debe | haber |
+------------+------+-----+---------+---------+
| 4300000001 | 2006 | 2 | 1160.00 | 0.00 |
| 4300000001 | 2006 | 3 | 0.00 | 1160.00 |
| 4770000001 | 2006 | 2 | 0.00 | 160.00 |
| 5700000000 | 2006 | 3 | 1160.00 | 0.00 |
| 7000000000 | 2006 | 2 | 0.00 | 1000.00 |
+------------+------+-----+---------+---------+
5 rows in set (0.06 sec)

280. Creación del segundo trigger. Este trigger hace la verificación de la edad de un usuario
cuando inserta una edad que no está definida para un rango y la pone en 0 si la edad no
se encuentra en ese rango. Empezando con la crecación de una nueva base de datos
exclusivamente para la práctica de los triggers.

mysql> CREATE DATABASE triggers_practicas;


Query OK, 1 row affected (0.14 sec)

281. Creamos la tabla a la cual se le va asociar el trigger.

Administración de Base de Datos | Ing. Sistemas Computacionales 92


Bitácora de Oracle MySQL

mysql> CREATE TABLE personas(


-> nombre VARCHAR(25),
-> apellidos VARCHAR(35),
-> edad INT(3),
-> PRIMARY KEY(edad));
Query OK, 0 rows affected (0.71 sec)

282. Hacemos una descripción para ver el esquema de la base de datos.


mysql> DESC personas;
+-----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| nombre | varchar(25) | YES | | NULL | |
| apellidos | varchar(35) | YES | | NULL | |
| edad | int(3) | NO | PRI | NULL | |
+-----------+-------------+------+-----+---------+-------+
3 rows in set (0.34 sec)

283. Creación del trigger de inserción para la tabla personas.


mysql> DELIMITER //
mysql> CREATE TRIGGER verificar_edad BEFORE INSERT
-> ON personas
-> FOR EACH ROW
-> if NEW.edad < 0 THEN SET NEW.edad = 0;
-> END IF; //
Query OK, 0 rows affected (1.06 sec)

284. Se insertan nuevos registros para activar el trigger y después ver su funcionamiento.
mysql> INSERT INTO personas VALUES
-> ('Emanuel', 'Córdova Montiel', 21),
-> ('Ronaldo', 'Córdova Montiel', -8);
Query OK, 2 rows affected (0.08 sec)
Records: 2 Duplicates: 0 Warnings: 0

285. Ahora se hace una consulta para ver si de verdad el trigger creado funciona. Y como
se puede ver en la línea resaltada de color verde se nota cuando se insertó una edad que
no se encuentra en el rango permitido, el trigger hace su trabajo y regresa la edad en 0.
mysql> SELECT * FROM personas;
+---------+-----------------+------+
| nombre | apellidos | edad |
+---------+-----------------+------+
| Emanuel | Córdova Montiel | 21 |
| Ronaldo | Córdova Montiel | 0 |

Administración de Base de Datos | Ing. Sistemas Computacionales 93


Bitácora de Oracle MySQL

+---------+-----------------+------+
2 rows in set (0.00 sec)

286. De nuevo se creará un nuevo trigger; el funcionamiento que hace este trigger es
similar al anterior solo que la edad la pone en NULL y en cero. Para empezar se creará
una nueva tabla llamada obreros.
mysql> CREATE table obreros(
-> id_obr INT NOT NULL,
-> nombre_obr VARCHAR(20),
-> edad_obr INT(3),
-> PRIMARY KEY(id_obr));
Query OK, 0 rows affected (0.14 sec)

287. Decribimos la tabla para ver el esquema.


mysql> DESC obreros;
+------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| id_obr | int(11) | NO | PRI | NULL | |
| nombre_obr | varchar(20) | YES | | NULL | |
| edad_obr | int(3) | YES | | NULL | |
+------------+-------------+------+-----+---------+-------+
3 rows in set (0.61 sec)

288. Se empezará a insertar registros a la tabla obreros, pero aún sin crear el trigger porque
el trigger es de actualización y para ver el funcionamiento de este.
mysql> INSERT INTO obreros VALUES
-> (456, 'Manuela', 21),
-> (5, 'Veronica', 21),
-> (334, 'Miguel', 22),
-> (654, 'Rolando', 34),
-> (2576, 'Alberto', 60),
-> (283, 'Agapito', 21),
-> (287, 'Zoila', 24),
-> (9876, 'Eloy', 26),
-> (1287, 'Mario', 22),
-> (546, 'Candido', 15),
-> (341, 'Pereira', 18),
-> (768, 'Marcos', 56),
-> (354, 'Yesenia', 29),
-> (232, 'Gilberto', 45);
Query OK, 14 rows affected (0.36 sec)
Records: 14 Duplicates: 0 Warnings: 0

Administración de Base de Datos | Ing. Sistemas Computacionales 94


Bitácora de Oracle MySQL

289. Hacemos una consulta para ver todos los registros insertados.
mysql> SELECT * FROM obreros;
+--------+------------+----------+
| id_obr | nombre_obr | edad_obr |
+--------+------------+----------+
| 456 | Manuela | 21 |
| 5 | Veronica | 21 |
| 334 | Miguel | 22 |
| 654 | Rolando | 34 |
| 2576 | Alberto | 60 |
| 283 | Agapito | 21 |
| 287 | Zoila | 24 |
| 9876 | Eloy | 26 |
| 1287 | Mario | 22 |
| 546 | Candido | 15 |
| 341 | Pereira | 18 |
| 768 | Marcos | 56 |
| 354 | Yesenia | 29 |
| 232 | Gilberto | 45 |
+--------+------------+----------+
14 rows in set (0.00 sec)

290. Ahora si, se empezará a crear el trigger de actualización, este trigger se llama
obreros_tr que se ejecuta antes de actualizar en la tabla obreros para cada registro de
esta, donde la nueva edad de los obreros sea menor que cero entonces se establece que
la nueva edad la ponga en NULL si no cumple con la condición.
mysql> DELIMITER //
mysql> CREATE TRIGGER obreros_tr BEFORE UPDATE
-> ON obreros
-> FOR EACH ROW
-> BEGIN
-> if NEW.edad_obr < 0 THEN SET NEW.edad_obr = NULL;
-> END if;
-> END //
Query OK, 0 rows affected (0.81 sec)
mysql> DELIMITER ;

291. Ahora se va actualizar la nueva edad para “Manuela”, actualmente tiene una edad de
21 y ahora se le va a establecer una nueva edad de -2 para verificar si el trigger funciona
y pone esa edad a NULL.
mysql> UPDATE obreros
-> SET edad_obr = -2
-> WHERE nombre_obr = 'Manuela';
Query OK, 1 row affected (0.09 sec)

Administración de Base de Datos | Ing. Sistemas Computacionales 95


Bitácora de Oracle MySQL

Rows matched: 1 Changed: 1 Warnings: 0

292. Ahora para ver si todo esto es verdad, hacemos una consulta con la edad que tenia
Manuela anteriormente.
mysql> SELECT * FROM obreros;
+--------+------------+----------+
| id_obr | nombre_obr | edad_obr |
+--------+------------+----------+
| 456 | Manuela | 21 |
| 5 | Veronica | 21 |
| 334 | Miguel | 22 |
| 654 | Rolando | 34 |
| 2576 | Alberto | 60 |
| 283 | Agapito | 21 |
| 287 | Zoila | 24 |
| 9876 | Eloy | 26 |
| 1287 | Mario | 22 |
| 546 | Candido | 15 |
| 341 | Pereira | 18 |
| 768 | Marcos | 56 |
| 354 | Yesenia | 29 |
| 232 | Gilberto | 45 |
+--------+------------+----------+
14 rows in set (0.00 sec)

293. Se hace una consulta y como se puede ver en la parte resaltada de color verde, si
cambió la edad de Manuela en NULL ya que como se había mencionado anteriormente, la
nueva edad que se le definió no cumple con la condición.

mysql> SELECT * FROM obreros;


+--------+------------+----------+
| id_obr | nombre_obr | edad_obr |
+--------+------------+----------+
| 456 | Manuela | NULL |
| 5 | Veronica | 21 |
| 334 | Miguel | 22 |
| 654 | Rolando | 34 |
| 2576 | Alberto | 60 |
| 283 | Agapito | 21 |
| 287 | Zoila | 24 |
| 9876 | Eloy | 26 |
| 1287 | Mario | 22 |
| 546 | Candido | 15 |
| 341 | Pereira | 18 |

Administración de Base de Datos | Ing. Sistemas Computacionales 96


Bitácora de Oracle MySQL

| 768 | Marcos | 56 |
| 354 | Yesenia | 29 |
| 232 | Gilberto | 45 |
+--------+------------+----------+
14 rows in set (0.00 sec)

294. A continuación, se creará un nuevo trigger. Este trigger se ejecutára por cada registro
ingresado y va a registrar en una nueva tabla la hora y fecha en la cual se insertó un nuevo
registro en la base de datos. Para ello, se utilizará la misma tabla que se utlilizó
anteriormente, obreros, solo que se creará una nueva tabla con un atributo, que es el que
almacenará la fecha y hora para el nuevo registro que se insertará. Creamos la tabla que
tiene por nombre ‘obrero_copia’.
mysql> CREATE TABLE obrero_copia(
-> id_obr INT PRIMARY KEY,
-> nombre_obr VARCHAR(25),
-> edad_obr INT(3),
-> ultima_modificacion DATETIME)
-> ENGINE=InnoDB;
Query OK, 0 rows affected (2.30 sec)

295. Describimos la tabla para ver el esquema.


mysql> DESC obrero_copia;
+---------------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------------+-------------+------+-----+---------+-------+
| id_obr | int(11) | NO | PRI | NULL | |
| nombre_obr | varchar(25) | YES | | NULL | |
| edad_obr | int(3) | YES | | NULL | |
| ultima_modificacion | datetime | YES | | NULL | |
+---------------------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

296. Ahora hacemos una revisión si la tabla se creó con éxito en la base de datos. Y
efectivamente la tabla si se creó.
mysql> SHOW TABLES;
+------------------------------+
| Tables_in_triggers_practicas |
+------------------------------+
| obrero_copia |
| obreros |
| personas |
+------------------------------+
3 rows in set (0.00 sec)

Administración de Base de Datos | Ing. Sistemas Computacionales 97


Bitácora de Oracle MySQL

297. Ahora, se creará el trigger de inserción, este trigger registrará a la nueva tabla creada;
obrero_obr, con la fecha y hora que se insertó un nuevo registro.
mysql> CREATE TRIGGER nuevo_registro_obrero AFTER INSERT
-> ON obreros
-> FOR EACH ROW
-> INSERT INTO obrero_copia (id_obr, nombre_obr, edad_obr, ultima_modificacion)
VALUE
-> (NEW.id_obr, NEW.nombre_obr, NEW.edad_obr, NOW());
Query OK, 0 rows affected (0.64 sec)

298. Hacemos una consulta ala tablas obreros con los registros.
mysql> SELECT * FROM obreros;
+--------+------------+----------+
| id_obr | nombre_obr | edad_obr |
+--------+------------+----------+
| 456 | Manuela | NULL |
| 5 | Veronica | 21 |
| 334 | Miguel | 22 |
| 654 | Rolando | 34 |
| 2576 | Alberto | 60 |
| 283 | Agapito | 21 |
| 287 | Zoila | 24 |
| 9876 | Eloy | 26 |
| 1287 | Mario | 22 |
| 546 | Candido | 15 |
| 341 | Pereira | 18 |
| 768 | Marcos | 56 |
| 354 | Yesenia | 29 |
| 232 | Gilberto | 45 |
+--------+------------+----------+
14 rows in set (0.36 sec)

299. Insertamos un nuevo registro en la tabla obreros para verificar el funcionamiento del
trigger. Cabe resaltar que el rigger se activará después de insertar un registro no antes.

mysql> INSERT INTO obreros VALUES


-> (2000, 'Emanuel', 44);
Query OK, 1 row affected (0.36 sec)

300. Hacemos una consulta a la tabla obreros para ver el nuevo registro que se insertó. Y
como se puede ver en la parte resaltada de color verde, ahí está el nuevo registro que se
insertó en la tabla.
mysql> SELECT * FROM obreros;
+--------+------------+----------+
| id_obr | nombre_obr | edad_obr |
+--------+------------+----------+

Administración de Base de Datos | Ing. Sistemas Computacionales 98


Bitácora de Oracle MySQL

| 456 | Manuela | NULL |


| 5 | Veronica | 21 |
| 334 | Miguel | 22 |
| 654 | Rolando | 34 |
| 2576 | Alberto | 60 |
| 283 | Agapito | 21 |
| 287 | Zoila | 24 |
| 9876 | Eloy | 26 |
| 1287 | Mario | 22 |
| 546 | Candido | 15 |
| 341 | Pereira | 18 |
| 768 | Marcos | 56 |
| 354 | Yesenia | 29 |
| 232 | Gilberto | 45 |
| 2000 | Emanuel | 44 |
+--------+------------+----------+
15 rows in set (0.00 sec)

301. Ahora viene la parte más intersante, haremos una nueva consulta, pero a la tabla que
se había creado, obrero_copia, para ver si nos muestra la fecha y hora en la que se hace
un nuevo registro, y si, efectivamente el trigger hizo su trabajo.
mysql> SELECT * FROM obrero_copia;
+--------+------------+----------+---------------------+
| id_obr | nombre_obr | edad_obr | ultima_modificacion |
+--------+------------+----------+---------------------+
| 2000 | Emanuel | 44 | 2018-06-03 23:45:01 |
+--------+------------+----------+---------------------+
1 row in set (0.36 sec)

302. A continuación, se va a crear un trigger. Este trigger va a actuar como un acumulador,


sumando los valores insertados em una de las columnas de la tabla. Para empezar,
creamos una tabla llamada cuenta.
mysql> CREATE TABLE cuenta(
-> numero_cuenta INT,
-> cantidad DECIMAL(10,2));
Query OK, 0 rows affected (0.23 sec)

303. Para ver si la tabla se creó correctamente en la base de datos, listamos las tablas
existentes. Y como se puede ver, la tabla si se creó.
mysql> SHOW TABLES;
+------------------------------+
| Tables_in_triggers_practicas |
+------------------------------+
| cuenta |

Administración de Base de Datos | Ing. Sistemas Computacionales 99


Bitácora de Oracle MySQL

| obrero_copia |
| obreros |
| personas |
+------------------------------+
4 rows in set (0.00 sec)

304. Se empieza a crear el trigger.


mysql> CREATE TRIGGER ins_suma BEFORE INSERT ON cuenta
-> FOR EACH ROW
-> SET @sum = @sum + NEW.cantidad;
Query OK, 0 rows affected (0.42 sec)

305. Empezamos a insertar los datos para ver el funcionamiento del trigger.
mysql> SET @sum = 0;
Query OK, 0 rows affected (0.36 sec)

mysql> INSERT INTO cuenta VALUES


-> (137, 14.98),
-> (141, 1937.50),
-> (97, -100.00);
Query OK, 3 rows affected (0.20 sec)
Records: 3 Duplicates: 0 Warnings: 0

306. Hacemos una consulta para ver si el trigger hizo su trabajo.


mysql> SELECT @sum AS 'Total de cuenta insertado';
+---------------------------+
| Total de cuenta insertado |
+---------------------------+
| 1852.48 |
+---------------------------+
1 row in set (0.01 sec)

307. A continuación, se creará un trigger de actualización. Este trigger es similar a uno que
se había creado anterioemente donde muestra la fecha y hora del registro que se hizo solo
que este trigger muestra el evento que se realizó. Se crea la tabla empleado_audit.
mysql> CREATE TABLE empleados_audit(
-> id_empleado INT AUTO_INCREMENT PRIMARY KEY,
-> numero_empleado INT NOT NULL,
-> apellido VARCHAR(50) NOT NULL,
-> ultima_modificacion DATETIME DEFAULT NULL,
-> accion VARCHAR(30) DEFAULT NULL
-> );
Query OK, 0 rows affected (0.66 sec)

Administración de Base de Datos | Ing. Sistemas Computacionales 100


Bitácora de Oracle MySQL

308. Vamos a listar las tablas para ver si se creó con éxito esta tabla.
mysql> SHOW TABLES;
+------------------------------+
| Tables_in_triggers_practicas |
+------------------------------+
| cuenta |
| empleados_audit |
| obrero_copia |
| obreros |
| personas |
+------------------------------+
5 rows in set (0.00 sec)

309. Hacemos una descripción de la tabla para ver el esquema.


mysql> DESC empleados_audit;
+---------------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------------+-------------+------+-----+---------+----------------+
| id_empleado | int(11) | NO | PRI | NULL | auto_increment |
| numero_empleado | int(11) | NO | | NULL | |
| apellido | varchar(50) | NO | | NULL | |
| ultima_modificacion | datetime | YES | | NULL | |
| accion | varchar(30) | YES | | NULL | |
+---------------------+-------------+------+-----+---------+----------------+
5 rows in set (0.03 sec)

310. Creación del trigger.


mysql>DELIMITER //
mysql>CREATE TRIGGER before_employee_update
->BEFORE UPDATE ON employees
->FOR EACH ROW
->BEGIN
->INSERT INTO employees_audit
->SET action = 'update',
->employeeNumber = OLD.employeeNumber,
->lastname = OLD.lastname,
->changedat = NOW();
->END //
5 rows in set (0.03 sec)
mysql>DELIMITER ;

Administración de Base de Datos | Ing. Sistemas Computacionales 101

También podría gustarte