sql >> Database >  >> RDS >> Oracle

Oracle-gegevenstypen

Wanneer u een Oracle-tabel maakt, moet u voor elke kolom een ​​gegevenstype opgeven, dat is gekoppeld aan een specifieke opslagindeling, beperkingen en een geldig waardenbereik. De kennis van gegevenstypen is noodzakelijk voordat u de tabel maakt. Hier in dit artikel zullen we belangrijke Oracle-gegevenstypen zien die u vrij vaak in PLSQL, SQL zult gebruiken terwijl u met de Oracle-database werkt

Oracle biedt de volgende categorieën ingebouwde gegevenstypen:
Karaktergegevenstypen
Numerieke gegevenstypen
DATE gegevenstype
LOB-gegevenstypen
RAW- en LONG RAW-gegevenstypen
ROWID- en UROWID-gegevenstypen

Gegevenstype karakter

-CHAR, NCHAR, VARCHAR2 &NVARCHAR2.

Het CHAR-gegevenstype is een alfanumerieke tekenreeks met een vaste lengte met een maximale lengte in bytes.

-Bij het maken van een CHAR-gegevenstype behoudt de database ruimte voor de binnenkomende gegevens en als de gegevens kleiner zijn dan de maximale grootte, wordt deze naar rechts met een spatie gevuld

Als u bijvoorbeeld een variabele/kolom van het gegevenstype CHAR (5) declareert, duurt het altijd 5 bytes, ongeacht of u 1 of 5 tekens in deze variabele of kolom opslaat. En in dit voorbeeld, aangezien we deze variabele/kolom hebben gedeclareerd als CHAR(5), kunnen we maximaal 5 tekens in deze kolom opslaan.

-Het VARCHAR2-gegevenstype is een alfanumerieke tekenreeks met variabele lengte, met een maximale lengte in bytes. Het kan tot 4000 bytes opslaan.

VARCHAR2 is een gegevenstype met variabele lengte. Als u bijvoorbeeld een variabele/kolom van het gegevenstype VARCHAR 2(10) declareert, zal het aantal bytes gelijk zijn aan het aantal tekens dat in deze kolom is opgeslagen. Dus, in deze variabele/kolom, als je maar één teken opslaat, dan duurt het maar één byte en als we 10 tekens opslaan, dan duurt het 10 bytes. En in dit voorbeeld, aangezien we deze variabele/kolom hebben gedeclareerd als VARCHAR2 (10), kunnen we maximaal 10 tekens in deze kolom opslaan. De gebruikte ruimte is afhankelijk van de waarden in de kolom en er wordt geen ruimte verspild.

Ik wil hier ook één ding benadrukken dat wanneer we VARCHAR2 (10) geven, hier 10 is, het aantal bytes is en niet het teken. Het aantal tekens en bytes is vergelijkbaar als het om ASCII-tekens gaat, maar de vergelijking wordt gewijzigd, we gaan een ander teken gebruiken dan 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

-Het VARCHAR-gegevenstype is synoniem met het VARCHAR2-gegevenstype. Gebruik altijd het gegevenstype VARCHAR2 om tekenreeksen met variabele lengte op te slaan om mogelijke gedragsveranderingen te voorkomen.

-NCHAR en NVARCHAR2 zijn Unicode-gegevenstypen die Unicode-tekengegevens opslaan. De tekenset van NCHAR- en NVARCHAR2-gegevenstypes kan alleen AL16UTF16 of UTF8 zijn en wordt bij het maken van de database gespecificeerd als de nationale tekenset. AL16UTF16 en UTF8 zijn beide Unicode-codering.

Example

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

Gegevenstype nummer

-NUMBER of NUMBER(p,s)

-Het datatype NUMBER(p,s) slaat getallen op met precisie en schaal.

– NUMBER datatype slaat tot 38 cijfers nauwkeurig op

-Numerieke datatypes slaan negatieve en positieve gehele getallen op, vaste-kommagetallen en drijvende-kommagetallen

-Als een kolom is gedefinieerd als NUMBER (6, 2), kan het waardenbereik worden opgeslagen van -9999.99 tot 9999,99. Dus we hebben een totaalcijfer van 6 en 4 cijfers voor decimaal en 2 cijfers na decimaal Oracle rondt de getallen met drijvende komma af.

Example

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

Datum en tijd

–DATE, TIMESTAMP (met tijdzone of lokale tijdzone),

-Het gegevenstype DATE wordt gebruikt om datum- en tijdinformatie op te slaan.

-Dit gegevenstype heeft een aantal specifieke functies voor het manipuleren, formatteren en bekijken van de gegevens.

-Het datatype DATE heeft een opslagcapaciteit van zeven bytes en bevat informatie over eeuw, jaar, maand, dag, uren, minuten en seconden.
-De parameter NLS_DATE_FORMAT kan worden gewijzigd om het bekijken van de gegevens te regelen. De functie SYSDATE retourneert de huidige datum

–Oracle-database biedt ook tijdzonebewust DATE-gegevenstype

TIJDSTEMPEL MET TIJDZONE
TIJDSTEMPEL MET LOKALE TIJDZONE

 Example

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

Grote objecten

-BLOB(binair groot object) , CLOB(karakter groot object) , NCLOB &BFILE

-Kolommen van deze gegevenstypen kunnen ongestructureerde gegevens opslaan, waaronder tekst, afbeeldingen, video en ruimtelijke gegevens. -Het CLOB-gegevenstype kan maximaal acht terabytes aan tekengegevens opslaan met behulp van de CHAR-databasetekenset.

-Het BLOB-gegevenstype wordt gebruikt om ongestructureerde binaire grote objecten op te slaan, zoals objecten die zijn gekoppeld aan afbeeldings- en videogegevens, waarbij de gegevens eenvoudigweg een stroom van "bit" -waarden zijn.

-De waarde van het BFILE-gegevenstype werkt als een bestandszoeker of aanwijzer naar een bestand op het bestandssysteem van de server. De maximale ondersteunde bestandsgrootte is 8 TB tot 128 TB.

Lang

Karaktergegevens met variabele lengte tot 2 G

rumoer

Een systeem met 64 grondtalen dat het unieke adres van de rij in de tabel vertegenwoordigt

Ik hoop dat je deze inhoud leuk vindt over Oracle-gegevenstypen

Gerelateerde artikelen

Oracle-indexen
Oracle-interviewvragen
Datumfuncties in Oracle
INSERT-instructie in Oracle
Instructie in Oracle bijwerken
hoe u alle beperkingen op een tabel in Oracle kunt controleren
https://docs.oracle.com/cd/B28359_01/server.111/b28318/datatype.htm#CNCPT1832


  1. Three table join met andere joins dan INNER JOIN

  2. Leer de basisprincipes van Java-logboekregistratie

  3. Array bijwerken in PostgreSQL

  4. Nog een argument voor opgeslagen procedures