일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- github
- tomcat
- CRUD
- JavaScript
- HTML
- git
- rownum
- Oracle SQL
- 과정평가형
- HTTP Status 404
- sql developer
- group by
- 성적프로그램
- 부트스트랩
- JSP
- Oracle DB
- HTTP Status 500
- distinct
- SQL
- Bootstrap
- 답변형 게시판
- jQuery
- 이클립스
- alias
- 모조칼럼
- 제약조건
- ||
- Java
- 한글 인코딩
- oracle
Archives
초급의 끄적거림
[데이터 유형] CHAR와 VARCHAR 비교 본문
- 데이터베이스의 데이터 유형은 Oracle, MySQL 등 벤더 별로 다양한 형태가 제공 됨
- 예를 들어 숫자타입은 NUMERIC, DECIMAL, DEC, SMALLINT, INTEGER, INT, BIGINT, FLOAT, REAL, DOUBLE 등이 있으나 Oracle의 경우 숫자형 탑입은 NUMBER 한 가지 숫자 타입의 데이터 유형만 지원
데이터 유형 | 설명 |
CHAR(n) |
- 고정 길이 문자열 정보 - n 는 기본 길이 1바이트, 최대길이 oracle 2000byte, SQL server 8000 byte - n 만큼 최대길이를 갖고 고정 길이를 가지고 있으므로 할당된 변수 값의 길이가 s 보다 작을 경우에는 그 차지 길이만큼 공간으로 채워짐 |
VARCHAR(n) |
- CHARACTER VARYING 의 약자로 가변 길이 문자열 정보 (Oralce은 VARCHAR2로 표현, SQL Server는 VARCHAR로 표현) - n 는 기본 길이 1바이트, 최대길이 oracle 4000byte, SQL server 8000 byte - n 만큼 최대 길이를 갖지만 가변 길이로 조정되기 때문에 할당된 변수값의 바이트만 적용됨 |
NUMERIC |
- 정수, 실수 등 숫자정보 (Oracle 은 NUMBER. SQL Server는 다양한 숫자 타입 지원() - Oracle은 처음에 전체 자리 수를 지정하고, 그 다음 소수 부분의 자리수를 지정 ex) 정수 부분이 6자리, 소수점 부분이 2자리인 경우 NUMBER(8,2) |
DATE |
- 날짜와 시각 정보 - Oracle은 1초단위, SQL Server는 3.33ms(millisecond) 단위 관리 |
CAHR 와 VARCHAR (VARCHAR2)의 비교
- 저장영역과 문자열의 비교 방법의 차이
- VARCHAR
- 가변 길이, 필요한 영역은 실제 데이터 크기뿐이기에, 길이가 다양한 컬럼과 정의된 길이의 실제 데이터 길이에 차이가 있는 컬럼에 적합
- 저장 측면에서도 CHAR 유형보다는 작은 영역에 저장할 수 있다는 장점
- 비교 방법의 차이
- CHAR 에서는 문자열을 비교할 때, 공백을 채워서 비교하는 방법 사용
- CHAR(8) 이고 'AA'가 저장된다면 'AA' 뒤에 공백 6자리를 붙여 8자리로 비교
- 'AA' = 'AA '은 실제로 'AA ' = 'AA ' 가 되어 같다는 결과가 나옴
- VARCHAR에서는 공백도 하나의 문자로 취급하여 끝에 공백이 들어가면 다른 문자로 판단
- 'AA' != 'AA ' 뒤에 공백이 있기 때문에 둘이 다른 문자로 판단
- CHAR 에서는 문자열을 비교할 때, 공백을 채워서 비교하는 방법 사용
- 때문에 이름, 주소 등의 길이가 변할 수 잇는 값은 VARCHAR를 사용하고, 사번, 주민등록번호 같은 길이가 일정한 데이터는 CHAR를 사용하는게 좋다.
'DB' 카테고리의 다른 글
[SQL] JOIN의 종류 (0) | 2020.01.20 |
---|---|
[mySQL] Error code [1046] 원인과 해결 (0) | 2019.12.03 |
[관계형 데이터베이스] 기본, 모델링 개념 (0) | 2019.08.07 |
[Oracle] JDBC 오라클 DB와 자바 연동 / 라이브러리 연결 (0) | 2019.08.06 |
Comments