21
Curso: Base de Datos A vanzado I Equipo de Profesores del Curso Sesión 04 Lenguaje de Manipulación de Datos

Base Datos Avanzado I - Sesion4

Embed Size (px)

DESCRIPTION

Base de datos avanzado

Citation preview

  • 5/24/2018 Base Datos Avanzado I - Sesion4

    1/21

    Curso: Base de Datos Avanzado I

    Equipo de Profesores del Curso

    Sesin 04Lenguaje de Manipulacin

    de Datos

  • 5/24/2018 Base Datos Avanzado I - Sesion4

    2/21

    Base de Datos

    SQL Server 2008

    Logros de la Unidad

    Lenguaje de Manipulacin de datos

    Insertar Registros: INSERT INTO y BULKINSERT

    Eliminar registros: DELETE

    Actualizar registros: UPDATE

    Instruccin MERGE

    Agenda

  • 5/24/2018 Base Datos Avanzado I - Sesion4

    3/21

    Base de Datos

    SQL Server 2008

    Al trmino de la unidad, el alumno recupera,inserta, actualiza y elimina informacin de unabase de datos aplicando mltiples condiciones

    de comparacin o funciones para el manejo decampos tipo fecha.

    Obtiene registros originados por la seleccin deuno o varios grupos haciendo uso de las

    funciones agrupamiento y columna procedentesde dos o ms tablas

    Base de DatosLogro

  • 5/24/2018 Base Datos Avanzado I - Sesion4

    4/21

    Base de Datos

    SQL Server 2008

    Lenguaje de Manipulacin de Datos

    Es un lenguaje proporcionado por el Sistema de

    Gestin de Base de Datosque permite a los

    usuarios de la misma llevar a cabo las tareas de

    consulta o manipulacin de los datos, organizadospor el modelo de datos adecuado.

    Es un vocabulario usado para recuperar y trabajar

    con datos en SQL Server 2008 R2. Use estas

    instrucciones para agregar, modificar, consultar oquitar datos de una base de datos de SQL Server.

  • 5/24/2018 Base Datos Avanzado I - Sesion4

    5/21

    Base de Datos

    SQL Server 2008

    Lenguaje de Manipulacin de Datos

    En este tema vamos a tratar la actualizacin y

    recuperacinde los datos, es decir

    insertar nuevas filas,

    borrar filas o

    cambiar el contenido de las filas de una tabla.

    recuperar los registros de las filas de las tablas.

    Estas operaciones modifican y consultan losdatos almacenados en las tablas pero no su

    estructura, ni su definicin.

  • 5/24/2018 Base Datos Avanzado I - Sesion4

    6/21

    Base de Datos

    SQL Server 2008

    INSERT INTO

    Permite la insercin de nuevos datos en una tabla,

    se realizaaadiendo filas enteras a la tabla.

    La insercin se puede realizar de una fila o de

    varias filas de golpe, veremos las dos opcionespor separado y empezaremos por la insercin de

    una fila.

  • 5/24/2018 Base Datos Avanzado I - Sesion4

    7/21

    Base de Datos

    SQL Server 2008

    INSERT INTO

    Insercin Individual de una FILA

    Para realizar la insercin individual de filas SQL

    posee la instruccin INSERT INTO.

    Su sintaxis es la siguiente:

    Nombre_Tabla tabla donde se desea ingresar los nuevos datos.Nombre_Columna es una lista de nombres de campos de la tabla. El orden importa.

    Expr es una lista de expresiones o valores constantes, separados por comas,

    para dar valor a los distintos campos del registro que se aadir a la tabla. Las

    cadenas de caracteres debern estar encerradas entre comillas.

    INSERT INTO Nombre_tabla

    [(nombre_columna1, nombre_columna1,nombre_columna n..)]

    VALUES(expr1, expr2, expr n...)

  • 5/24/2018 Base Datos Avanzado I - Sesion4

    8/21

    Base de Datos

    SQL Server 2008

    INSERT INTO

    Insercin Mltiples de FILAS

    Permite insertar varios registros en una tabla.

    Pare ello utilice una combinacin de la

    sentencia INSERT junto a una sentenciaSELECT. El resultado es que se insertan todos

    los registros devueltos por la consulta.

    INSERT INTO Nombre_tabla

    [(nombre_columna1, nombre_columna2,..)]SELECT[([,,...])]

    FROM;

  • 5/24/2018 Base Datos Avanzado I - Sesion4

    9/21

    Base de Datos

    SQL Server 2008

    INSERT INTO

    Insercin de datos en variable tipo TABLA

    La sentencia INSERT permite insertar registros

    en una variable tipo tabla.

    -- Crea una variable tipo tablaDECLARE@productotable(

    IDintNOTNULL,

    ProductoNombrevarchar(100) NOTNULL,

    ProductoPreASDecimal, ProductoCanint);

    -- Inserta valores dentro de la variable tipo tabla

    INSERTINTO@producto(ID,ProductoNombre,ProductoPre, ProductoCan)

    SELECT idProducto,nomProducto,precioUnidad, UnidadesEnExistenciaFROMCompra.Productos WHEREprecioUnidad>100;

    --Ver el conjunto de valores de la variable tipo tabla

    SELECT*FROM@ producto;

  • 5/24/2018 Base Datos Avanzado I - Sesion4

    10/21

  • 5/24/2018 Base Datos Avanzado I - Sesion4

    11/21

    Base de Datos

    SQL Server 2008

    BULK INSERT

    Importar los datos de los clientes almacenados

    en el archivo de texto: clientes.txt hacia la tabla

    Negocios.Clientes

    BULK INSERT negocios.clientesFROM 'D:\clientes.txt'

    WITH (FIELDTERMINATOR=',');

  • 5/24/2018 Base Datos Avanzado I - Sesion4

    12/21

    Base de Datos

    SQL Server 2008

    DELETE

    Para borrar datos de una tabla, debemos

    utilizar la sentencia DELETE.

    Su sintaxis es la siguiente:

    DELETE FROM Nombre_Tabla[WHERE{ condicin }]

    Nombre_Tabla nombre de la tabla donde se desea borrar los

    datos.

    La clusula WHEREsigue el mismo formato que la vista en lasentenciaSELECTydetermina qu registros se borrarn.

  • 5/24/2018 Base Datos Avanzado I - Sesion4

    13/21

    Base de Datos

    SQL Server 2008

    TRUNCATE TABLE

    Para realizar un borrado completo de tabladebemos considerar la posibilidad de utilizar la

    sentencia TRUNCATE, mucho ms rpida que

    DELETE.

    Su sintaxis es la siguiente:

    TRUNCATE TABLE Nombre_Tabla

    TRUNCATE no es transaccional. No se puede deshacer.TRUNCATEno admite clausula WHERE. Borra toda la tabla.

    No todos los gestores de bases de datos admiten la sentencia

    TRUNCATE.

  • 5/24/2018 Base Datos Avanzado I - Sesion4

    14/21

    Base de Datos

    SQL Server 2008

    UPDATE

    Para la actualizacin de datos SQL dispone de lasentencia UPDATE.

    La sentencia UPDATE permite la actualizacin

    de uno o varios registros de una nica tabla.

    La sintaxis del UPDATEes la siguiente:UPDATENombre_tabla

    SETnombre_columna1 = expr1, nombre_columna2 = expr2, ...

    [WHERE{ condicin }]

    Nombre_Tabla tabla donde se actualiza los datos.

    Nombre_columna es el nombre de columna o campo cuyo valor se

    desea cambiar.

    Expr el nuevo valor que se desea asignar al campo que le precede.

  • 5/24/2018 Base Datos Avanzado I - Sesion4

    15/21

    Base de Datos

    SQL Server 2008

    MERGE

    Permite realizar mltiples acciones sobre unatabla tomando uno o varios criterios de

    comparacin, es decir, realiza operaciones

    de insercin, actualizacin o eliminacin en

    una tabla de destino segn los resultados deuna combinacin con una tabla de origen.

    Por ejemplo, puede sincronizar dos tablas

    insertando, actualizando o eliminando las

    filas de una tabla segn las diferencias que

    se encuentren en la otra.

  • 5/24/2018 Base Datos Avanzado I - Sesion4

    16/21

    Base de Datos

    SQL Server 2008

    MERGE

    Nos sirve bsicamente para dos cosas:Sincronizar los datos de 2 tablas. Suponga

    que tenemos 2 bases distintas (Produccin y

    Desarrollo por ejemplo) y queremos

    sincronizar los datos de una tabla para quequeden exactamente iguales.

    Cuando tenemos nuevos datos que

    queremos almacenar en una tabla y no

    sabemos si la primary key de la tabla ya

    existe o no, por lo tanto, no sabemos si hacer

    un UPDATE o un INSERT en la tabla.

  • 5/24/2018 Base Datos Avanzado I - Sesion4

    17/21

    Base de Datos

    SQL Server 2008

    MERGE

    SintaxisMERGE [INTO]

    USING

    ON

    WHEN [TARGET] NOT MATCHED

  • 5/24/2018 Base Datos Avanzado I - Sesion4

    18/21

    Base de Datos

    SQL Server 2008

    MERGE

    Implemente un escenario para actualizar oinsertar un registro a la tabla pases: Si existe

    el cdigo del pas, actualice su nombre; sino

    inserte el registro a la tabla

    Declare@paisvarchar(50),@idchar(3)

    Set@pais='Nigeria'

    Set@id='99'

    MERGEVentas.PaisesAstarget

    USING (Select@id,@pais)Assource(idpais,nombrepais)

    ON (target.idpais=source.idpais)

    WHENMATCHEDTHEN

    Update SetNombrePais=source.nombrepais

    WHENNOTMATCHEDTHEN

    Insert Values(source.idpais,source.nombrepais);

  • 5/24/2018 Base Datos Avanzado I - Sesion4

    19/21

    Base de Datos

    SQL Server 2008

    DEMO

  • 5/24/2018 Base Datos Avanzado I - Sesion4

    20/21

    Base de Datos

    SQL Server 2008

    Base de Datos

  • 5/24/2018 Base Datos Avanzado I - Sesion4

    21/21

    Base de Datos

    SQL Server 2008

    Base de Datos