본문 바로가기

프로젝트(종료)41

NULL의 속성과 특징 앞으로 공부할 NULL의 속성과 특징을 계속해서 업데이트 할 글이다. 먼저 NULL의 속성부터 정리하면 NULL은 아직 정의되지 않은 값으로 0 또는 공백과 다르다. 0은 숫자이고, 공백은 하나의 문자이다. 테이블을 생성할 때 NOT NULL 또는 PK로 정의되지 않은 모든 데이터 유형은 NULL 값을 포함할 수 있다. NULL값을 포함하는 연산의 경우 결과 값도 NULL 값이다. 모르는 데이터에 숫자를 더하거나 빼도 결과는 마찬가지로 모르는 데이터인 것과 같다. 결과값을 NULL이 아닌 다른 값을 얻고자 할때 NVL/ISNULL 함수를 사용한다. NULL값의 대상이 숫자 유형 데이터인 경우는 주로 0을 사용하고, 문자 유형 데이터인 경우는 블랭크보다는 'X' 같이 해당 시스템에서 의미 없는 문자로 바꾸.. 2021. 3. 10.
여러가지 COUNT() 쓰임새 공부하다 보니 너무 헷갈려서 싹 다 해봐야겠다. 1. COUNT(*) 2. COUNT(컬럼) 3. COUNT(DISTINCT 컬럼) 4. 컬럼 1, COUNT(*) - GROUP BY 컬럼 1 5. 컬럼 1, COUNT(DISTINCT 컬럼2) - GROUP BY 컬럼 1 1. COUNT(*) : NULL값을 포함한 전체 행을 출력한다. 2. COUNT(컬럼) : NULL값을 제외한 전체 행을 출력한다. 3. COUNT(DISTINCT 컬럼) : 컬럼 내 DISTINCT한 값 출력한다. 4. 컬럼 1, COUNT(*) - GROUP BY 컬럼 1 : 컬럼 1의 고유한 값을 기준으로 NULL값 포함해서 몇 개의 데이터가 있는지 계산한다. 5. 컬럼 1, COUNT(컬럼) - GROUP BY 컬럼 1 : 4.. 2021. 3. 9.
DISTINCT와 GROUP BY의 차이 먼저 개념적인 차이는 다음과 같다. DISTINCT = 컬럼 내 데이터를 중복을 제거해 조회한다. GROUP BY = 컬럼 내 데이터를 Unique한 값을 기준으로 그 결과를 가져온다. 두 작업은 기능적으로는 약간의 차이가 있지만, 동일한 형태의 작업이다. 쉽게 생각해서, DISTICNT는 그룹핑만, GROUP BY는 그룹핑 + 정렬의 과정이다. 때문에 연산 속도도 DISTINCT가 더 빠르며 같은 그룹핑 작업을 진행하므로 두 연산을 동시에 할 수 없기도 하다. SELECT DISTINCT C1 FROM TEMP; SELECT DISTINCT C1, C2 FROM TEMP; SELECT C1 FROM TEMP GROUP BY C1; SELECT C1, C2 FROM TEMP GROUP BY C1, C2;.. 2021. 3. 9.
DELETE와 TRUNCATE와 DROP 표로 이해하기 DROP TRUNCATE DELETE 테이블 자체를 삭제해라 테이블의 데이터를 전부 삭제하고, 사용하고 있는 공간을 반납해라 테이블의 데이터를 전부 삭제하고 기록해라 DDL DDL(일부 DML 성격 가짐) DML Rollback 불가능 Rollback 불가능 Commit 이전 Rollback 가능 Auto Commit Auto Commit 수동 Commit 테이블이 사용했던 모든 Storage 모두 Release 테이블이 사용했던 Storage중 최초 테이블 생성시 할당된 Storage만 남기고 Release 데이터를 모두 Delete해도 Storage는 Realease 되지 않음 테이블의 정의 자체를 완전히 삭제함 테이블을 최초 생성된 초기 상태로 만듦 데이터만 삭제 기본적으로 Storage 처리 방법.. 2021. 3. 8.