sobota, 6 listopada 2010

Kurs Oracle SQL. Typy danych


Typy danych


W Oracle jest bardzo wiele typów danych. W poniższym zestawieniu prezentuję tylko te najpowszechniejsze.

Typ numeryczny

Number(P,S)


Ten typ może przechowywać typy rzeczywiste oraz całkowite. P oznacza ilość cyfr w całej liczbie, natomiast S oznacza ilość miejsc po przecinku.

 

Typy znakowe

Char(L)


Przechowuje stałą ilość znaków zadeklarowaną jako parametr L. L musi być mniejsze niż 256. Przykładowo jeśli do kolumny typu Char(100) wstawimy pojedynczą literę, przechowywane będzie 100 znaków. Wartość zostanie uzupełniona do 100 spacjami.

Varchar2(L)


Dane tego typu zajmują dokładnie tyle miejsca ile zostanie przypisanych znaków. Parametr L określa maksymalną ilość znaków. L musi być mniejsze od 4000. Porównaj własności typu Char oraz Varchar2. Ze względu na optymalizację, dane tekstowe zazwyczaj przechowuje się w typie Varchar2. Typ Char istnieje w najnowszych wersjach Oracle ze względu na wsteczną kompatybilność. W użytku codziennym używa się typu Char raczej sporadycznie i tylko wtedy gdy zachodzi taka konieczność.

Long


Posiada własności takie jak VARCHAR2, jednak może przechowywać do 2 GB tekstu.

Inne typy

Raw(L)


Typ zachowujący się jak CHAR(L), jednak służy do przechowywania danych binarnych.

Long raw

 

Odpowiednik typu Long, tylko do przechowywania danych binarnych.

Date


Przechowuje informacje o wieku, roku, miesiącu, dniu, godzinie, minucie oraz sekundzie.

Timestamp(L)


Typ zbliżony do Date. Przechowuje dodatkowo do L miejsc po przecinku sekundy. L nie może być większe niż 9.

BLOB, CLOB, BFILE

 

Służą do przechowywania bardzo dużych plików. Ze względu na ich wysoką wydajność zaleca się korzystanie z tych typów zamiast typów LONG i LONG RAW.



Ten temat omawiam na poniższych szkoleniach:
Podstawy Oracle SQL
Podstawy SQL i PL/SQL
Możesz w nich uczestniczyć, a jako czytelnik tego bloga otrzymasz 10% zniżki - poinformuj o tym fakcie konsultanta.

4 komentarze:

  1. Co znaczy, że typ timestamp jest "zbliżony" do date?

    OdpowiedzUsuń
  2. To znaczy że oba przechowują datę i czas, z tym że timestamp może jeszcze przechowywać czas z dokładnością do 9 miejsca po przecinku sekundy :)

    OdpowiedzUsuń
  3. A jakiego typu danych powinnam użyć jeśli chcę wskazać upływ czasu? Chodzi o podanie czasu w dniach/godzinach - w innej tabeli miałabym podaną datę rejestracji sprawy/wniosku, a w tej max czas analizy sprawy. Wynikiem miałaby być max data realizacji sprawy (lub zamiennie czas pozostały do realizacji).

    OdpowiedzUsuń
  4. Ten komentarz został usunięty przez autora.

    OdpowiedzUsuń