일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- @Spring-Test
- @AspectJ
- @test
- 마이바티스
- STS
- spring
- XML
- POJO
- pointcut
- 프로퍼티
- spring aop
- SpringJDBC
- JDBC TEMPLATE
- AOP
- 컨테이너
- 리눅스
- Linux
- Spring Boot
- Ubunt
- unix
- Di
- Dependency Injection
- spring framework
- java spring
- myBatis
- JdbcTemplate
- Spring JDBC
- Framework
- @JUnit
- java
- Today
- Total
개키우는개발자 : )
[오라클] 데이터베이스 객체의 종류-문자 데이터 타입 본문
문자 데이터 타입
데이터 타입 |
설명 |
CAHR(크기[BYTE | CHAR]) |
고정길이 문자, 최대 2000byte, 디폴트 값은 1byte |
VARCHAR2(크기[BYTE | CHAR]) |
가변길이 문자, 최대 4000byte, 디폴트 값은 1byte |
NCHAR(크기) |
고정길이 유니코드 문자(다국어 입력 가능), 최대 2000byte, 디폴트 값은 1byte |
NVARCHAR2(크기) |
가변길이 유니코드 문자(다국어 입력 가능), 최대 4000byte, 디폴트 값은 1byte |
LOGN |
최대 2GB 크기의 가변길이 문자형, 잘 사용하지 않음 |
데이터 추가,조회
실습) 가변길이,고정길이 차이 확인하기.
- ex2_1테이블의 colum1,colum2 칼럼에 abc문자 데이터 추가
1 | INSERT INTO ex2_1(colum1,colum2) VALUES ('abc','abc'); | cs |
- colum1,colum2 의 길이를 반환하는 LENGTH 함수를 사용하여 데이터의 길이 조회.
1 2 3 | SELECT colum1, LENGTH(colum1) as len1, colum2, LENGTH(colum2) as len2 From ex2_1; | cs |
결과
결과값
- COLUM1 CHAR(10) : 10의 크기가 고정상태로 적용되어 글자길이에 상관없이
값이 고정되어 있다.
- COLUM2 VARCHAR2(10) : 글자의 길이가 10이하 이면 가변적으로 값이 변한다.
테이블 생성,조회
실습) 영문,한글의 데이터 크기 차이
1 2 3 4 5 | CREATE TABLE ex2_2( COLUMN1 VARCHAR2(3), COLUMN2 VARCHAR2(3 byte), COLUMN3 VARCHAR2(3 char) ); | cs |
- 영문 데이터 입력
1 | INSERT INTO ex2_2 VALUES ('abc','abc','abc'); | cs |
- 영문 길이 조회
1 2 3 4 | SELECT COLUMN1, LENGTH(COLUMN1) AS len1, COLUMN2, LENGTH(COLUMN2) AS len2, COLUMN3, LENGTH(COLUMN3) AS len3 FROM ex2_2; | cs |
- 결과
영문 길이 결과
영문의 한문자의 크기는 1byte를 차지한다. 크기가 모두 3byte이다.
- 한글 데이터 입력
1 | INSERT INTO ex2_2 VALUES ('홍길동','홍길동','홍길동'); | cs |
- 결과
1 | ORA-12899: "STUDY_USER"."EX2_2"."COLUMN1" 열에 대한 값이 너무 큼(실제: 6, 최대값: 3) | cs |
한글은 한 글자가 2byte이므로 COLUMN1에 입력할 때 오류가 발생했다.
하지만 COLUMN3에서는 byte가 아닌 char를 명시했기 때문에 입력할 수 있다.
- COLUMN3에 한글 데이터 입력
1 | INSERT INTO ex2_2(COLUMN3) VALUES ('홍길동'); | cs |
- COLUMN3에 데이터 길이,크기 조회
1 2 3 | SELECT COLUMN3, LENGTH(COLUMN3) AS len3, LENGTHB(COLUMN3) AS bytelen FROM ex2_2; | cs |
- 결과
길이와 크기의 차이
문자열의 길이는 같다 하지만 byte 크기는 서로 다른걸 확인할 수 있다. 한글은 설정에 따라서 3byte 를 차지하기도 한다.
'Oracle SQL Developer > 오라클SQL과 PL-SQL' 카테고리의 다른 글
[오라클] 데이터베이스 객체의 종류-날짜 데이터 타입 (0) | 2019.02.17 |
---|---|
[오라클] 데이터베이스 객체의 종류-숫자 데이터 타입 (2) | 2019.02.17 |
[오라클] 데이터베이스 객체의 종류-테이블 생성 (0) | 2019.02.17 |
샘플 스키마 설치하기 (3) | 2019.02.17 |
책으로 배우는 오라클 (0) | 2019.02.17 |