create database hotmail;
create table categoria (
idcategoria int primary key,
nomcategoria nvarchar (25)
)
go
create table carpeta (
idcarpeta int primary key,
nomcarpeta nvarchar (25)
)
go
create table mensajes(
nºmensaje int primary key,
emaildeenvio nvarchar (60),
mensajenviado nvarchar (250)
)
go
create table entrada (
identrada int primary key,
nºmensaje int,
constraint fk_entrada_mensaje foreign key (nºmensaje)
references mensajes (nºmensaje)
)
go
create table menu (
idmenu int primary key,
nommenu nvarchar (25),
idcategoria int
constraint fk_menu_categoria foreign key (idcategoria)
references categoria (idcategoria)
)
go
create table usuario(
email nvarchar (60) primary key,
contraseña nvarchar (20),
nombre nvarchar (50),
apellido nvarchar (60),
idmenu int,
idcarpeta int,
identrada int,
constraint fk_usuario_menu foreign key (idmenu)
references menu (idmenu),
constraint fk_usuario_carpeta foreign key (idcarpeta)
references carpeta (idcarpeta),
constraint fk_usuario_entrada foreign key (identrada)
references entrada(identrada)
)
go
create table conctato (
msnconcta nvarchar (60) primary key,
nombre nvarchar (50),
apellido nvarchar (60)
)
go
create table mesenger (
email nvarchar (60),
msnconcta nvarchar (60),
constraint pk_mesenger primary key (email,msnconcta),
constraint fk_mesenger_usuario foreign key (email)
references usuario (email),
constraint fk_mesenger_conctato foreign key (msnconcta)
references conctato (msnconcta)
)
go
create table grupo (
nomgrup varchar (30) primary key,
estado bit default(0)
)
go
alter table conctato
add nomgrup varchar (30)
alter table conctato
add constraint fk_conctato_grupo foreign key (nomgrup)
references grupo (nomgrup)
create table perfil (
email nvarchar (60),
msnconcta nvarchar (60),
constraint pk_perfil primary key (email,msnconcta),
constraint fk_perfil_usuario foreign key (email)
references usuario (email),
constraint fk_perfil_conctato foreign key (msnconcta)
references conctato (msnconcta)
)
create table opciones (
idopcion int primary key,
nomopciones varchar (15),
idioma varchar (15),
pais varchar (15),
edad int
)
alter table categoria
add idopcion int
alter table categoria
add constraint fk_categoria_opciones foreign key (idopcion)
references opciones (idopcion)
alter table usuario
add clavede11nº varchar (11)
create table recuperar_clave (
email nvarchar (60),
clavede11nº varchar (11),
constraint pk_recuperar_claver primary key (email, clavede11nº),
)
alter table recuperar_clave
add constraint fk_recuperar_clave_usuario foreign key (email)
references usuario (email)
create view recuperarclave
as
(
select email,
clavede11nº
from recuperar_clave
)
CREATE VIEW CarpetasH
AS
(
SELECT idcarpeta,
nomcarpeta
FROM carpeta
)
CREATE VIEW MensajesH
AS
(
SELECT [nºmensaje],
emaildeenvio,
mensajenviado
FROM mensajes
)
create view entradasH
as
(
select identrada,
[nºmensaje]
from entrada
)
create view categoriasH
as
(
select idcategoria,
nomcategoria
from categoria
)
create view menuH
as
(
select idmenu,
nommenu,
idcategoria
from menu
)
create view grupoh
as
(
select nomgrup,
estado
from grupo
)
create view conctatoH
as
(
select msnconcta,
nombre,
apellido,
nomgrup
from conctato
)
create view mesengerH
as
(
select email,
msnconcta
from mesenger
)
create view usuarioH
as
(
select email,
contraseña,
nombre,
apellido,
idmenu,
idcarpeta,
identrada
from usuario
)
create view perfilH
as
(
select email,
msnconcta
from perfil
)
create view crear_usuario
as
(
select email,
contraseña,
nombre,
apellido
from usuario
)
------------agregar conctacto
create procedure sp_insertConctactos (@msnconcta nvarchar(60), @nombre nvarchar (50), @apellido nvarchar (60) )
as
Begin
Begin Tran T1
insert into conctato(msnconcta, nombre, apellido )
values (@msnconcta, @nombre, @apellido)
if @@error <> 0
commit
else
Begin
RAISERROR ('Un error ha ocurrido al insertar el mesenger',10,1,1);
rollback
end
End
GO
----actualizar mesenger
create procedure sp_updatemesenger (@msnconcta nvarchar(60), @email nvarchar (60))
as
Begin
Begin Tran T1
Update mesenger set msnconcta=@msnconcta, email= @email
Where msnconcta = @msnconcta
if @@error <> 0
commit
else
Begin
RAISERROR ('Un error ha ocurrido al actualizar el mesneger',10,1);
rollback
end
End
GO
-------------insertar mensaje
create procedure sp_insertmensajes (@nºmensaje int, @emaildeenvio nvarchar (60), @mensajenviado nvarchar (250) )
as
Begin
Begin Tran T1
insert into mensajes(nºmensaje, emaildeenvio, mensajenviado )
values (@nºmensaje, @emaildeenvio,@mensajenviado)
if @@error <> 0
commit
else
Begin
RAISERROR ('Un error ha ocurrido al insertar el mensaje',10,1,1);
rollback
end
End
GO
-----actualizar entradas
create procedure sp_updatentrada (@identrada int, @nºmensaje int)
as
Begin
Begin Tran T1
Update entrada set identrada =@identrada,nºmensaje=@nºmensaje
Where nºmensaje=@nºmensaje
if @@error <> 0
commit
else
Begin
RAISERROR ('Un error ha ocurrido al actualizar el mesneger',10,1);
rollback
end
End
GO
-------------------------borrar mensaje
create procedure sp_deletemensaje (@nºmensaje int)
as
Begin
Begin Tran T1
IF not exists (select * from entrada where nºmensaje = @nºmensaje)
Delete mensajes Where nºmensaje= @nºmensaje
Else
RAISERROR ('No se puede eliminar esta mensaje',10,1)
if @@error <> 0
commit
else
Begin
RAISERROR ('Un error ha ocurrido al eliminar el mensaje',10,1);
rollback
end
End
Go
--------------------actualizar la edad-----------
create function fnactualizaredad (@edad int)
returns int
as
begin
return (@edad)
end
-----------------buscar texto---------------
create PROC SearchAllTables(@SearchStr nvarchar(100)) AS
BEGIN
CREATE TABLE #Results (ColumnName text, ColumnValue text)
SET NOCOUNT ON
DECLARE @TableName nvarchar(256), @ColumnName nvarchar(128), @SearchStr2 nvarchar(110)
SET @TableName = ''
SET @SearchStr2 = QUOTENAME('%' + rtrim(@SearchStr)+'%' ,'''')
WHILE @TableName IS NOT NULL
BEGIN
SET @ColumnName = ''
SET @TableName =
(
SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME))
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
AND QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) > @TableName
AND OBJECTPROPERTY(
OBJECT_ID(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)), 'IsMSShipped') = 0
)
WHILE (@TableName IS NOT NULL) AND (@ColumnName IS NOT NULL)
BEGIN
SET @ColumnName =
(
SELECT MIN(QUOTENAME(COLUMN_NAME))
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = PARSENAME(@TableName, 2)
AND TABLE_NAME = PARSENAME(@TableName, 1)
AND DATA_TYPE IN ('char', 'varchar', 'nchar', 'nvarchar', 'uniqueidentifier','tinyint', 'smallint', 'int')
AND QUOTENAME(COLUMN_NAME) > @ColumnName
)
IF @ColumnName IS NOT NULL
BEGIN
INSERT INTO #Results
EXEC
(
'SELECT ''' + @TableName + '.' + @ColumnName + ''', LEFT(' + @ColumnName + ', 3630)
FROM ' + @TableName + ' (NOLOCK) ' +
' WHERE ' + @ColumnName + ' LIKE ' + 'rtrim(' + @SearchStr2 + ')'
)
END
END
END
SELECT ColumnName, ColumnValue FROM #Results print @searchstr2
END
---insertado carpeta
insert into carpeta (idcarpeta,nomcarpeta)
values (1,'entrada')
insert into carpeta (idcarpeta,nomcarpeta)
values (2,'borradores')
insert into carpeta (idcarpeta,nomcarpeta)
values (3,'eliminados')
---insertar opciones
insert into opciones (idopcion,nomopciones,idioma,pais,edad)
values (1,'actualizar','español','peru',5)
insert into opciones (idopcion,nomopciones,idioma,pais,edad)
values (2,'eliminar','español','colombia',6)
insert into opciones (idopcion,nomopciones,idioma,pais,edad)
values (3,'analizar','español','peru',7)
---insertado categorias
insert into categoria (idcategoria,nomcategoria,idopcion)
values (101,'nuevo',1)
insert into categoria (idcategoria,nomcategoria,idopcion)
values (102,'eliminar',2)
insert into categoria (idcategoria,nomcategoria,idopcion)
values (103,'correo no deseado',3)
insert into categoria (idcategoria,nomcategoria,idopcion)
values (104,'limpiar',2)
insert into categoria (idcategoria,nomcategoria,idopcion)
values (105,'marcar',1)
insert into categoria (idcategoria,nomcategoria,idopcion)
values (106,'mover a',3)
-----insertar grupo
insert into grupo (nomgrup,estado)
values ('conectado',1)
insert into grupo (nomgrup,estado)
values ('desconectado',2)
----insertar conctato
insert into conctato (msnconcta,nombre,apellido)
values ('elmejor@thecompany.com','jhimi','pezo mori')
insert into conctato (msnconcta,nombre,apellido)
values ('elmejor1@thecompany.com','jhimi','pezo mori')
insert into conctato (msnconcta,nombre,apellido)
values ('elmejor2@thecompany.com','jhimi','pezo mori')
insert into conctato (msnconcta,nombre,apellido)
values ('elmejor23@thecompany.com','jhimi','pezo mori')
----insertar mensajes
insert into mensajes ([nºmensaje],emaildeenvio,mensajenviado)
values (1,'elcazador@hotmail.com','como estas')
insert into mensajes ([nºmensaje],emaildeenvio,mensajenviado)
values (2,'elcazador_45@gmail.com','base de dato lo mejor')
insert into mensajes ([nºmensaje],emaildeenvio,mensajenviado)
values (3,'yugioh_elcazador@cr.com','como estas ing')
---------insertar entrada-----
insert into entrada (identrada,[nºmensaje])
values (1,1)
insert into entrada (identrada,[nºmensaje])
values (2,2)
insert into entrada (identrada,[nºmensaje])
values (3,3)
--------insertar menu
insert into menu (idmenu,nommenu)
values (1,'bandeja de entradas')
insert into menu (idmenu,nommenu)
values (2,'correo no deseados')
insert into menu (idmenu,nommenu)
values (3,'imagenes ')
-------------------insertar usuario
insert into usuario (email,contraseña,nombre,apellido,idmenu,idcarpeta,identrada,[clavede11nº])
values ('jhimi_zx@hotmail.com','sakurazxadvent','jhimi','pezo',1,1,1,'15482679312')
insert into usuario (email,contraseña,nombre,apellido,idmenu,idcarpeta,identrada,[clavede11nº])
values ('jhimi_zeo@hotmail.com','sakurazxadvent','jhimi','pezo',1,1,1,'15482679312')
insert into usuario (email,contraseña,nombre,apellido,idmenu,idcarpeta,identrada,[clavede11nº])
values ('jhimizeo@hotmail.com','sakurazxadventa','jhimis','pezo mori',1,1,1,'15482679312')
------insertar mesenger
insert into mesenger (email,msnconcta)
values ('jhimi_zx@hotmail.com','elmejor1@thecompany.com')
insert into mesenger (email,msnconcta)
values ('jhimi_zeo@hotmail.com','elmejor1@thecompany.com')
--------insertar perfil
insert into perfil (email,msnconcta)
values ('jhimi_zx@hotmail.com','elmejor1@thecompany.com')
insert into perfil (email,msnconcta)
values ('jhimi_zeo@hotmail.com','elmejor1@thecompany.com')
--------trigger perfil
create trigger trg_actualizaemail on [dbo].[perfil]
for insert
as
update perfil set msnconcta = inserted.msnconcta
from perfil inner join inserted on
perfil.msnconcta =inserted.msnconcta
update conctato set msnconcta = inserted.msnconcta
from conctato inner join inserted on
conctato.msnconcta =inserted.msnconcta
--------------------trigger mesenger
create trigger trg_actualizaconctato on [dbo].[mesenger]
for insert
as
update mesenger set msnconcta = inserted.msnconcta
from mesenger inner join inserted on
mesenger.msnconcta =inserted.msnconcta
update conctato set msnconcta = inserted.msnconcta
from conctato inner join inserted on
conctato.msnconcta =inserted.msnconcta
------------trigger usuario---
create trigger trg_actualizusuario on [dbo].[usuario]
for insert
as
update usuario set idmenu = inserted.idmenu
from usuario inner join inserted on
usuario.idmenu =inserted.idmenu
update menu set idmenu = inserted.idmenu
from menu inner join inserted on
menu.idmenu =inserted.idmenu
-----------actualizar usuario carpeta
create trigger trg_actualizusuario1 on [dbo].[carpeta]
for insert
as
update carpeta set idcarpeta = inserted.idcarpeta
from carpeta inner join inserted on
carpeta.idcarpeta =inserted.idcarpeta
update usuario set idcarpeta = inserted.idcarpeta
from usuario inner join inserted on
usuario.idcarpeta =inserted.idcarpeta
----trigger entrada
create trigger trg_actualizusuario2 on [dbo].[entrada]
for insert
as
update entrada set identrada = inserted.identrada
from entrada inner join inserted on
entrada.identrada =inserted.identrada
update usuario set identrada = inserted.identrada
from usuario inner join inserted on
usuario.identrada =inserted.identrada
------------- trigger conctacto
create trigger trg_actualizarconctato on [dbo].[conctato]
for insert
as
update conctato set nomgrup = inserted.nomgrup
from conctato inner join inserted on
conctato.nomgrup =inserted.nomgrup
update grupo set nomgrup = inserted.nomgrup
from grupo inner join inserted on
grupo.nomgrup =inserted.nomgrup
----------trigger de categorias
create trigger trg_actualizarcategoria on [dbo].[categoria]
for insert
as
update categoria set idopcion = inserted.idopcion
from categoria inner join inserted on
categoria.idopcion =inserted.idopcion
update opciones set idopcion = inserted.idopcion
from opciones inner join inserted on
opciones.idopcion =inserted.idopcion