본문 바로가기

MSSQL

varchar & char / convert & cast

varchar & char
MSSQL을 시작해서 DB를 시작하려고 하면 그 순간 처음붙어 고민되는 건 'Table'이다.
어떤 변수를 선언해야 할지부터, 변수명은 어찌 정해줄까 등등 많은 생각을 하기 마련이다!

이번 파일[업로드&다운로드]게시판도 지난번 간단게시판과 마찬가지로, 자료형에서 툭!하고 걸려들었다.
실무(여전히 실무라기에는 부족한데~)보다는 학교과제나 테스트에서 얼렁뚱땅 해왔던 탓일까
너무 막연하게 수시로 varchar를 선언하고, 크기 또한 넉넉하게 (50),(40) 정해주곤했었다.
실무에서는 지적받아 마땅 할 행동이다!
쓸때없이 긴 자료형 크기는 DB를 낭비하는 멍청한 짓이다!

사소하지만 varchar와 char의 차이를 정확하게 알고 사용하자!
쉽고 간단하게 설명해서 다음과 같이 정리해 보자.
char- 고정길이(정해진!) 
★ 예) 주민등록번호! 생년월일이 바뀔지라도 자릿수는 변하지 않는다.
varchar- 가변길이(안 정해진!)
★ 예) 메일주소! 메일주소는 사용자가 정하기 나름이지요! 길어지고 줄어드는 주소자릿수는 가변이다.


└ @test(var)char에 똑같이 '010'을 선언하고 데이터의 길이를 실행 해 보면

└ vhchar와 char의 다른 실행화면을 확인 해 볼 수 있다. 
    cahr은 고정적으로 사용하고자 정해 준 20/20자릿수만 사용하였고, 
    varchar는 3/20의 자릿수를 사용했단 걸 확인 할 수 있다. 


convert & cast
자~! "convert와 cast의 가장 큰 차이점은 뭘까요?~ 알려줬었는데~"
오늘 우리팀장님께서 하신 말씀이시다. 우물쭈물.. 대답을 못했다..이런
자~ 한번 더 집고 넘어가 다시한번 상기시키자!
convert와 cast 둘다 형변환을 위한다는 것!은 기본이고
뚜렷히 나타나는 차이점은 "스타일 지정 여부"이다.
convert는 스타일을 지정! cast는 스타일 지정불가! 상기하자!

추가해서 간단하게 형식 고고~!
★ convert(char(10),test,126) as test_1
★ cast(test as char(10))
초록색은 내가 스스로 지정하고 바꿔줘야 하는 부분이다.
보통은 대개 cast를 많이 사용한다고 한다. 아무렴 사용하기가 더 간단하다.