본문 바로가기
지속가능티끌/SQL. 데이터베이스

SQLite . 자료형 . INTEGER, REAL, TEXT, BLOB

by i.got.it 2024. 9. 1.

 

 

 

SQLite . 자료형 . INTEGER, REAL, TEXT, BLOB 

 

자료형  용량   
INTEGER 저장할 값에 따라 1, 2, 3, 4, 6, 8 바이트로 저장 int8_t, int64_t , long 등 모든 정수형 저장시 활용 
REAL 항상 8 바이트로 저장되며, IEEE 754 64-bit 부동소수점 수를 사용 float, double, long double 모든 부동 소수점 저장시 활용 가능하나. 금융권에서 중요한 숫자 저장시 TEXT 로 하는 경우 많음. 
TEXT 저장되는 문자열의 길이에 따라 크기가 달라지며, 최대 1GB까지 지원 C/C++의 char*, std::string, std::wstring 등 모든 문자열 저장시 활용 
BLOB 저장되는 바이너리 데이터의 크기에 따라 변동 크기로 저장됩니다. 최대 1GB까지 지원 이미지, 파일등 저장시 활용. 

 

 

 

 

중요한 부동소수점 저장시 REAL 로 하지 않고 TEXT 로 하는 경우 종종 있음. 

 

4590.0349 같은 수치를 문자열 TEXT 로 저장하면, 수치의 정확성을 유지하면서 데이터를 복원 가능. 

특히 금융 애플리케이션에서 특히 중요. 암호화폐 거래소 API 에서도 가격 등의 숫자 정보 송수신시 문자열 이용하고 있음. 예 . 바이빗 거래소 캔들 데이터 등  https://igotit.tistory.com/5763 

 

IEEE 754  규격의 double, float 변수로 숫자들 핸들링 하면서 처리하다보면  4590.0349 가 아닌 4590.0348999999999 같은 식으로 처리되는것 방지할 목적. 

 

 

정수 자료형에서는 위와 같은 문제 없음.  

 

 

실수를 TEXT 로 저장한 경우 숫자 크기 처리 SQL 구문예 



SELECT *
FROM T_Candle_M1
WHERE CAST(open AS REAL) BETWEEN 45.01 AND 96.09
ORDER BY CAST(open AS REAL);

 

 

  • CAST(open AS REAL): TEXT 타입으로 저장된 open 컬럼의 값을 REAL 타입으로 변환다. 이 변환을 통해 문자열을 부동소수점 숫자로 변환.
  • BETWEEN 45.01 AND 96.09: 변환된 숫자가 45.01 이상 96.09 이하인 레코드를 선택..
  • ORDER BY CAST(open AS REAL): 결과를 open 값을 기준으로 정렬. 이 경우, open을 REAL로 변환하여 숫자 정렬을 수행.

 

 

연관

 

 

SQLite. 개요. 다운로드. implicit linking 위한 dll, h, lib 파일 확보.

SQLite 개요. 무료 로컬 RDBMS(관계형 데이터베이스 관리시스템)특징. 1. 로컬전용. 서버기능없음.2. 무설치, DB관련 단 1개의 파일.- 응용프로그램에서 도입편리.- SQLite 포함된 응용프로그램 배포편

igotit.tistory.com

 

 

 

 

C/C++ 실수형 float, double 표준 IEEE754. 실수자료형 사용시 주의사항.

개요 C/C++ 컴파일러들 (Keil, GCC, Visual C++ 포함) 의 실수형 수(floating-point numbers, 부동소수점 수 ) "표현" 표준 IEEE754 single-precision : 32bit, float. 표현가능 값 : ±1.18×10−38 to ±3.4×1038 double-precision : 64bit,

igotit.tistory.com

 

 

 


첫 등록 : 2024.09.01

최종 수정 : 

단축 주소 : https://igotit.tistory.com/5808


 

 

 

댓글



 

비트코인




암호화폐       외환/나스닥/골드         암호화폐/외환/나스닥/골드
     
현물 |선물 인버스 |선물 USDT       전략매니저(카피트레이딩)         프랍 트레이더 온라인 지원가능. MT4,MT5