UASD/ 2013-1/ INF-424/ LAB 05-2
NOMBRE DARLING MATRICULA
1 0 0 4 5 1 8 1 5 Para uso
APELLIDO FAJARDO del
profesor
SECCIÓN: 05 Sábados
TEMA 05: Structured Query Language (SQL)
Tiempo disponible: 60 mins.
5.2.1 Implemente de una manera simple las siguientes tablas usando el DBMS MySQL bajo el
schema INF424DB.
Laboratorio 5-2 del tema SQL, Profesores Victor Calcaño y Julio Castro, Página 1 of 6
5.2.2 Requerimientos
a) Cree las tablas de acuerdo a lo aprendido en uso de sentencias DDL CREATE TABLE. Seleccione los
dominios de cada atributo de acuerdo a su apreciación en las figuras anteriores y basándose en los
tipos de datos disponibles en MySQL.
Referencias disponibles:
- (Skydrive) Manual de referencia de mysql, capitulo 11 – Tipos de columna
- (Skydrive) Documento INF424_05_SQL_Guia_de_referencia.xls
- (Este documento) Cuadro de tipos de datos soportados en campos MySQL
- Tutoriales de internet
mysql> use inf424db;
Database changed
mysql> CREATE TABLE emp
-> (empno smallint,
-> ename varchar(25),
-> job varchar(9),
-> MGR smallint,
-> hiredate date,
-> sal decimal,
-> comm decimal,
-> deptno tinyint);
Query OK, 0 rows affected (0.63 sec)
mysql> CREATE TABLE dept
-> (deptno tinyint,
-> dname varchar(10),
-> loc varchar(10));
Query OK, 0 rows affected (0.33 sec)
mysql> CREATE TABLE salgrade (grade TINYINT, losal DECIMAL, hisal DECIMAL);
Query OK, 0 rows affected (0.33 sec)
b) En cada tabla, inserte los registros que se encuentran en las diferentes figuras.
Tabla SALGRADE
mysql> insert into salgrade values (1, 700, 1200);
Query OK, 1 row affected (0.08 sec)
mysql> insert into salgrade values (1, 1201, 1400);
Query OK, 1 row affected (0.06 sec)
mysql> insert into salgrade values (3, 1402, 2000);
Query OK, 1 row affected (0.03 sec)
mysql> insert into salgrade values (4, 2001, 3000);
Query OK, 1 row affected (0.05 sec)
mysql> insert into salgrade values (5, 3001, 9999);
Query OK, 1 row affected (0.03 sec)
mysql> select * from salgrade;
+-------+-------+-------+
Laboratorio 5-2 del tema SQL, Profesores Victor Calcaño y Julio Castro, Página 2 of 6
| grade | losal | hisal |
+-------+-------+-------+
| 1 | 700 | 1200 |
| 2 | 1201 | 1400 |
| 3 | 1401 | 2000 |
| 4 | 2001 | 3000 |
| 5 | 3001 | 9999 |
+-------+-------+-------+
5 rows in set (0.00 sec)
Tabla DEPT
mysql> insert into dept values (10, 'ACCOUNTING', 'NEW YORK');
Query OK, 1 row affected (0.05 sec)
mysql> insert into dept values (20, 'RESEARCH', 'DALLAS');
Query OK, 1 row affected (0.05 sec)
mysql> insert into dept values (30, 'SALES', 'CHICAGO');
Query OK, 1 row affected (0.03 sec)
mysql> insert into dept values (40, 'OPERATIONS', 'BOSTON');
Query OK, 1 row affected (0.03 sec)
mysql> select * from dept;
+--------+------------+----------+
| deptno | dname | loc |
+--------+------------+----------+
| 10 | ACCOUNTING | NEW YORK |
| 20 | RESEARCH | DALLAS |
| 30 | SALES | CHICAGO |
| 40 | OPERATIONS | BOSTON |
+--------+------------+----------+
4 rows in set (0.00 sec)
Tabla EMP
mysql> insert into emp
-> values (7839,'KING','PRESIDENT',NULL,'1981-11-17',5000,NULL,10);
Query OK, 1 row affected (0.06 sec)
mysql> insert into emp
-> values (7698,'BLAKE','MANAGER',7839,'1981-05-01',2850,NULL,30);
Query OK, 1 row affected (0.05 sec)
mysql> insert into emp
-> values (7782,'CLARK','MANAGER',7839,'1981-06-09',1500,NULL,10);
Query OK, 1 row affected (0.05 sec)
mysql> insert into emp
-> values (7566,'JONES','MANAGER',7839,'1981-04-02',2975,NULL,20);
Query OK, 1 row affected (0.03 sec)
Laboratorio 5-2 del tema SQL, Profesores Victor Calcaño y Julio Castro, Página 3 of 6
mysql> insert into emp
-> values (7654,'MARTIN','SALESMAN',7698,'1981-09-28',1250,1400,30);
Query OK, 1 row affected (0.05 sec)
mysql> insert into emp
-> values (7499,'ALLEN','SALESMAN',7698,'1981-02-20',1600,300,30);
Query OK, 1 row affected (0.05 sec)
mysql> insert into emp
-> values (7844,'TURNER','SALESMAN',7698,'1981-09-08',1500,0,30);
Query OK, 1 row affected (0.03 sec)
mysql> insert into emp
-> values (7900,'JAMES','CLERK',7698,'1981-12-03',950,NULL,30);
Query OK, 1 row affected (0.05 sec)
mysql> insert into emp
-> values (7521,'WARD','SALESMAN',7698,'1981-02-22',1250,500,30);
Query OK, 1 row affected (0.06 sec)
mysql> insert into emp
-> values (7902,'FORD','ANALYST',7566,'1981-12-03',3000,NULL,20);
Query OK, 1 row affected (0.05 sec)
mysql> insert into emp
-> values (7369,'SMITH','CLERK',7902,'1980-12-17',800,NULL,20);
Query OK, 1 row affected (0.03 sec)
mysql> insert into emp
-> values (7788,'SCOTT','ANALYST',7566,'1982-12-09',3000,NULL,20);
Query OK, 1 row affected (0.06 sec)
mysql> insert into emp
-> values (7876,'ADAMS','CLERK',7788,'1983-01-12',1100,NULL,20);
Query OK, 1 row affected (0.05 sec)
mysql> insert into emp
-> values (7934,'MILLER','CLERK',7782,'1982-01-23',1300,NULL,10);
Query OK, 1 row affected (0.03 sec)
mysql> select * from emp;
+-------+--------+-----------+------+------------+------+------+--------+
| empno | ename | job | MGR | hiredate | sal | comm | deptno |
+-------+--------+-----------+------+------------+------+------+--------+
| 7839 | KING | PRESIDENT | NULL | 1981-11-17 | 5000 | NULL | 10 |
| 7698 | BLAKE | MANAGER | 7839 | 1981-05-01 | 2850 | NULL | 30 |
| 7782 | CLARK | MANAGER | 7839 | 1981-06-09 | 1500 | NULL | 10 |
| 7566 | JONES | MANAGER | 7839 | 1981-04-02 | 2975 | NULL | 20 |
| 7654 | MARTIN | SALESMAN | 7698 | 1981-09-28 | 1250 | 1400 | 30 |
| 7499 | ALLEN | SALESMAN | 7698 | 1981-02-20 | 1600 | 300 | 30 |
| 7844 | TURNER | SALESMAN | 7698 | 1981-09-08 | 1500 | 0 | 30 |
| 7900 | JAMES | CLERK | 7698 | 1981-12-03 | 950 | NULL | 30 |
| 7521 | WARD | SALESMAN | 7698 | 1981-02-22 | 1250 | 500 | 30 |
Laboratorio 5-2 del tema SQL, Profesores Victor Calcaño y Julio Castro, Página 4 of 6
| 7902 | FORD | ANALYST | 7566 | 1981-12-03 | 3000 | NULL | 20 |
| 7369 | SMITH | CLERK | 7902 | 1980-12-17 | 800 | NULL | 20 |
| 7788 | SCOTT | ANALYST | 7566 | 1982-12-09 | 3000 | NULL | 20 |
| 7876 | ADAMS | CLERK | 7788 | 1983-01-12 | 1100 | NULL | 20 |
| 7934 | MILLER | CLERK | 7782 | 1982-01-23 | 1300 | NULL | 10 |
+-------+--------+-----------+------+------------+------+------+--------+
14 rows in set (0.00 sec)
c) Escriba las sentencias DML SELECT necesarias para extraer las siguientes informaciones de la
bases de datos:
a. Muestre todos los registros de la tabla EMP
Sentencia SELECT utilizada:
SELECT * FROM emp;
b. Muestre solo los empleados que se desempeñan como gerentes (JOB=’MANAGER’)
Sentencia SELECT utilizada:
SELECT * FROM emp WHERE job = 'MANAGER';
c. Muestre los empleados que ganan más de 2,975.00
Sentencia SELECT utilizada:
SELECT * FROM emp WHERE sal > 2975;
d. Muestre los empleados que trabajen como ‘CLERK’, cuyo salario es mayor a 1,150.00
Sentencia SELECT utilizada:
SELECT * FROM emp WHERE job = 'CLERK' AND sal > 1150;
e. Muestre los empleados que trabajen como ‘CLERK’ o como ‘PRESIDENT’
Sentencia SELECT utilizada:
SELECT * FROM emp WHERE job IN ('CLERK', 'PRESIDENT');
f. Muestre los empleados que tienen 31 o más años de trabajo. Proyecte ENAME, JOB,
HIREDATE, “TIEMPO TRABAJADO” y SAL.
Laboratorio 5-2 del tema SQL, Profesores Victor Calcaño y Julio Castro, Página 5 of 6
Sentencia SELECT utilizada:
SELECT ename, job, hiredate, TIMESTAMPDIFF(YEAR, hiredate, CURDATE()) AS "TIEMPO
TRABAJADO", sal FROM emp WHERE TIMESTAMPDIFF(YEAR, hiredate, CURDATE()) >= 31;
g. Muestre los empleados que no tienen comisión.
Sentencia SELECT utilizada:
SELECT * FROM emp WHERE comm IS NULL;
5.2.3 Referencias
Cuadro de tipos de datos soportados en campos MySQL
Tipo Descripción
Tinyint[Unsigned] Entero de 0 a 255 o de -128 a 128
Smallint[Unsigned] Entero de 0 a 65535 o de -32768 a 32768
Int o Integer Entero normal. Rango de -2147483648 a 214783648
Float[ (M,D) ] Número de coma flotante de simple precisión si no se pasa ningún
argumento M es el nº de dígitos y D el nº de decimales
Double [ (M,D) ] Número de coma flotante de doble precisión. Siempre dispone de signo
MyD
Decimal [ (M [,D]) ] Número almacenado como cadena de caracteres M es el número total
de dígitos y D el nº de decimales
Date Tipo fecha. Admite formatos "AAAA-MM-DD" o "AA-MM-DD" o
"AAMMDD"
Time Tipo hora. Admite formato "HH:MM:SS" o "HHMMSS" o "HHMM" o "HH"
Char(longitud) Cadena de caracteres de la longitud indicada. Se reserva el espacio en
caracteres aunque no se usen
Varchar(longitud) Cadena de caracteres de la longitud indicada que se almacena con su
ocupación. Máxima longitud: 255 caracteres
Blob Tipo destinado a almacenar bits sin interpretar. Se usa para almacenar
texto más largo de 255 caracteres. Diferencia mayúsculas de
minúsculas.
Text Tipo Destinado a almacenar bits sin interpretar. Se usa para almacenar
texto más largo de 255 caracteres. No diferencia mayúsculas de
minúsculas.
Laboratorio 5-2 del tema SQL, Profesores Victor Calcaño y Julio Castro, Página 6 of 6