Creative Wrong Answer

일련변호를 생성 하거나 특정 자리수로 숫자 코드를 만들고자 할때 lpad , rpad 를 사용하여 자리수를 맞춘다. 


select lpad ('333' , 6, '0');  -- 결과 000333

select rpad ('333' , 6, '0');  -- 결과 333000


진수 변환이 필요한 경우 conv를 사용하여 진수 변환을 할 수 있다. 


select conv ('440' ,10,16) ; -- 1B8 : 10진수 440을 16진수로 변환

select conv ('1B8' ,16,10) ; -- 440 : 16진수 1B8을 10진수로 변환



의외로 간단한 항목이지만 여러군데에서 사용할 수 있다.


제품관리등의 항목을 만들때 제품번호를 일정한 자리수로 발급 해준다거나 하는 경우에 사용했었던걸로 기억된다. 

저작자 표시 비영리 동일 조건 변경 허락
신고

Comment 1

테이블 명세서등을 만들때 기존에 구축해놓은 데이터 베이스의 목록을 뽑아야 할 필요가 생긴다.


이때 사용하는 쿼리


SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, DATA_TYPE, IS_NULLABLE /* ETC */

FROM INFORMATION_SCHEMA.COLUMNS

WHERE TABLE_SCHEMA NOT IN ('information_schema', 'performance_schema', 'mysql')

ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION;


Where의 not in 조건에 목록에서 빠져야하는 다른 디비가 있다면 쭉 적어주면 된다.


기본적으로 적혀있는 세개의 테이블은 기본 설정 테이블이라서 항상 적히게 된다. 



보통 칼럼을 적을때 사이즈를 같이 표시 하게 되는데 이때는


SELECT 

  TABLE_SCHEMA, 

  TABLE_NAME, 

  COLUMN_NAME, 

  CONCAT(DATA_TYPE,'(',IFNULL(CHARACTER_MAXIMUM_LENGTH,IFNULL(NUMERIC_PRECISION,'')),')') TYPE, 

  IS_NULLABLE

FROM INFORMATION_SCHEMA.COLUMNS

WHERE TABLE_SCHEMA NOT IN ('information_schema', 'performance_schema', 'mysql', 'isb_stg', 'isb_prd')

ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION;


이런식으로 만들어주면 된다. 


나온 데이터를 전체 선택하고 export~

저작자 표시 비영리 동일 조건 변경 허락
신고

Comment 0