Advertisement
Guest User

Priprema2

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