Práctica DML sobre a base de datos traballadores

De MediaWiki
Ir a la navegación Ir a la búsqueda

Introdución

Partimos da base de datos de traballadores.

A tarefa consiste en realizar as seguintes operacións de manipulación de datos utilizando sentenzas:

Tarefas

Tarefa 1.1. Inserir unha fila

Inserir unha fila na táboa centros cos seguintes datos:

Nome columna Valor ou observacións
cenNumero 40
cenNome FRANQUICIA LUGO
cenEnderezo C/ PROGRESO, 8 - LUGO

Tarefa 1.2. Inserir vairas filas

Inserir na táboa empregado, nunha única sentenza INSERT, as filas cos datos do seguintes empregados:

Nome columna Valor ou observacións
empNome BARCIA, ANGELES
empNumero 750
empDepartamento 110
empExtension 25
empDataNacemento 12 de febreiro de 1990
empDataIngreso Hoxe
empSalario 825
empComision 50
empFillos 1


Nome columna Valor ou observacións
empNome MENDEZ, RICARDO
empNumero 751
empDepartamento 110
empExtension 25
empDataNacemento 22 de outubro de 1985
empDataIngreso Fai 15 días
empSalario 900
empComision Descoñecida polo momento
empFillos 0
Nome columna Valor ou observacións
empNome BERNARDEZ, LUCIA
empNumero 752
empDepartamento 120
empExtension 45
empDataNacemento 9 de maio de 1992
empDataIngreso Descoñecida. Pendente de facer contrato
empSalario 1200
empComision 150
empFillos 2
Nome columna Valor ou observacións
empNome VALIN, EVA
empNumero 753
empDepartamento 100
empExtension 200
empDataNacemento 5 de novembro de 1980
empDataIngreso Hoxe
empSalario 1000
empComision 300
empFillos 1

Tarefa 1.3. Aumentar o salario

Acórdase aumentar o salario a todos os empregados un 5% e a comisión un 6,5% como consecuencia da revisión do convenio. Facer as modificacións correspondentes na base de datos.

Pistas
-- Se da erro
-- Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column.  To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect.
-- pódese solucionar executando previamente
-- SET SQL_SAFE_UPDATES = 0;
 A función round pode ser interesante para axustar o número de decimales

Tarefa 1.4. Cambiar data de ingreso

Cambiarlle a data de ingreso na empresa do empregado número 752, asignándolle a data que corresponde ao día 1 do mes seguinte ao mes actual.

Pistas
adddate
last_date
curdate

Tarefa 1.5. Aumento de salario os traballadores dun departamento

Aumentar un 2% o salario a todos os empregados do departamento 120.

Pista
Con round podes redondear o valor

Tarefa 1.6. Reducir presuposto anual

Reducir nun 10% o presuposto anual do departamento que teña o presuposto máis alto na actualidade.

Pistas
ifnull

Tarefa 1.7. Script para facer cambios

Escribir un script para facer todos os seguintes cambios nos presupostos dos departamentos pero sen modificar o presuposto total:

  • Traspasar 20000 do presuposto do departamento de 'PERSOAL' ao departamento de PROCESO DE DATOS.
  • Reducir en 10000 o presuposto do departamento de 'SECTOR INDUSTRIAL', dos que 4000 se traspasan ao departamento de 'ORGANIZACION' e 6000 ao departamento de 'DIRECCION COMERCIAL'.

Tarefa 1.8. Borrar empregado

Borra o empregado co número 380.

Tarefa 1.9. Borrar determinados empregados

Borrar da táboa dos empregados aos que teñan cumpridos os 60 anos.

Tarefa 1.10. Borrar departamento e empregados

Escribir unha única sentenza que permita borrar da táboa departamento o departamento número 121 e da táboa empregado todos os empregados que traballan nese departamento.

Pista
Join

Tarefa 1.11. Táboa temporal

Executar o seguinte script para poder crear unha táboa temporal co nome empregado_120:

1  create temporary table empregado_120 like empregado;

Inserir na táboa empregado_120 os datos de todas as filas da táboa empregado que teñan o valor 120 na columna empDepartamento;

Pista
Unha táboa temporal se usa coa palabra clave temporary; e é so visible durante a actual sesión, perndéndose a mesma ó finalizar a sesión.
Podes atopar máis información no manual de referencia de MySQL ou en titoriais.

Solución

Podes consultar a solución á practica DML sobre a base de datos traballadores.