Ejemplos de Instrucciones SQL - Comando UPDATE
Página 1
En la siguiente instrucción se está actualizando la tabla Alumnos, estableciendo al atributo
curso el valor de "Secundaria" donde el valor del atributo curso sea igual a "Primaria".
```sql
UPDATE Alumnos SET curso = "Secundaria" WHERE curso = "Primaria";
```
La siguiente instrucción solicita actualizar en la tabla Empleados, en el atributo apellido2
establecer el valor de "RODRIGUEZ", donde el atributo nombre sea igual a "ANTONIO", y el
apellido1 sea igual a "GARCIA" y en el atributo apellido2 sea igual a "BENITO".
```sql
UPDATE Empleados SET apellido2 = "RODRIGUEZ"
WHERE nombre = "ANTONIO" AND apellido1 = "GARCIA"
AND apellido2 = "BENITO";
Página 3
En esta instrucción se solicita actualizar la tabla Empleados, estableciendo el sueldo bruto
anual a 50000.00 pesos y la prima de objetivos a 3000.00 pesos. Esto será efectivo a los
empleados que cobran entre 40000.00 y 45000.00 pesos.
```sql
UPDATE Empleados
SET sueldoBruto = 50000.00, primaObj = 3000.00
WHERE sueldoBruto >= 40000.00 AND sueldoBruto <= 45000.00;
```
Página 4
Para ejemplificar el comando UPDATE, elabore la siguiente práctica, para ello construya la
tabla Empleados con los siguientes registros:
| nombre | apellido1 | apellido2 | sueldoBruto | primaObj | antiguedad |
|----------|-----------|-----------|-------------|----------|------------|
| ANTONIO | PEREZ | GOMEZ | 35000 | 2000 |5 |
| LUIS | LOPEZ | PEREZ | 41000 | 1500 |3 |
| ANTONIO | GARCIA | BENITO | 43500 | 1750 |8 |
| PEDRO | RUIZ | GONZALEZ | 38900 | 2345 |2 |
| JUANA | LOPEZ | GARCIA | 42378 | 2345 |4 |
| BERTHA | SOTO | RUIZ | 34678 | 1234 |1 |
| ANGEL | BENITO | TORRES | 27660 | 1000 |0 |
| OSCAR | SALAS | IGLESIAS | 35878 | 2000 |2 |
| ALFREDO | RIOS | RAMOS | 41789 | 1235 |3 |
| SOFIA | LUNA | ROSAS | 23479 | 2341 |0 |
| ALBERTO | TRUENO | FUERTE | 24678 | 1989 |1 |
| ZOILA | LUNA | BLANCO | 42890 | 2450 |8 |
Página 5
Creación de la tabla.
```sql
CREATE TABLE Empleados(
nombre VARCHAR(15) NOT NULL,
apellido1 VARCHAR(15) NOT NULL,
apellido2 VARCHAR(15) NOT NULL,
sueldoBruto DECIMAL(8,2) UNSIGNED NOT NULL,
primaObj DECIMAL(8,2) UNSIGNED NOT NULL,
antiguedad SMALLINT UNSIGNED NOT NULL
);
```
Página 6
Inserción de registros.
```sql
INSERT INTO Empleados VALUES
("ANTONIO", "PEREZ", "GOMEZ", 35000.00, 2000.00, 5),
("LUIS", "LOPEZ", "PEREZ", 41000.00, 1500.00, 3),
("ANTONIO", "GARCIA", "BENITO", 43500.00, 1750.00, 8),
("PEDRO", "RUIZ", "GONZALEZ", 38900.00, 2345.00, 2),
("JUANA", "LOPEZ", "GARCIA", 42378.00, 2345.00, 2),
("BERTHA", "SOTO", "RUIZ", 42378.00, 1234.00, 1),
("ANGEL", "BENITO", "TORRES", 27860.00, 1000.00, 0),
("OSCAR", "SALAS", "IGLESIAS", 35878.00, 2000.00, 2),
("ALFREDO", "RIOS", "RAMOS", 41789.00, 1235.00, 3),
("SOFIA", "LUNA", "ROSAS", 23479.00, 2341.00, 0),
("ALBERTO", "TRUENO", "FUERTE", 24678.00, 1989.00, 1),
("ZOILA", "LUNA", "BLANCO", 42890.00, 2450.00, 8);
```
Página 7
Actualización de registros.
Si al tratar de hacer una actualización a la base de datos por medio del comando UPDATE le
aparece el error siguiente:
```
Error Code: 1175. You are using safe update mode and you tried to update a table without a
WHERE that uses a KEY column.
```
Esto es debido a que su sesión de MySQL tiene configurada la opción de actualizaciones
seguras. Esto significa que no puede actualizar ni eliminar registros sin especificar una clave
en la cláusula WHERE. Para poder realizar las actualizaciones, primeramente escribe el
comando siguiente:
```sql
SET SQL_SAFE_UPDATES = 0;
```
O puedes modificar tu consulta para seguir la regla (usar la llave primaria en la clausula
WHERE).
Cuando hayas terminado de actualizar, asegúrate de volver a configurar la opción de
actualizaciones seguras con el siguiente comando:
```sql
SET SQL_SAFE_UPDATES = 1;
```
Página 9
Probando el funcionamiento del comando UPDATE para modificar los valores de atributo de
una o más tupias (registros) seleccionadas de una tabla.
```sql
UPDATE Empleados SET apellido2 = "RODRIGUEZ"
WHERE nombre = "ANTONIO" AND apellido1 = "GARCIA"
AND apellido2 = "BENITO";
UPDATE Empleados
SET sueldoBruto = 50000, primaObj = 3000
WHERE sueldoBruto >= 40000 AND sueldoBruto <= 45000;
```
Página 10
```sql
UPDATE Empleados
SET sueldoBruto = sueldoBruto * 1.1
WHERE antiguedad = 0;
UPDATE Empleados
SET primaObj = primaObj * 1.3
WHERE primaObj >= 1000.00 AND primaObj <= 2000.00;
UPDATE Empleados
SET antiguedad = antiguedad + 1
WHERE antiguedad = 0 OR antiguedad = 1;
```
Página 11
Una vez que se ha terminado de actualizar, se vuelve a configurar la opción de
actualizaciones seguras con el siguiente comando:
```sql
SET SOL_SAFE_UPDATES = 1;
```