Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Typy danych Oracle

Kiedy tworzysz tabelę Oracle, musisz określić typ danych dla każdej kolumny, który jest powiązany z określonym formatem przechowywania, ograniczeniami i poprawnym zakresem wartości. Znajomość typów danych jest niezbędna przed utworzeniem tabeli. W tym artykule zobaczymy ważne typy danych Oracle, których będziesz często używać w PLSQL, SQL podczas pracy z bazą danych Oracle

Oracle udostępnia następujące kategorie wbudowanych typów danych:
Typy danych znaków
Liczbowe typy danych
DATA typ danych
Typy danych LOB
Typy danych RAW i LONG RAW
Typy danych ROWID i UROWID

Typ danych znaków

-CHAR, NCHAR, VARCHAR2 i NVARCHAR2.

Typ danych CHAR jest ciągiem alfanumerycznym o stałej długości, który ma maksymalną długość w bajtach.

-Podczas tworzenia typu danych CHAR baza danych zachowa miejsce na przychodzące dane, a jeśli dane są krótsze niż maksymalny rozmiar, zostaną dopełnione spacją po prawej stronie

Na przykład, jeśli zadeklarujesz zmienną/kolumnę typu danych CHAR (5), to zawsze zajmie ona 5 bajtów, niezależnie od tego, czy przechowujesz 1 znak, czy 5 znaków w tej zmiennej lub kolumnie. A w tym przykładzie, ponieważ zadeklarowaliśmy tę zmienną/kolumnę jako CHAR(5), więc możemy przechowywać maksymalnie 5 znaków w tej kolumnie.

-Typ danych VARCHAR2 jest ciągiem alfanumerycznym o zmiennej długości, który ma maksymalną długość w bajtach. Może przechowywać do 4000 bajtów.

VARCHAR2 to typ danych o zmiennej długości. Na przykład, jeśli zadeklarujesz zmienną/kolumnę typu danych VARCHAR 2(10), przyjmie ona liczbę bajtów równą liczbie znaków przechowywanych w tej kolumnie. Czyli w tej zmiennej/kolumnie, jeśli zapisujesz tylko jeden znak, to zajmie tylko jeden bajt, a jeśli zapiszemy 10 znaków, to zajmie 10 bajtów. A w tym przykładzie, ponieważ zadeklarowaliśmy tę zmienną/kolumnę jako VARCHAR2 (10), więc możemy przechowywać maksymalnie 10 znaków w tej kolumnie. Wykorzystana przestrzeń będzie zależeć od wartości w kolumnie i nie będzie marnowania miejsca.

Chciałbym również podkreślić tutaj jedną rzecz, że gdy podajemy VARCHAR2(10) tutaj jest 10 to liczba bajtów, a nie znak. Liczba znaków i bajtów jest podobna, gdy w grę wchodzi znak ASCII, ale równanie ulega zmianie, zaczynamy używać znaku innego niż ASCII

The length semantics of character datatypes can be measured in bytes or characters.

Byte semantics treat strings as a sequence of bytes. This is the default for character datatypes.

Character semantics treat strings as a sequence of characters. A character is technically a codepoint of the database character set.

So VARCHAR (10 Byte) has length measured in byte. VARCHAR (10 CHAR)  has length measured in character.

The default for VARCHAR is based on NLS_LENGTH_SEMANTICS parameter set in the database. By default this is set to Byte,so when we use VARCHAR(10) , it uses length measured in byte

-Typ danych VARCHAR jest równoznaczny z typem danych VARCHAR2. Aby uniknąć możliwych zmian w zachowaniu, zawsze używaj typu danych VARCHAR2 do przechowywania ciągów znaków o zmiennej długości.

-NCHAR i NVARCHAR2 to typy danych Unicode, które przechowują dane znakowe Unicode. Zestaw znaków typów danych NCHAR i NVARCHAR2 może być tylko AL16UTF16 lub UTF8 i jest określany podczas tworzenia bazy danych jako krajowy zestaw znaków. AL16UTF16 i UTF8 to kodowanie Unicode.

Example

create table test  (
First_name char(6),
Last_name varchar2(10));

Typ danych liczby

-LICZBA lub LICZBA(p,s)

-Typ danych NUMBER(p,s) przechowuje liczbę z dokładnością i skalą.

– Typ danych NUMBER przechowuje do 38 cyfr precyzji

-Numeryczne typy danych przechowują ujemne i dodatnie liczby całkowite, liczby stałoprzecinkowe i zmiennoprzecinkowe

-Gdy kolumna jest zdefiniowana jako LICZBA (6, 2), zakres wartości może być przechowywany od –9999.99 do 9999,99. Więc mamy całkowitą cyfrę jako 6 i 4 cyfry przed dziesiętnym i 2 cyfry po dziesiętnym. Oracle zaokrągla liczby zmiennoprzecinkowe.

Example

create table test  (
First_name char(6),
Last_name varchar2(10)
age number;
Salary number(10,2)
); 

Data i godzina

–DATA, ZNACZNIK CZASU (ze strefą czasową lub lokalną strefą czasową),

- Typ danych DATE służy do przechowywania informacji o dacie i godzinie.

-Ten typ danych ma wiele specyficznych funkcji do manipulowania, formatowania i przeglądania jego danych.

-Typ danych DATE przechowuje siedem bajtów i zawiera informacje o wieku, roku, miesiącu, dniu, godzinach, minutach i sekundach.
-Parametr NLS_DATE_FORMAT można zmienić, aby sterować wyświetlaniem danych. Funkcja SYSDATE zwraca bieżącą datę

– Baza danych Oracle zapewnia również typ danych DATE uwzględniający strefę czasową

ZNACZNIK CZASOWY ZE STREFĄ CZASOWĄ
ZNACZNIK CZASOWY Z LOKALNĄ STREFĄ CZASOWĄ

 Example

create table test  (
First_name char(6),
Last_name varchar2(10)
age number,
Salary number(10,2),
start_date date );

Duże obiekty

-BLOB(duży obiekt binarny) , CLOB(duży obiekt znakowy) , NCLOB &BFILE

- Kolumny tych typów danych mogą przechowywać nieustrukturyzowane dane, w tym tekst, obraz, wideo i dane przestrzenne. -Typ danych CLOB może przechowywać do ośmiu terabajtów danych znakowych przy użyciu zestawu znaków bazy danych CHAR.

-Typ danych BLOB służy do przechowywania nieustrukturyzowanych dużych obiektów binarnych, takich jak te związane z danymi obrazu i wideo, gdzie dane są po prostu strumieniem wartości „bitowych”.

-Wartość typu danych BFILE działa jako lokalizator plików lub wskaźnik do pliku w systemie plików serwera. Maksymalny obsługiwany rozmiar pliku to 8 TB do 128 TB.

Długie

Dane znaków o zmiennej długości do 2 G

rowid

64-podstawowy system liczbowy reprezentujący unikalny adres wiersza w tabeli

Mam nadzieję, że podoba Ci się ta treść dotycząca typów danych Oracle

Powiązane artykuły

Indeksy Oracle
Pytania dotyczące Oracle Interview
Funkcje daty w Oracle
Oświadczenie INSERT w Oracle
Oświadczenie Update w Oracle
jak sprawdzić wszystkie ograniczenia tabeli w Oracle
https://docs.oracle.com/cd/B28359_01/server.111/b28318/datatype.htm#CNCPT1832


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. BIN_TO_NUM() Funkcja w Oracle

  2. Jak przechowywać ciąg dłuższy niż 4000 znaków w bazie danych Oracle przy użyciu Java/JDBC?

  3. Monitor zmiany tabeli Oracle

  4. Dlaczego Oracle.ManagedDataAccess nie działa, gdy działa Oracle.DataAccess?

  5. Kodowanie i dekodowanie Base64 w Oracle