poniedziałek, 14 grudnia 2015

Dobierz odpowiednie typy danych do tabel zawierającej 

różne dane. Postaraj się, aby Twoja tabela zajmowała 

możliwie mało pamięci.

Pracownicy:

  • numer [unikalny, automatyczny] –  TINYINT NOT NULL AUTO_INCREMENT
  • imię – VARCHAR(20)
  • nazwisko – VARCHAR(25) 
  • wiek – TINYINT 
  • data urodzenia – DATE
  • miejsce zamieszkania – VARCHAR 
  • PESEL – TINYINT
  • płeć – BOOL
  • adres email – CHAR(30)
Produkty:
  • id – TINYINT
  • nazwa – VARCHAR(20)
  • cena – UNSIGNED SMALLINT
  • stawka VAT – UNSIGNED TINYINT
  • data produkcji – DATE
  • data ważności – DATETIME
Firma:
  • nazwa firmy – VARCHAR(30)
  • krótki opis firmy (tekst) – TEXT
  • logo firmy (obrazek zapisany w bazie) – BLOB
  • historia firmy (tekst) – MEDIUMTEXT
  • współrzędne GPS – DOUBLE PRECISION 
Kontrola dostępu pracowników do stref ograniczonych firmy:
  • numer pracownika – UNSIGNED TINYINT
  • jeden z poziomów dostepu – biały, zielony, żółty lub czerwony –ENUM(‘biały’, ‘zielony’, ‘żółty’, ‘czerwony’)
  • dostęp do pokoi o numerach od 1 do 50 – pracownik ma dostęp do pokoju lub nie ma dostępu – BOOLEAN
 Do czego służy atrybut AUTO_INCREMENT i w których typach danych może być stosowany?

AUTO_INCREMENT służy do generowania unikalnej wartości dla nowych wierszy (tzw. kluczy)
Do czego służy atrybut ZEROFILL?

Atrybut ZEROFILL sprawia, że wszystkie liczby w danym polu/kolumnie/tabeli zostaną poprzedzone zerami.
Do czego służy atrybut UNSIGNED i SIGNED?

Atrybut UNSIGNED to inaczej atrybut bez znaku i obejmuje tylko liczby dodatnie. Atrybut SIGNED (domyślny) pozwala zapisywać również liczby ujemne.
 Co to jest NULL i do czego służy?

NULL występuje w przypadku stwierdzenia brakującej wartości w polu tabeli.



 Jaka jest różnica pomiędzy BOOL, BOOLEAN i 

TINYINT(1)?

BOOL i BOOLEAN przyjmują wartości tylko True lub False.

Jaka jest różnica pomiędzy VAR i 

VARCHAR?

Różnica pomiędzy VARCHAR a CHAR jest taka, iż CHAR rezeruje zawsze miejsce okreslone w wielkości.Dla przykładu CHAR(10) zawsze będzie rezerwowało 10 bajtów. Nawet jak ciąg będzie krótszy to będzie zajmował 10 bajtów. 'ABC 'Dla Varchar(10) będzie to 'ABC'. Jak zatem widać Varchar bedzie optymalniejszy dla "normalnych" rozwiazań.