Advertisement
limun11

Untitled

Jan 19th, 2017
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 4.79 KB | None | 0 0
  1. CREATE DATABASE sara1901
  2. ON
  3. (NAME=sara1901_dat, FILENAME='C:\BP2\DATA\sara1901.mdf', SIZE=20MB, MAXSIZE=UNLIMITED, FILEGROWTH=10%)
  4. LOG ON
  5. (NAME=sara1901_log, FILENAME='C:\BP2\LOG\sara1901.ldf', SIZE=2MB, MAXSIZE=UNLIMITED, FILEGROWTH=5%)
  6.  
  7. USE sara1901
  8. GO
  9. CREATE TABLE Klijenti
  10. (
  11. KlijentID int IDENTITY(1,1) PRIMARY KEY NOT NULL,
  12. Ime nvarchar (30) NOT NULL,
  13. Prezime nvarchar(30) NOT NULL,
  14. Telefon nvarchar (20) NOT NULL,
  15. Mail nvarchar (50) UNIQUE NOT NULL,
  16. BrojRacuna nvarchar (15) NOT NULL,
  17. KorisnickoIme nvarchar (20) NOT NULL,
  18. Lozinka nvarchar (20) NOT NULL
  19. );
  20.  
  21. GO
  22. CREATE TABLE Transakcije
  23. (
  24. TransakcijaID int IDENTITY(1,1) PRIMARY KEY NOT NULL,
  25. Datum SMALLDATETIME NOT NULL,
  26. TipTransakcije nvarchar (30) NOT NULL,
  27. PosiljalacID int FOREIGN KEY REFERENCES Klijenti (KlijentID) NOT NULL,
  28. PrimalacID int FOREIGN KEY REFERENCES Klijenti (KlijentID) NOT NULL,
  29. Svrha nvarchar (50) NOT NULL,
  30. Iznos decimal NOT NULL
  31. );
  32.  
  33. /*Popunjavanje tabela podacima:
  34. a) Koristeći bazu podataka AdventureWorks2014,
  35. preko INSERT i SELECT komande importovati 10 kupaca u tabelu Klijenti.
  36. Ime, prezime, telefon, mail i broj računa (AccountNumber) preuzeti od kupca,
  37. korisničko ime generisati na osnovu imena i prezimena u formatu ime.prezime,
  38. a lozinku generisati na osnovu polja PasswordHash, i to uzeti samo zadnjih 8 karaktera.*/
  39.  
  40. GO
  41. INSERT INTO Klijenti
  42. (Ime, Prezime, Telefon, Mail, BrojRacuna, KorisnickoIme, Lozinka)
  43. SELECT TOP 10
  44.             pp.FirstName AS [ime],
  45.             pp.LastName AS [prezime],
  46.             ppp.PhoneNumber AS [telefon],
  47.             pea.EmailAddress AS [mail],
  48.             sc.AccountNumber AS [broj racuna],
  49.             pp.FirstName + '.' + pp.LastName AS [korisnicko ime],
  50.             RIGHT(ppass.PasswordHash,8) AS [lozinka]
  51. FROM AdventureWorks2014.Person.Person AS pp
  52. INNER JOIN AdventureWorks2014.Person.PersonPhone AS ppp ON pp.BusinessEntityID=ppp.BusinessEntityID
  53. INNER JOIN AdventureWorks2014.Person.EmailAddress AS pea ON pp.BusinessEntityID=pea.BusinessEntityID
  54. INNER JOIN AdventureWorks2014.Sales.Customer AS sc ON pp.BusinessEntityID=sc.PersonID
  55. INNER JOIN AdventureWorks2014.Person.Password AS ppass ON pp.BusinessEntityID=ppass.BusinessEntityID
  56.  
  57. SELECT RIGHT(PasswordHash,8)
  58. FROM AdventureWorks2014.Person.Password
  59.  
  60. SELECT AccountNumber
  61. FROM AdventureWorks2014.Sales.Customer
  62.  
  63. SELECT *
  64. FROM Klijenti
  65. /*b) Putem jedne INSERT komande u tabelu Transakcije dodati minimalno 10 transakcija.*/
  66. GO
  67. INSERT INTO Transakcije (Datum, TipTransakcije, PosiljalacID, PrimalacID, Svrha, Iznos)
  68. VALUES
  69. ('2016-10-31 18:05:00', 'povrat','2', '2', 'kupovina', '1021'),
  70. ('2014-10-31 19:05:00', 'povrat','1', '1', 'kupovina', '1001'),
  71. ('2015-08-14 18:06:01', 'uplata','2', '2', 'rata', '205'),
  72. ('2015-12-26 15:07:12', 'povrat','3', '3', 'kupovina', '333'),
  73. ('2017-01-19 16:45:31', 'povrat','1', '1', 'kupovina', '11'),
  74. ('2013-01-01 19:05:00', 'povrat','1', '1', 'kupovina', '10'),
  75. ('2014-02-02 18:06:01', 'uplata','2', '2', 'rata', '20'),
  76. ('2015-03-03 15:07:12', 'povrat','3', '3', 'kupovina', '3'),
  77. ('2016-04-01 19:14:53', 'uplata','4', '4', 'rata', '50'),
  78. ('2013-11-11 11:15:00', 'povrat','1', '1', 'kupovina', '100')
  79.  
  80. SELECT *
  81. FROM Transakcije
  82.  
  83. /*3. Kreiranje indeksa u bazi podataka nada tabelama:
  84. a) Non-clustered indeks nad tabelom Klijenti.
  85. Potrebno je indeksirati Ime i Prezime. Također, potrebno je uključiti kolonu BrojRacuna.
  86. */
  87. GO
  88. CREATE NONCLUSTERED INDEX Klijenti_index
  89. ON Klijenti (Ime, Prezime)
  90. INCLUDE (BrojRacuna)
  91. /*b) Napisati proizvoljni upit nad tabelom Klijenti koji u potpunosti iskorištava indeks iz prethodnog koraka.
  92. Upit obavezno mora imati filter.*/
  93. GO
  94. SELECT Ime, Prezime, BrojRacuna
  95. FROM Klijenti
  96. ¸--Upit obavezno mora imati filter. WHERE?
  97.  
  98. /*c) Uraditi disable indeksa iz koraka a)*/
  99. GO
  100. ALTER INDEX Klijenti_index
  101. ON Klijenti
  102. DISABLE;
  103.  
  104. /*4. Kreirati uskladištenu proceduru koja će vršiti upis novih klijenata.
  105. Kao parametre proslijediti sva polja. Provjeriti ispravnost kreirane procedure.*/
  106. CREATE PROCEDURE Upis
  107. @imeklijenta nvarchar (30),
  108. @prezimeKlijenta nvarchar (30),
  109. @telefonKlijenta nvarchar (20),
  110. @mailKlijenta nvarchar (50),
  111. @brojRacunaKlijenta nvarchar (15),
  112. @korisnickoImeKlijenta nvarchar (20),
  113. @lozinkaKlijenta nvarchar (20)
  114. AS
  115.     BEGIN
  116.         INSERT INTO Klijenti
  117.         (Ime, Prezime, Telefon, Mail, BrojRacuna, KorisnickoIme, Lozinka)
  118.         VALUES
  119.         (@imeklijenta, @prezimeKlijenta, @telefonKlijenta, @mailKlijenta,@brojRacunaKlijenta,
  120.         @korisnickoImeKlijenta,@lozinkaKlijenta)
  121. END;
  122.  
  123. EXECUTE Upis 'Sara', 'Saric' ,'033222111', 'sara@gmail.com', '11AA', 'sara.saric','sara123-'
  124.  
  125. SELECT *
  126. FROM Klijenti
  127.  
  128. /*5. Kreirati view sa sljedećom definicijom.
  129. Objekat treba da prikazuje datum transakcije, tip transakcije, ime i prezime pošiljaoca (spojeno),
  130. broj računa pošiljaoca, ime i prezime primaoca (spojeno), broj računa primaoca, svrhu i iznos transakcije.*/
  131. CREATE VIEW Pogled
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement