SlideShare una empresa de Scribd logo
Autor: Nicola Strappazzon C.
                 e-mail: nicola51980@gmail.com




                                                                         8
                 Blog: http://www.swapbytes.com/
                 Revisión: 17/11/11




 Lección
          Manipulando Datos
           y Transacciones

Este material se encuentra basado en el curso de Fundamentos a SQL de ORACLE, el cual es adaptado para
el producto PostgreSQL, todos los ejemplos, códigos fuentes y la Base de Datos HR es propiedad de ORACLE.
Objetivos
    Al completar esta lección usted podrá entender los
    siguientes puntos:
    • Describir cada uno de los lenguajes de manipulación de
      datos (DML, Data Manipulation Lenguage).
    • Introducir nuevos registros dentro de una tabla.
    • Actualizar registros dentro de una tabla.
    • Eliminar registros dentro de una tabla.
    • Control de transacciones.




L- 2 -
   L
Lenguaje de Manipulación de Datos
   • Las sentencias DML son ejecutadas cuando:
      – Introducir nuevos registros dentro de una tabla.
      – Actualizar registros dentro de una tabla.
      – Eliminar registros dentro de una tabla.
   • El control de transacciones consiste en una colección de
     sentencias DML que permiten manejar el flujo de los
     datos cuando son manipulados.




L- 3-
   L
Agregando un nuevo registro
 DEPARTMENTS
   department_id |    department_name   | manager_id | location_id
  ---------------+----------------------+------------+-------------
              10 | Administration       |        200 |        1700
              20 | Marketing            |        201 |        1800
              30 | Purchasing           |        114 |        1700
              40 | Human Resources      |        203 |        2400
              50 | Shipping             |        121 |        1500
              60 | IT                   |        103 |        1400
              80 | Sales                |        145 |        2500
              90 | Executive            |        100 |        1700
             100 | Finance              |        108 |        1700
  ▪ ▪ ▪
  (27 rows)


   Nuevo Registro                  70 | Public Relations     |        204 |       2700


                                              DEPARTMENTS
                                                department_id |    department_name   | manager_id | location_id
                                               ---------------+----------------------+------------+-------------
                                                           10 | Administration       |        200 |        1700
                                                           20 | Marketing            |        201 |        1800
                                                           30 | Purchasing           |        114 |        1700
                                                           40 | Human Resources      |        203 |        2400
                                                           50 | Shipping             |        121 |        1500
                                                           60 | IT                   |        103 |        1400
                                                           70 | Public Relations     |        204 |        2700
                                                           80 | Sales                |        145 |        2500
                                                           90 | Executive            |        100 |        1700
                                                          100 | Finance              |        108 |        1700
                                               ▪ ▪ ▪
                                               (27 rows)


L- 4 -
   L
Usando la sentencia INSERT


   • Agrega un nuevo registro dentro de una tabla utilizando
     la sentencia INSERT.
   • Con esta sentencia, solo podrá insertar un registro a la
     vez.

   INSERT INTO table [ ( column [, ...] ) ]
   VALUES      ( expression [, ...]);




L- 5-
   L
Consideraciones al insertar
   • Insertar nuevos registros que contengan datos por cada
     columna.
   • La lista de valores debe estar ordenada por el orden de
     las columnas de la tabla.
   • Es opcional listar las columnas en la sentencia INSERT.
   • Encerrar dentro de comillas simples los caracteres y las
     fechas.
   • En caso de que se omite un valor o se agrega la palabra
     null, se agregara por defecto un valor que se encuentra
     especificado en la tabla.




L- 6-
   L
Insertando un nuevo registro

   • No se puede definir un Alias a las tablas.
   • Puede deshacer los cambios de esta sentencia mediante
     el uso de transacciones.

   INSERT INTO departments (department_id, department_name,
                            manager_id,    location_id)
   VALUES      (70, 'Public Relations', 100, 1700);
   INSERT 0 1




L- 7-
   L
Insertando un registro con valores NULL

   •Método implícito: Omite el nombre de la columna en la
   lista.
   INSERT INTO departments (department_id, department_name)
   VALUES      (70, 'Public Relations');
   INSERT 0 1


   •Método explícito: Se indica la palabra NULL en la lista de
   valores.
  INSERT INTO departments
  VALUES      (70, 'Public Relations', NULL, NULL);
  INSERT 0 1




L- 8-
   L
Insertando valores especiales

   La función current_date obtiene la fecha del sistema.


   INSERT INTO employees (employee_id, first_name, last_name,
                          email, phone_number, hire_date,
                          job_id, salary, commission_pct,
                          manager_id, department_id)
   VALUES                (113, 'Louis', 'Popp', 'LPOPP',
                          '515.123.4567', current_date,
                          'AC_ACCOUNT', 6900, NULL, 205, 100);
   INSERT 0 1




L- 9-
   L
Insertando valores en específicos

     Agregando un nuevo empleado.


     INSERT INTO employees
     VALUES      (113,
                 'Louis',
                 'Popp',
                 'LPOPP',
                 '515.123.4567',
                 TO_DATE('FEB 3, 1999', 'MON, MM YYYY'),
                 'AC_ACCOUNT',
                 6900,
                 NULL,
                 205,
                 100);
     INSERT 0 1



L - 10 -
     L
Copiando registros desde otra tabla


     • Escribir la sentencia INSERT con una subconsulta.
     • No requiere el uso de la cláusula VALUES.
     • Debe coincidir el número de columnas de la tabla que se
       encuentra definida en la sentencia INSERT con las que
       retorna la subconsulta.

     INSERT INTO sales_reps (id, name, salary, commission_pct)
       SELECT employee_id, last_name, salary, commission_pct
       FROM   employees
       WHERE job_id LIKE '%REP%';

     INSERT 0 4



L - 11 -
     L
Entendiendo la salida

   Al ejecutar sentencias DML se retorna información
   sobre los registros.
   INSERT INTO departments
   VALUES      (70, 'Public Relations', NULL, NULL);
   INSERT 0 1


   INSERT oid count

    • oid: Es el Object ID (oid) que hace referencia al objeto
      que es afectado, por defecto es 0 y solo se aplica en el
      sentencia INSERT.
    • count: Hace referencia a la cantidad de registros que
      son afectados dependiendo de la sentencia utilizada.
L - 12 -
     L
Modificando valores
           EMPLOYEES
            employee_id | last_name | hire_date |      job_id   | salary | department_id
           -------------+-------------+------------+------------+--------+---------------
                    145 | Russell     | 1996-10-01 | SA_MAN     | 14000 |             80
                    146 | Partners    | 1997-01-05 | SA_MAN     | 13500 |             80
           ▪ ▪ ▪
                    103   |   Hunold      |   1990-01-03   |   IT_PROG   |   9000   |   60
                    104   |   Ernst       |   1991-05-21   |   IT_PROG   |   6000   |   60
                    105   |   Austin      |   1997-06-25   |   IT_PROG   |   4800   |   60
                    106   |   Pataballa   |   1998-02-05   |   IT_PROG   |   4800   |   60
                    107   |   Lorentz     |   1999-02-07   |   IT_PROG   |   4200   |   60

           ▪ ▪ ▪
           (107 rows)



           Se actualizaron los siguientes registros:
            employee_id | last_name | hire_date |      job_id   | salary | department_id
           -------------+-------------+------------+------------+--------+---------------
                    145 | Russell     | 1996-10-01 | SA_MAN     | 14000 |             80
                    146 | Partners    | 1997-01-05 | SA_MAN     | 13500 |             80
           ▪ ▪ ▪
                    103   |   Hunold      |   1990-01-03   |   IT_PROG   |   9000   |   30
                    104   |   Ernst       |   1991-05-21   |   IT_PROG   |   6000   |   30
                    105   |   Austin      |   1997-06-25   |   IT_PROG   |   4800   |   30
                    106   |   Pataballa   |   1998-02-05   |   IT_PROG   |   4800   |   30
                    107   |   Lorentz     |   1999-02-07   |   IT_PROG   |   4200   |   30

           ▪ ▪ ▪
           (107 rows)




L - 13 -
     L
Usando la sentencia UPDATE

     • Modifica un registro existente utilizando la sentencia
       UPDATE.
     • Puede modificar mas de un registro al mismo tiempo.
     • Puede especificar cuales son las columnas que serán
       modificadas.
     • Puede deshacer los cambios de esta sentencia mediante
       el uso de transacciones. No se puede definir un Alias a
       las tablas.

     UPDATE   table
        SET   column = expression [,...]
     [WHERE   condition];



L - 14 -
     L
Modificando un registro

     •Modificando uno o varios registros mediante una condición
     establecida en la cláusula WHERE.
    UPDATE   employees
       SET   department_id = 70
    WHERE    employee_id   = 113;
    UPDATE   1

     •Todos los registros son modificados en una tabla si se
     omite el uso de la cláusula WHERE.
    UPDATE employees
       SET department_id = 110;
    UPDATE 107




L - 15 -
     L
Modificando con subconsultas

     Modificando los datos del job_id y el salary del
     empleado cuyo código es 114, obteniendo los datos a
     modificar del empleado cuyo código es 205.


     UPDATE employees
        SET job_id = (SELECT job_id
                      FROM   employees
                      WHERE employee_id = 205),
            salary = (SELECT salary
                      FROM   employees
                      WHERE employee_id = 205)
     WHERE employee_id = 114;
     UPDATE 1




L - 16 -
     L
Modificando con subconsultas

     Use una subconsultas para determinar una serie de
     valores que permitan modificar el registro dentro de
     una tabla mediante la la sentencia UPDATE.


     UPDATE copy_employees
        SET job_id = (SELECT job_id
                      FROM   employees
                      WHERE employee_id = 205),
            salary = (SELECT salary
                      FROM   employees
                      WHERE employee_id = 205)
     WHERE employee_id = 114;
     UPDATE 1




L - 17 -
     L
Eliminando un registro
           EMPLOYEES
            department_id |    department_name   | manager_id | location_id
           ---------------+----------------------+------------+-------------
                       10 | Administration       |        200 |        1700
                       20 | Marketing            |        201 |        1800
                       30 | Purchasing           |        114 |        1700
                       40 | Human Resources      |        203 |        2400
                       50 | Shipping             |        121 |        1500
                       60 | IT                   |        103 |        1400
                       70 | Public Relations     |        204 |        2700
                       80 | Sales                |        145 |        2500
                       90 | Executive            |        100 |        1700
                      100 | Finance              |        108 |        1700
           ▪ ▪ ▪
           (107 rows)


           Se elimino un registro de la tabla:
            department_id |    department_name   | manager_id | location_id
           ---------------+----------------------+------------+-------------
                       10 | Administration       |        200 |        1700
                       20 | Marketing            |        201 |        1800
                       30 | Purchasing           |        114 |        1700
                       40 | Human Resources      |        203 |        2400
                       50 | Shipping             |        121 |        1500
                       60 | IT                   |        103 |        1400
                       70 | Public Relations     |        204 |        2700
                       80 | Sales                |        145 |        2500
                       90 | Executive            |        100 |        1700
                      110 | Accounting           |        205 |        1700
           ▪ ▪ ▪
           (106 rows)



L - 18 -
     L
Usando la sentencia DELETE

     • Eliminar un registro existente utilizando la sentencia
       DELETE.
     • Puede eliminar mas de un registro al mismo tiempo.
     • No se puede definir un Alias a las tablas.
     • Puede deshacer los cambios de esta sentencia mediante
       el uso de transacciones.
     DELETE FROM table
     WHERE condition;




L - 19 -
     L
Eliminando un registro

     •Especifique el registro a eliminar mediante un criterio
     establecido en la cláusula WHERE.
    DELETE FROM departments
    WHERE       department_name = 'Finance';
    DELETE 1


     •Eliminar todos los registros de una tabla sin usar la
     cláusula WHERE.

    DELETE FROM copy_employees;
    DELETE 68;




L - 20 -
     L
Eliminando con subconsultas

     Use una subconsulta para determinar una serie de
     valores que permitan eliminar registros dentro de una
     tabla mediante la sentencia DELETE.

     DELETE FROM employees
     WHERE       department_id = (SELECT department_id
                                  FROM   departments
                                  WHERE department_name
                                         ILIKE '%Public%');
     DELETE 1




L - 21 -
     L
Sentencia TRUNCATE
     • Elimina todos los registros dentro de una tabla.
     • Es mas eficiente para las tablas con gran cantidad de
       registros que la cláusula DELETE.
     • Solamente puede ser ejecutada por el usuario dueño
       (owner) de la tabla.
     • Puede deshacer los cambios de esta sentencia mediante
       el uso de transacciones.
           Sintaxis:
     TRUNCATE [TABLE] name [,...];


           Ejemplo:
     TRUNCATE copy_employees;

L - 22 -
     L
Transacciones

     Todo sistema gestor de Bases de Datos maneja los
     siguientes conceptos sobre las transacciones:
     • Son un conjunto de acciones que altera el estado original
       de los datos y forman una sola unidad.
     • Todo lenguaje que manipula los datos (DML) son
       administrador por las transacciones.
     • Las transacciones pueden interrumpir un conjunto de
       acciones o hacerlas permanentes.
     • Mantiene la integridad de los datos cuando alguna
       acción falla.




L - 23 -
     L
Comandos utilizados

     Los siguientes comandos son utilizados para tener
     control de las transacciones:
     •     BEGIN
     •     COMMIT
     •     ROLLBACK
     •     SAVEPOINT
     •     ROLLBACK TO
     •     RELEASE SAVEPOINT




L - 24 -
     L
Usando el comando BEGIN y COMMIT
 Linea de tiempo
                                    •Se inicia un conjunto de
                   BEGIN;           transacciones mediante el
                                    comando BEGIN;
                   INSERT INTO...
                                    •L u e g o s e p r o c e d e a
                   UPDATE...
                                    utilizar cualquier comando
                                    de tipo DML (INSERT,
                                    UPDATE y/o DELETE) para
                   UPDATE...
                                    manipular los datos.
                   DELETE...
                                    •Por ultimo, se finaliza las
                                    transacciones haciendo los
                   COMMIT;          cambios permanentes con
                                    el comando COMMIT;.
L - 25 -
     L
Ejemplo del comando BEGIN y COMMIT
     HR=# BEGIN;
     BEGIN
     HR=# SELECT * FROM departments WHERE department_id = 270;
      department_id | department_name | manager_id | location_id
     ---------------+-----------------+------------+-------------
                 270 | Payroll        |            |        1700
     (1 row)

     HR=# UPDATE departments SET location_id = 2500 WHERE department_id = 270;
     UPDATE 1
     HR=# SELECT * FROM departments WHERE department_id = 270;
      department_id | department_name | manager_id | location_id
     ---------------+-----------------+------------+-------------
                270 | Payroll         |            |        2500
     (1 row)

     HR=# COMMIT;
     COMMIT
     HR=# SELECT * FROM departments WHERE department_id = 270;
     department_id | department_name | manager_id | location_id
     ---------------+-----------------+------------+-------------
                270 | Payroll         |            |        2500
     (1 row)

     HR=#

L - 26 -
     L
Usando el comando ROLLBACK
 Linea de tiempo

                   BEGIN;

                               La ultima actualización que se
                   UPDATE...
                               realizo a generado un error
                               inesperado o un resultado no
                   UPDATE...
                               deseado, para deshacer
                               todos los cambios se utiliza el
                   UPDATE...
                               comando ROLLBACK.

                   ERROR...


                   ROLLBACK;


L - 27 -
     L
Ejemplo del comando ROLLBACK
     HR=# BEGIN;
     BEGIN
     HR=# SELECT * FROM departments WHERE department_id = 270;
      department_id | department_name | manager_id | location_id
     ---------------+-----------------+------------+-------------
                 270 | Payroll        |            |        1700
     (1 row)

     HR=# UPDATE departments SET location_id = 2500 WHERE department_id = 270;
     UPDATE 1
     HR=# SELECT * FROM departments WHERE department_id = 270;
      department_id | department_name | manager_id | location_id
     ---------------+-----------------+------------+-------------
                270 | Payroll         |            |        2500
     (1 row)

     HR=# ROLLBACK;
     ROLLBACK
     HR=# SELECT * FROM departments WHERE department_id = 270;
     department_id | department_name | manager_id | location_id
     ---------------+-----------------+------------+-------------
                270 | Payroll         |            |        1700
     (1 row)

     HR=# COMMIT;

L - 28 -
     L
Usando el comando SAVEPOINT
 Linea de tiempo

                   BEGIN;
                                    La ultima actualización que se
                   UPDATE...        realizo a generado un error
                                    inesperado o un resultado no
                   SAVEPOINT A;     deseado, para deshacer
                                    todos los cambios hasta el
                   UPDATE...        punto de control A se utiliza el
                                    comando ROLLBACK TO.
                   ERROR...


                   ROLLBACK TO A;


L - 29 -
     L
Ejemplo del comando SAVEPOINT
     HR=# BEGIN;
     BEGIN
     HR=# SELECT * FROM departments WHERE department_id = 270;
      department_id | department_name | manager_id | location_id
     ---------------+-----------------+------------+-------------
                 270 | Payroll        |            |        1700
     (1 row)

     HR=# UPDATE departments SET location_id = 2500 WHERE department_id = 270;
     UPDATE 1
     HR=# SAVEPOINT A;
     SAVEPOINT
     HR=# SELECT * FROM departments WHERE department_id = 270;
     department_id | department_name | manager_id | location_id
     ---------------+-----------------+------------+-------------
                270 | Payroll         |            |        2500
     (1 row)
     HR=# UPDATE departments SET location_id = 1000 WHERE department_id = 270;
     UPDATE 1
     HR=# ROLLBACK TO A;
     ROLLBACK
     HR=# COMMIT;
     COMMIT



L - 30 -
     L
Usando el comando RELEASE SAVEPOINT
 Linea de tiempo
                   BEGIN;

                   UPDATE...
                                          Se determino que el
                                          punto de control B ya no
                   SAVEPOINT A;           es utilizado, todos los
                                          datos afectados de dicho
                   UPDATE...              punto pasaran a ser del
                                          punto de control A, para
                   SAVEPOINT B;
                                          realizar este cambio se
                   UPDATE...
                                          utiliza el comando
                                          RELEASE SAVEPOINT.
                   RELEASE SAVEPOINT B;

                   COMMIT;

L - 31 -
     L
Ejemplo del comando SAVEPOINT
     HR=# BEGIN;
     BEGIN
     HR=# UPDATE departments SET location_id = 2500 WHERE department_id = 270;
     UPDATE 1
     HR=# SAVEPOINT A;
     SAVEPOINT
     HR=# UPDATE departments SET location_id = 2500 WHERE department_id = 260;
     UPDATE 1
     HR=# SAVEPOINT B;
     SAVEPOINT
     HR=# UPDATE departments SET location_id = 2500 WHERE department_id = 250;
     UPDATE 1
     HR=# SELECT * FROM departments WHERE department_id IN (270, 260, 250);
      department_id | department_name | manager_id | location_id
     ---------------+-----------------+------------+-------------
                 270 | Payroll        |            |        2500
                 260 | Recruiting     |            |        2500
                 250 | Retail Sales   |            |        2500
     (3 rows)
     HR=# RELEASE SAVEPOINT B;
     RELEASE
     HR=# ROLLBACK TO A;
     ROLLBACK
     department_id | department_name | manager_id | location_id
     ---------------+-----------------+------------+-------------
                 270 | Payroll        |            |        2500
                 260 | Recruiting     |            |        1700
                 250 | Retail Sales   |            |        1700
     (3 rows)
     HR=# COMMIT;
     COMMIT

L - 32 -
     L
Resumen

     En esta lección, usted debió entender como:
     • Utilizar los comandos DML que permiten insertar o
       alterar los datos.
     • Eliminar el contenido de una tabla.
     • Manejo de las transacciones.




L - 33 -
     L

Más contenido relacionado

La actualidad más candente

CreacióN De Objetos En MySQL
CreacióN De Objetos En MySQLCreacióN De Objetos En MySQL
CreacióN De Objetos En MySQL
alexmerono
 
INDICES EN SQL SERVER
INDICES EN SQL SERVERINDICES EN SQL SERVER
INDICES EN SQL SERVER
Darwin Durand
 
Modelo de datos
Modelo de datosModelo de datos
Modelo de datos
Cristian Salazar C.
 
Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos
josecuartas
 
Perspectiva practica de la administracion de base de datos
Perspectiva practica de la administracion de base de datosPerspectiva practica de la administracion de base de datos
Perspectiva practica de la administracion de base de datos
Diana Vélez
 
Normalizacion boyce codd_4_fn
Normalizacion boyce codd_4_fnNormalizacion boyce codd_4_fn
Normalizacion boyce codd_4_fn
Luis Jherry
 
Unidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos ConceptualUnidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos Conceptual
Sergio Sanchez
 
Comandos ddl y dml
Comandos ddl y dmlComandos ddl y dml
Comandos ddl y dml
Gerardo
 
Normalización de Base de Datos
Normalización de Base de DatosNormalización de Base de Datos
Normalización de Base de Datos
Mayra Romero
 
DDL - Lenguaje de definición de datos
DDL - Lenguaje de definición de datosDDL - Lenguaje de definición de datos
DDL - Lenguaje de definición de datos
vargasaldanajohanna
 
Comandos utilizados en sql
Comandos utilizados en sqlComandos utilizados en sql
Comandos utilizados en sql
Byron Eras
 
Listas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de DatosListas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de Datos
Yorka Marisol Perez Feliz
 
Introduction to PL/SQL
Introduction to PL/SQLIntroduction to PL/SQL
Introduction to PL/SQL
Kailash N
 
PostgreSQL - Lección 5 - Recibiendo datos desde múltiples tablas
PostgreSQL - Lección 5 - Recibiendo datos desde múltiples tablasPostgreSQL - Lección 5 - Recibiendo datos desde múltiples tablas
PostgreSQL - Lección 5 - Recibiendo datos desde múltiples tablas
Nicola Strappazzon C.
 
Introduction to Oracle
Introduction to OracleIntroduction to Oracle
Introduction to Oracle
Achmad Solichin
 
03 Modelo Relacional
03 Modelo Relacional03 Modelo Relacional
03 Modelo Relacional
Kudos S.A.S
 
hashing y colisiones
hashing y colisioneshashing y colisiones
hashing y colisiones
emiru48
 
Tipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relacionesTipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relaciones
basilioj
 
Comandos y funciones sql postgres
Comandos y funciones sql postgresComandos y funciones sql postgres
Comandos y funciones sql postgres
HIPOLITO GRULLON
 
Normalization
NormalizationNormalization
Normalization
Ahmed Farag
 

La actualidad más candente (20)

CreacióN De Objetos En MySQL
CreacióN De Objetos En MySQLCreacióN De Objetos En MySQL
CreacióN De Objetos En MySQL
 
INDICES EN SQL SERVER
INDICES EN SQL SERVERINDICES EN SQL SERVER
INDICES EN SQL SERVER
 
Modelo de datos
Modelo de datosModelo de datos
Modelo de datos
 
Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos
 
Perspectiva practica de la administracion de base de datos
Perspectiva practica de la administracion de base de datosPerspectiva practica de la administracion de base de datos
Perspectiva practica de la administracion de base de datos
 
Normalizacion boyce codd_4_fn
Normalizacion boyce codd_4_fnNormalizacion boyce codd_4_fn
Normalizacion boyce codd_4_fn
 
Unidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos ConceptualUnidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos Conceptual
 
Comandos ddl y dml
Comandos ddl y dmlComandos ddl y dml
Comandos ddl y dml
 
Normalización de Base de Datos
Normalización de Base de DatosNormalización de Base de Datos
Normalización de Base de Datos
 
DDL - Lenguaje de definición de datos
DDL - Lenguaje de definición de datosDDL - Lenguaje de definición de datos
DDL - Lenguaje de definición de datos
 
Comandos utilizados en sql
Comandos utilizados en sqlComandos utilizados en sql
Comandos utilizados en sql
 
Listas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de DatosListas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de Datos
 
Introduction to PL/SQL
Introduction to PL/SQLIntroduction to PL/SQL
Introduction to PL/SQL
 
PostgreSQL - Lección 5 - Recibiendo datos desde múltiples tablas
PostgreSQL - Lección 5 - Recibiendo datos desde múltiples tablasPostgreSQL - Lección 5 - Recibiendo datos desde múltiples tablas
PostgreSQL - Lección 5 - Recibiendo datos desde múltiples tablas
 
Introduction to Oracle
Introduction to OracleIntroduction to Oracle
Introduction to Oracle
 
03 Modelo Relacional
03 Modelo Relacional03 Modelo Relacional
03 Modelo Relacional
 
hashing y colisiones
hashing y colisioneshashing y colisiones
hashing y colisiones
 
Tipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relacionesTipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relaciones
 
Comandos y funciones sql postgres
Comandos y funciones sql postgresComandos y funciones sql postgres
Comandos y funciones sql postgres
 
Normalization
NormalizationNormalization
Normalization
 

Destacado

PostgreSQL - Lección 2 - Restringiendo y Ordenando los Datos retornados por e...
PostgreSQL - Lección 2 - Restringiendo y Ordenando los Datos retornados por e...PostgreSQL - Lección 2 - Restringiendo y Ordenando los Datos retornados por e...
PostgreSQL - Lección 2 - Restringiendo y Ordenando los Datos retornados por e...
Nicola Strappazzon C.
 
PostgreSQL - Lección 7 - Usando los operadores de conjunto
PostgreSQL - Lección 7 - Usando los operadores de conjuntoPostgreSQL - Lección 7 - Usando los operadores de conjunto
PostgreSQL - Lección 7 - Usando los operadores de conjunto
Nicola Strappazzon C.
 
PostgreSQL - Lección 6 - Subconsultas
PostgreSQL - Lección 6 - SubconsultasPostgreSQL - Lección 6 - Subconsultas
PostgreSQL - Lección 6 - Subconsultas
Nicola Strappazzon C.
 
PostgreSQL - Lección 10 - Vistas
PostgreSQL - Lección 10 - VistasPostgreSQL - Lección 10 - Vistas
PostgreSQL - Lección 10 - Vistas
Nicola Strappazzon C.
 
PostgreSQL - Lección 9 - Tablas
PostgreSQL - Lección 9 - TablasPostgreSQL - Lección 9 - Tablas
PostgreSQL - Lección 9 - Tablas
Nicola Strappazzon C.
 
PostgreSQL - Lección 3 - Usando funciones simples para manipular la salida de...
PostgreSQL - Lección 3 - Usando funciones simples para manipular la salida de...PostgreSQL - Lección 3 - Usando funciones simples para manipular la salida de...
PostgreSQL - Lección 3 - Usando funciones simples para manipular la salida de...
Nicola Strappazzon C.
 
PostgreSQL - Lección 4 - Usando funciones para manipular grupos de datos
PostgreSQL - Lección 4 - Usando funciones para manipular grupos de datosPostgreSQL - Lección 4 - Usando funciones para manipular grupos de datos
PostgreSQL - Lección 4 - Usando funciones para manipular grupos de datos
Nicola Strappazzon C.
 
Flexible budget
Flexible budgetFlexible budget
Flexible budget
rini syafrizal
 
Historiacompd
HistoriacompdHistoriacompd
Historiacompd
Luz Arias
 
17006 linea-de-tiempo-de-la-computacion
17006 linea-de-tiempo-de-la-computacion17006 linea-de-tiempo-de-la-computacion
17006 linea-de-tiempo-de-la-computacion
Larry's Ynoue Guzman
 
Development Applications 2008 05 26
Development Applications 2008 05 26Development Applications 2008 05 26
Development Applications 2008 05 26
jgabateman
 
Shortening the Feedback Loop: How Spotify’s Big Data Ecosystem has evolved to...
Shortening the Feedback Loop: How Spotify’s Big Data Ecosystem has evolved to...Shortening the Feedback Loop: How Spotify’s Big Data Ecosystem has evolved to...
Shortening the Feedback Loop: How Spotify’s Big Data Ecosystem has evolved to...
Big Data Spain
 
Electrical Engineering Basics - What Design Engineers Need to Know
Electrical Engineering Basics - What Design Engineers Need to KnowElectrical Engineering Basics - What Design Engineers Need to Know
Electrical Engineering Basics - What Design Engineers Need to Know
milestoneseng
 
0 to 2,500 Customers with No Cold Calls
0 to 2,500 Customers with No Cold Calls0 to 2,500 Customers with No Cold Calls
0 to 2,500 Customers with No Cold Calls
HubSpot
 
MasterPlus - Sistema Binário
MasterPlus - Sistema BinárioMasterPlus - Sistema Binário
MasterPlus - Sistema Binário
MasterplusBrasil
 
Strip your charts
Strip your chartsStrip your charts
Strip your charts
uwseidl
 
Apresentacao
ApresentacaoApresentacao
Resultado Final do Concurso de Bom Sucesso
Resultado Final do Concurso de Bom Sucesso Resultado Final do Concurso de Bom Sucesso
Resultado Final do Concurso de Bom Sucesso
Joao Rivonaldo Silva
 
Exames médicos valores - União Sindical
Exames médicos   valores - União SindicalExames médicos   valores - União Sindical
Exames médicos valores - União Sindical
sinteimp
 
Option Strategies
Option StrategiesOption Strategies
Option Strategies
Ashwini Mahale
 

Destacado (20)

PostgreSQL - Lección 2 - Restringiendo y Ordenando los Datos retornados por e...
PostgreSQL - Lección 2 - Restringiendo y Ordenando los Datos retornados por e...PostgreSQL - Lección 2 - Restringiendo y Ordenando los Datos retornados por e...
PostgreSQL - Lección 2 - Restringiendo y Ordenando los Datos retornados por e...
 
PostgreSQL - Lección 7 - Usando los operadores de conjunto
PostgreSQL - Lección 7 - Usando los operadores de conjuntoPostgreSQL - Lección 7 - Usando los operadores de conjunto
PostgreSQL - Lección 7 - Usando los operadores de conjunto
 
PostgreSQL - Lección 6 - Subconsultas
PostgreSQL - Lección 6 - SubconsultasPostgreSQL - Lección 6 - Subconsultas
PostgreSQL - Lección 6 - Subconsultas
 
PostgreSQL - Lección 10 - Vistas
PostgreSQL - Lección 10 - VistasPostgreSQL - Lección 10 - Vistas
PostgreSQL - Lección 10 - Vistas
 
PostgreSQL - Lección 9 - Tablas
PostgreSQL - Lección 9 - TablasPostgreSQL - Lección 9 - Tablas
PostgreSQL - Lección 9 - Tablas
 
PostgreSQL - Lección 3 - Usando funciones simples para manipular la salida de...
PostgreSQL - Lección 3 - Usando funciones simples para manipular la salida de...PostgreSQL - Lección 3 - Usando funciones simples para manipular la salida de...
PostgreSQL - Lección 3 - Usando funciones simples para manipular la salida de...
 
PostgreSQL - Lección 4 - Usando funciones para manipular grupos de datos
PostgreSQL - Lección 4 - Usando funciones para manipular grupos de datosPostgreSQL - Lección 4 - Usando funciones para manipular grupos de datos
PostgreSQL - Lección 4 - Usando funciones para manipular grupos de datos
 
Flexible budget
Flexible budgetFlexible budget
Flexible budget
 
Historiacompd
HistoriacompdHistoriacompd
Historiacompd
 
17006 linea-de-tiempo-de-la-computacion
17006 linea-de-tiempo-de-la-computacion17006 linea-de-tiempo-de-la-computacion
17006 linea-de-tiempo-de-la-computacion
 
Development Applications 2008 05 26
Development Applications 2008 05 26Development Applications 2008 05 26
Development Applications 2008 05 26
 
Shortening the Feedback Loop: How Spotify’s Big Data Ecosystem has evolved to...
Shortening the Feedback Loop: How Spotify’s Big Data Ecosystem has evolved to...Shortening the Feedback Loop: How Spotify’s Big Data Ecosystem has evolved to...
Shortening the Feedback Loop: How Spotify’s Big Data Ecosystem has evolved to...
 
Electrical Engineering Basics - What Design Engineers Need to Know
Electrical Engineering Basics - What Design Engineers Need to KnowElectrical Engineering Basics - What Design Engineers Need to Know
Electrical Engineering Basics - What Design Engineers Need to Know
 
0 to 2,500 Customers with No Cold Calls
0 to 2,500 Customers with No Cold Calls0 to 2,500 Customers with No Cold Calls
0 to 2,500 Customers with No Cold Calls
 
MasterPlus - Sistema Binário
MasterPlus - Sistema BinárioMasterPlus - Sistema Binário
MasterPlus - Sistema Binário
 
Strip your charts
Strip your chartsStrip your charts
Strip your charts
 
Apresentacao
ApresentacaoApresentacao
Apresentacao
 
Resultado Final do Concurso de Bom Sucesso
Resultado Final do Concurso de Bom Sucesso Resultado Final do Concurso de Bom Sucesso
Resultado Final do Concurso de Bom Sucesso
 
Exames médicos valores - União Sindical
Exames médicos   valores - União SindicalExames médicos   valores - União Sindical
Exames médicos valores - União Sindical
 
Option Strategies
Option StrategiesOption Strategies
Option Strategies
 

Similar a PostgreSQL - Lección 8 - Manipulando Datos y Transacciones

Postgre S Q L 4
Postgre S Q L 4Postgre S Q L 4
Postgre S Q L 4
guest9cfb82
 
Ejercicios sql access
Ejercicios sql accessEjercicios sql access
Ejercicios sql access
Yoly QC
 
Ejercicios sql access
Ejercicios sql accessEjercicios sql access
Ejercicios sql access
Dyego de Alvaro
 
Ejercicios sql access
Ejercicios sql accessEjercicios sql access
Ejercicios sql access
Cesar Yupa
 
Ejercicios sql access
Ejercicios sql accessEjercicios sql access
Ejercicios sql access
Liliana Charco
 
Ejercicios sql access
Ejercicios sql accessEjercicios sql access
Ejercicios sql access
William Lozano
 
Ejercicios sql access
Ejercicios sql accessEjercicios sql access
Ejercicios sql access
Any Saula
 
Ejercicios sql access
Ejercicios sql accessEjercicios sql access
Ejercicios sql access
jhonny tenesaca
 
Ejercicios sql access
Ejercicios sql accessEjercicios sql access
Ejercicios sql access
Doris Aguagallo
 
333
333333
Ejercicios sql access
Ejercicios sql accessEjercicios sql access
Ejercicios sql access
Inés Rosero
 
Ejercicios sql access
Ejercicios sql accessEjercicios sql access
Ejercicios sql access
Inés Rosero
 
Ejercicios sql access
Ejercicios sql accessEjercicios sql access
Ejercicios sql access
Hector Lumisaca Pinduisaca
 
Ejercicios sql access.
Ejercicios sql access.Ejercicios sql access.
Ejercicios sql access.
Oscar Valdivieso
 

Similar a PostgreSQL - Lección 8 - Manipulando Datos y Transacciones (14)

Postgre S Q L 4
Postgre S Q L 4Postgre S Q L 4
Postgre S Q L 4
 
Ejercicios sql access
Ejercicios sql accessEjercicios sql access
Ejercicios sql access
 
Ejercicios sql access
Ejercicios sql accessEjercicios sql access
Ejercicios sql access
 
Ejercicios sql access
Ejercicios sql accessEjercicios sql access
Ejercicios sql access
 
Ejercicios sql access
Ejercicios sql accessEjercicios sql access
Ejercicios sql access
 
Ejercicios sql access
Ejercicios sql accessEjercicios sql access
Ejercicios sql access
 
Ejercicios sql access
Ejercicios sql accessEjercicios sql access
Ejercicios sql access
 
Ejercicios sql access
Ejercicios sql accessEjercicios sql access
Ejercicios sql access
 
Ejercicios sql access
Ejercicios sql accessEjercicios sql access
Ejercicios sql access
 
333
333333
333
 
Ejercicios sql access
Ejercicios sql accessEjercicios sql access
Ejercicios sql access
 
Ejercicios sql access
Ejercicios sql accessEjercicios sql access
Ejercicios sql access
 
Ejercicios sql access
Ejercicios sql accessEjercicios sql access
Ejercicios sql access
 
Ejercicios sql access.
Ejercicios sql access.Ejercicios sql access.
Ejercicios sql access.
 

Último

mantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptxmantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptx
MiguelAtencio10
 
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdfPresentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
giampierdiaz5
 
El uso de las TIC por Cecilia Pozos S..pptx
El uso de las TIC  por Cecilia Pozos S..pptxEl uso de las TIC  por Cecilia Pozos S..pptx
El uso de las TIC por Cecilia Pozos S..pptx
cecypozos703
 
EXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDAD
EXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDADEXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDAD
EXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDAD
AngelCristhianMB
 
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANOREVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
gisellearanguren1
 
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
AbrahamCastillo42
 
Programming & Artificial Intelligence ebook.pdf
Programming & Artificial Intelligence ebook.pdfProgramming & Artificial Intelligence ebook.pdf
Programming & Artificial Intelligence ebook.pdf
Manuel Diaz
 
La Inteligencia Artificial en la actualidad.docx
La Inteligencia Artificial en la actualidad.docxLa Inteligencia Artificial en la actualidad.docx
La Inteligencia Artificial en la actualidad.docx
luiscohailatenazoa0
 
Flows: Mejores Prácticas y Nuevos Features
Flows: Mejores Prácticas y Nuevos FeaturesFlows: Mejores Prácticas y Nuevos Features
Flows: Mejores Prácticas y Nuevos Features
Paola De la Torre
 
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdfPLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
70244530
 
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
AMADO SALVADOR
 
Second Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro TapiaSecond Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro Tapia
al050121024
 
Manual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computoManual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computo
mantenimientocarbra6
 
625204013-64-Camino-a-----La-Lectura.pdf
625204013-64-Camino-a-----La-Lectura.pdf625204013-64-Camino-a-----La-Lectura.pdf
625204013-64-Camino-a-----La-Lectura.pdf
yuberpalma
 
Nuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsadNuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsad
larapalaciosmonzon28
 
computacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADOcomputacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADO
YaniEscobar2
 
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
codesiret
 
TIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololoTIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololo
KukiiSanchez
 
Modo test refrigeradores y codigos de errores 2018 V2.pdf
Modo test refrigeradores y codigos de errores 2018 V2.pdfModo test refrigeradores y codigos de errores 2018 V2.pdf
Modo test refrigeradores y codigos de errores 2018 V2.pdf
ranierglez
 
Inteligencia Artificial
Inteligencia ArtificialInteligencia Artificial
Inteligencia Artificial
YashiraPaye
 

Último (20)

mantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptxmantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptx
 
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdfPresentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
 
El uso de las TIC por Cecilia Pozos S..pptx
El uso de las TIC  por Cecilia Pozos S..pptxEl uso de las TIC  por Cecilia Pozos S..pptx
El uso de las TIC por Cecilia Pozos S..pptx
 
EXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDAD
EXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDADEXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDAD
EXAMEN DE TOPOGRAFIA RESUELTO-2017 CURSO DE UNIVERSIDAD
 
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANOREVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
 
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
 
Programming & Artificial Intelligence ebook.pdf
Programming & Artificial Intelligence ebook.pdfProgramming & Artificial Intelligence ebook.pdf
Programming & Artificial Intelligence ebook.pdf
 
La Inteligencia Artificial en la actualidad.docx
La Inteligencia Artificial en la actualidad.docxLa Inteligencia Artificial en la actualidad.docx
La Inteligencia Artificial en la actualidad.docx
 
Flows: Mejores Prácticas y Nuevos Features
Flows: Mejores Prácticas y Nuevos FeaturesFlows: Mejores Prácticas y Nuevos Features
Flows: Mejores Prácticas y Nuevos Features
 
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdfPLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
 
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
 
Second Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro TapiaSecond Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro Tapia
 
Manual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computoManual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computo
 
625204013-64-Camino-a-----La-Lectura.pdf
625204013-64-Camino-a-----La-Lectura.pdf625204013-64-Camino-a-----La-Lectura.pdf
625204013-64-Camino-a-----La-Lectura.pdf
 
Nuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsadNuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsad
 
computacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADOcomputacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADO
 
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
 
TIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololoTIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololo
 
Modo test refrigeradores y codigos de errores 2018 V2.pdf
Modo test refrigeradores y codigos de errores 2018 V2.pdfModo test refrigeradores y codigos de errores 2018 V2.pdf
Modo test refrigeradores y codigos de errores 2018 V2.pdf
 
Inteligencia Artificial
Inteligencia ArtificialInteligencia Artificial
Inteligencia Artificial
 

PostgreSQL - Lección 8 - Manipulando Datos y Transacciones

  • 1. Autor: Nicola Strappazzon C. e-mail: nicola51980@gmail.com 8 Blog: http://www.swapbytes.com/ Revisión: 17/11/11 Lección Manipulando Datos y Transacciones Este material se encuentra basado en el curso de Fundamentos a SQL de ORACLE, el cual es adaptado para el producto PostgreSQL, todos los ejemplos, códigos fuentes y la Base de Datos HR es propiedad de ORACLE.
  • 2. Objetivos Al completar esta lección usted podrá entender los siguientes puntos: • Describir cada uno de los lenguajes de manipulación de datos (DML, Data Manipulation Lenguage). • Introducir nuevos registros dentro de una tabla. • Actualizar registros dentro de una tabla. • Eliminar registros dentro de una tabla. • Control de transacciones. L- 2 - L
  • 3. Lenguaje de Manipulación de Datos • Las sentencias DML son ejecutadas cuando: – Introducir nuevos registros dentro de una tabla. – Actualizar registros dentro de una tabla. – Eliminar registros dentro de una tabla. • El control de transacciones consiste en una colección de sentencias DML que permiten manejar el flujo de los datos cuando son manipulados. L- 3- L
  • 4. Agregando un nuevo registro DEPARTMENTS department_id | department_name | manager_id | location_id ---------------+----------------------+------------+------------- 10 | Administration | 200 | 1700 20 | Marketing | 201 | 1800 30 | Purchasing | 114 | 1700 40 | Human Resources | 203 | 2400 50 | Shipping | 121 | 1500 60 | IT | 103 | 1400 80 | Sales | 145 | 2500 90 | Executive | 100 | 1700 100 | Finance | 108 | 1700 ▪ ▪ ▪ (27 rows) Nuevo Registro 70 | Public Relations | 204 | 2700 DEPARTMENTS department_id | department_name | manager_id | location_id ---------------+----------------------+------------+------------- 10 | Administration | 200 | 1700 20 | Marketing | 201 | 1800 30 | Purchasing | 114 | 1700 40 | Human Resources | 203 | 2400 50 | Shipping | 121 | 1500 60 | IT | 103 | 1400 70 | Public Relations | 204 | 2700 80 | Sales | 145 | 2500 90 | Executive | 100 | 1700 100 | Finance | 108 | 1700 ▪ ▪ ▪ (27 rows) L- 4 - L
  • 5. Usando la sentencia INSERT • Agrega un nuevo registro dentro de una tabla utilizando la sentencia INSERT. • Con esta sentencia, solo podrá insertar un registro a la vez. INSERT INTO table [ ( column [, ...] ) ] VALUES ( expression [, ...]); L- 5- L
  • 6. Consideraciones al insertar • Insertar nuevos registros que contengan datos por cada columna. • La lista de valores debe estar ordenada por el orden de las columnas de la tabla. • Es opcional listar las columnas en la sentencia INSERT. • Encerrar dentro de comillas simples los caracteres y las fechas. • En caso de que se omite un valor o se agrega la palabra null, se agregara por defecto un valor que se encuentra especificado en la tabla. L- 6- L
  • 7. Insertando un nuevo registro • No se puede definir un Alias a las tablas. • Puede deshacer los cambios de esta sentencia mediante el uso de transacciones. INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES (70, 'Public Relations', 100, 1700); INSERT 0 1 L- 7- L
  • 8. Insertando un registro con valores NULL •Método implícito: Omite el nombre de la columna en la lista. INSERT INTO departments (department_id, department_name) VALUES (70, 'Public Relations'); INSERT 0 1 •Método explícito: Se indica la palabra NULL en la lista de valores. INSERT INTO departments VALUES (70, 'Public Relations', NULL, NULL); INSERT 0 1 L- 8- L
  • 9. Insertando valores especiales La función current_date obtiene la fecha del sistema. INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES (113, 'Louis', 'Popp', 'LPOPP', '515.123.4567', current_date, 'AC_ACCOUNT', 6900, NULL, 205, 100); INSERT 0 1 L- 9- L
  • 10. Insertando valores en específicos Agregando un nuevo empleado. INSERT INTO employees VALUES (113, 'Louis', 'Popp', 'LPOPP', '515.123.4567', TO_DATE('FEB 3, 1999', 'MON, MM YYYY'), 'AC_ACCOUNT', 6900, NULL, 205, 100); INSERT 0 1 L - 10 - L
  • 11. Copiando registros desde otra tabla • Escribir la sentencia INSERT con una subconsulta. • No requiere el uso de la cláusula VALUES. • Debe coincidir el número de columnas de la tabla que se encuentra definida en la sentencia INSERT con las que retorna la subconsulta. INSERT INTO sales_reps (id, name, salary, commission_pct) SELECT employee_id, last_name, salary, commission_pct FROM employees WHERE job_id LIKE '%REP%'; INSERT 0 4 L - 11 - L
  • 12. Entendiendo la salida Al ejecutar sentencias DML se retorna información sobre los registros. INSERT INTO departments VALUES (70, 'Public Relations', NULL, NULL); INSERT 0 1 INSERT oid count • oid: Es el Object ID (oid) que hace referencia al objeto que es afectado, por defecto es 0 y solo se aplica en el sentencia INSERT. • count: Hace referencia a la cantidad de registros que son afectados dependiendo de la sentencia utilizada. L - 12 - L
  • 13. Modificando valores EMPLOYEES employee_id | last_name | hire_date | job_id | salary | department_id -------------+-------------+------------+------------+--------+--------------- 145 | Russell | 1996-10-01 | SA_MAN | 14000 | 80 146 | Partners | 1997-01-05 | SA_MAN | 13500 | 80 ▪ ▪ ▪ 103 | Hunold | 1990-01-03 | IT_PROG | 9000 | 60 104 | Ernst | 1991-05-21 | IT_PROG | 6000 | 60 105 | Austin | 1997-06-25 | IT_PROG | 4800 | 60 106 | Pataballa | 1998-02-05 | IT_PROG | 4800 | 60 107 | Lorentz | 1999-02-07 | IT_PROG | 4200 | 60 ▪ ▪ ▪ (107 rows) Se actualizaron los siguientes registros: employee_id | last_name | hire_date | job_id | salary | department_id -------------+-------------+------------+------------+--------+--------------- 145 | Russell | 1996-10-01 | SA_MAN | 14000 | 80 146 | Partners | 1997-01-05 | SA_MAN | 13500 | 80 ▪ ▪ ▪ 103 | Hunold | 1990-01-03 | IT_PROG | 9000 | 30 104 | Ernst | 1991-05-21 | IT_PROG | 6000 | 30 105 | Austin | 1997-06-25 | IT_PROG | 4800 | 30 106 | Pataballa | 1998-02-05 | IT_PROG | 4800 | 30 107 | Lorentz | 1999-02-07 | IT_PROG | 4200 | 30 ▪ ▪ ▪ (107 rows) L - 13 - L
  • 14. Usando la sentencia UPDATE • Modifica un registro existente utilizando la sentencia UPDATE. • Puede modificar mas de un registro al mismo tiempo. • Puede especificar cuales son las columnas que serán modificadas. • Puede deshacer los cambios de esta sentencia mediante el uso de transacciones. No se puede definir un Alias a las tablas. UPDATE table SET column = expression [,...] [WHERE condition]; L - 14 - L
  • 15. Modificando un registro •Modificando uno o varios registros mediante una condición establecida en la cláusula WHERE. UPDATE employees SET department_id = 70 WHERE employee_id = 113; UPDATE 1 •Todos los registros son modificados en una tabla si se omite el uso de la cláusula WHERE. UPDATE employees SET department_id = 110; UPDATE 107 L - 15 - L
  • 16. Modificando con subconsultas Modificando los datos del job_id y el salary del empleado cuyo código es 114, obteniendo los datos a modificar del empleado cuyo código es 205. UPDATE employees SET job_id = (SELECT job_id FROM employees WHERE employee_id = 205), salary = (SELECT salary FROM employees WHERE employee_id = 205) WHERE employee_id = 114; UPDATE 1 L - 16 - L
  • 17. Modificando con subconsultas Use una subconsultas para determinar una serie de valores que permitan modificar el registro dentro de una tabla mediante la la sentencia UPDATE. UPDATE copy_employees SET job_id = (SELECT job_id FROM employees WHERE employee_id = 205), salary = (SELECT salary FROM employees WHERE employee_id = 205) WHERE employee_id = 114; UPDATE 1 L - 17 - L
  • 18. Eliminando un registro EMPLOYEES department_id | department_name | manager_id | location_id ---------------+----------------------+------------+------------- 10 | Administration | 200 | 1700 20 | Marketing | 201 | 1800 30 | Purchasing | 114 | 1700 40 | Human Resources | 203 | 2400 50 | Shipping | 121 | 1500 60 | IT | 103 | 1400 70 | Public Relations | 204 | 2700 80 | Sales | 145 | 2500 90 | Executive | 100 | 1700 100 | Finance | 108 | 1700 ▪ ▪ ▪ (107 rows) Se elimino un registro de la tabla: department_id | department_name | manager_id | location_id ---------------+----------------------+------------+------------- 10 | Administration | 200 | 1700 20 | Marketing | 201 | 1800 30 | Purchasing | 114 | 1700 40 | Human Resources | 203 | 2400 50 | Shipping | 121 | 1500 60 | IT | 103 | 1400 70 | Public Relations | 204 | 2700 80 | Sales | 145 | 2500 90 | Executive | 100 | 1700 110 | Accounting | 205 | 1700 ▪ ▪ ▪ (106 rows) L - 18 - L
  • 19. Usando la sentencia DELETE • Eliminar un registro existente utilizando la sentencia DELETE. • Puede eliminar mas de un registro al mismo tiempo. • No se puede definir un Alias a las tablas. • Puede deshacer los cambios de esta sentencia mediante el uso de transacciones. DELETE FROM table WHERE condition; L - 19 - L
  • 20. Eliminando un registro •Especifique el registro a eliminar mediante un criterio establecido en la cláusula WHERE. DELETE FROM departments WHERE department_name = 'Finance'; DELETE 1 •Eliminar todos los registros de una tabla sin usar la cláusula WHERE. DELETE FROM copy_employees; DELETE 68; L - 20 - L
  • 21. Eliminando con subconsultas Use una subconsulta para determinar una serie de valores que permitan eliminar registros dentro de una tabla mediante la sentencia DELETE. DELETE FROM employees WHERE department_id = (SELECT department_id FROM departments WHERE department_name ILIKE '%Public%'); DELETE 1 L - 21 - L
  • 22. Sentencia TRUNCATE • Elimina todos los registros dentro de una tabla. • Es mas eficiente para las tablas con gran cantidad de registros que la cláusula DELETE. • Solamente puede ser ejecutada por el usuario dueño (owner) de la tabla. • Puede deshacer los cambios de esta sentencia mediante el uso de transacciones. Sintaxis: TRUNCATE [TABLE] name [,...]; Ejemplo: TRUNCATE copy_employees; L - 22 - L
  • 23. Transacciones Todo sistema gestor de Bases de Datos maneja los siguientes conceptos sobre las transacciones: • Son un conjunto de acciones que altera el estado original de los datos y forman una sola unidad. • Todo lenguaje que manipula los datos (DML) son administrador por las transacciones. • Las transacciones pueden interrumpir un conjunto de acciones o hacerlas permanentes. • Mantiene la integridad de los datos cuando alguna acción falla. L - 23 - L
  • 24. Comandos utilizados Los siguientes comandos son utilizados para tener control de las transacciones: • BEGIN • COMMIT • ROLLBACK • SAVEPOINT • ROLLBACK TO • RELEASE SAVEPOINT L - 24 - L
  • 25. Usando el comando BEGIN y COMMIT Linea de tiempo •Se inicia un conjunto de BEGIN; transacciones mediante el comando BEGIN; INSERT INTO... •L u e g o s e p r o c e d e a UPDATE... utilizar cualquier comando de tipo DML (INSERT, UPDATE y/o DELETE) para UPDATE... manipular los datos. DELETE... •Por ultimo, se finaliza las transacciones haciendo los COMMIT; cambios permanentes con el comando COMMIT;. L - 25 - L
  • 26. Ejemplo del comando BEGIN y COMMIT HR=# BEGIN; BEGIN HR=# SELECT * FROM departments WHERE department_id = 270; department_id | department_name | manager_id | location_id ---------------+-----------------+------------+------------- 270 | Payroll | | 1700 (1 row) HR=# UPDATE departments SET location_id = 2500 WHERE department_id = 270; UPDATE 1 HR=# SELECT * FROM departments WHERE department_id = 270; department_id | department_name | manager_id | location_id ---------------+-----------------+------------+------------- 270 | Payroll | | 2500 (1 row) HR=# COMMIT; COMMIT HR=# SELECT * FROM departments WHERE department_id = 270; department_id | department_name | manager_id | location_id ---------------+-----------------+------------+------------- 270 | Payroll | | 2500 (1 row) HR=# L - 26 - L
  • 27. Usando el comando ROLLBACK Linea de tiempo BEGIN; La ultima actualización que se UPDATE... realizo a generado un error inesperado o un resultado no UPDATE... deseado, para deshacer todos los cambios se utiliza el UPDATE... comando ROLLBACK. ERROR... ROLLBACK; L - 27 - L
  • 28. Ejemplo del comando ROLLBACK HR=# BEGIN; BEGIN HR=# SELECT * FROM departments WHERE department_id = 270; department_id | department_name | manager_id | location_id ---------------+-----------------+------------+------------- 270 | Payroll | | 1700 (1 row) HR=# UPDATE departments SET location_id = 2500 WHERE department_id = 270; UPDATE 1 HR=# SELECT * FROM departments WHERE department_id = 270; department_id | department_name | manager_id | location_id ---------------+-----------------+------------+------------- 270 | Payroll | | 2500 (1 row) HR=# ROLLBACK; ROLLBACK HR=# SELECT * FROM departments WHERE department_id = 270; department_id | department_name | manager_id | location_id ---------------+-----------------+------------+------------- 270 | Payroll | | 1700 (1 row) HR=# COMMIT; L - 28 - L
  • 29. Usando el comando SAVEPOINT Linea de tiempo BEGIN; La ultima actualización que se UPDATE... realizo a generado un error inesperado o un resultado no SAVEPOINT A; deseado, para deshacer todos los cambios hasta el UPDATE... punto de control A se utiliza el comando ROLLBACK TO. ERROR... ROLLBACK TO A; L - 29 - L
  • 30. Ejemplo del comando SAVEPOINT HR=# BEGIN; BEGIN HR=# SELECT * FROM departments WHERE department_id = 270; department_id | department_name | manager_id | location_id ---------------+-----------------+------------+------------- 270 | Payroll | | 1700 (1 row) HR=# UPDATE departments SET location_id = 2500 WHERE department_id = 270; UPDATE 1 HR=# SAVEPOINT A; SAVEPOINT HR=# SELECT * FROM departments WHERE department_id = 270; department_id | department_name | manager_id | location_id ---------------+-----------------+------------+------------- 270 | Payroll | | 2500 (1 row) HR=# UPDATE departments SET location_id = 1000 WHERE department_id = 270; UPDATE 1 HR=# ROLLBACK TO A; ROLLBACK HR=# COMMIT; COMMIT L - 30 - L
  • 31. Usando el comando RELEASE SAVEPOINT Linea de tiempo BEGIN; UPDATE... Se determino que el punto de control B ya no SAVEPOINT A; es utilizado, todos los datos afectados de dicho UPDATE... punto pasaran a ser del punto de control A, para SAVEPOINT B; realizar este cambio se UPDATE... utiliza el comando RELEASE SAVEPOINT. RELEASE SAVEPOINT B; COMMIT; L - 31 - L
  • 32. Ejemplo del comando SAVEPOINT HR=# BEGIN; BEGIN HR=# UPDATE departments SET location_id = 2500 WHERE department_id = 270; UPDATE 1 HR=# SAVEPOINT A; SAVEPOINT HR=# UPDATE departments SET location_id = 2500 WHERE department_id = 260; UPDATE 1 HR=# SAVEPOINT B; SAVEPOINT HR=# UPDATE departments SET location_id = 2500 WHERE department_id = 250; UPDATE 1 HR=# SELECT * FROM departments WHERE department_id IN (270, 260, 250); department_id | department_name | manager_id | location_id ---------------+-----------------+------------+------------- 270 | Payroll | | 2500 260 | Recruiting | | 2500 250 | Retail Sales | | 2500 (3 rows) HR=# RELEASE SAVEPOINT B; RELEASE HR=# ROLLBACK TO A; ROLLBACK department_id | department_name | manager_id | location_id ---------------+-----------------+------------+------------- 270 | Payroll | | 2500 260 | Recruiting | | 1700 250 | Retail Sales | | 1700 (3 rows) HR=# COMMIT; COMMIT L - 32 - L
  • 33. Resumen En esta lección, usted debió entender como: • Utilizar los comandos DML que permiten insertar o alterar los datos. • Eliminar el contenido de una tabla. • Manejo de las transacciones. L - 33 - L