언어/MySQL 5

[MySQL] 소수점이 있는 금액의 타입은 float? float, double 절대 금지! decimal 또는 string로 지정하자!

글로벌 서비스에서 환전한 금액이 아닌 해당 통화의 금액으로 데이터를 저장해야 하는 상황이 생겨 소수점이 있는 금액 데이터에 대해 고려하며 알게 된 사실이다. 소수점이면 float나 double이겠지라고 생각하고 DB 칼럼의 타입을 지정했다가는 근사치 값으로 연산이 이뤄지는 불상사가 일어날 수 있다. 아래 사진에서와 같이 MySQL 문서에서도 아예 제목 옆에 'Approximate Value(근사값)'라고 적고 있다. [출처] https://dev.mysql.com/doc/refman/8.3/en/floating-point-types.html 보다 직관적으로 말하지면 부동소수점(float, double)의 경우 아래와 같이 저장되고 출력된다. 1. FLOAT에 16777217을 입력하면 16777216이 ..

언어/MySQL 2024.04.02

[MySQL] Cardinality는 항상 일정하지 않음? 인덱스를 다시 만드는 과정에서 새롭게 연산을 하며 매번 달라짐

칼럼의 중복도를 알 수 있는 Cardinality(중복도와 반비례)는 인덱스를 다시 만드는 과정에서 새롭게 연산을 하며 매번 달라진다는 사실..! 여러 칼럼을 인덱스로 생성할 때, Cardinality가 높은 -> 낮은 순으로 구성한다. https://stir.tistory.com/m/236 MYSQL INDEX 실무 활용기 우연히 INDEX를 실무에 (드디어)활용해 볼 기회가 생겨서 적어보는 글이다. INDEX에 관한 원리 및 설명은 여기를 참고. 문제의 쿼리 SELECT SQL_NO_CACHE * FROM USER WHERE add_id = '2bf-ad7c-1b24' 쿼리는 위와 같이 stir.tistory.com

언어/MySQL 2024.03.14

[MySQL] Server 프로그램 삭제하기

MySQL Server 삭제하기 1. MySQL Installer - Community 프로그램 실행 후 MySQL Server 선택하고 Remove 클릭 2. MySQL Server 선택하고 Next -> Next -> Execute 클릭 3. MySQL Server 삭제가 완료된 것을 확인할 수 있음 MySQL Server 재설치하기 https://boleesystem.tistory.com/261 [MySQL] 커뮤니티 에디션 설치(Community Edition Installer) □ MySQL 커뮤니티 에디션(무료 버전) 설치 - 아래 url을 통해 다운로드 받기 https://dev.mysql.com/downloads/installer/ MySQL :: Download MySQL Installe..

언어/MySQL 2022.12.04

[MySQL / Workbench] 쿼리(query) 창 실행 방법

MySQL Workbench 툴을 이용해서 쿼리를 사용하는 방법을 보겠다. 쿼리(query)란? 데이터베이스에 보내는 요청(request) 또는 질문 * 출처 : TCP스쿨 MySQL 기초 [쿼리 사용 방법] 쿼리를 사용할 DB를 선택하고, SQL+ 아이콘을 클릭 'SHOW TABLES;' 명령어를 입력하고, 번개 아이콘 혹은 ctrl + enter키로 실행 결과창에 나오는 테이블을 통해 정상적으로 실행된다는 것을 확인할 수 있음

언어/MySQL 2022.11.30

[MySQL / Workbench] 열 플래그 의미(PK / NN / UQ / BIN / UN / ZF / AI / Default/Expression)? 제약조건!

[들어가며] MySQL 워크벤치에서 데이터를 만들 때 열(Column)에서 PK, NN, UQ, BIN, UN, ZF, AI, Default/Expression를 볼 수 있는데, 이는 제약 조건을 의미한다. 각각 어떤 의미인지 설명하고자 한다. [MySQL 제약조건] PK Primary key - 기본 키 (중복이나 빈값(NULL)이 들어올 수 없음) NN Not Null - Null(빈값)이 들어올 수 없음 B Binary - 데이터를 이진 문자열((010101)로 저장함 UN Unsigned data type - 부호 없음 (음수가 아닌 숫자만 해당) - INT, DOUBLE 등의 경우 UN을 사용하면 -값~+값의 범위인 경우 -값은 없어지고 +값만 2배로 늘어남 *예시 : 범위가 -50 ~ 50인 ..

언어/MySQL 2022.11.30