Está en la página 1de 9

Universidad Jos Carlos Maritegui

de Datos II
C.P. Ingeniera de Sistemas e Informtica
Semestre 2015 - II

Base

PRCTICA N04: MANEJO DE DATOS CON SQL


Objetivo
Modificarn el contenido de una base de datos mediante la aplicacin de las
tres sentencias del Lenguaje de Manipulacin de Datos (DML).
Sentencia INSERT
La sentencia INSERT se utiliza para aadir registros a las tablas de la base de
datos. El formato de la sentencia es:
INSERT INTO Nombre_tabla [(nombre_columna1, nombre_columna1,
nombre_columna n..)] VALUES (expr1, expr2, expr n...)
Donde:
Nombre_Tabla es nicamente el nombre de la tabla donde se desea ingresar
los nuevos datos.
Nombre_Columna es una lista opcional de nombres de campo en los que se
insertarn valores en el mismo nmero y orden que se especificarn en la
clusula
VALUES. Si no se especifica la lista de campos, los valores de expr en la
clusula
VALUES deben ser tantos como campos tenga la tabla y en el mismo orden que
se definieron al crear la tabla.
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.

1. Crear la base de datos DBEJEMPLO_06


CREATE DATABASE DBEJEMPLO_06
USE DBEJEMPLO_06
CREATE TABLE TUSUARIO
(
IDUSUARIO char(6) NOT NULL,
NOM_USUA varchar(25) NOT NULL,
APEPATER_USUA varchar(25) NOT NULL,
APEMATER_USUA varchar(25) NOT NULL,
Docente: Ing. Melina Alfrez Garca

Universidad Jos Carlos Maritegui


de Datos II
C.P. Ingeniera de Sistemas e Informtica
Semestre 2015 - II

Base

FEC_NAC_USUA datetime NULL,


FEC_REG_USUA datetime NULL,
TIPO_DOC_USUA varchar(20) NOT NULL,
NUM_DOC_USUA char(8) NOT NULL,
COD_EST char(6) NOT NULL
)

2. Insertar un nico registro


Especificando todos los campos a ingresar.
INSERT
INTO
TUSUARIO
(IDUSUARIO,
NOM_USUA,
APEPATER_USUA,
APEMATER_USUA,
FEC_NAC_USUA,
FEC_REG_USUA,
TIPO_DOC_USUA,
NUM_DOC_USUA, COD_EST)
VALUES ('U00001', 'LUIS', 'PEREZ', 'PRADO', '25/02/1989', '02/01/2009', 'DNI',
'23453894', 'ACTIVO')
INSERT INTO TUSUARIO (IDUSUARIO, NOM_USUA, APEPATER_USUA,
APEMATER_USUA, FEC_NAC_USUA, FEC_REG_USUA, TIPO_DOC_USUA,
NUM_DOC_USUA, COD_EST)
VALUES ('U00002', '', 'GOMEZ', 'MAMANI', '25/12/1980', '02/11/2013', 'DNI',
'00453894', 'INACTIVO')
Cada sentencia INSERT aade un nico registro a la tabla. En el ejemplo se han
especificado los nueve (09) campos con sus respectivos valores. Si no se
ingresara valores a un campo, este se cargar con el valor DEFAULT o NULL
(siempre y cuando haya sido especificado en la estructura de la tabla). Un valor
nulo NULL- no significa blancos o ceros, sino que el campo nunca ha tenido un
valor.
Especificando nicamente los valores de los campos.
INSERT INTO USUARIO
VALUES('U00003', 'ANA', 'PEREZ', 'MAMANI', '25/02/1989', '02/01/2009', 'DNI',
'00853094', 'ACTIVO')
INSERT INTO USUARIO
VALUES('U00004', 'LUIS', 'PEREZ', 'PRADO', '25/02/1989', '02/01/2009', 'DNI',
'23853894', 'ACTIVO')
Docente: Ing. Melina Alfrez Garca

Universidad Jos Carlos Maritegui


de Datos II
C.P. Ingeniera de Sistemas e Informtica
Semestre 2015 - II

Base

El ejemplo anterior muestra que podra especificarse nicamente los valores


cuando se ingresen en todos los campos de tabla. Si no se especifica la lista de
campos, los valores en la clusula VALUES deben ser tantos como campos
tenga la tabla y en el mismo orden que se definieron al crear la tabla.
Si se va a ingresar parcialmente los valores en una tabla, se debe especificar el
nombre de los campos a ingresar.
Insertar Mltiples Registros
Adems, existe la posibilidad de agregar mltiples registros con ayuda del
comando SELECT.

3. Se tiene la tabla TUSUARIO con los siguientes datos:


IDUSUARIO

NOM_USUA

APEPATER_USUA

U00001
U00002
U00003
U00004
U00005
U00006
U00007
U00008
U00009
U00010

LUIS

PEREZ
MARTELL
PAEZ
LOZA
ARIES
MARES
LLOSA
GRADOS

JUAN
ANA
PEDRO
CARLOS
MARTHA
MILAGROS
LUISA
BETTY
JORGE

NINA
LOPEZ

APEMATER_USUA
MAMANI
GOMEZ
LUQUE
PEREZ
NINAJA
YAJO
URETA
LOPEZ
MAMANI
ALVAREZ

FEC_NAC_USUA

FEC_REG_USUA

COD_EST

25/02/1970
12/01/1979
12/108/1980
22/05/1970
12/01/1979
21/07/1977
05/02/1975
13/11/1988
03/04/1988
03/07/1988

01/01/2000
01/01/2001
01/01/2004
01/01/2007
01/01/2008
01/01/2008
01/01/2009
01/01/2010
01/01/2010
01/01/2011

ACTIVO
ACTIVO
INACTIVO
ACTIVO
INACTIVO
INACTIVO
ACTIVO
ACTIVO
INACTIVO
ACTIVO

4. Crear una nueva tabla TEJEMPLO. Adems, debe contiene los mismos
campos o columnas de la tabla TUSUARIO.
CREATE TABLE TEJEMPLO
(
IDUSUARIO char(6) NOT NULL,
NOM_USUA varchar(25) NOT NULL,
APEPATER_USUA varchar(25) NOT NULL,
APEMATER_USUA varchar(25) NOT NULL,
FEC_NAC_USUA datetime NULL,
FEC_REG_USUA datetime NULL,
TIPO_DOC_USUA varchar(20) NOT NULL,
NUM_DOC_USUA char(8) NOT NULL,
COD_EST char(6) NOT NULL
)

Docente: Ing. Melina Alfrez Garca

Universidad Jos Carlos Maritegui


de Datos II
C.P. Ingeniera de Sistemas e Informtica
Semestre 2015 - II

5. Trasladar

todos

los

clientes

Base

de

la

tabla

TUSUARIO,

que

tengan

COD_EST=ACTIVO, a nuestra nueva tabla TEJEMPLO.


INSERT INTO TEJEMPLO (IDUSUARIO, NOM_USUA, APEPATER_USUA,
APEMATER_USUA, FEC_NAC_USUA, FEC_REG_USUA, TIPO_DOC_USUA,
NUM_DOC_USUA, COD_EST)
SELECT IDUSUARIO, NOM_USUA, APEPATER_USUA, APEMATER_USUA,
FEC_NAC_USUA, FEC_REG_USUA, TIPO_DOC_USUA, NUM_DOC_USUA,
COD_EST
FROM TUSUARIO
WHERE COD_EST='ACTIVO'
INSERT INTO TUSUARIO VALUES
('U00005', 'PEDRO', 'PEREZ', 'MAMANI', '25/02/1989', '02/01/2009', 'DNI',
'00853094', 'ACTIVO'),
('U00006', 'LUIS', 'PEREZ', 'MAMANI', '25/02/1989', '02/01/2009', 'DNI',
'00853094', 'ACTIVO'),
('U00007', 'MARIBEL', 'PEREZ', 'MAMANI', '25/02/1989', '02/01/2009', 'DNI',
'00853094', 'ACTIVO');
Nota:
Como se puede observar, es posible combinar el comando INSERT con las
consultas de Seleccin para agregar datos especficos sin tener la necesidad de
realizarlo uno por uno.
Sentencia UPDATE
La sentencia UPDATE se utiliza para cambiar el contenido de los registros de
una tabla de la base de datos. Su formato es:
UPDATE Nombre_tabla SET nombre_columna1 = expr1, nombre_columna2 =
expr2, ... [WHERE { condicin }]
Nombre_Tabla es nicamente el nombre de la tabla donde se desea ingresar
los nuevos datos.
Nombre_columna es el nombre de columna o campo cuyo valor se desea
cambiar. En una misma sentencia UPDATE pueden actualizarse varios campos
de cada registro de la tabla.
Docente: Ing. Melina Alfrez Garca

Universidad Jos Carlos Maritegui


de Datos II
C.P. Ingeniera de Sistemas e Informtica
Semestre 2015 - II

Base

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


expresin puede ser un valor constante o una subconsulta. Las cadenas de
caracteres debern estar encerradas entre comillas. Las subconsultas entre
parntesis.
La clusula WHERE sigue el mismo formato que la vista en la sentencia
SELECT y determina qu registros se modificarn.
6. Crear la Base de Datos DBEJEMPLO_07
TCLIENTE
Idcliente
Nom_clie
Ape_clie
Dir_clie
Ruc_ clie
Email_clie

carcter
carcter
carcter
carcter
carcter
carcter

TARTICULO
Idarticulo
Idmarca
Des_ arti
Pre_ arti
Stok_ arti
Idmarca

carcter (5)
carcter (2)
carcter (25)
numrico (7, 2)
numrico 5
carcter (2)

TEMPLEADO
Idempleado
Ape_ empl
Nom_ empl
Dir_ empl
Sex_ empl
Tel_ empl
Fein_empl

carcter
carcter
carcter
carcter
lgico
carcter
date

TFACTURA
Idfactuta
Idempleado
Idcliente
Fec_ fact
Subt_ fact

carcter (10)
carcter (5)
carcter (5)
fecha
numrico (7, 2)

Docente: Ing. Melina Alfrez Garca

(5)
(25)
(25)
(45)
(11)
(45)

(5)
(25)
(25)
(35)
(9)

Universidad Jos Carlos Maritegui


de Datos II
C.P. Ingeniera de Sistemas e Informtica
Semestre 2015 - II

Base

Igv_ fact
Tot_ fact

numrico (7, 2)
numrico (7, 2)

TDETALLE
Idfactura
Idarticulo
Pre_arti
Can_deta
Sue_empl

carcter (10)
carcter (5)
numrico (7, 2)
numrico (7, 2)
numrico (7,2)

TMARCA
Idmarca
Nomb_mar

carcter (2)
carcter (25)

7. Ingresar registros a la base de datos DBEJEMPLO_07.


TCLIENTE
IDCLIENTE
C0001
C0002
C0003
TARTICULO

NOM_CLIE
ANA MARIA
HUMBERTO LUIS
MARIA LUISA

APE_CLIE
PEREZ TORRES
GONZALES GIMENEZ
ROJAS MARTINEZ

IDARTICULO
DES_ARTI
A0001
MONITOR SVGA COLOR 17
A0002
MOUSE LOGITECH
TEMPLEADO
IDEMPLEADO
E0001
E0002
TFACTURA

APE_EMPL
PEREZ ALVARES
MAMANI MIRANDA

IDFACTURA
002-003745

IDCLIENTE
C0002

PRE_ARTI
230.00
15.00

NOM_EMPL
JUANA LUISA
MARIO PEDRO

IDEMPLEADO
E0002

FEC_FACT
12/05/2011

EMAIL_CLIE

STOK_ARTI
40
20

IDMARCA
01
02

SUE_EMPL
1500.00
1800.00

FEIN_EMP
12/02/2010
11/03/2014

SUBT_FACT
490.00

TOT_FACT
578.2

TDETALLE
IDFACTURA
002-003745
002-003745
TMARCA
IDMARCA
01
02
Docente: Ing. Melina Alfrez Garca

IDARTICULO
A0001
A0002

PRE_ART
230.00
15.00

CAN_DETA
2.00
2.00

NOMB_MAR
LG
TOSHIBA
6

Universidad Jos Carlos Maritegui


de Datos II
C.P. Ingeniera de Sistemas e Informtica
Semestre 2015 - II

Base

8. Se le solicita fijar un stock nico para todos los artculos. No se utiliza la


clusula WHERE.
UPDATE ARTICULO SET STOK_ ARTI = 20
9. Subir el precio del artculo de la tabla del TARTCULO en un 10% de
aquellos que tengan menos de 5 unidades en stock.
UPDATE ARTICULO SET PRE_ARTI = PRE_ARTI * 1.1 WHERE STOK_ARTI< 5
10. Se le solicita fijar la fecha de registro de un usuario (en la tabla
TUSUARIO) de todos aquellos usuarios que tengan la fecha de registro
vaca (nula) a la fecha actual.
UPDATE TUSUARIO SET FEC_REG_USUA = GETDATE() WHERE
FEC_REG_USUA IS NULL
11. Se le solicita asignar precio a todos los artculos que no lo tienen.
Ese precio ser el resultante de calcular la media entre los artculos que s
lo tenan.
UPDATE TARTICULO SET PRE_ARTI = (SELECT AVG(PRE_ARTI) FROM
TARTICULO WHERE PRE_ARTI IS NOT NULL ) WHERE PRE_ARTI IS NULL
DELETE
DELETE es especialmente til cuando se desea eliminar varios registros. En una
instruccin DELETE con mltiples tablas debe incluir el nombre de tabla
(Tabla.*). Si especifica ms de una tabla para eliminar registros, todas deben
tener una relacin de muchos a uno. Si desea eliminar todos los registros de
una tabla, eliminar la propia tabla es ms eficiente que ejecutar una consulta
de borrado.
Docente: Ing. Melina Alfrez Garca

Universidad Jos Carlos Maritegui


de Datos II
C.P. Ingeniera de Sistemas e Informtica
Semestre 2015 - II

Base

Se puede utilizar DELETE para eliminar registros de una nica tabla o desde
varios lados de una relacin uno a muchos. Las operaciones de eliminacin en
cascada en una consulta nicamente eliminan desde varios lados de una
relacin. Por ejemplo, en la base de datos DBVENTA, la relacin entre las tablas
Cliente y Factura, la tabla Factura es la parte de muchos, por lo que las
operaciones en cascada slo afectarn a la tabla Factura. Una consulta de
borrado elimina los registros completos, no nicamente los datos en campos
especficos. Si desea eliminar valores en un campo especificado, crea una
consulta de actualizacin que cambie los valores a Null.
Una vez que se han eliminado los registros utilizando una consulta de borrado,
no puede deshacer la operacin. Si desea saber qu registros se eliminarn,
primero examine los resultados de una consulta de seleccin que utilice el
mismo criterio y despus ejecute la consulta de borrado. Mantenga copias de
seguridad de sus datos en todo momento. Si elimina los registros equivocados
podr recuperarlos desde las copias de seguridad.
El formato de la sentencia es:
DELETE FROM Nombre_Tabla [WHERE { condicin }]
Nombre_Tabla es nicamente el nombre de la tabla donde se desea borrar los
datos.
La clusula WHERE sigue el mismo formato que la vista en la sentencia
SELECT y determina qu registros se borrarn.
Cada sentencia DELETE borra los registros que cumplen la condicin impuesta
o todos si no se indica clusula WHERE
12. Borrar todos los registros de la tabla TUSUARIO cuyo estado de usuario es
INACTIVO.
DELETE FROM TUSUARIO
WHERE COD_EST='ACTIVO'
ACTIVIDAD 01
Docente: Ing. Melina Alfrez Garca

Universidad Jos Carlos Maritegui


de Datos II
C.P. Ingeniera de Sistemas e Informtica
Semestre 2015 - II

Base

Usando TRANSACT/SQL, realice las siguientes actividades en la base de datos


DBEJEMPLO_08:
1. Inserte tres (3) registros a todas las tablas.
2. Elimine el artculo con descripcin MOUSE LOGITECH. Es factible realzar
esta actividad? Explique.
3. Actualice la descripcin de la TARTICULO con cdigo A0002 por
TECLADO.
4. Inserte el empleado con cdigo E0003, asegrese que el sueldo sea
mayor a 2000.
5. Cree una tabla llamada TCopiaEmpleado con la misma estructura de la
tabla TEmpleado.
6. Inserte a la tabla TCopia_Empleado, todos los empleados de la tabla
TEMPLEADO, cuyo ao de ingreso se encuentre entre los aos 2010 y
2012.
7. Actualice el campo EMAIL_CLIE de la tabla TCLIENTE de todos los clientes
que no tengan correo electrnico (valor NO REGISTRA).
8. Actualice el campo fecha de ingreso y el telfono del empleado con cdigo
E0001. La fecha de ingreso actualcela por la fecha actual y el campo
telfono por el nmero 23471151.
ACTIVIDAD 02
Creacin y mantenimiento de ndices
- Determinan la necesidad de empleo de ndices en una base de datos.
- Emplean los comandos CREATE y DROP para el uso de ndices.

ACTIVIDAD 03
Funciones de grupo de valores
Funciones que devuelven valores de caracteres
Funciones que devuelven valores numricos
Funciones de fecha y hora

Docente: Ing. Melina Alfrez Garca

También podría gustarte