Typy danych

lipiec 1, 2009

Typy danych w języku SQL ( Oracle)

Podobnie jak większość języków programowania, także SQL obsługuje wiele różnych typów danych w celu efektywnego przechowywania napisów stałej i zmiennej długości, liczb całkowitych, zmiennoprzecinkowych, dat oraz danych binarnych.

Typy danych łańcuchowych

Typ danych CHAR() pozwala przechowywać napisy o zadanej długości, od 1 do 255 znaków. Długością domyślną jest 1 znak – brak podania po nazwie typu nawiasów z wartością długości napisów również oznacza napisy długości jeden. Jeśli napis jest krótszy niż założona długość kolumny, brakująca część napisu jest uzupełniana spacjami. Innym słowy, SQL zawsze wymusza wpisanie ciągu znakowego odpowiadającego z ustawionym wymiarem kolumny typu CHAR.

Uwaga. Kolumny o typie danych znakowych o stałej długości dobrze zdają egzamin w sytuacjach, kiedy jest zagwarantowana stała długość przechowywanych ciągów alfanumerycznych. W przypadku, gdy wpisywane do kolumny napisy mają różną długość lepiej dla danej kolumny ustawić typ danych znakowych o zmiennej długości.

Typy danych VARCHAR() i VARCHAR2() pozwalają na przechowywanie w kolumnach napisów o zmiennej długości, których długość może wahać się od 1 do 2000 znaków. Jeśli napis będzie krótszy lub dokładnie tak długi, jak to zostało wyspecyfikowane dla danej kolumny, napis będzie zapisany dokładnie tak, jak został podany. Jeśli napis będzie dłuższy, to wystąpi błąd. Nie jest konieczne uzupełnianie brakujących znaków jakimikolwiek spacjami.

Uwaga. Jaki jest powód istnienia dwóch typów danych – VARCHAR i VARCHAR2? Typ VARCHAR został zdefiniowany przez standard ANSI, natomiast typ VARCHAR2 – przez firmę Oracle. W chwili obecnej typy te charakteryzują się takimi samymi właściwościami. W przyszłości właściwości ANSI VARCHAR mogą się zmienić, a typ VARCHAR2 pozostanie taki sam. Dlatego należy preferować używanie typu VARCHAR2.

Typ numeryczny

Całkowitoliczbowy typ danych występujący w języku SQL firmy Oracle różni się od ANSI SQL. W przypadku Oracle każdy typ liczbowy jest określany jako NUMBER(), niezależnie od tego, czy jest to liczba całkowita, krótka liczba całkowita, liczba zmiennoprzecinkowa, czy też liczba dziesiętna o określonej precyzji.

Typ danych – Opis

NUMBER(1) – Może przechowywać dokładnie jedną cyfrę
NUMBER(8) – Może przechowywać dokładnie 8 cyfr
NUMBER – To już nie jest liczba całkowita, lecz zmiennoprzecinkowa

Liczby stałoprzecinkowe: NUMBER(zakres, dokładność), gdzie zakres oznacza ilość cyfr, które będą w kolumnie przechowywane, zaś dokładność oznacza ilość cyfr na prawo od kropki dziesiętnej. Liczby stałoprzecinkowe zawsze mają taką dokładność, z jaką kolumna była zadeklarowana. Normalnie dokładność jest mniejsza od zakresu. Istnieją jednak dwa przypadki szczególne, kiedy dokładność jest dodatnia i mniejsza od zakresu:

  • Kiedy zakres liczby jest większy od zakresu kolumny. W tym przypadku liczba będzie zaokrąglona tak, aby zmieściła się w kolumnie, i liczba zostanie wprowadzona.
  • Kiedy liczba jest zbyt duża, aby zmieścić się w kolumnie, generowany jest błąd i liczba nie jest wprowadzana.

W tych przypadkach wprowadzana liczba nie do końca zgadza się z definicją kolumny.

Entry Filed under: ogólnie, typy danych. Tagi: , , , , .

Leave a Comment

Required

Required, hidden

Some HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Trackback this post  |  Subscribe to the comments via RSS Feed


Linki

Najnowsze wpisy

Najnowsze komentarze

marian boczek w Proces projektowania baz …
sc w Przykładowe zapytania SQL
Bart Cart w Podstawy z baz ciąg dalszy…
Tomek w Definicja bazy danych
Tomek w Relacyny model danych

Kategorie

Archiwa

Tagi

Access baza danych bazy podstawy bazy SQL CHAR dane logiczne DATE definicja instrukcje komendy model danych modele baz modelowanie NUMBER operatory podstawy proces projektowania projektowanie projektowanie baz relacyjna schemat SELECT sql struktura typy typy danych VARCHAR where zapytania