niedziela, 13 grudnia 2015

Typy danych MySQL i atrybuty

1. Typy zmiennych
Numeric Types – typy numeryczne
  • TINYINT – rozmiar 1 bajt – Liczby z zakresu od -127 do 128 lub liczby dodatnie od 0 do 255.
  • BOOL – rozmiar 1 bajt – Zakres True (true != 0) oraz False (false == 0).
  • BOOLEAN – rozmiar 1 bajt – Zakres True (true != 0) oraz False (false == 0).
  • SMALLINT – rozmiar 2 bajty – Liczby z zakresu od -32,768 do 32,767 lub liczby dodatnie od 0 do 65,535.
  • MEDIUMINT – rozmiar 3 bajty – Liczby z zakresu od – 8,388,608 do 8,388,607 lub dodatnie od 0 do 4,294,967 295.
  • INTEGER – rozmiar 4 bajty – Liczby z zakresu od -2,147,483,648 do 2,147,483,647 lub liczby dodanie od 0 do 4,294,967,295.

  • BIGINT – rozmiar 8 bajtów – Liczby z zakresu od -9,223,372,036,854,775,808 – 9,223,372,036,854,775,807 lub liczby dodatnie od 0 – 18,446,744,073,709,551,615.
  • FLOAT(M,D) – rozmiar 4 bajty – Liczba zmiennoprzecinkowa, która nie może być nieprzypisana. Można rozróżnić długość (M) i ilość cyfr decymalnych (D). Np. 10.2, gdzie 2 to ilość cyfr decymalnych, a 10 to całkowita liczba numerów (włączając liczby decymalne).
  • DOUBLE PRECISION(M,D) – rozmiar 8 bajtów – Liczba zmiennoprzecinkowa podwójnej precyzji, która nie może być nieprzypisana.  Można rozróżnić długość (M) i ilość cyfr decymalnych (D).
  • DECIMAL(M,D) – rozmiar (M+2) znaków – Liczba typu DOUBLE przechowywana jako łańcuch (możliwość określenia stałej liczby miejsc po przecinku). Baza danych może przechowywać więcej miejsc decymalnych (np. 1.004 zamiast 1.000).
  • DEC – rozmiar (M+2) znaków – synonim DEC(M,D).
  • NUMERIC – rozmiar (M+2) znaków- W odróżnieniu od DECIMAL, NUMERIC musi być precyzyjnie podane. Jeżeli podamy 4 miejsca decymalne, baza danych musi przechować 4 miejsca decymalne.
Date and Time Types – typy daty i czasu
  • DATE – rozmiar 3 bajty – Zakres ‘1000-01-01’ – ‘9999-12-31’ (domyślnie, gdy NOT NULL -> ‘0000-00-00’), format YYYY-MM-DD.
  • DATETIME – rozmiar 8 bajtów – Zakres ‘1000-01-01 00:00:00’ – ‘9999-12-31 23:59:59’ (domyślnie, gdy NOT NULL -> ‘0000-00-00 00:00:00’), format YYYY-MM-DD hh:mm:ss.
  • TIMESTAMP – Rozmiar 4 bajty – Zakres ‘1970-01-01 00:00:01’ UTC – ‘2038-01-19 03:14:07’ UTC (domyślnie, gdy NOT NULL -> CURRENT TIMESTAMP, czyli obecna godzina/data), format YYYY-MM-DD hh:mm:ss.
  • TIME – Rozmiar 3 bajty – Zakres od -838:59:59 do 838:59:59, format hh:mm:ss.
String Types – napisy
  • CHAR[(M)] – rozmiar M znaków – Zakres M=0-255 znaków.
  • VARCHAR(M) – rozmiar M znaków +1 – Zakres M=0-65535 znaków.
  • BINARY(M) – rozmiar M bajtów – M=0-255 bajtów.
  • VARBINARY(M) – rozmiar M bajtów – M=0-65535 bajtów.
  • TINYBLOB – rozmiar (X+1) bajtów – X=0-255 bajtów.
  • TINYTEXT – rozmiar X znaków + 1 bajt – X=0-255 znaków.
  • BLOB – rozmiar (X+2) bajtów – X = 0-65535 bajtów.
  • TEXT – rozmiar X znaków + 2 bajty – X = 0-65535 (64kB).
  • MEDIUMBLOB – rozmiar (X+3) bajtów – X = 0-16777215 bajtów (16MB).
  • MEDIUMTEXT – rozmiar X znaków + 3 bajty – X = 0-16777215 znaków.
  • LONGBLOB – rozmiar (X+4) bajtów – X= 0-4294967295 bajtów (4GB).
  • LONGTEXT – rozmiar X znaków + 4 bajty – X= 0-4294967295 znaków.
  • ENUM(‘value1’, ‘value2’, …) – rozmiar 1-2 bajty – 1-65535 wartości.
2. Jaka jest różnica pomiędzy VAR i VARCHAR?
VAR(n), w przeciwieństwie do VARCHAR(n), uzupełnia napisy spacjami, jeżeli są mniejsze niż n.
3. Jaka jest różnica pomiędzy BOOL, BOOLEAN i TINYINT(1)?
BOOL i BOOLEAN przyjmują wartości tylko True lub False.
4. Co to jest NULL i do czego służy?
NULL występuje w przypadku stwierdzenia brakującej wartości w polu tabeli.
5. 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.

6. Do czego służy atrybut ZEROFILL?
Atrybut ZEROFILL sprawia, że wszystkie liczby w danym polu/kolumnie/tabeli zostaną poprzedzone zerami.
7. 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)
8. 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

Brak komentarzy:

Prześlij komentarz