Advertisement
Azz_142

Priprema2

Jun 21st, 2018
259
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 4.75 KB | None | 0 0
  1. --1
  2.  
  3. create database Priprema2
  4.  
  5. use Priprema2
  6.  
  7. create table Klijenti (
  8. KlijentID int not null identity(1,1) constraint PK_Klijenti primary key,
  9. Ime nvarchar(30) not null,
  10. Prezime nvarchar(30) not null,
  11. Telefon nvarchar(20) not null,
  12. Email nvarchar(50) not null constraint UQ_Email UNIQUE ,
  13. BrojRacuna nvarchar(15) not null,
  14. KorisnickoIme nvarchar(20) not null,
  15. Lozinka nvarchar(20) not null
  16. )
  17.  
  18. create table Transakcije(
  19. TransakcijaID int not null identity(1,1) constraint PK_Transakcije primary key,
  20. Datum datetime not null,
  21. TipTransakcije nvarchar(30) not null,
  22. PosiljalacID int not null constraint FK_Klijenti_KlijentID foreign key references
  23.             Klijenti(KlijentID),
  24. PrimalacID int not null constraint FK_Klijenti_KlijentID_2 foreign key references
  25.             Klijenti(KlijentID),
  26. Svrha nvarchar(50) not null,
  27. Iznos decimal(18,2) not null
  28. )
  29.  
  30. --2
  31. --a
  32. use AdventureWorks2017
  33. go
  34.  
  35. insert into Priprema2.dbo.Klijenti
  36. select top 10 P.FirstName, P.LastName, PP.PhoneNumber, EA.EmailAddress,
  37. C.AccountNumber, LOWER(P.FirstName+'.'+P.LastName),
  38.  right(Pa.PasswordHash,8)
  39. from Person.Person as P inner join Sales.Customer as C
  40.     on P.BusinessEntityID=C.PersonID INNER JOIN Person.PersonPhone AS PP
  41.     ON PP.BusinessEntityID=P.BusinessEntityID INNER JOIN
  42.     Person.EmailAddress AS EA
  43.     ON EA.BusinessEntityID=P.BusinessEntityID inner join
  44.     Person.Password as Pa
  45.     on P.BusinessEntityID=Pa.BusinessEntityID
  46.  
  47. --b
  48. use Priprema2
  49.  
  50. select*from Klijenti
  51.  
  52. INSERT INTO Transakcije
  53. values (getdate(), 'jednostrana' , 241, 242, 'poklon', 500),
  54. (getdate(), 'dvostrana' , 243, 244, 'naknada', 350.50),
  55. (getdate(), 'jednostrana' , 245, 246, 'poklon', 500),
  56. (getdate(), 'dvostrana' , 241, 243, 'poklon', 400),
  57. (getdate(), 'jednostrana' , 241, 243, 'poklon', 25),
  58. (getdate(), 'jednostrana' , 247, 244, 'poklon', 530),
  59. (getdate(), 'jednostrana' , 245, 243, 'poklon', 500),
  60. (getdate(), 'jednostrana' , 246, 243, 'poklon', 500),
  61. (getdate(), 'jednostrana' , 244, 243, 'poklon', 346),
  62. (getdate(), 'jednostrana' , 241, 243, 'poklon', 222)
  63.  
  64. --3
  65.  
  66. create nonclustered index IX_Klijenti on Klijenti (Ime, Prezime)
  67. include (BrojRacuna)
  68.  
  69. select K.Ime, K.Prezime, K.BrojRacuna
  70. from Klijenti as K
  71. where K.BrojRacuna like '%0' or K.Ime like 'E%'
  72.  
  73. ALTER INDEX IX_Klijenti on Klijenti
  74. disable
  75.  
  76. --4
  77.  
  78. create procedure usp_Klijenti_insert
  79. ( @Ime nvarchar(30),
  80. @Prezime nvarchar(30),
  81. @Telefon nvarchar(20),
  82. @Email nvarchar(50),
  83. @BrojRacuna nvarchar(15),
  84. @KorisnickoIme nvarchar(20),
  85. @Lozinka nvarchar(20)
  86. )as begin
  87. insert into Klijenti
  88. values (@Ime, @Prezime, @Telefon, @Email, @BrojRacuna, @KorisnickoIme, @Lozinka)
  89. end
  90.  
  91. exec usp_Klijenti_insert 'Neki', 'Neko', '111-111-111',
  92. 'neki.neko@nekic', 'AA-1903-2017', 'AA', 'AA'
  93.  
  94. SELECT*FROM Klijenti
  95.  
  96. --5
  97. CREATE VIEW view_transakcije_klijent AS
  98.     SELECT T.Datum, T.TipTransakcije, K1.Ime + ' ' + K1.Prezime AS Posiljaoc, K1.BrojRacuna,
  99.     K2.Ime + ' ' + K2.Prezime AS Primaoc, K2.BrojRacuna AS BrRacunaPrimaoca, T.Svrha, T.Iznos
  100.     FROM Transakcije AS T INNER JOIN Klijenti AS K1
  101.         ON T.PosiljalacID = K1.KlijentID INNER JOIN Klijenti AS K2
  102.         ON T.PrimalacID = K2.KlijentID
  103.  
  104. SELECT * FROM Transakcije
  105.  
  106. --6
  107.  
  108. CREATE PROCEDURE usp_transakcije
  109. (
  110.     @BrojRacuna NVARCHAR(15)
  111. )
  112. AS
  113. BEGIN
  114.     SELECT *
  115.     FROM view_transakcije_klijent AS V
  116.     WHERE BrojRacuna = @BrojRacuna
  117. END
  118.  
  119. EXEC usp_transakcije 'AW00011135'
  120.  
  121. SELECT * FROM Klijenti
  122.  
  123. --7
  124.  
  125. SELECT YEAR(T.Datum) AS Godina, SUM(T.Iznos) AS Iznos
  126. FROM Transakcije AS T
  127. GROUP BY T.Datum
  128. ORDER BY YEAR(T.Datum)
  129.  
  130. --8
  131.  
  132. CREATE PROCEDURE usp_delete_klijent5
  133. (
  134.     @KlijentID INT
  135. )
  136. AS
  137. BEGIN
  138.     DELETE Transakcije
  139.     FROM Transakcije AS T INNER JOIN Klijenti AS K
  140.         ON T.PosiljalacID = K.KlijentID AND KlijentID = @KlijentID
  141.  
  142.     DELETE Transakcije
  143.     FROM Transakcije AS T INNER JOIN Klijenti AS K
  144.         ON T.PrimalacID = K.KlijentID AND KlijentID = @KlijentID
  145.  
  146.     DELETE FROM Klijenti
  147.     WHERE KlijentID = @KlijentID
  148. END
  149.  
  150. EXEC usp_delete_klijent5 7
  151.  
  152. --9
  153. CREATE PROCEDURE usp_pretraga_view
  154. (
  155. @BrojRacuna NVARCHAR(15) = NULL,
  156. @Prezime NVARCHAR(30) = NULL,
  157.  
  158. )
  159. AS
  160. BEGIN
  161.     SELECT * FROM view_transakcije_klijent
  162.  WHERE (SUBSTRING(Posiljaoc, CHARINDEX(' ', Posiljaoc)+1, 50) = @Prezime OR @Prezime is null) and (BrojRacuna = @BrojRacuna or @BrojRacuna is null)
  163. END
  164.  
  165.  
  166. EXEC usp_pretraga_view
  167. EXEC usp_pretraga_view 'AW00011135'
  168. EXEC usp_pretraga_view 'Lopez'
  169. EXEC usp_pretraga_view 'Harris'
  170. EXEC usp_pretraga_view 'AW00011135', 'Harris'
  171.  
  172. --10
  173.  
  174. BACKUP DATABASE Priprema2 TO
  175. DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Backup\Priprema2.bak'
  176.  
  177. BACKUP DATABASE Priprema2 TO
  178. DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Backup\Priprema2_diff.bak'
  179. WITH DIFFERENTIAL
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement