Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 배열 만들기1
- 프로그래머스 n의 배수 고르기
- Til
- array
- 문자열 붙여서 출력하기
- 스파르타 코딩클럽 내일배움캠프
- 연산자
- 프로그래머스
- swift
- 주사위 게임1
- 스파르타코딩캠프
- 프로그래머스 최댓값 만들기(2)
- 프로그래머스 배열 만들기1
- cocoapods 설치 오류
- n번째 원소까지
- 프로그래머스 n번째 원소까지
- 문자열 정렬하기 (1)
- Break
- 조건에 맞게 수열 변경하기 3
- 프로그래머스 문자열 정렬하기 (1)
- ruby설치
- 프로그래머스 자동커밋
- Error installing cocoapods
- 객체지향
- continue
- 스페인어
- 프로그래머스 암호 해독
- 프로그래머스 조건에 맞게 수열 변경하기 3
- 프로그래머스 주사위 게임1
- 프로그래머스 문자열 붙여서 출력하기
Archives
- Today
- Total
dev._.note
[SQL] Data type 본문
✓ 문자형
CHAR : 고정형 문자타입. 최대 2000byte
- char(10) 일때, 'korea' 입력시 실제값은 5byte이지만,
- 저장된 값은 10byte.
- char(10) 일때, '한국' 입력시 실제값은 6byte이지만,
- 저장된 값은 10byte.
- xe버전(교육용)에서는 한글 1개당 3byte 처리.
- se/ee버전(상업)에서는 2byte씩 처리됨.
VARCHAR2 : 가변형 문자타입. 최대 4000byte
- varchar2(10) 일때, 'korea' 입력시 실제값은 5byte,
- 저장된 값 5byte
- varchar2(10) 일때, '한국' 입력시 실제값은 6byte,
- 저장된 값 6byte.
long : 최대크기 2gb
clob : 최대크기 4gb
예제
-- 테이블 생성, 데이터할당
create table tb_datatype (
a char(10),
b varchar2(10)
);
desc tb_datatype;
--데이터(행단위) 추가
insert into tb_datatype
values('korea', 'korea');
insert into tb_datatype
values('한국', '한국');
insert into tb_datatype
values('필승', '필승코리아'); -- ORA-12899: "KH"."TB_DATATYPE"."A" 열에 대한 값이 너무 큼(실제: 15, 최대값: 10)
select
a,
lengthb(a), -- 해당컬럼의 byte수 리턴
b,
lengthb(b)
from
tb_datatype;
commit; -- 메모리상의 작업내용을 실제 db에 반영
✓ 숫자형
NUMBER([p, s])
- p : 표현가능한 전체자리수
- s : 소수점이하 자리수
예제
--drop table tb_datatype; → 테이블 삭제
create table tb_datatype(
a number,
b number(7, 3),
c number(7),
d number(7, 1),
e number(7, -2)
);
insert into tb_datatype
values(1234.567, 1234.567, 1234.567, 1234.567, 1234.567);
insert into tb_datatype
values(1234.56789, 1234.56789, 1234.56789, 1234.56789, 1234.56789);
insert into tb_datatype
values(123456789, 123456789, 123456789, 123456789, 123456789);
-- ORA-01438: 이 열에 대해 지정된 전체 자릿수보다 큰 값이 허용됩니다.
select * from tb_datatype;
결과값) 1234.567 값처리
number : 1234.567
number(7, 3) : 1234.567
number(7) : 1235 (반올림)
number(7, 1) : 1234.6
number(7, -2) : 1200
✓ 날짜형
- date : 년월일시분초
- timestamp : 년월일시분초밀리초 지역대
create table tb_datatype (
a date,
b timestamp with time zone
);
insert into tb_datatype
values(sysdate, systimestamp);
select
to_char(a, 'yyyy/mm/dd hh24:mi:ss'),
b
from
tb_datatype;
desc tb_datatype;
-- 날짜형간 산술연산 지원 : 단위가 하루인 숫자
-- 날짜 + 숫자 : date
-- 날짜 - 숫자 : date
-- 날짜 - 날짜 : number
select
to_char(sysdate, 'yyyy/mm/dd hh24:mi:ss'),
to_char(sysdate - 1, 'yyyy/mm/dd hh24:mi:ss'),
to_char(sysdate + 1, 'yyyy/mm/dd hh24:mi:ss'),
sysdate - (sysdate - 1)
from
dual; -- 가상테이블(1행)
-- 수료일에서 남은 날짜
select
to_date('20220217', 'yyyymmdd') - sysdate
from
dual;
'Dev > SQL' 카테고리의 다른 글
[SQL] 정규화(Normalization) (0) | 2023.03.04 |
---|---|
[SQL] SQL 분류 (0) | 2023.02.24 |
[SQL] Database개요 (1) | 2023.02.23 |