Upload
angelobolanos
View
33
Download
1
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