Když vytváříte tabulku Oracle, musíte pro každý sloupec zadat datový typ, který je spojen s konkrétním formátem úložiště, omezeními a platným rozsahem hodnot. Před vytvořením tabulky je nutná znalost datových typů. Zde v tomto článku uvidíme důležité datové typy Oracle, které budete při práci s databází Oracle poměrně často používat v PLSQL, SQL
Oracle poskytuje následující kategorie vestavěných datových typů:
Datové typy znaků
Číselné datové typy
Datový typ DATE
Datové typy LOB
Datové typy RAW a LONG RAW
Datové typy ROWID a UROWID
Datový typ znaku
-CHAR, NCHAR, VARCHAR2 &NVARCHAR2.
Datový typ CHAR je alfanumerický řetězec pevné délky, který má maximální délku v bajtech.
-Při vytváření datového typu CHAR zachová databáze prostor pro příchozí data a pokud jsou data kratší než maximální velikost, budou doplněna mezerou vpravo
Pokud například deklarujete proměnnou/sloupec datového typu CHAR (5), bude to vždy trvat 5 bajtů bez ohledu na to, zda do této proměnné nebo sloupce ukládáte 1 znak nebo 5 znaků. A v tomto příkladu, protože jsme tuto proměnnou/sloupec deklarovali jako CHAR(5), můžeme do tohoto sloupce uložit maximálně 5 znaků.
-Datový typ VARCHAR2 je alfanumerický řetězec proměnné délky, který má maximální délku v bajtech. Může uložit až 4000 bajtů.
VARCHAR2 je datový typ s proměnnou délkou. Pokud například deklarujete proměnnou/sloupec datového typu VARCHAR 2(10), bude mít počet bajtů rovný počtu znaků uložených v tomto sloupci. Takže v této proměnné/sloupci, pokud ukládáte pouze jeden znak, bude to trvat pouze jeden bajt a pokud ukládáme 10 znaků, bude to trvat 10 bajtů. A v tomto příkladu, protože jsme tuto proměnnou/sloupec deklarovali jako VARCHAR2 (10), můžeme do tohoto sloupce uložit max. 10 znaků. Využité místo bude záviset na hodnotách ve sloupci a nedojde k plýtvání místem.
Také bych zde zdůraznil jednu věc, že když dáme VARCHAR2(10), zde je 10 počet bajtů, nikoli znak. Počet znaků a bajtů je podobný, když se jedná o znak ASCII, ale rovnice se změní a začneme používat jiný znak než 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
-Datový typ VARCHAR je synonymem pro datový typ VARCHAR2. Abyste se vyhnuli možným změnám v chování, vždy používejte k ukládání řetězců znaků s proměnnou délkou datový typ VARCHAR2.
-NCHAR a NVARCHAR2 jsou datové typy Unicode, které ukládají znaková data Unicode. Znaková sada datových typů NCHAR a NVARCHAR2 může být pouze AL16UTF16 nebo UTF8 a je určena při vytváření databáze jako národní znaková sada. AL16UTF16 a UTF8 jsou kódování Unicode.
Example create table test ( First_name char(6), Last_name varchar2(10));
Číselný datový typ
-NUMBER nebo NUMBER(p,s)
-Datový typ NUMBER(p,s) ukládá číslo s přesností a měřítkem.
– Datový typ NUMBER ukládá až 38 číslic s přesností
-Číselné datové typy ukládají záporná a kladná celá čísla s pevnou řádovou čárkou a čísla s plovoucí desetinnou čárkou
-Když je sloupec definován jako ČÍSLO (6, 2), lze uložit rozsah hodnot od –9999,99 do 9999,99. Takže máme celkovou číslici jako 6 a 4 číslice před desetinnou čárkou a 2 číslice za desetinnou čárkou Oracle zaokrouhluje čísla s plovoucí desetinnou čárkou.
Example create table test ( First_name char(6), Last_name varchar2(10) age number; Salary number(10,2) );
Datum a čas
–DATE, TIMESTAMP (s časovým pásmem nebo místním časovým pásmem),
-Datový typ DATE se používá k uložení informací o datu a čase.
-Tento datový typ má řadu specifických funkcí pro manipulaci, formátování a prohlížení dat.
-Datový typ DATE uchovává sedm bajtů a obsahuje informace o století, roce, měsíci, dni, hodinách, minutách a sekundách.-Parametr NLS_DATE_FORMAT lze změnit a ovládat tak zobrazení dat. Funkce SYSDATE vrací aktuální datum
– Databáze Oracle také poskytuje datový typ DATE s vědomím časového pásma
ČASOVÉ RAZÍTKO S ČASOVÝM PÁSMEM
ČASOVÉ RAZÍTKO S MÍSTNÍM ČASOVÝM PÁSMEM
Example create table test ( First_name char(6), Last_name varchar2(10) age number, Salary number(10,2), start_date date );
Velké objekty
-BLOB(binární velký objekt) , CLOB(znak velký objekt) , NCLOB &BFILE
-Sloupce těchto datových typů mohou ukládat nestrukturovaná data včetně textu, obrázků, videa a prostorových dat. -Datový typ CLOB může uložit až osm terabajtů znakových dat pomocí znakové sady databáze CHAR.
-Datový typ BLOB se používá k ukládání nestrukturovaných binárních velkých objektů, jako jsou objekty spojené s obrazovými a video daty, kde jsou data jednoduše proudem „bitových“ hodnot.
-Hodnota datového typu BFILE funguje jako lokátor souborů nebo ukazatel na soubor v systému souborů serveru. Maximální podporovaná velikost souboru je 8 TB až 128 TB.
Dlouhé
Data proměnné délky až 2 G
rowid
Systém 64 základních čísel představující jedinečnou adresu řádku v tabulce
Doufám, že se vám tento obsah na typech dat Oracle
bude líbitSouvisející články
Oracle Indexes
Otázky k rozhovoru s Oracle
Funkce data v Oracle
Příkaz INSERT v Oracle
Aktualizační příkaz v oracle
jak zkontrolovat všechna omezení v tabulce v oracle
https://docs.oracle.com/cd/B28359_01/server.111/b28318/datatype.htm#CNCPT1832