IS NULL, IS NOT NULL

NULL
– DB에서 NULL이 일반적인 값과는 다르게 취급된다.
– 아직 정의되지 않은 값.
– 0(숫자) 또는 공백(문자)과 다르다.
– 테이블을 생성할 때 NOT NULL 또는 PRIMARY KEY로 정의되지 않은 모든 데이터 유형은 널 값을 포함할 수 있다.
– NULL 값을 포함하는 연산의 경우 결과 값도 NULL이다. 모르는 데이터에 숫자를 더하거나 빼도 결과는 마찬가지로 모르는 데이터인 것과 같다.
– 결과값을 NULL이 아닌 다른 값을 얻고자 할 때 NVL/ISNULL 함수를 사용한다.
– NULL 값의 대상이 숫자 유형 데이터인 경우는 주로 0(Zero)으로, 문자 유형 데이터인 경우에는 블랭크보다는 ‘x’ 같은 해당 시스템에서 의미없는 문자로 바꾸는 경우가 많다.

IS NULL

-- NULL인 데이터
SELECT *
FROM test
WHERE score IS NULL;

IS NOT NULL

-- NULL이 아닌 데이터
SELECT *
FROM test
WHERE score IS NOT NULL;

IFNULL

-- NULL이면 0으로 치환.
SELECT IFNULL(score, 0) FROM test;

COALESCE

-- NULL이면 0으로 치환.
SELECT COALESCE(score, 0) FROM test;
IFNULL과 COALESCE 차이.
COALESCE() is in all the major databases, while IFNULL() isn't in SQL Server which uses ISNULL()instead. Performance should be no different. –  Hart CO Nov 12 '14 at 18:56
결과는 같지만. COALESCE가 모든 데이터베이스에서 사용가능하니 COALESCE를 권장한다. 

[git] 지옥에서 온 GIT – two

git config
협업을 위해 (전역)사용자명/이메일 구성할 때 사용한다.
git config – -global user.name “Your name”
git config – -global user.email “Your email address”

git init
git 저장소를 초기화한다. 저장소나 디렉토리 안에서 이 명령을 실행하기 전까지는 그냥 일반 폴더이다.
이것을 입력한 후에(.git 파일이 생성) 추가적인 git 명령어들을 줄 수 있다.

git add 파일명
untracked files의 파일들을 git가 추적하도록 하거나 파일은 수정했지만 아직 스테이징 영역에 올라가지 않은(Changed but not updated) 파일들을 스테이징 영역에 올린다.

git commit
– parent: 이전 커밋 내용을 의미한다.
– blob : 파일의 이름과 파일의 정보를 의미한다.
– tree : 커밋이 일어난 시점에 작업 디렉토리에 있는 파일의 이름과 파일의 이름이 담고있는 내용 사이의 정보. 그래서 각각의 버전마다 서로 다른 tree를 가지고 있고 그 tree는 파일의 이름과 파일의 정보를 담고 있기 때문에 그 버전이 만들어진 시점의 프로젝트 폴더의 상태를 알 수 있다. 이를 다른말로 “snapshot을 찍다”라고도 한다.

어떤 변경사항이라도 만든 후, 저장소의 “스냅샷”을 찍기 위해 commit을 입력한다. 결과는 object 파일로 저장된다.
커밋하면, 그 시점의 당신의 저장소의 “스냅샷”을 찍어, 프로젝트를 이전의 어떠한 상태로든 재평가하거나 복원할 수 있는 체크포인트를 가질 수 있다.

git status
저장소 상태를 확인 할 수 있다.
어떤 파일이 저장소 안에 있고, 커밋이 필요한 변경사항이 있는지, 현재 저장소의 어떤 브랜치에서 작업하고 있는지 등을 볼 수 있다.
– working directory
– staging area
– cache – repository
인강을 들으면서 이 부분을 가장 잘 설명된 이미지를 찾다가 아래 이미지를 찾았다.

출처 : https://git-scm.com/book/ko/v1/%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-Git-%EA%B8%B0%EC%B4%88

gistory
git을 분석하기 위한 도구로 명령을 내렸을 때 git의 내부에서는 어떤 일이 일어나는가를 분석하면서 git이 어떻게 동작하는가를 스스로 공부하는데 도움을 준다.
gistory 설치 방법

git의 특성 중 하나! 파일이 같은 내용이면 파일의 이름도 같다.
이 원리는 아래 사이트에서 확인 가능하다.
sha1 online

업무 중에 자주 사용하게 되는 온라인 사이트:)