Base de datos Employee (Firebird): esquema, tablas y ejercicios de SQL
Employee es la base de ejemplo que viene con Firebird: empleados, departamentos, puestos, proyectos, clientes y ventas de una pequeña empresa. En SQLtest.online puedes consultarla directamente en el navegador: resolver ejercicios con corrección automática y ejecutar tus propias consultas en el playground, sin instalar nada.
- 10 tablas y 1 vista
- 42 empleados
- 21 departamentos
- 33 ejercicios de SQL
Qué es Employee
Employee es la base de ejemplo clásica de Firebird, heredada de InterBase. Describe una pequeña empresa internacional: el árbol de departamentos, el personal y el historial de salarios, proyectos con presupuestos y ventas a clientes.
La base es pequeña, así que los resultados se comprueban a simple vista, pero sus relaciones son interesantes: una jerarquía de departamentos, una clave foránea compuesta de empleados a puestos y relaciones de muchos a muchos entre empleados y proyectos. También sirve para practicar el dialecto SQL de Firebird.
Diagrama ER
El diagrama muestra las tablas de Employee y las claves foráneas que las unen. Haz clic para abrirlo a tamaño completo.
Qué contiene la base
Las tablas se agrupan en tres bloques.
Personal
EMPLOYEE, DEPARTMENT (cada departamento tiene uno superior), JOB y SALARY_HISTORY.
Proyectos
PROJECT, la tabla de relación EMPLOYEE_PROJECT y los presupuestos anuales en PROJ_DEPT_BUDGET.
Ventas
CUSTOMER, SALES (pedidos) y COUNTRY con las monedas.
Lo principal: un puesto se identifica con tres columnas a la vez (código, grado y país), por eso la unión de EMPLOYEE con JOB necesita las tres. La vista PHONE_LIST combina los empleados con los teléfonos de sus departamentos.
Cuántos datos hay en las tablas:
| Tabla | Filas | Contenido |
|---|---|---|
| EMPLOYEE | 42 | empleados |
| DEPARTMENT | 21 | departamentos |
| JOB | 31 | puestos y rangos salariales |
| SALARY_HISTORY | 49 | cambios de salario |
| PROJECT | 6 | proyectos |
| EMPLOYEE_PROJECT | 28 | empleados ↔ proyectos |
| PROJ_DEPT_BUDGET | 24 | presupuestos de proyectos por departamento y año |
| CUSTOMER | 15 | clientes |
| SALES | 33 | pedidos |
| COUNTRY | 16 | países y monedas |
Estructura de las tablas
Haz clic en una tabla para ver sus columnas, una fila de ejemplo y sus claves.
Lista de tablas
- COUNTRYNombre del país
- CURRENCYMoneda utilizada en el país
| COUNTRY | CURRENCY |
|---|---|
| USA | Dólar |
- JOB_CODECódigo de trabajo
- JOB_GRADEGrado de trabajo
- JOB_COUNTRYPaís asociado con el trabajo
- JOB_TITLETítulo del trabajo
- MIN_SALARYSueldo mínimo para el trabajo
- MAX_SALARYSueldo máximo para el trabajo
- JOB_REQUIREMENTRequisitos del trabajo
- LANGUAGE_REQRequisitos de idioma
| JOB_CODE | JOB_GRADE | JOB_COUNTRY | JOB_TITLE | MIN_SALARY | MAX_SALARY | JOB_REQUIREMENT | LANGUAGE_REQ |
|---|---|---|---|---|---|---|---|
| CEO | 1 | USA | Director Ejecutivo | 130000.00 | 250000.00 | No hay requisitos específicos. | [null] |
- FOREIGN KEY (JOB_COUNTRY) REFERENCES COUNTRY(COUNTRY)
- DEPT_NONúmero de departamento
- DEPARTMENTNombre del departamento
- HEAD_DEPTDepartamento principal (puede ser nulo)
- MNGR_NONúmero de gerente
- BUDGETPresupuesto del departamento
- LOCATIONUbicación del departamento
- PHONE_NONúmero de teléfono del departamento
| DEPT_NO | DEPARTMENT | HEAD_DEPT | MNGR_NO | BUDGET | LOCATION | PHONE_NO |
|---|---|---|---|---|---|---|
| 000 | Oficina Corporativa | [null] | 105 | 1000000.00 | Monterey | (408) 555-1234 |
- FOREIGN KEY (HEAD_DEPT) REFERENCES DEPARTMENT(DEPT_NO)
- EMP_NONúmero de empleado
- FIRST_NAMENombre del empleado
- LAST_NAMEApellido del empleado
- PHONE_EXTExtensión telefónica del empleado
- HIRE_DATEFecha de contratación del empleado
- DEPT_NONúmero de departamento
- JOB_CODECódigo de trabajo del empleado
- JOB_GRADEGrado de trabajo del empleado
- JOB_COUNTRYPaís asociado con el trabajo del empleado
- SALARYSueldo del empleado
- FULL_NAMENombre completo del empleado
| EMP_NO | FIRST_NAME | LAST_NAME | PHONE_EXT | HIRE_DATE | DEPT_NO | JOB_CODE | JOB_GRADE | JOB_COUNTRY | SALARY | FULL_NAME |
|---|---|---|---|---|---|---|---|---|---|---|
| 2 | Robert | Nelson | 250 | 1988-12-28 00:00:00 | 600 | VP | 2 | USA | 105900.00 | Nelson, Robert |
- FOREIGN KEY (DEPT_NO) REFERENCES DEPARTMENT(DEPT_NO)
- FOREIGN KEY (JOB_CODE) REFERENCES JOB(JOB_CODE)
- PROJ_IDID del proyecto
- PROJ_NAMENombre del proyecto
- PROJ_DESCDescripción del proyecto
- TEAM_LEADERLíder del equipo para el proyecto
- PRODUCTProducto asociado con el proyecto
| PROJ_ID | PROJ_NAME | PROJ_DESC | TEAM_LEADER | PRODUCT |
|---|---|---|---|---|
| VBASE | Base de Datos de Video | Desarrollo de un sistema de gestión de base de datos de video para gestionar la distribución de video bajo demanda. | 45 | software |
- FOREIGN KEY (TEAM_LEADER) REFERENCES EMPLOYEE(EMP_NO)
- EMP_NONúmero de empleado
- PROJ_IDID del proyecto
| EMP_NO | PROJ_ID |
|---|---|
| 144 | DGPII |
- FOREIGN KEY (EMP_NO) REFERENCES EMPLOYEE(EMP_NO)
- FOREIGN KEY (PROJ_ID) REFERENCES PROJECT(PROJ_ID)
- FISCAL_YEARAño fiscal
- PROJ_IDID del proyecto
- DEPT_NONúmero de departamento
- QUART_HEAD_CNTConteo de cabezas del trimestre (puede ser nulo)
- PROJECTED_BUDGETPresupuesto proyectado para el año fiscal
| FISCAL_YEAR | PROJ_ID | DEPT_NO | QUART_HEAD_CNT | PROJECTED_BUDGET |
|---|---|---|---|---|
| 1994 | GUIDE | 100 | [null] | 200000.00 |
- FOREIGN KEY (PROJ_ID) REFERENCES PROJECT(PROJ_ID)
- FOREIGN KEY (DEPT_NO) REFERENCES DEPARTMENT(DEPT_NO)
- EMP_NONúmero de empleado
- CHANGE_DATEFecha de cambio de salario
- UPDATER_IDID del actualizador
- OLD_SALARYSalario anterior
- PERCENT_CHANGEPorcentaje de cambio en el salario
- NEW_SALARYNuevo salario después del cambio
| EMP_NO | CHANGE_DATE | UPDATER_ID | OLD_SALARY | PERCENT_CHANGE | NEW_SALARY |
|---|---|---|---|---|---|
| 28 | 1992-12-15 00:00:00 | admin2 | 20000.00 | 10.000000 | 22000.000000 |
- FOREIGN KEY (EMP_NO) REFERENCES EMPLOYEE(EMP_NO)
- CUST_NONúmero de cliente
- CUSTOMERNombre del cliente
- CONTACT_FIRSTNombre de la persona de contacto
- CONTACT_LASTApellido de la persona de contacto
- PHONE_NONúmero de teléfono del cliente
- ADDRESS_LINE1Línea de dirección 1
- ADDRESS_LINE2Línea de dirección 2 (puede ser nulo)
- CITYCiudad del cliente
- STATE_PROVINCEEstado o provincia del cliente
- COUNTRYPaís del cliente
- POSTAL_CODECódigo postal del cliente
- ON_HOLDEstado en espera (puede ser nulo)
| CUST_NO |
Consultas de ejemploEstas consultas muestran cómo se relacionan los datos. Copia cualquiera y ejecútala en el playground. Un empleado, su departamento y su puesto: una unión por una clave compuesta de tres columnas.
Pedidos y clientes: Firebird usa FIRST n para limitar las filas.
Ejercicios de SQL por temaLa base Employee tiene 33 ejercicios, desde selecciones sencillas hasta funciones de ventana y modificación de datos. Las soluciones se comprueban automáticamente en un Firebird real. El número de la derecha es la cantidad de ejercicios del tema; los puntos de color muestran el rango de dificultad.
Por dónde empezarLos primeros ejercicios de la base Employee:
Todos los ejercicios de Employee → Preguntas frecuentes¿Hay que instalar Firebird para usar Employee?No. Los ejercicios y el playground de SQLtest.online ejecutan las consultas en nuestros servidores, así que basta con un navegador. En el playground, Employee está disponible en Firebird 4.0. ¿De dónde viene la base Employee?Se distribuye con Firebird como base de ejemplo (employee.fdb) y viene de InterBase, el predecesor de Firebird. ¿En qué se diferencia el SQL de Firebird?La mayor parte del SQL estándar funciona como siempre. Las primeras diferencias que encontrarás: FIRST n / SKIP n o FETCH FIRST n ROWS ONLY para limitar filas, y nombres de objetos en mayúsculas. |
|---|