>일반적인 문제 >Oracle의 데이터 유형은 무엇입니까?

Oracle의 데이터 유형은 무엇입니까?

DDD
DDD원래의
2023-06-05 11:40:3015909검색

oracle의 데이터 유형은 다음과 같습니다. 1. 모든 문자열을 표현할 수 있는 문자열 유형 char 및 varchar2 2. 모든 숫자를 표현할 수 있는 숫자 유형 number(m,n) 3. 날짜를 저장하는 날짜 유형 4. 단일 바이트 문자열 또는 다중 바이트 문자열 데이터를 저장하는 clob 유형 5. 구조화되지 않은 이진 데이터를 저장하는 blob 유형 6. 데이터베이스에 기록된 물리적 주소를 테이블에 저장하는 rowid 유형 7. 기타 데이터 유형.

Oracle의 데이터 유형은 무엇입니까?

이 문서의 운영 환경: Windows 10 시스템, Oracle 버전 19c, dell g3 컴퓨터.

Oracle의 데이터 유형은 다음과 같습니다.

1. 문자열 유형: char 및 varchar2, 모든 문자열을 표현할 수 있습니다.

2. 숫자 유형: 숫자(m,n), 임의의 숫자를 표현할 수 있습니다. m은 숫자의 전체 길이이고, n은 소수점 이하 자릿수입니다. 정수.

3. 날짜 유형: 날짜, 연도(yyyy), 월(mm), 일(dd), 시(hh24), 분(mi), 초(ss)를 포함하여 날짜와 시간을 저장합니다.

4. 텍스트 파일, xml 파일 등 단일 바이트 문자열 또는 다중 바이트 문자열 데이터를 저장하는 Clob 유형입니다.

5. 사진, 오디오, 비디오, 사무 문서 등 구조화되지 않은 바이너리 데이터를 저장하는 Blob 유형.

6. 데이터베이스에 기록된 물리적 주소를 테이블에 저장하는 Rowid형.

7. 기타 데이터 유형.

1. 문자열 유형

은 C/C++ 언어에서 사용됩니다. Oracle 데이터베이스에서는 문자열을 다음과 같이 작은따옴표로 묶습니다. 'Coder Youdao'

'A Silly Bird'

1. 고정 길이 문자열

고정 길이 문자열은 저장된 데이터 내용의 길이가 충분하지 않을 경우 자동으로 공백이 채워집니다. 고정 길이에 도달하는 데이터 콘텐츠(예: char(10))에는 항상 10바이트의 정보가 포함됩니다.

Char 필드는 최대 2000바이트의 콘텐츠를 저장할 수 있습니다.

2. 가변 길이 문자열

가변 길이 문자열은 char 유형과 달리 데이터 내용 뒤에 아무것도 채우지 않습니다.

varchar2 필드는 최대 4000바이트의 콘텐츠를 저장할 수 있으며, Oracle 12c 버전부터는 32767바이트의 콘텐츠를 저장할 수 있습니다.

3. char과 varchar2의 비교

char(10), 'freecplus'에 저장되면 'freecplus'가 끝에 공백이 추가되어 데이터베이스에 저장됩니다.

varchar2(10), 'freecplus'를 저장하면 'freecplus'가 데이터베이스에 저장되고 아무것도 추가되지 않습니다.

실제 응용 프로그램에서는 Oracle이 문자열 뒤에 공백을 추가하는 것을 원하지 않으므로 char 유형을 버릴 수 있습니까? 아니요, 일반적으로 char 유형을 사용하여 항상 18비트인 ID 번호와 같은 고정 크기 데이터 콘텐츠를 저장하므로 char(18)이 ID 번호를 저장하는 데 매우 적합합니다. 물론 가능하지만 char(18)의 효율성은 varchar2(18)의 효율성보다 훨씬 높습니다.

요약하자면, 성별, 주민등록번호, 휴대폰번호 등 저장된 문자열의 길이가 고정되어 있는 것이 확실한 경우에는 char형을 사용하고, 그렇지 않으면 이름 등의 varchar2형을 사용합니다. 학력, 주소, 취미 등 char은 딱딱하지만 효율적이다.

4. 한자 저장

각 한자가 차지하는 바이트 수는 UTF-8(1-3바이트), GB2312(2바이트), GBK(2바이트), GB18030( 1, 2, 4바이트).

2. 숫자 유형

Oracle은 숫자 유형을 사용하여 숫자를 저장합니다. 이 유형은 프로그래밍 언어의 기존 long int 및 double 유형보다 훨씬 높은 최대 38비트의 정밀도를 저장할 수 있습니다. number(m,n), m은 전체 길이를 나타내고, n은 소수점 자리의 정밀도를 나타냅니다. 저장된 데이터의 소수점 자리 정밀도가 n을 초과하는 경우 반올림된 값이 적용됩니다.

예: 숫자(10,3), 10은 전체 길이, 3은 소수점 이하 자릿수입니다(예: 123.456).

123.4567을 입금하시면 실제 입금금액은 123.457이 됩니다.

12345679.899를 입금하고 총 길이가 10을 초과하면 오라클에서 오류 메시지를 표시합니다.

정수를 저장하려는 경우 숫자(m)를 사용하세요. m은 데이터에 저장할 수 있는 최대 자릿수를 나타냅니다.

3. 날짜 유형

Oracle은 날짜 및 시간을 표시하기 위해 날짜 유형을 사용합니다. 이것은 세기, 연도, 월, 어느 날짜를 포함하는 7바이트 고정 너비 데이터 유형입니다. 시, 분, 초를 입력합니다. 프로그래밍 언어에서는 날짜와 시간이 문자열로 표시되고 작성됩니다. Oracle은 날짜 유형과 문자열 유형 간 변환을 위해 to_date와 to_char라는 두 가지 함수를 제공합니다.

예:

insert into T_GIRL(name,birthday) values('西施',to_date('2000-01-01 01:12:35','yyyy-mm-dd hh24:mi:ss'));
select name,to_char(birthday,'yyyy-mm-dd hh24:mi:ss') from T_GIRL where name='西施';

4. Clob 및 blob 유형

clob 유형, 가변 길이 문자열 대형 객체, 최대 4GB 길이, clob은 단일 바이트 문자열 또는 다중 바이트 문자열 데이터를 저장할 수 있습니다. 더 큰 문자열로 간주됩니다. 데이터베이스의 문자 집합이 변환되면 clob 유형이 영향을 받습니다.

Blob 유형, 가변 길이 바이너리 대형 개체, 최대 길이 4GB Blob은 주로 사진, 오디오, 비디오, Office 문서 등과 같은 형식화된 비정형 데이터를 저장하는 데 사용됩니다. 데이터베이스 문자 집합이 변환되면 blob 유형은 영향을 받지 않으며 Oracle 데이터베이스는 어떤 콘텐츠가 저장되는지 신경 쓰지 않습니다.

5. Rowid 유형

오라클 데이터베이스의 각 테이블에 있는 레코드의 각 행은 물리적 저장 위치, 즉 테이블의 rowid 의사 열을 사용하여 접근 효율성이 가장 높습니다.

rowid는 접근 효율성이 가장 높지만 실제 적용 시에는 주의해야 하며 다음 두 가지 문제에 주의해야 합니다.

1) rowid는 데이터 정렬, 데이터 백업 및 마이그레이션 중에 테이블 레코드의 물리적 위치를 저장합니다.

2) rowid는 Oracle 데이터베이스 전용 데이터 유형이며 다른 데이터베이스와 호환되지 않습니다.

6. 기타 데이터 유형

위 내용에서는 Oracle에서 가장 일반적으로 사용되는 데이터 유형을 소개하며, 이는 응용 시나리오의 99% 이상을 충족할 수 있습니다.

Oracle은 22가지의 다양한 SQL 데이터 유형을 제공합니다. 다른 데이터 유형은 실용적이지 않을 수 있지만 깊이 들어가지 않고도 이해할 수 있도록 모두 나열했습니다. 지난 20년 동안 나는 다른 데이터 유형을 사용한 적이 없습니다.

char: 고정 길이 문자열이며 최대 길이에 도달하도록 공백으로 채워집니다. null이 아닌 char(10)에는 10바이트의 정보가 포함됩니다. char 필드는 최대 2000바이트의 정보를 저장할 수 있습니다.

nchar: 유니코드 형식 데이터가 포함된 고정 길이 문자열입니다. nchar 필드는 최대 2000바이트의 정보를 저장할 수 있습니다.

varchar2: varchar의 동의어입니다. 이는 char 유형과 달리 필드나 변수를 최대 길이까지 공백으로 채우지 않는 가변 길이 문자열입니다. varchar(10)은 0~10바이트의 정보를 담을 수 있으며, 최대 4000바이트의 정보를 저장할 수 있습니다. 12c부터는 32767바이트의 정보를 저장할 수 있다.

nvarchar2: 유니코드 형식 데이터가 포함된 가변 길이 문자열입니다. 최대 4000바이트의 정보를 저장할 수 있습니다. 12c부터는 32767바이트의 정보를 저장할 수 있다.

raw: 가변 길이 바이너리 데이터 유형입니다. 이 데이터 유형에 저장된 데이터는 문자 집합 변환을 거치지 않습니다.

number: 최대 38자리의 정밀도로 숫자를 저장할 수 있습니다. 이 유형의 데이터는 길이가 0~22바이트인 가변 길이 형식으로 저장됩니다.

binary_float: 32비트 단정밀도 부동 소수점 숫자로, 최소 6비트 정밀도를 지원할 수 있고 디스크에서 5바이트의 저장 공간을 차지합니다.

binary_double: 최소 15비트 정밀도를 지원할 수 있고 디스크에서 9바이트의 저장 공간을 차지하는 64비트 배정밀도 부동 소수점 숫자입니다.

long: 이 유형은 최대 2GB의 문자 데이터를 저장할 수 있습니다.

long raw: 긴 원시 유형은 최대 2GB의 이진 정보를 저장할 수 있습니다.

date: 7바이트 고정 너비 날짜/시간 데이터 유형입니다. 여기서 세기, 세기 연도, 월, 일, 시간, 분, 초 등 7가지 속성이 포함되어 있습니다.

timestamp: 소수 초를 포함하는 7바이트 또는 11바이트의 고정 너비 날짜/시간 데이터 유형입니다.

시간대 포함 타임스탬프: 시간대 지원을 제공하는 13바이트 타임스탬프입니다.

현지 시간대가 포함된 타임스탬프: 7바이트 또는 11바이트의 고정 너비 날짜/시간 데이터 형식입니다. 데이터를 삽입하고 읽을 때 시간대 변환이 발생합니다.

간격(연간): 마침표를 저장하는 데 사용되는 5바이트 ​​고정 너비 데이터 유형입니다.

간격 일 - 초: 마침표를 저장하는 데 사용되는 11바이트 고정 너비 데이터 유형입니다. 기간을 일/시간/분/초로 저장하고 선택적으로 소수점 이하 9초도 사용할 수 있습니다.

blob: 이 유형은 최대 4GB의 데이터를 저장할 수 있습니다.

clob: 이 유형은 최대 4GB의 데이터를 저장할 수 있습니다. 이 유형은 문자 세트가 변환될 때 영향을 받습니다.

nclob: 이 유형은 최대 4GB의 데이터를 저장할 수 있습니다. 이 유형은 문자 세트가 변환될 때 영향을 받습니다.

bfile: 이 데이터 유형은 Oracle 디렉터리 개체와 파일 이름을 데이터베이스 열에 저장할 수 있으며 이를 통해 파일을 읽을 수 있습니다.

rowid: 실제로 데이터베이스 테이블에 있는 행의 주소이며 길이는 10바이트입니다.

urowid: 일반 rowid이며, 고정된 rowid 테이블이 없습니다.

위 내용은 Oracle의 데이터 유형은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.