SlideShare una empresa de Scribd logo
UNIVERSIDAD NACIONAL DE CAJAMARCA
Facultad de Ingeniería
Escuela Académico Profesional de Ing. Sistemas
Curso:
Base de datos II
Tema:
UPDATE, INSERT, DELETE
Docente:
Aparicio Arteaga, Carlos Enrique
Alumnos:
Celis Perez, Carlos Alberto
Grupo:
B1
Ciclo:
2020 I
"Año del Bicentenario del Perú: 200 años de Independencia"
Cajamarca, abril 2021
Ejercicios de UPDATE, INSERT, DELETE:
1. Actualizar el precio delos productosaplicando un descuento del20% a todos
los productos que tengan un stock superior a 30 unidades.
UPDATE Products
set UnitPrice = UnitPrice*0.8
where UnitsInStock > 30
2. Todos los productos que están en la condición de DESCONTINUADOS
pasarlos a la condición de VIGENTES.
UPDATE Products
set Discontinued = 0
Where Discontinued = 1
3. Mover todos los productos pertenecientes a la categoría con código 1, a la
categoría 5. Luego eliminar la categoría 1 de la tabla Categorías.
UPDATE Products
set CategoryID = 5
Where CategoryID = 1
4. Se desea actualizar los productos con stock igual a 0 a un stock de 100
unidades, debido a que llego un embarque con productos.
UPDATE Products
set UnitsInStock = 100
Where UnitsInStock = 0
5. Actualizar el campo UnitPrice” de la tabla “Products”porel valoralmacenado
en el campo UnitPrice de la Tabla “Order Details”
UPDATE P
SET P.UnitPrice = D.UnitPrice
FROM PRODUCTS AS P
INNER JOIN [ORDER DETAILS] AS D
ON P.ProductId = D.ProductId
6. Cambiar el valor del campo COUNTRY a “Perú” y el campo CITY “Cajamarca”
de la Tabla “Suppliers”, a todos los proveedores del país de USA.
UPDATE Suppliers
Set Country='Perú', City='Cajamarca'
Where Country Like'USA'
7. Colocar la fecha de hoy día a todas las órdenes realizadas en el año 1998.
(Revisar la función GetDate())
UPDATE Orders
set OrderDate = getdate ()
Where year (OrderDate) = 1998
8. Insertar un nuevo cliente (customers). Conteste las siguientes preguntas
Select *
From Customers
insert into Customers (CustomerID, CompanyName, ContactName,
Address,
city, Country, contactTitle, PostalCode, Phone)
values ('CACP','ConsorcioX', 'Jose', 'Nv.Cajamarca', 'Cajamarca',
'Perú', 'Celis', '143B', 95202592)
a. Elimine el cliente ingresado por su código (CustomerId). ¿Se pudo
eliminar? ¿Por qué?
DELETE
From Customers
Where CustomerID= 'CACP'
Si se pudo eliminar porque era un elemento recién insertado y no
tenía relación con ninguna tabla.
b. Elimine el cliente con código (CustomerId) igual a “ALFKI”. ¿Se pudo
eliminar? ¿Por qué?
DELETE
From Customers
Where CustomerID= 'ALFKI'
No se pudo eliminar puesto que era un elemento ya almacenado en
una tabla.
Ejercicios Stored Procedure
9. Crear un SP que muestre las ordenes realizadas por un empleado, ingresar
como parámetro el código del empleado y el año.
Create proc order_Empleado
@codigo int
as
begin
Select e.EmployeeID, LastName, FirstName, OrderDate
From Orders as o
inner Join Employees as e
on o.EmployeeID = e.EmployeeID
where e.EmployeeID = @codigo
end
exec order_Empleado 5
10. Crear un SP que nos permita ACTUALIZAR EN CASCADA el código de un
Cliente (Customers). Se debe actualizar el nuevo código en las Tablas
Customers y Orders.
UPDATE Customers
Set CustomerID='CACP'
Where CustomerID='ANTON'
Select *
From Orders
Where CustomerID='CACP'
11. Crear un SP que nos permita eliminar los detalles de pedidos (Order Details),
ingresando como parámetro el código de producto (ProductId)
Create proc Eliminar_pedidos
@ID int
As
Delete
From [Order Details]
Where ProductID=@ID
12. Crear un SP que permita ingresar un nuevo registro a la tabla “Alumnos1”
Tabla: Alumnos1
CodAlum ---> PK, INT Ident.
NomAlum ---> VARCHAR(30)
ApeAlum ---> VARCHAR(40)
FecNacAlum ---> DATETIME
SexAlum ---> CHAR(1)
create Procedure Alumno1
(@CodAlum int,
@NomAlumn varchar(30),
@ApeAlum varchar(40),
@FecNacAlum datetime,
@SexAlum char(1))
As
insert into Alumno1(@CodAlum,@NomAlumn,@ApeAlum,@FecNacAlum,@SexAlum)
/*ENTERO NO IDENTITY*/
Create proc Alumno1
(@CodAlum int,
@NomAlumn varchar(30),
@ApeAlum varchar(40),
@FecNacAlum datetime,
@SexAlum char(1))
As
insert into Alumno1 values(@CodAlum,@NomAlumn,@ApeAlum,@FecNacAlum,@SexAlum)
/*ENTERO IDENTITY*/
Create proc Alumno1
(@CodAlum int,
@NomAlumn varchar(30),
@ApeAlum varchar(40),
@FecNacAlum datetime,
@SexAlum char(1))
As
insert into Alumno1(NomAlumn,ApeAlum,FecNacAlum,SexAlum)
values(@NomAlumn,@ApeAlum,@FecNacAlum,@SexAlum)
13. Crear la Tabla “Alumnos2”.
Tabla: Alumnos2
CodAlum ---> PK, CHAR(5)
NomAlum ---> VARCHAR(30)
ApeAlum ---> VARCHAR(40)
FecNacAlum ---> DATETIME
SexAlum ---> CHAR(1)
Crear un SP que nos permita insertar un registro. El código de alumno se debe
generar de la siguiente manera: Primer carácter del nombre + Primer carácter del
apellido + número correlativo en función del número total de registros empezando
de 001.
create proc SP_Alumno2
(@N varchar(30),
@A varchar(40),
@F datetime,
@S char(1))
As
Declare @C char(5)
Declare @NR int
Select @NR =COUNT(*)
From Alumno2
If(@NR<9)
Set @C= LEFT(@N,1)+LEFT(@A,1)+'00'+LTRIM(Str(@NR+1))
Else if(@NR<99)
Set @C= LEFT(@N,1)+LEFT(@A,1)+'0'+LTRIM(Str(@NR+1))
Else
Set @C= LEFT(@N,1)+LEFT(@A,1)+'0'+LTRIM(Str(@NR+1))
Insert into Alumno2
Values (@C,@N, @A,@f,@S)
Select *
From Alumno2
SP_Alumno2 'Carlos','Celis','06/09/2021','M'
14. Crear la Tabla “Alumnos3”.
Tabla: Alumnos3
CodAlum ---> PK, CHAR(7)
NomAlum ---> VARCHAR(30)
ApeAlum ---> VARCHAR(40)
FecNacAlum ---> DATETIME
SexAlum ---> CHAR(1)
Crear un SP que nos permita insertar un registro. El código de alumno se debe
generar de la siguiente manera: El año de nacimiento + número correlativo en
función del número total de registros empezando en 001.
Create Table Alumno3
(CodAlum CHAR(7) PRIMARY KEY,
NomAlum varchar(30),
ApeAlum varchar(40),
FecNacAlum Datetime,
SexAlum Char(1))
Go
create proc Sp_Insertar
@NomAlum varchar(30),
@ApeAlum varchar(40),
@FecNacAlum datetime,
@SexAlum Char(1)
As
Begin
Declare @Codigo char(7)
Declare @NR int
Select @NR =COUNT(*)
From Alumno3
if(@NR<9)
Set @Codigo= LTRIM(Year(@FecNacAlum))+'00'+LTRIM(@NR+1)
Else if(@NR<99)
Set @Codigo= LTRIM(Year(@FecNacAlum))+'0'+LTRIM(@NR+1)
else
Set @Codigo= LTRIM(Year(@FecNacAlum))+LTRIM(@NR+1)
END
Select*
From Alumno3
go
Exec Sp_Insertar 'Pedro','Castel','1999/08/01','M'
15. Crear la Tabla “Alumnos4”.
Tabla: Alumnos4
CodAlum ---> PK, CHAR(8)
NomAlum ---> VARCHAR(30)
ApeAlum ---> VARCHAR(40)
FecNacAlum ---> DATETIME
SexAlum ---> CHAR(1)
Crear un SP que nos permita insertar un registro. El código de alumno se debe
generar de la siguiente manera: Sexo + El año de nacimiento + número correlativo
en función del número total de registros empezando en 001.
Create table Alumno4
(CodAlum CHAR(8) PRIMARY KEY,
NomAlum varchar(30),
ApeAlum varchar(40),
FecNacAlum Datetime,
SexAlum Char(1))
Go
create proc Sp_Insertar4
@NomAlum varchar(30),
@ApeAlum varchar(40),
@FecNacAlum datetime,
@SexAlum Char(1)
As
Begin
Declare @Codigo char(8)
Declare @NR int
Select @NR =COUNT(*)
From Alumno4
if(@NR<9)
Set @Codigo=@SexAlum+LTRIM(Year(@FecNacAlum))+'00'+LTRIM(@NR+1)
else if(@NR<99)
Set @Codigo=@SexAlum+LTRIM(Year(@FecNacAlum))+'0'+LTRIM(@NR+1)
else
Set @Codigo=@SexAlum+LTRIM(Year(@FecNacAlum))+LTRIM(@NR+1)
insert into Alumno4
Values(@Codigo,@NomAlum,@ApeAlum,@FecNacAlum,@SexAlum)
end
Select *
From Alumno4
go
Exec Sp_Insertar4 'Pedro','Castel','1999/08/01','M'
16. Crear la Tabla “Alumnos5”.
Tabla: Alumnos5
CodAlum ---> PK, CHAR(8)
NomAlum ---> VARCHAR(30)
ApeAlum ---> VARCHAR(40)
FecNacAlum ---> DATETIME
SexAlum ---> CHAR(1)
Crear un SP que nos permita insertar un registro. El código de alumno se debe
generar de la siguiente manera: Sexo + El año de nacimiento + número correlativo
en función del número total de registros empezando en 001.
Create table Alumno5
(CodAlum CHAR(8) PRIMARY KEY,
NomAlum varchar(30),
ApeAlum varchar(40),
FecNacAlum Datetime,
SexAlum Char(1))
Alter proc Sp_Insertar5
@NomAlum varchar(30),
@ApeAlum varchar(40),
@FecNacAlum datetime,
@SexAlum Char(1)
As
Begin
Declare @Codigo char(8)
Declare @NR int
Select @NR =ISNULL(Max(Right(CodAlum,3)),0)
From Alumno5
if(@NR<9)
Set @Codigo=@SexAlum+LTRIM(Year(@FecNacAlum))+'00'+LTRIM(@NR+1)
else if(@NR<99)
Set @Codigo=@SexAlum+LTRIM(Year(@FecNacAlum))+'0'+LTRIM(@NR+1)
else
Set @Codigo=@SexAlum+LTRIM(Year(@FecNacAlum))+LTRIM(@NR+1)
insert into Alumno5
Values(@Codigo,@NomAlum,@ApeAlum,@FecNacAlum,@SexAlum)
end
Select *
From Alumno5
go
Exec Sp_Insertar5 'Pedro','Castel','1999/08/01','M'
Considerar la posibilidad que eliminar registros, es por eso que debemos cambiar
el count(*) por Max aplicado a los tres últimos caracteres del código de alumno:
Max(right(CodAlum)) o isnull(MAX(RIGHT(CodAlum,3)),0)
17. Crear un Stored Procedure que nos permita seleccionar y mostrar un
empleado aleatoriamente.
Alter Proc SP_Empledo_Aleatorio
As
Begin
Declare @A int
set @A= RAND(1)*10
Select *
From Employees
Where EmployeeID=@A
END
exec SP_Empledo_Aleatorio
18. Crear un Stored Procedure que nos permita seleccionar “N” Clientes
aleatoriamente.
create proc Sp_MostrarEmpleado
As
Declare @A Integer
Set @A=FLOOR(RAND()*10)
Select top(@A)*
From Customers
Exec Sp_MostrarEmpleado

Más contenido relacionado

DOCX
Formularios en Excel
PPTX
Proyecto Base de Datos I
PPT
Ti. Sql.Caso1al9.Consultas
PPTX
CONSULTAS_AVANZADAS_SQL.pptx
PPTX
CONSULTAS AVANZADAS SQL.pptx
PPT
7090112 Clase Transact Sql Server
PDF
Laboratorio_1.pdf
Formularios en Excel
Proyecto Base de Datos I
Ti. Sql.Caso1al9.Consultas
CONSULTAS_AVANZADAS_SQL.pptx
CONSULTAS AVANZADAS SQL.pptx
7090112 Clase Transact Sql Server
Laboratorio_1.pdf

Similar a Celis perez, carlos (20)

PPT
Mejoras en T-SQL para SQL Server 2005
PDF
Laboratorio de XML en DB2
PPTX
DOC
Procedimientos Almacenados
DOC
Procedimientos Almacenados
DOC
Procedimientos Almacenados
PDF
Separata de vb 2015
PDF
Documentoaltas
DOCX
Base datos mysql y visual basic
PDF
Proyecto BD parcial 3 ♥ ISSA ♥ VELEZ♥ MORALES
PDF
U5. Arreglos de Objetos.pdf
PPT
Curso de Macros Excel
DOC
Relaciones
PDF
Commit&rollback
TXT
Solucion laboratorio lenguaje_transaccional
PDF
Java::Acceso a Bases de Datos
PPT
Cursores
PPT
CASO DE ESTUDIO DE EASYDRIVE
PDF
Campos calculados julio
PDF
Práctica SQL en MYSQL
Mejoras en T-SQL para SQL Server 2005
Laboratorio de XML en DB2
Procedimientos Almacenados
Procedimientos Almacenados
Procedimientos Almacenados
Separata de vb 2015
Documentoaltas
Base datos mysql y visual basic
Proyecto BD parcial 3 ♥ ISSA ♥ VELEZ♥ MORALES
U5. Arreglos de Objetos.pdf
Curso de Macros Excel
Relaciones
Commit&rollback
Solucion laboratorio lenguaje_transaccional
Java::Acceso a Bases de Datos
Cursores
CASO DE ESTUDIO DE EASYDRIVE
Campos calculados julio
Práctica SQL en MYSQL
Publicidad

Último (20)

PDF
Fundamentos_Educacion_a_Distancia_ABC.pdf
PDF
Crear o Morir - Andres Oppenheimer Ccesa007.pdf
PDF
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE.pdf
PDF
SESION 12 INMUNIZACIONES - CADENA DE FRÍO- SALUD FAMILIAR - PUEBLOS INDIGENAS...
PDF
biología es un libro sobre casi todo el tema de biología
DOCX
V UNIDAD - PRIMER GRADO. del mes de agosto
PDF
2.0 Introduccion a processing, y como obtenerlo
DOCX
PLANES DE área ciencias naturales y aplicadas
PDF
Metodologías Activas con herramientas IAG
PDF
PFB-MANUAL-PRUEBA-FUNCIONES-BASICAS-pdf.pdf
DOCX
PROYECTO DE APRENDIZAJE para la semana de fiestas patrias
PPTX
caso clínico iam clinica y semiología l3.pptx
PDF
TOMO II - LITERATURA.pd plusenmas ultras
PDF
Habitos de Ricos - Juan Diego Gomez Ccesa007.pdf
PDF
Escuelas Desarmando una mirada subjetiva a la educación
PDF
Punto Critico - Brian Tracy Ccesa007.pdf
PDF
Salvese Quien Pueda - Andres Oppenheimer Ccesa007.pdf
PDF
Tomo 1 de biologia gratis ultra plusenmas
PDF
Romper el Circulo de la Creatividad - Colleen Hoover Ccesa007.pdf
PDF
ACERTIJO Súper Círculo y la clave contra el Malvado Señor de las Formas. Por ...
Fundamentos_Educacion_a_Distancia_ABC.pdf
Crear o Morir - Andres Oppenheimer Ccesa007.pdf
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE.pdf
SESION 12 INMUNIZACIONES - CADENA DE FRÍO- SALUD FAMILIAR - PUEBLOS INDIGENAS...
biología es un libro sobre casi todo el tema de biología
V UNIDAD - PRIMER GRADO. del mes de agosto
2.0 Introduccion a processing, y como obtenerlo
PLANES DE área ciencias naturales y aplicadas
Metodologías Activas con herramientas IAG
PFB-MANUAL-PRUEBA-FUNCIONES-BASICAS-pdf.pdf
PROYECTO DE APRENDIZAJE para la semana de fiestas patrias
caso clínico iam clinica y semiología l3.pptx
TOMO II - LITERATURA.pd plusenmas ultras
Habitos de Ricos - Juan Diego Gomez Ccesa007.pdf
Escuelas Desarmando una mirada subjetiva a la educación
Punto Critico - Brian Tracy Ccesa007.pdf
Salvese Quien Pueda - Andres Oppenheimer Ccesa007.pdf
Tomo 1 de biologia gratis ultra plusenmas
Romper el Circulo de la Creatividad - Colleen Hoover Ccesa007.pdf
ACERTIJO Súper Círculo y la clave contra el Malvado Señor de las Formas. Por ...
Publicidad

Celis perez, carlos

  • 1. UNIVERSIDAD NACIONAL DE CAJAMARCA Facultad de Ingeniería Escuela Académico Profesional de Ing. Sistemas Curso: Base de datos II Tema: UPDATE, INSERT, DELETE Docente: Aparicio Arteaga, Carlos Enrique Alumnos: Celis Perez, Carlos Alberto Grupo: B1 Ciclo: 2020 I "Año del Bicentenario del Perú: 200 años de Independencia" Cajamarca, abril 2021
  • 2. Ejercicios de UPDATE, INSERT, DELETE: 1. Actualizar el precio delos productosaplicando un descuento del20% a todos los productos que tengan un stock superior a 30 unidades. UPDATE Products set UnitPrice = UnitPrice*0.8 where UnitsInStock > 30 2. Todos los productos que están en la condición de DESCONTINUADOS pasarlos a la condición de VIGENTES. UPDATE Products set Discontinued = 0 Where Discontinued = 1 3. Mover todos los productos pertenecientes a la categoría con código 1, a la categoría 5. Luego eliminar la categoría 1 de la tabla Categorías. UPDATE Products set CategoryID = 5 Where CategoryID = 1 4. Se desea actualizar los productos con stock igual a 0 a un stock de 100 unidades, debido a que llego un embarque con productos. UPDATE Products set UnitsInStock = 100 Where UnitsInStock = 0 5. Actualizar el campo UnitPrice” de la tabla “Products”porel valoralmacenado en el campo UnitPrice de la Tabla “Order Details” UPDATE P SET P.UnitPrice = D.UnitPrice FROM PRODUCTS AS P INNER JOIN [ORDER DETAILS] AS D ON P.ProductId = D.ProductId 6. Cambiar el valor del campo COUNTRY a “Perú” y el campo CITY “Cajamarca” de la Tabla “Suppliers”, a todos los proveedores del país de USA. UPDATE Suppliers Set Country='Perú', City='Cajamarca' Where Country Like'USA' 7. Colocar la fecha de hoy día a todas las órdenes realizadas en el año 1998. (Revisar la función GetDate()) UPDATE Orders set OrderDate = getdate () Where year (OrderDate) = 1998 8. Insertar un nuevo cliente (customers). Conteste las siguientes preguntas Select * From Customers insert into Customers (CustomerID, CompanyName, ContactName, Address,
  • 3. city, Country, contactTitle, PostalCode, Phone) values ('CACP','ConsorcioX', 'Jose', 'Nv.Cajamarca', 'Cajamarca', 'Perú', 'Celis', '143B', 95202592) a. Elimine el cliente ingresado por su código (CustomerId). ¿Se pudo eliminar? ¿Por qué? DELETE From Customers Where CustomerID= 'CACP' Si se pudo eliminar porque era un elemento recién insertado y no tenía relación con ninguna tabla. b. Elimine el cliente con código (CustomerId) igual a “ALFKI”. ¿Se pudo eliminar? ¿Por qué? DELETE From Customers Where CustomerID= 'ALFKI' No se pudo eliminar puesto que era un elemento ya almacenado en una tabla. Ejercicios Stored Procedure 9. Crear un SP que muestre las ordenes realizadas por un empleado, ingresar como parámetro el código del empleado y el año. Create proc order_Empleado @codigo int as begin Select e.EmployeeID, LastName, FirstName, OrderDate From Orders as o inner Join Employees as e on o.EmployeeID = e.EmployeeID where e.EmployeeID = @codigo end exec order_Empleado 5 10. Crear un SP que nos permita ACTUALIZAR EN CASCADA el código de un Cliente (Customers). Se debe actualizar el nuevo código en las Tablas Customers y Orders. UPDATE Customers Set CustomerID='CACP' Where CustomerID='ANTON' Select * From Orders Where CustomerID='CACP' 11. Crear un SP que nos permita eliminar los detalles de pedidos (Order Details), ingresando como parámetro el código de producto (ProductId) Create proc Eliminar_pedidos @ID int As
  • 4. Delete From [Order Details] Where ProductID=@ID 12. Crear un SP que permita ingresar un nuevo registro a la tabla “Alumnos1” Tabla: Alumnos1 CodAlum ---> PK, INT Ident. NomAlum ---> VARCHAR(30) ApeAlum ---> VARCHAR(40) FecNacAlum ---> DATETIME SexAlum ---> CHAR(1) create Procedure Alumno1 (@CodAlum int, @NomAlumn varchar(30), @ApeAlum varchar(40), @FecNacAlum datetime, @SexAlum char(1)) As insert into Alumno1(@CodAlum,@NomAlumn,@ApeAlum,@FecNacAlum,@SexAlum) /*ENTERO NO IDENTITY*/ Create proc Alumno1 (@CodAlum int, @NomAlumn varchar(30), @ApeAlum varchar(40), @FecNacAlum datetime, @SexAlum char(1)) As insert into Alumno1 values(@CodAlum,@NomAlumn,@ApeAlum,@FecNacAlum,@SexAlum) /*ENTERO IDENTITY*/ Create proc Alumno1 (@CodAlum int, @NomAlumn varchar(30), @ApeAlum varchar(40), @FecNacAlum datetime, @SexAlum char(1)) As insert into Alumno1(NomAlumn,ApeAlum,FecNacAlum,SexAlum) values(@NomAlumn,@ApeAlum,@FecNacAlum,@SexAlum) 13. Crear la Tabla “Alumnos2”. Tabla: Alumnos2 CodAlum ---> PK, CHAR(5) NomAlum ---> VARCHAR(30) ApeAlum ---> VARCHAR(40) FecNacAlum ---> DATETIME SexAlum ---> CHAR(1) Crear un SP que nos permita insertar un registro. El código de alumno se debe generar de la siguiente manera: Primer carácter del nombre + Primer carácter del
  • 5. apellido + número correlativo en función del número total de registros empezando de 001. create proc SP_Alumno2 (@N varchar(30), @A varchar(40), @F datetime, @S char(1)) As Declare @C char(5) Declare @NR int Select @NR =COUNT(*) From Alumno2 If(@NR<9) Set @C= LEFT(@N,1)+LEFT(@A,1)+'00'+LTRIM(Str(@NR+1)) Else if(@NR<99) Set @C= LEFT(@N,1)+LEFT(@A,1)+'0'+LTRIM(Str(@NR+1)) Else Set @C= LEFT(@N,1)+LEFT(@A,1)+'0'+LTRIM(Str(@NR+1)) Insert into Alumno2 Values (@C,@N, @A,@f,@S) Select * From Alumno2 SP_Alumno2 'Carlos','Celis','06/09/2021','M' 14. Crear la Tabla “Alumnos3”. Tabla: Alumnos3 CodAlum ---> PK, CHAR(7) NomAlum ---> VARCHAR(30) ApeAlum ---> VARCHAR(40) FecNacAlum ---> DATETIME SexAlum ---> CHAR(1) Crear un SP que nos permita insertar un registro. El código de alumno se debe generar de la siguiente manera: El año de nacimiento + número correlativo en función del número total de registros empezando en 001. Create Table Alumno3 (CodAlum CHAR(7) PRIMARY KEY, NomAlum varchar(30), ApeAlum varchar(40), FecNacAlum Datetime, SexAlum Char(1)) Go create proc Sp_Insertar @NomAlum varchar(30), @ApeAlum varchar(40), @FecNacAlum datetime, @SexAlum Char(1) As Begin Declare @Codigo char(7) Declare @NR int Select @NR =COUNT(*) From Alumno3 if(@NR<9) Set @Codigo= LTRIM(Year(@FecNacAlum))+'00'+LTRIM(@NR+1) Else if(@NR<99) Set @Codigo= LTRIM(Year(@FecNacAlum))+'0'+LTRIM(@NR+1) else Set @Codigo= LTRIM(Year(@FecNacAlum))+LTRIM(@NR+1)
  • 6. END Select* From Alumno3 go Exec Sp_Insertar 'Pedro','Castel','1999/08/01','M' 15. Crear la Tabla “Alumnos4”. Tabla: Alumnos4 CodAlum ---> PK, CHAR(8) NomAlum ---> VARCHAR(30) ApeAlum ---> VARCHAR(40) FecNacAlum ---> DATETIME SexAlum ---> CHAR(1) Crear un SP que nos permita insertar un registro. El código de alumno se debe generar de la siguiente manera: Sexo + El año de nacimiento + número correlativo en función del número total de registros empezando en 001. Create table Alumno4 (CodAlum CHAR(8) PRIMARY KEY, NomAlum varchar(30), ApeAlum varchar(40), FecNacAlum Datetime, SexAlum Char(1)) Go create proc Sp_Insertar4 @NomAlum varchar(30), @ApeAlum varchar(40), @FecNacAlum datetime, @SexAlum Char(1) As Begin Declare @Codigo char(8) Declare @NR int Select @NR =COUNT(*) From Alumno4 if(@NR<9) Set @Codigo=@SexAlum+LTRIM(Year(@FecNacAlum))+'00'+LTRIM(@NR+1) else if(@NR<99) Set @Codigo=@SexAlum+LTRIM(Year(@FecNacAlum))+'0'+LTRIM(@NR+1) else Set @Codigo=@SexAlum+LTRIM(Year(@FecNacAlum))+LTRIM(@NR+1) insert into Alumno4 Values(@Codigo,@NomAlum,@ApeAlum,@FecNacAlum,@SexAlum) end Select * From Alumno4 go Exec Sp_Insertar4 'Pedro','Castel','1999/08/01','M' 16. Crear la Tabla “Alumnos5”. Tabla: Alumnos5 CodAlum ---> PK, CHAR(8) NomAlum ---> VARCHAR(30) ApeAlum ---> VARCHAR(40)
  • 7. FecNacAlum ---> DATETIME SexAlum ---> CHAR(1) Crear un SP que nos permita insertar un registro. El código de alumno se debe generar de la siguiente manera: Sexo + El año de nacimiento + número correlativo en función del número total de registros empezando en 001. Create table Alumno5 (CodAlum CHAR(8) PRIMARY KEY, NomAlum varchar(30), ApeAlum varchar(40), FecNacAlum Datetime, SexAlum Char(1)) Alter proc Sp_Insertar5 @NomAlum varchar(30), @ApeAlum varchar(40), @FecNacAlum datetime, @SexAlum Char(1) As Begin Declare @Codigo char(8) Declare @NR int Select @NR =ISNULL(Max(Right(CodAlum,3)),0) From Alumno5 if(@NR<9) Set @Codigo=@SexAlum+LTRIM(Year(@FecNacAlum))+'00'+LTRIM(@NR+1) else if(@NR<99) Set @Codigo=@SexAlum+LTRIM(Year(@FecNacAlum))+'0'+LTRIM(@NR+1) else Set @Codigo=@SexAlum+LTRIM(Year(@FecNacAlum))+LTRIM(@NR+1) insert into Alumno5 Values(@Codigo,@NomAlum,@ApeAlum,@FecNacAlum,@SexAlum) end Select * From Alumno5 go Exec Sp_Insertar5 'Pedro','Castel','1999/08/01','M' Considerar la posibilidad que eliminar registros, es por eso que debemos cambiar el count(*) por Max aplicado a los tres últimos caracteres del código de alumno: Max(right(CodAlum)) o isnull(MAX(RIGHT(CodAlum,3)),0) 17. Crear un Stored Procedure que nos permita seleccionar y mostrar un empleado aleatoriamente. Alter Proc SP_Empledo_Aleatorio As Begin Declare @A int set @A= RAND(1)*10 Select * From Employees Where EmployeeID=@A END exec SP_Empledo_Aleatorio
  • 8. 18. Crear un Stored Procedure que nos permita seleccionar “N” Clientes aleatoriamente. create proc Sp_MostrarEmpleado As Declare @A Integer Set @A=FLOOR(RAND()*10) Select top(@A)* From Customers Exec Sp_MostrarEmpleado