Advertisement
filip710

Baze podataka

Jan 21st, 2018
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 4.22 KB | None | 0 0
  1. LV1
  2.  
  3. Z1
  4. CREATE TABLE smartphone(
  5.     imei CHAR(15),
  6.     naziv_proiz VARCHAR(20),
  7.     naziv_model VARCHAR(20),
  8.     kol_mem SMALLINT,
  9.     brz_proc DECIMAL(3,2),
  10.     naziv_os VARCHAR(20),
  11.     dat_update DATETIME,
  12.     ime_kor VARCHAR(30),
  13.     prez_kor VARCHAR(30),
  14.     CONSTRAINT smartphone_pk PRIMARY KEY(imei)
  15. )
  16.  
  17. Z2
  18.  
  19. CREATE TABLE djelatnik(
  20.     ime VARCHAR(30),
  21.     prezime VARCHAR(30),
  22.     matbr CHAR(13),
  23.     CONSTRAINT djelatnik_pk PRIMARY KEY(matbr)
  24. )
  25.  
  26. CREATE TABLE projekt(
  27.     oznaka CHAR(10),
  28.     naziv VARCHAR(30),
  29.     CONSTRAINT projekt_pk PRIMARY KEY(oznaka)
  30. )
  31.  
  32. CREATE TABLE RadiNa(
  33.     matbr CHAR(13),
  34.     oznaka CHAR(10),
  35.     broj_dana SMALLINT,
  36.     CONSTRAINT RadiNa_pk PRIMARY KEY(matbr, oznaka),
  37.     CONSTRAINT RadiNa_fk_projekt FOREIGN KEY(oznaka) REFERENCES projekt(oznaka),
  38.     CONSTRAINT RadiNa_fk_djelatnik FOREIGN KEY(matbr) REFERENCES djelatnik(matbr)
  39. )
  40.  
  41. Z3
  42.  
  43. CREATE TABLE grupe(
  44.     id_grupe CHAR(5),
  45.     oznaka_grupe CHAR(6),
  46.     smjer VARCHAR(15),
  47.     broj_studenata TINYINT,
  48.     CONSTRAINT grupe_pk PRIMARY KEY(id_grupe),
  49.     CONSTRAINT grupe_uk UNIQUE(oznaka_grupe)
  50. )
  51.  
  52. Z4
  53.  
  54. CREATE TABLE student(
  55.     br_indeksa CHAR(6),
  56.     ime VARCHAR(30),
  57.     prezime VARCHAR(30),
  58.     grupa CHAR(5),
  59.     godina_upisa SMALLINT,
  60.     godina_studija TINYINT,
  61.     CONSTRAINT student_pk PRIMARY KEY(br_indeksa),
  62.     CONSTRAINT student_fk FOREIGN KEY(grupa) REFERENCES grupe(id_grupe)
  63. )
  64.  
  65. Z5
  66.  
  67. ALTER TABLE student ADD prosjek DECIMAL(3,2);
  68. ALTER TABLE student ADD CONSTRAINT prosjek_chk CHECK(prosjek>1);
  69. ALTER TABLE student DROP godina_studija;
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80. LV2
  81.  
  82. Z1
  83.  
  84. CREATE TABLE osobe(
  85.     ime VARCHAR(30),
  86.     prezime VARCHAR(30),
  87.     jmbg CHAR(13),
  88.     dat_rod DATETIME,
  89.     spol CHAR(1),
  90.     visina DECIMAL(5,2),
  91.     br_cip TINYINT,
  92.     CONSTRAINT osobe_pk PRIMARY KEY(jmbg),
  93.     CONSTRAINT spol_chk CHECK(spol IN('M', 'Z'))
  94. )
  95.  
  96. INSERT INTO `osobe`(`ime`, `prezime`, `jmbg`, `dat_rod`, `spol`, `visina`, `br_cip`) VALUES
  97. ('Marko', 'Markovic', '2012980891234', '1980-12-20', 'M', '170.00', 42),
  98. ('Ivan', 'Ivanovic', '1502986891234', '1986-02-15', 'M', '180.00', 45),
  99. ('Goran', 'Goric', '0101991891234', '1991-01-01', 'M', '184.00', 44),
  100. ('Filip', 'Filipovic', '3008965891234', '1965-08-30', 'M', '181.00', 43),
  101. ('Luka', 'Lukic', '2406988891234', '1988-06-24', 'M', '188.00', 46)
  102.  
  103. Z2
  104.  
  105. UPDATE osobe SET ime='Nenad', prezime='Nenadic'
  106. WHERE jmbg=1502986891234
  107.  
  108. UPDATE osobe SET br_cip=br_cip+1;
  109.  
  110. DELETE FROM osobe WHERE jmbg='0101991891234'
  111.  
  112. Z3
  113.  
  114. SELECT *
  115. FROM student
  116. ORDER BY datUpis DESC
  117.  
  118. SELECT ime, prezime, datRod AS "Datum rodenja"
  119. FROM student
  120. WHERE datRod<'1978-01-01'
  121. ORDER BY prezime
  122.  
  123. Z4
  124.  
  125. SELECT ime, prezime, naziv AS "Naziv predmeta"
  126. FROM student, predmet, ispit
  127. WHERE student.mbr=ispit.mbrStud AND ispit.sifPredmeta=predmet.sifra AND ispit.ocjena>=4
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144. LV3
  145.  
  146. Z1
  147.  
  148. SELECT CONCAT(SUBSTRING(ime,1,1), '.', SUBSTRING(prezime,1,1)) AS Inicijali, YEAR(datRod) AS "Godina rodenja"
  149. FROM student
  150.  
  151. SELECT *
  152. FROM student
  153. ORDER BY datRod ASC
  154.  
  155. SELECT ime, prezime
  156. FROM student
  157. WHERE spol='F' AND datRod=(SELECT MIN(datRod) FROM student WHERE spol='F')
  158.  
  159. Z2
  160.  
  161. SELECT COUNT(mbr) AS "Broj studenata"
  162. FROM student
  163.  
  164. SELECT COUNT(DISTINCT pbrPreb) AS "Broj mjesta"
  165. FROM student
  166.  
  167. Z3
  168.  
  169. SELECT naziv AS "Naziv predmeta", AVG(ocjena) AS Prosjek
  170. FROM ispit, predmet
  171. WHERE ocjena>1 AND ispit.sifPredmeta=predmet.sifra
  172. GROUP BY sifPredmeta
  173.  
  174. Z4
  175.  
  176. SELECT ime, prezime, AVG(ocjena) AS Prosjek
  177. FROM ispit, student
  178. WHERE ocjena>1 AND ispit.mbrStud=student.mbr
  179. GROUP BY mbrStud
  180. ORDER BY Prosjek DESC
  181.  
  182. SELECT mbr
  183. FROM student, ispit
  184. WHERE ispit.mbrStud=student.mbr AND ispit.ocjena > 1
  185. GROUP BY mbrStud
  186. HAVING AVG(ispit.ocjena) > 2.5
  187.  
  188. SELECT CONCAT(ime, ' ', prezime) AS "Ime i prezime", naziv, ocjena, datIspita
  189. FROM student, ispit, predmet
  190. WHERE ispit.sifPredmeta=predmet.sifra AND ispit.mbrStud=student.mbr
  191.  
  192.  
  193. LV4
  194.  
  195.  
  196. CREATE FUNCTION palindrom(@string VARCHAR(35))
  197. RETURNS VARCHAR(35)
  198. AS
  199. BEGIN
  200.   DECLARE @temp VARCHAR(35);
  201.   IF LEN(@string)>30
  202.     BEGIN
  203.       RETURN "String je duzi od 30 znakova";
  204.     END
  205.   SET @temp = REVERSE(@string);
  206.   IF @string=@temp
  207.     BEGIN
  208.       RETURN "Palindrom";
  209.     END
  210.   RETURN @temp
  211. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement