본문 바로가기

MySQL3

MySql char varchar text 정리 개발을 하던 중 히스토리성 데이터를 디비에 저장해야 될 일이 있었는데 그 중에 파라미터에 관련된 데이터를 저장해야되는 필드가 있었다. 동적인 데이터이기 때문에 가변성 타입인 varchar 타입으로 한 후 길이를 설정하려고 하는데 이게 상황에 따라서 길수도 있고 짧을 수도 있어 고민에 빠졌다. 정말 간단하게는 text 타입을 쓰게되면 이런 길이 고민은 할 필요 없어지지만 성능에 영향을 미치기에 최대한 신중히 고민 후 선택하기로 했다. 그 과정에서 알게된 내용을 정리한다. MySql char varchar text 정리 먼저 각각의 대해서 기본개념에 대해서 정리한다. char 고정 길이이다. 0~255까지 길이를 저장 가능하다. 고정 길이 만큼 디스크 공간을 차지한다. 저장 후 남은 공간을 채우기 위해 남은.. 2022. 10. 11.
MySQL - 특정 데이터 포함 확인 LOCATE / INSTR / LIKE 들어가며 MySQL을 통해 테이블에 문자열이 포함되어 있는지 확인하는 3가지 방법에 대해서 정리한다. INSTR 기능 MySQL의 LOCATE 함수를 사용하여 문자열에 특정 데이터가 포함되어 있는지 확인이 가능하다. LOCATE 함수는 LOCATE(substr, str)과 같이 두개의 인수를 사용한다. substr에는 문자열을 입력하고 str에 있는 문자열 substr의 검색 위치를 정수로 반환한다. 만약 substr에 str이 없다면 0을 반환한다. 추가적으로 LOCATE(substr, str, pos) 가 있는데 여기서 pos 위치로 예를들어 5를 적게 되면 문자열 5 이후에 주어진 str을 찾게 된다. 쿼리를 날려보면 다음과 같이 주어진 문자열을 포함을 하고 있다면 결과를 다 반환한다. INSTR .. 2022. 8. 19.
DB - Oracle & MySql 쿼리문 차이 정리 들어가며 오라클 디비와 mysql 디비의 사용에 따라 차이점을 비교 정리한다. 1. 공백치환 함수 ( NULL값 확인 함수 ) ORACLE에서는 NVL함수를 사용하지만 MYSQL에서는 IFNULL을 사용한다. Oracle : SELECT NVL('컬럼명', '') FROM DUAL; MySql : SELECT IFNULL('컬럼명', '') FROM DUAL; 2. 현재 날짜시간 ORACLE에서는 SYSDATE를 사용하지만 MYSQL에서는 NOW()함수를 사용한다. Oracle : SYSDATE Mysql : NOW() 3. 날짜포멧 ORACLE에서는 날짜를 STRING으로 변경시 TO_CHAR()함수를 사용하지만 MYSQL에서는 DATE_FORMAT()함수를 사용한다. Oracle : TO_CHAR(s.. 2021. 4. 27.