Facebook
From bchn, 5 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 230
  1. CREATE DATABASE ;
  2.  
  3. -- Normalnie se robie tutaj baze danych dodajac wszystkie rzeczy do niej ;)
  4.  
  5. CREATE TABLE `sklep`.`produkt`
  6. ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'pole id' ,
  7.  `nazwa` VARCHAR(100) NOT NULL ,
  8.  `cena` DECIMAL(10,4) NOT NULL ,
  9.  PRIMARY KEY (`id`)) ENGINE = InnoDB;
  10.  
  11.  -- dodaje przedmiot do bazy danych kropka zamiast przecinka
  12.  
  13.  INSERT INTO `produkt` (`id`, `nazwa`, `cena`) VALUES (NULL, 'kremówka', '12.37');
  14.  
  15.  -- tutaj ify
  16.  SELECT nazwa, cena
  17.  FROM produkt  
  18.  WHERE cena > 20
  19.  AND cena < 30
  20.  
  21.  -- latwiej tu
  22.  SELECT nazwa, cena
  23.  FROM produkt
  24.  WHERE 20 > cena > 0.8
  25.  
  26.  -- ASC albo DESC w góre albo w dół
  27.  SELECT nazwa, cena
  28.  FROM produkt
  29.  WHERE 20 > cena > 0.8
  30.  ORDER BY cena ASC
  31.  
  32.  -- % dodaje litery przed albo potem
  33.  SELECT nazwa, cena
  34.  FROM produkt
  35.  WHERE 20 > cena > 0.8
  36.  AND nazwa
  37.  LIKE "%Bułka%"
  38.  
  39.  -- count zlicza
  40.  SELECT COUNT(nazwa), nazwa, cena
  41.  FROM `produkt`
  42.  WHERE 20 > cena > 0.8
  43.  AND nazwa
  44.  LIKE "%Bułka%"
  45.  
  46.  -- dodaje se masno
  47.  ALTER TABLE `produkt`
  48.  ADD `id_kategoria`
  49.  INT UNSIGNED NOT NULL
  50.  AFTER `cena`,
  51.  ADD `data_utworzenia` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
  52.  AFTER `id_kategoria`;
  53.  
  54.  -- tutaj count
  55.  SELECT count(nazwa), id_kategoria
  56.  FROM produkt
  57.  GROUP BY id_kategoria
  58.  
  59.  -- data utworzenia
  60.  
  61.  SELECT id_kategoria, nazwa, cena
  62.  FROM produkt
  63.  WHERE data_utworzenia>'2018-12-15'
  64.  
  65. -- zmiana
  66. UPDATE `produkt`
  67. SET nazwa = "ciastko lepsze"
  68. WHERE id = 2
  69.  
  70. UPDATE `produkt`
  71. SET nazwa = "ciastko lepsze", cena = cena+0.2*cena
  72. WHERE id = 2
  73.  
  74. -- REFERENCES
  75. ALTER TABLE `produkt`
  76. ADD FOREIGN KEY (`id_kategoria`)
  77. REFERENCES `kategoria`(`id`)
  78. ON DELETE RESTRICT
  79. ON UPDATE RESTRICT;
  80.  
  81. -- łaczenie tabel
  82. SELECT p.id, p.nazwa, cena, id_kategoria,k.id, k.nazwa
  83. FROM produkt p, kategoria k
  84. WHERE id_kategoria="k.id"
  85.  
  86. -- zagniezdzona kwerenda
  87. UPDATE produkt
  88. SET nazwa = "drogie"
  89. WHERE id_kategoria =
  90. (SELECT id FROM kategoria WHERE nazwa = "drogie")
  91.  
  92. -- masno z concatem
  93. UPDATE produkt
  94. SET nazwa = concat('drogi',nazwa)
  95. WHERE id_kategoria =
  96. (SELECT id FROM kategoria WHERE nazwa = "drogie")
  97.  
  98. -- daje update wielu
  99. UPDATE produkt
  100. SET cena = cena * 1.23
  101. WHERE id_kategoria IN
  102. (SELECT id FROM kategoria WHERE nazwa = "drogie" OR nazwa = "słodkie")
  103. -- update z zapytaniamia
  104. UPDATE produkt
  105. SET id_kategoria = (SELECT  id FROM kategoria WHERE nazwa = "bułki zagraniczne")
  106. WHERE id_kategoria = (SELECT  id FROM kategoria WHERE nazwa = "bułki")
  107. -- delete
  108. DELETE FROM kategoria WHERE nazwa = "słodkie"
  109.  
  110.  
  111. DELETE FROM produkt WHERE id_kategoria IN (SELECT id FROM kategoria WHERE nazwa LIKE "%o%")
  112.  
  113.  
  114. CREATE TABLE tag
  115. (
  116. id INTEGER UNSIGNED
  117. PRIMARY
  118. KEY
  119. NOT NULL
  120. AUTO_INCREMENT
  121. ,
  122. nazwa VARCHAR(100)
  123. NOT NULL
  124. )
  125.  
  126.  
  127. INSERT INTO tag (nazwa) VALUES ("bułka")
  128. INSERT INTO tag (nazwa) VALUES ("krem")
  129. INSERT INTO tag (nazwa) VALUES ("slodka")
  130. INSERT INTO tag (nazwa) VALUES ("zwykła")
  131. INSERT INTO tag (nazwa) VALUES ("droga")
  132. INSERT INTO tag (nazwa) VALUES ("tania")
  133.  
  134.  
  135. --CO POWODUJE OPCJA NOT NULL W PODANYM CZYMS?
  136. --CREATE TABLE tag (id INTEGER UNSIGNED NOT NULL)
  137.  
  138. --A) ZABRANIA POZOSTAWIENIA POLA PUSTEGO !!!!!!
  139. --B) POZWALA NA POZOSTAWIENIE POLA PUSTEGO
  140. --C) DODAJE MOZLIWOSC PISANIA
  141.  
  142. -- łaczenie elementów z tabel fajnie
  143. SELECT p.id, p.nazwa, cena, id_kategoria, t.nazwa
  144. FROM produkt p, produkt_tag pt, tag t
  145. WHERE t.nazwa="Bułka" -- nazwa
  146. AND pt.id_tag=t.id      -- produkt tag id tag = tag id
  147. AND pt.id_produkt=p.id  -- produkt tag id produkt = produkt id
  148.  
  149. -- łączenie z inner join
  150. SELECT p.id, p.nazwa, cena, id_kategoria,k.id, k.nazwa
  151. FROM produkt p
  152. INNER JOIN kategoria k ON p.id_kategoria = k.id
  153.  
  154.  
  155. -- kolejne innery --
  156.  
  157. SELECT p.id, p.nazwa AS Nazwa_Produktu, p.cena, pt.id_produkt, pt.id_tag, t.nazwa AS Nazwa_Tagu
  158. FROM produkt p
  159. INNER JOIN produkt_tag pt
  160. ON p.id = pt.id_produkt
  161. RIGHT JOIN tag t
  162. ON t.id = pt.id_tag
  163.  
  164.  
  165. SELECT t.nazwa AS Nazwa_Tagu, count(pt.id_produkt) AS Wystapienia
  166. FROM produkt p
  167. INNER JOIN produkt_tag pt
  168. ON p.id = pt.id_produkt
  169. RIGHT JOIN tag t
  170. ON t.id = pt.id_tag
  171. GROUP BY t.nazwa
  172. ORDER BY Wystapienia DESC
  173.  
  174.  
  175. SELECT  t.nazwa AS Nazwa_Tagu, MAX(Wystapienia) AS Wystapienia FROM  tag t,
  176. (SELECT t.nazwa AS Nazwa_Tagu, count(pt.id_produkt) AS Wystapienia
  177. FROM produkt p
  178. INNER JOIN produkt_tag pt
  179. ON p.id = pt.id_produkt
  180. RIGHT JOIN tag t
  181. ON t.id = pt.id_tag
  182. GROUP BY t.nazwa
  183. ORDER BY Wystapienia DESC
  184. ) res
  185.  
  186. SELECT t.nazwa AS Nazwa_Tagu, count(pt.id_produkt) AS Wystapienia
  187. FROM produkt p
  188. INNER JOIN produkt_tag pt
  189. ON p.id = pt.id_produkt
  190. RIGHT JOIN tag t
  191. ON t.id = pt.id_tag
  192. GROUP BY t.nazwa
  193. ORDER BY Wystapienia DESC
  194. LIMIT 1
  195.  
  196. Zamowienie
  197. id
  198. data
  199. klient
  200. adres
  201.  
  202. zamowiony produkt
  203. id
  204. id produktu
  205. sztuki
  206. id_zamowienia
  207.  
  208.  
  209. SELECT id, data, klient from zamowienie
  210.  
  211.  
  212. SELECT p.id, p.nazwa AS Nazwa_Produktu, zp.sztuki, z.klient AS Imie_Nazwisko, z.data, z.adres, p.cena AS Cena_Netto,'23%' AS VAT ,p.cena*1.23 AS Cena_Brutto
  213. FROM produkt p
  214. INNER JOIN  zamowienieprodukt zp
  215. ON zp.id_produkt = p.id
  216. INNER JOIN zamowienie z
  217. ON z.id=zp.id_zamowienie
  218. WHERE z.id=2
  219.