Ćwiczenia > Budowa bazy danych w MS SQL Server 2000 > Typy danych

3.2 Typy danych



Zanim utworzysz bazę danych, musisz poznać typy danych dostępne w MS SQL Server 2000.

Krok 1 - Przejrzyj listę typów danych

1. Uruchom program Enterprise Manager.
2. Po lewej stronie okna programu rozwijaj drzewo (wejdź w folder Databases), wejdź w bazę danych Northwind i kliknij pozycję Tables.
3. Po prawej stronie okna kliknij prawym przyciskiem myszy na tabeli Employees i z menu kontekstowego wybierz pozycję Design Table.
4. Zapoznaj się z typami danych kolumn w tej tabeli. Możesz klikać lewym przyciskiem myszy na polu wyboru typu danych, aby rozwinąć pełną listę typów.



Rys. 3.2.1 Enterprise Manager - widok projektu tabeli


5. Zamknij okno widoku projektu tabeli Employees.

MS SQL Server 2000 udostępnia Ci następujące typy danych:

Tabela 3.2.1 Typy danych w MS SQL Server 2000

Kategoria Opis Typ danych Szczegóły
Typy binarne Dane zawierają łańcuchy binariów zapisanych w postaci liczb w systemie szesnastkowym (heksadecymalnym). binary Dane o stałej przypisanej długości (do 8KB).
varbinary Dane o różnej długości aż do zdefiniowanej maksyalnej (do 8KB).
image Dane mogą być różnej długości i przekroczyć rozmiarem 8KB.
Typy tekstowe Dane są kombinacją liter, cyfr i symboli. char Dane o stałej przypisanej długości (do 8KB).
varchar Dane o różnej długości aż do zdefiniowanej maksyalnej (do 8KB).
text Data can be ASCII characters that exceed 8 KB.
Data i czas Dane są kombinacją dobrze sformatowanej daty i czasu. Nie istnieją typy danych opisujące osobno datę i czas. datetime Data z zakresu od 1 stycznia 1753 do 31 grudnia 9999 (jedna wartość zajmuje 8B).
smalldatetime Data z zakresu od 1 stycznia 1900 do 6 lipca 2079 (jedna wartość zajmuje 4B).
Typy liczb dziesiętnych Dane liczbowe o dokładności do ostatniej znaczącej cyfry. decimal Maksymalnie 38 cyfr, z czego wszystkie mogą znajdować się po prawej stronie przecinka. Typ przechowuje dane dokładne (nie przybliżone).
numeric W SQL Server jest to odpowiednik typu decimal.
Typy liczb o zmiennej precyzji Dane są przybliżonymi liczbami zmiennoprzecinkowymi o dokładności takiej, jaka może w danej chwili być obsłużona przez mechanizmy obliczeniowe. float Liczba zmiennoprzecinkowa z zakresu od –1.79E + 308 do 1.79E + 308.
real Liczba zmiennoprzecinkowa z zakresu od–3.40E + 38 do 3.40E + 38.
Typy liczb całkowitych Dane są liczbami całkowitymi. bigint Liczba całkowita z zakresu od –2^63 (–9223372036854775808) do 2^63–1 (9223372036854775807). Rozmiar jednej liczby 8B.
int Liczba całkowita z zakresu od –2,147,483,648 do 2,147,483,647. Rozmiar jednej liczby 4B.
smallint Liczba całkowita z zakresu od –32,768 do 32,767. Rozmiar jednej liczby 2B.
tinyint Liczba całkowita z zakresu od zera do 255. Rozmiar jednej liczby 1B.
Typy monetarne Dane reprezentują ujemne lub dodatnie sumy pieniędzy. money Wartość monetarna z zakresu od –922,337,203,685,477.5808 do +922,337,203,685,477.5807. Rozmiar jednej wartości 8B.
smallmoney Wartość monetarna z zakresu od –214,748.3648 do 214,748.3647. Rozmiar jednej wartości 4B.
Typy specjalne Dane specjalne to dane, które nie pasują do innych kategorii. bit Dane zawierają wartość 1 albo 0. Uzywaj ich, gdy chcesz przedstawić zagadnienia typu PRAWDA lub FAŁSZ albo TAK lub NIE.
cursor Typ danych używany przez zmienne lub parametry wyjściowe procedur składowanych, które zawierają referencje do kursora.
timestamp Typ danych używany do wskazania ciągu aktywności This data type is used to indicate the sequence of SQL Server activity on a row and is represented as an increasing number in a binary format.
uniqueidentifier Dane są 16-bajtowymi szesnastkowymi liczbami wskazującymi na globalnie unikalne identyfikatory (GUID). GUID są użyteczne, gdy wiersz musi być unikalny pośród wielu wierszy.
SQL_variant Ten typ danych przechowuje wartości różnych typów z wyjątkiem typów text, ntext, timestamp, image oraz sql_variant.
table Typ danych przechowujący zestaw wyników do dalszego przetwarzania. Może być używany tylko do definiowania zmiennych lokalnych lub wartości zwracanych przez funkcje użytkownika.
Typy Unicode Dane tekstowe zapisane w postaci Unicode. Zajmują one dwukrotnie więcej miejsca niż zwykłe dane tekstowe. nchar Dane o stałej przypisanej długości (do 4000 znaków Unicode).
nvarchar Dane o różnej długości aż do zdefiniowanej maksyalnej (do 4000).
ntext Dane mogą długością przekraczać 4000 znaków Unicode.


Oczywiście nie będziesz używać wszystkich typów danych. Ale kilku będziesz używać prawie zawsze podczas pracy z serwerem MS SQL.

Krok 2 - Zaplanuj typy danych dla projektu Biblioteka

Wiesz już, jak powinna wyglądać struktura bazy danych. Teraz musisz zdecydować, jakie typy danych przypiszesz kolumnom w tabelach. Wypisz na kartce kolumny tabel bazy danych Biblioteka wraz z wybranymi dla nich przez Ciebie typami danych.

Dla bazy danych Biblioteka proponujemy Ci następujące typy danych:

Tabela Ksiazki
ID_ksiazki - int
tytul - varchar(100)
rok_wydania - char(4) - zauważ, że potrzebujemy tylko rok (4 znaki), nie całą datę
ID_wydawnictwa - int

Tabela Autorzy
ID_autora - int
imie - varchar(20)
nazwisko - varchar(50)

Tabela Autorstwo
ID_ksiazki - int
ID_autora - int

Tabela Wydawnictwa
ID_wydawnictwa - int
wydawnictwo - varchar(100)

Przewagą typów o zmiennej długości (np. varchar) nad typami o stałym rozmiarze (np. char) jest to, że serwer nie rezerwuje zawsze maksymalnej zadeklarowanej długości. Zatem stosuj typy o stałym rozmiarze wówczas, gdy wszystkie wartości będą miały ten sam rozmiar (tak jak rok - cztery znaki). W pozostałych przypadkach wybór typu o zmiennej długości będzie na ogół lepszym rozwiązaniem.


Zauważ, że znając rozmiar każdej kolumny i zakładając ilość wierszy w tabelach możesz oszacować wstępnie rozmiar bazy danych, co uczynisz w następnej lekcji.


Dla bazy danych Prace dyplomowe przypisz każdej kolumnie odpowiedni typ danych. Obok typu wypisz też rozmiar typu danych (w bajtach lub kilobajtach).


Przejdź dalej



Ćwiczenia > Budowa bazy danych w MS SQL Server 2000 > Typy danych