Posted
Filed under DataBase/Oracle
Oracle SQL에서 WHERE 절에 조건을 걸 때, NULL 값이 포함된 컬럼은 왜 조회되지 않을까요? 특히 =나 LIKE 조건을 사용하면 NULL인 행이 결과에서 빠지는 이유와 이를 처리하는 방법을 정리했습니다.

1. NULL은 비교 연산에서 항상 FALSE 또는 UNKNOWN

SQL에서 NULL은 "값이 없음"을 뜻합니다.
그래서 다음 조건들은 모두 FALSE 또는 UNKNOWN으로 처리됩니다.
 
 - 컬럼 = NULL → 항상 FALSE (실제로는 UNKNOWN)
 - 컬럼 LIKE '%' → 컬럼이 NULL이면 결과는 UNKNOWN
 
따라서 WHERE 컬럼 = 'abc' 조건은 컬럼이 NULL인 행을 전혀 포함하지 않습니다.
2. NULL 값을 정확히 조회하려면 IS NULL 사용
NULL을 직접 조회할 때는 반드시 IS NULL 조건을 사용해야 합니다.

 SELECT * FROM 테이블명 WHERE 컬럼 IS NULL;
 
컬럼 = NULL은 절대 쓰면 안 됩니다.

3. NULL 포함 조회 방법
예를 들어, 컬럼이 'abc'이거나 NULL인 행 모두 조회하려면:
SELECT * FROM 테이블명 WHERE 컬럼 = 'abc' OR 컬럼 IS NULL;
 
마찬가지로, LIKE 조건과 NULL 포함 조회는 이렇게 씁니다:
SELECT * FROM 테이블명 WHERE 컬럼 LIKE '%패턴%' OR 컬럼 IS NULL;


4. NVL 함수를 활용한 NULL 처리
NVL 함수는 NULL 값을 다른 값으로 대체합니다. 예를 들어:
WHERE NVL(컬럼, '대체값') LIKE '%패턴%'
 
이때 주의할 점은 NVL(컬럼, '%') LIKE '%' 처럼 사용하면 NULL도 포함되지만, 조건 자체가 항상 참이 되어 버려 실질적인 필터링 의미가 없어집니다.

정리
 - NULL은 비교 연산자(=, LIKE 등)에서 항상 제외된다.
 - NULL을 조회하려면 IS NULL을 꼭 써야 한다.
 - NULL 포함 조건은 OR 컬럼 IS NULL을 추가하거나 NVL로 처리 가능하나, 무조건 참이 되지 않도록 주의해야 한다.
2025/07/27 15:45 2025/07/27 15:45
Posted
Filed under 공부한 것들/보안기사
○ 접근통제의 구성 용어
- 주체 (Subject)객체나 객체 내의 데이터에 대한 접근을 요청하는 능동적인 개체를 말함주체는 행위자라고 부름
- 객체 (Object)접근대상이 수동적인 개체 혹은 행위가 일어날 아이템을 말함객체는 제공자라고 부름
- 접근 (Access)읽고, 만들고, 삭제하거나 수정하는 등의 행위를 하는 주체의 활동을 말함


○ 접근통제 3단계
- 식별본인이 누구라는 것을 시스템에 밝히는 것인증 서비스에 스스로를 확인시키기 위하여 정보를 공급하는 주체의 활동식별자는 각 개인의 신원을 나타내기 때문에 사용자의 책임추적성 분석에 중요 한 자료가 됨.접근매체 : 사용자명, 계정번호, 메모리카드
- 인증주체의 신원을 검증하기 위한 사용 증명(verify, prove) 활동시스템이 본인임을 주장하는 사용자가 그 본인이 맞는다고 인정해 주는 것접근매체 : 패스워드, PIN, 토큰, 스마트카드
- 인가인증된 주체에게 접근을 허용하고 특정 업무를 수행할 권리를 부여하는 과정,알 필요성(Need-to-know) : 주체에 있어서 어떤 정보가 유용해야 할지의 여부와 관계가 있는 공인된 형식상의 접근수준접근매체 : 접근제어목록(ACL), 보안 등급


○ 접근통제 기본 원칙
- 직무분리 (Separation of Duty)업무의 발생부터 승인, 수정, 확인, 완료 등이 처음부터 끝까지 한 사람에 의해 처리될 수 없게 하는 보안 정책단계별로 직무를 분리(예) 보안/감사, 개발/운영, 암호키 관리/암호키 변경
- 최소 권한 (Least Privilege Policy)허가받은 일을 수행하기 위한 초소한의 권한만을 부여하여, 권한남용으로 인한 피해를 최소화Need-to-Know(알 필요성)와 같은 의미이며, 최대권한(Maximum Privilege Policy)과는 반대의 의미를 가짐(예) 정보등급 분류, 접근통제 리스트
2022/12/16 13:41 2022/12/16 13:41