Está en la página 1de 14

ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

BASE DE DATOS

Docente: Ing. Díaz Leyva Teodoro


Tema: Modificación del Contenido de una Base de Datos Semana N°08

1. Sentencia INSERT
La sentencia INSERT se utiliza para añadir registros a las tablas de la base de datos.
El formato de la sentencia es:

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
insertarán valores en el mismo número y orden que se especificarán en la cláusula
VALUES. Si no se especifica la lista de campos, los valores de expr en la cláusula
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 añadirá a la tabla. Las cadenas de
caracteres deberán estar encerradas entre comillas.

1.1 Insertar un único registro


Añada un registro a la tabla USUARIO

Cada sentencia INSERT añade 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.

Página 1 de 14
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

El ejemplo anterior muestra que podría 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 cláusula 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, como en el ejemplo A.

1.2 Insertar múltiples registros


Además, existe la posibilidad de agregar múltiples registros con ayuda del
comando SELECT. Veamos un ejemplo:

Se tiene la tabla USUARIOS con los siguientes datos:

También, tenemos una nueva tabla EJEMPLO, que ha sido creada por nosotros.
Además, contiene los mismos campos o columnas de la tabla USUARIO.

Página 2 de 14
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

Trasladar todos los clientes de la tabla USUARIO, que tenga COD_EST=’ACTIVO’,


a nuestra nueva tabla EJEMPLO. La respuesta sería la siguiente:

Como se puede observar, es posible combinar el comando INSERT con las


consultas de Selección para agregar datos específicos sin tener la necesidad de
realizarlo uno por uno.

2. 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:

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.

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


expresión puede ser un valor constante o una subconsulta. Las cadenas de
caracteres deberán estar encerradas entre comillas. Las subconsultas entre
paréntesis.

La cláusula WHERE sigue el mismo formato que la vista en la sentencia SELECT y


determina qué registros se modificarán.

Página 3 de 14
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

Ejemplos

 Se le solicita fijar un precio único para todos los DEPARTAMENTOS. No se


utiliza la cláusula WHERE.

 Subir el precio de alquiler por mes de un departamento de la tabla de


DEPARTAMENTOS en un 10% de aquellos que tengan más de 100 metros de
área construida:

 Se le solicita fijar la fecha de registro de un usuario (en la tabla USUARIO) de


todos aquellos usuarios que tengan la fecha de registro vacía (nula) a la fecha
actual, se escribiría:

GETDATE()

 Se le solicita asignar precio a todos los libros que no lo tienen. Ese precio será
el resultante de calcular la media entre los libros que sí lo tenían.
El ejemplo utilizará una subconsulta:

Página 4 de 14
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

3. DELETE

DELETE es especialmente útil cuando se desea eliminar varios registros. En una


instrucción DELETE con múltiples tablas debe incluir el nombre de tabla (Tabla.*).
Si especifica más de una tabla para eliminar registros, todas deben tener una
relación de muchos a uno. Si desea eliminar todos los registros de una tabla,
eliminar la propia tabla es más eficiente que ejecutar una consulta de borrado.
Se puede utilizar DELETE para eliminar registros de una única tabla o desde varios
lados de una relación uno a muchos. Las operaciones de eliminación en cascada
en una consulta únicamente eliminan desde varios lados de una relación. Por
ejemplo, en la base de datos VENTAS, la relación entre las tablas Clientes y
Pedidos, la tabla
Pedidos es la parte de muchos, por lo que las operaciones en cascada sólo
afectarán a la tabla Pedidos. Una consulta de borrado elimina los registros
completos, no únicamente los datos en campos específicos. Si desea eliminar
valores en un campo especificado, crea una consulta de actualización que cambie
los valores a Null.

Una vez que se han eliminado los registros utilizando una consulta de borrado,
puede deshacer la operación. Si desea saber qué registros se eliminarán, primero
examine los resultados de una consulta de selección que utilice el mismo criterio y
después 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:

Página 5 de 14
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

Nombre_Tabla es únicamente el nombre de la tabla donde se desea borrar los datos.

La cláusula WHERE sigue el mismo formato que la vista en la sentencia SELECT y


determina qué registros se borrarán.

Cada sentencia DELETE borra los registros que cumplen la condición impuesta o
todos si no se indica cláusula WHERE.

Ejemplos

 Con esta actividad, se borrarían todos los registros de la tabla FAMILIARES


cuyo grado de parentesco sea ‘’ESPOSA’.

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

Página 6 de 14
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

VENTAS:

Página 7 de 14
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

CREACION DE BASE DE DATOS VENTAS


USE MASTER
GO
if DB_ID(N'ventas') IS NOT NULL
drop database ventas
CREATE DATABASE VENTAS
ON
(NAME='VENTAS_DATA',
FILENAME='D:\sistemaventas\VENTAS_DATA.MDF',
SIZE=10MB,
MAXSIZE=20MB,
FILEGROWTH=1MB
)
LOG ON
(NAME='VENTAS_LOG',
FILENAME='D:\sistemaventas\VENTAS_LOG',
SIZE=10MB,
MAXSIZE=10MB,
FILEGROWTH=1MB
)
--SE ACTIVA LA BASE DE DATOS VENTAS
USE VENTAS
--==========================================
--CREAR TABLAS
--==========================================
GO
if object_id('EMPLEADO') IS NOT NULL
DROP TABLE EMPLEADO
if object_id('DISTRITO') IS NOT NULL
DROP TABLE DISTRITO
if object_id('CLIENTE') IS NOT NULL
DROP TABLE CLIENTE
if object_id('CLIENTE_PER_JURIDICA') IS NOT NULL
DROP TABLE CLIENTE_PER_JURIDICA
if object_id('CLIENTE_PER_NATURAL') IS NOT NULL
DROP TABLE CLIENTE_PER_NATURAL
if object_id('TIPO_PRODUCTO') IS NOT NULL
DROP TABLE TIPO_PRODUCTO
Página 8 de 14
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

if object_id('PRODUCTO') IS NOT NULL


DROP TABLE PRODUCTO
if object_id('BOLETA') IS NOT NULL
DROP TABLE EMPLEADO
if object_id('DETALLEBOLETA') IS NOT NULL
DROP TABLE DETALLEBOLETA

--TABLA DISTRITO
--=====================
CREATE TABLE DISTRITO(
COD_DIST CHAR(7) NOT NULL,
DESCRIP_DIST VARCHAR(35),
)
--TABLA EMPLEADO
--=====================
CREATE TABLE EMPLEADO(
COD_EMP CHAR(7) NOT NULL,
NOMBRES_EMP VARCHAR(30),
APE_PATER_EMP VARCHAR(20),
APE_MATER_EMP VARCHAR(20),
FECHA_NAC_EMP DATE,
DIRECCION_EMP VARCHAR(45),
TELEFONO_EMP VARCHAR(20),
COD_DIST_EMP CHAR(7) NOT NULL,
CORREO_E_EMP VARCHAR(25),
FECHA_INGRESO_EM DATE,
COD_SUPERVISOR_EMP CHAR(7)
)
--TABLA CLIENTE
--=====================
CREATE TABLE CLIENTE(
COD_CLI CHAR(7) NOT NULL,
DIRECCION_CLI VARCHAR(45),
TELFONO_CLI VARCHAR(20),
CODDIST_CLI CHAR(7),
COREO_E VARCHAR(25),
WEB VARCHAR(45)

Página 9 de 14
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

)
--TABLA CLIENTE_PER_JURIDICA
--===============================
CREATE TABLE CLIENTE_PER_JURIDICA(
COD_CLI CHAR(7) NOT NULL,
RAZONSOCIAL_CLI VARCHAR(30),
RUC_CLI VARCHAR(11),
CONTACTO_CLI VARCHAR(25),
COD_CARGO_CLI CHAR(5)
)
--TABLA CLIENTE_PER_NATURAL
--================================
CREATE TABLE CLIENTE_PER_NATURAL(
COD_CLI CHAR(7) NOT NULL,
NOMBRES_CLI VARCHAR(25),
APE_PATER_CLI VARCHAR(20),
APE_MATER_CLI VARCHAR(20)
)
--TIPO_PRODUCTO
--==========================
CREATE TABLE TIPO_PRODUCTO(
COD_TIPO_PRO CHAR(7) NOT NULL,
DESCRIP_TIPO_PROD VARCHAR(20)
)
--PRODUCTO
--=====================
CREATE TABLE PRODUCTO(
COD_PRO CHAR(7) NOT NULL,
DESCRIP_PRO VARCHAR(120),
STOCK_ACT_PRO INT,
STOCK_MIN_PRO INT,
COD_TIPO_PROD CHAR(7) NOT NULL
)

Página 10 de 14
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

--BOLETA
--=====================
CREATE TABLE BOLETA(
COD_BOL CHAR(7) NOT NULL,
COD_EMP CHAR(7) NOT NULL,
FECHA_BOL DATE,
COD_CLI CHAR(7) NOT NULL,
ESTADO_BOL VARCHAR(15)
)
--DETALLEBOLETA
--=====================
CREATE TABLE DETALLEBOLETA(
COD_BOL CHAR(7) NOT NULL,
COD_PRO CHAR(7) NOT NULL,
CANTIDAD INT,
PRECIOVENTA DECIMAL(9,2)
)

--CLAVE PRIMARIA(PRIMARY KEY)


--==========================================
ALTER TABLE EMPLEADO
ADD CONSTRAINT EMPLEADO_PK PRIMARY KEY(COD_EMP)
GO
ALTER TABLE DISTRITO
ADD CONSTRAINT DISTRITO_PK PRIMARY KEY(COD_DIST)
GO
ALTER TABLE CLIENTE
ADD CONSTRAINT CLIENTE_PK PRIMARY KEY(COD_CLI)
GO
ALTER TABLE CLIENTE_PER_JURIDICA
ADD CONSTRAINT CLIENTE_PER_JURIDICA_PK PRIMARY
KEY(COD_CLI)
GO
ALTER TABLE CLIENTE_PER_NATURAL
ADD CONSTRAINT CLIENTE_PER_NATURAL_PK PRIMARY
KEY(COD_CLI)
GO

Página 11 de 14
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

ALTER TABLE PRODUCTO


ADD CONSTRAINT PRODUCTO_PK PRIMARY KEY(COD_PRO)
GO
ALTER TABLE TIPO_PRODUCTO
ADD CONSTRAINT TIPO_PRODUCTO_PK PRIMARY
KEY(COD_TIPO_PRO)
GO
ALTER TABLE BOLETA
ADD CONSTRAINT BOLETA_PK PRIMARY KEY(COD_BOL)
go
ALTER TABLE DETALLEBOLETA
ADD CONSTRAINT DETALLEBOLETA_PK PRIMARY
KEY(COD_BOL,COD_PRO)
GO

--FOREIGN KEY para definir una clave foranea sobre una


columna o combinacion de columnas y relacionar tablas

ALTER TABLE EMPLEADO


ADD CONSTRAINT EMPLEADO_FK FOREIGN
KEY(COD_SUPERVISOR_EMP)
REFERENCES EMPLEADO(COD_EMP)
GO

ALTER TABLE EMPLEADO


ADD CONSTRAINT DISTRITO_EMPLEADO_FK FOREIGN
KEY(COD_DIST_EMP)
REFERENCES DISTRITO(COD_DIST)
GO

ALTER TABLE CLIENTE


ADD CONSTRAINT DISTRITO_CLIENTE_FK FOREIGN
KEY(CODDIST_CLI)
REFERENCES DISTRITO(COD_DIST)
GO
ALTER TABLE CLIENTE_PER_JURIDICA

Página 12 de 14
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

ADD CONSTRAINT CLIENTE_CLIENTE_PER_JURIDICA_FK


FOREIGN KEY(COD_CLI)
REFERENCES CLIENTE(COD_CLI)
GO
ALTER TABLE CLIENTE_PER_NATURAL
ADD CONSTRAINT CLIENTE_CLIENTE_PER_NATURAL_FK
FOREIGN KEY(COD_CLI)
REFERENCES CLIENTE(COD_CLI)
GO
ALTER TABLE BOLETA
ADD CONSTRAINT CLIENTE_BOLETA_FK FOREIGN
KEY(COD_CLI)
REFERENCES CLIENTE(COD_CLI)
GO

ALTER TABLE PRODUCTO


ADD CONSTRAINT TIPO_TIPO_PRODUCTO_PRODUCTO_FK
FOREIGN KEY(COD_TIPO_PROD)
REFERENCES TIPO_PRODUCTO(COD_TIPO_PRO)
GO
ALTER TABLE DETALLEBOLETA
ADD CONSTRAINT PRODUCTO_DETALLEBOLETA_FK FOREIGN
KEY(COD_PRO)
REFERENCES PRODUCTO (COD_PRO)
GO
ALTER TABLE DETALLEBOLETA
ADD CONSTRAINT BOLETA_DETALLEBOLETA_FK FOREIGN
KEY(COD_BOL)REFERENCES BOLETA(COD_BOL)

Página 13 de 14
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS

1. Cree la base de datos Ventas y luego actívela.


2. Cree las tablas de la base de datos VENTAS, las llaves primarias y foráneas
deben ser creadas dentro de la generación de la tabla.
3. Cree las siguientes restricciones:
a. Asigne el valor por defecto ‘NO REGISTRA’ en el campo CORREO_E de la
tabla CLIENTE.
b. El precio del producto, de la tabla PRODUCTO, debe ser mayor igual a cero (0)
pero menor o igual a mil nuevos soles (1000).
c. La fecha de nacimiento del empleado debe ser menor a la fecha actual
(obtener la fecha de sistema).
d. Cree la tabla CLIENTE_BAK con los mismos campos de la tabla CLIENTE.
Aplique la restricción IDENTITY al campo que será llave primaria e ingrese 3
registros.

4. Inserte tres (3) registros a todas las tablas.


5. Actualice la descripción del distrito con código ‘L01’ por ‘LIMA 01’.
6. Inserte el empleado con código ‘EMP1010’ , asegúrese que resida en el distrito
con código ‘L01’.
7. Elimine el distrito con descripción ‘LIMA 01’. ¿Es factible realzar esta actividad?
Explique.
8. Cree una tabla llamada Copia_Empleado con la misma estructura de la tabla
Empleado.
9. Inserte a la tabla Copia_Empleado, todos los empleados de la tabla EMPLEADO,
cuyo año de ingreso se encuentre entre los años 2006 y 2008.
10. Actualice el campo CORREO_E de la tabla CLIENTES de todos los clientes que
no tengan correo electrónico (valor ‘NO REGISTRA’).
11. Actualice el campo fecha de ingreso y el teléfono del empleado con código
‘EMP1001’. La fecha de ingreso actualícela por la fecha actual y el campo teléfono
por el número ‘2471111’.

Página 14 de 14

También podría gustarte