U N I V E R S I D A D D E E L S A LVA D O R
FA C U LTA D D E I N G E N I E R I A Y A R Q U I T E C T U R A
E S C U E L A D E I N G E N I E R I A D E S I S T E M A S
I N F O R M A T I C O S
Ciclo
I
Base de Datos BAD115
Catedráticos: Ing. Elmer Arturo Carballo Ruiz MSc.
Ing. César Augusto González Rodríguez MAF.
Guía de Laboratorio #7a
Lenguaje estructurado de Consulta SQL
Contenido
Objetivos .................................................................................................................................. 1
Introducción ............................................................................................................................. 1
Desarrollo. ................................................................................................................................ 2
Indicaciones previas al desarrollo de la guía. ........................................................................... 2
Modificando Datos .................................................................................................................... 2
Inserciones una Sola Fila ........................................................................................................ 2
Insertando Filas con Valores Nulos.......................................................................................... 2
Insertando Valores Especiales ................................................................................................ 3
Copiando Filas Desde Otra Tabla............................................................................................. 3
Insertando hacia Múltiples Tablas........................................................................................... 4
Actualizando una Columna de una Tabla ................................................................................. 5
Seleccionando las Filas a Actualizar......................................................................................... 5
Actualizando Columnas con Subconsultas ............................................................................... 6
Actualizando Varias Columnas con una Subconsulta ................................................................ 7
Error de Integridad Referencial 1 ............................................................................................ 8
Eliminar Todas la Filas de una Tabla ........................................................................................ 8
Seleccionando las Filas a Eliminar ........................................................................................... 9
Uso de Subconsultas para eliminación .................................................................................... 9
Error de Integridad Referencial 2 ...........................................................................................10
Truncando una Tabla ............................................................................................................10
Universidad de El Salvador
BAD-115
Guía de Laboratorio #7
Objetivos
Que el estudiante sea capaz de:
Realizar las operaciones especiales de creación de tablas y actualización de datos.
Utilizar las formas de subconsultas en actualizaciones de datos.
Introducción
En esta guía se veremos cómo realizar operaciones especiales de creación de
tablas, actualización de datos con consultas y otros comandos para realizar operaciones
sobre datos.
Ing. Elmer Arturo Carballo Ruiz MSc. / Ing. Cesar Augusto González Rodríguez MAF
Ciclo II-2012
1
Universidad de El Salvador
BAD-115
Guía de Laboratorio #7
Desarrollo.
Indicaciones previas al desarrollo de la guía.
Se recomienda que si va a desarrollar esta guía de laboratorio en el cómputo, se conecte a su
usuario (carnet) y ejecute los scripts de creación de Base de datos y de datos (inserts) del esquema
hr que se encuentran en el ftp en la carpeta de guía 7.
Otra alternativa es crear el esquema (sin integridad) usando los comandos
create table countries as select * from hr.countries;
create table departments as select * from hr.departments;
…..
create table employees as select * from hr.employees;
Pero si la está desarrollando con una versión empresarial de Oracle en su casa puede usar todos los
comandos sin restricción.
Modificando Datos
Inserción de Filas
Inserciones una Sola Fila
Script: insert into departme nts(de par tment_i d, department_name , manager_id, location_id)
values(300, 'Departamento 300', 100, 1800);
Script: commit;
Insertando Filas con Valores Nulos
Método Implícito: Se omiten las columnas que aceptan valores nulos.
Script: insert into departments(de par tment_id, department_name) values(301, 'Departamento 301');
Script: commit;
Ing. Elmer Arturo Carballo Ruiz MSc. / Ing. Cesar Augusto González Rodríguez MAF
Ciclo II-2012
2
Universidad de El Salvador
BAD-115
Guía de Laboratorio #7
Método Explicito: Especificamos la palabra clave NULL en las columnas donde queremos insertar
un valor nulo.
Script: insert into departments values(302, 'Departamento 302', NULL, NULL);
Script: commit;
Insertando Valores Especiales
Script: insert into employees (employee_id, first_name, last_name, email, phone_number,
hire_date, job_id, salary, commission_pct, manager_id, department_id) values(250,
'Gustavo', 'Coronel', '
[email protected]', '511.481.1070', sysdate, 'FI_MGR' , 14000,
NULL, 102, 100);
Script: commit;
Insertando Valores Específicos de Fecha
Script: insert into employees values(251, 'Ricardo', 'Marcelo', '
[email protected]',
'511.555.4567', to_date('FEB 4, 2005', 'MON DD, YYYY'), 'AC_ACCOUNT', 11000, NULL, 100, 30);
Script: commit;
Copiando Filas Desde Otra Tabla
Creando la tabla test
Script : create table test
(
id number(6) primary key,
name varchar2(20),
salary number(8,2)
);
Insertando datos a test desde employees
Script: insert into test (id, name, salary)
select employee_id, first_name, salary
from employees where department_id = 30;
Script: commit;
Ing. Elmer Arturo Carballo Ruiz MSc. / Ing. Cesar Augusto González Rodríguez MAF
Ciclo II-2012
3
Universidad de El Salvador
BAD-115
Guía de Laboratorio #7
Insertando hacia Múltiples Tablas
Primero creamos las siguientes tablas: test50 y test80.
Script: create table test50
(
);
id number(6) primary key,
name varchar2(20),
salary number(8,2)
Script: create table test80
(
);
id number(6) primary key,
name varchar2(20),
salary number(8,2)
Luego limpiamos la tabla test.
Script: delete from test;
Script: commit;
Ahora procedemos a insertar datos en las tres tablas a partir de la tabla employees.
Script: insert all
when department_i d = 50 then
into test50 (id, name, salary)
values(employee_id, first_name, salary)
when department_i d = 80 then
into test80 (id, name, salary)
values (employee_id, first_name, salary)
Ing. Elmer Arturo Carballo Ruiz MSc. / Ing. Cesar Augusto González Rodríguez MAF
Ciclo II-2012
4
Universidad de El Salvador
BAD-115
Guía de Laboratorio #7
else
into test(id, name, salary)
values(employee_id, first_name, salary)
select departme nt_i d, employee_id, first_name, salary
from employees;
Script: commit;
Actualizando una Columna de una Tabla
Incrementar el salario de todos los empleados en 10%.
Script: update employees
set salary = salary * 1.10;
Script: Commit;
Seleccionando las Filas a Actualizar
William Gietz
trasladado de departamento de
Caontabilidad(Accounting cuyo Department_id = 110) al departamento de Ventas(Sales)
(Department_id = 80).
(Employee_id=206) ha sido
Script: select employee_id, first_name, department_id, salary
from employees where employee_id = 206;
EMPLOYEE_ ID FIRST_NAME DEPARTMENT_ ID SALARY
206 William 110 9130
Ing. Elmer Arturo Carballo Ruiz MSc. / Ing. Cesar Augusto González Rodríguez MAF
Ciclo II-2012
5
Universidad de El Salvador
BAD-115
Guía de Laboratorio #7
Script: update employees
set department_i d = 80
where employee_id = 206;
SQL> select employee_id, first_name, department_i d, salary
from employees
where employee_id = 206;
EMPLOYEE_ ID FIRST_NAME DEPARTMENT_ ID SALARY
206 William 80 9130
Script: commit;
Actualizando Columnas con Subconsultas
Pat Fay (Employee_id = 202) ha sido trasladada al mismo departamento del empleado
203, y su salario tiene que ser el máximo permitido en su puesto de trabajo.
Consultar los datos de Pat Fay:
Script: select employee_id, first_name, last_name, departme nt_i d, job_id, salary
from employees
where employee_id = 202;
EMPLOYEE_ ID FIRST_NAME LAST_NAME DEPARTMENT_ ID JOB_ID SALARY
202 Pat Fay 20 MK_REP 6600
Script update employees
set department_id = (select department_i d from employees
where employee_id = 203),
salary = (select max_salary from jobs
where jobs.job_i d = employees.job_i d)
where employee_id = 202;
Ing. Elmer Arturo Carballo Ruiz MSc. / Ing. Cesar Augusto González Rodríguez MAF
Ciclo II-2012
Comentarios de: Lenguaje estructurado de Consulta SQL #7 (0)
No hay comentarios