728x90

SQL 4

SQL에서 NOT IN 쓰다 피본 적 있다면 꼭 알아야 할 내용

NOT IN 쿼리를 사용 시 발생할 수 있는 문제가 있다. ✅ NOT IN 사용 시 발생할 수 있는 문제 1. NULL 포함 시 결과 이상NOT IN 대상 컬럼에 NULL이 포함되면 전체 결과가 비어버릴 수 있음 예시:SELECT * FROM users WHERE id NOT IN (1, 2, NULL); 이 경우 아무 결과도 반환되지 않음 (NULL은 비교 불가하기 때문) ✔️ 해결: NOT IN을 쓰기 전에 NULL 값을 필터링해야 함SELECT * FROM users WHERE id NOT IN ( SELECT id FROM blacklisted WHERE id IS NOT NULL); 2. 성능 저하NOT IN (SELECT ...)은 서브쿼리 결과를 모든 행마다 비교 → 인덱스가 있..

개발/ETC 2025.05.30

SQL 인젝션

SQL 인젝션에 대해서 알아보자 ! 1. 개념 SQL 인젝션(SQL Injection)은 웹 애플리케이션에서 사용자 입력을 제대로 검증하지 않고 SQL 쿼리에 포함시킬 때 발생하는 보안 취약점. 공격자가 의도적으로 악의적인 SQL 구문을 삽입해서 데이터베이스를 조작, 조회, 변경, 또는 삭제할 수 있다. 2. 📌 어떻게 발생하나? 예를 들어 아래와 같은 코드가 있다고 해보면SELECT * FROM users WHERE username = '$username' AND password = '$password'; 만약 사용자가 입력한 값이username: adminpassword: ' OR '1'='1 이렇게 들어오면 최종 쿼리는 다음과 같이 된다.SELECT * FROM users WHE..

개발/ETC 2025.05.22

NoSQL DB 종류 알아보기

NoSQL 데이터베이스의 종류에 대해서 알아보자! 1. 개념NoSQL은 "Not Only SQL"의 약자로, 전통적인 관계형 데이터베이스(RDBMS)와 달리 정해진 스키마 없이 유연한 데이터 저장 방식을 지원하는 데이터베이스 유형이다. NoSQL은 일반적으로 대규모 분산 시스템, 빅데이터, 실시간 웹앱 등에 사용된다. 2. 종류- 문서형(Document-based) 대표 DB: MongoDB, CouchDB, Amazon DocumentDB 데이터 형식: JSON, BSON, XML 형태의 "문서" 특징: > 각 문서는 유연한 구조를 가짐 > 컬렉션 단위로 문서 관리 > RDB의 테이블+레코드 개념과 유사하지만 문서 간 구조가 달라도 됨 사용 예: 블로그 글, 사용자 프로필, 전자상거..

개발/ETC 2025.05.18

Inner Join, Outer Join 차이

inner join, outer join은 둘 다 관계형 DB에서 사용되는 sql 쿼리의 join 연산자인 것이 공통점. 차이점은 1. Inner Join은 두 개의 테이블에서 일치하는 행들만 보여줌. ( 교집합 ) 예를 들면, 고객 테이블과 주문 테이블이 있을 때, Inner Join을 사용하면 고객과 주문 테이블에서 동시에 고객 정보와 주문 정보가 있는 행들만 보여준다. 2. Outer Join은 두 개의 테이블에서 일치하지 않는 행들도 보여줌. ( 합집합 ) Outer Join은 Left, Rigth, Full 세 가지로 나뉜다. - Left Outer Join: 왼쪽 테이블의 모든 행들과 오른쪽 테이블에서 일치하는 행들을 조합하여 보여줌. 오른쪽 테이블에 일치하는 행이 없는 경우 Null로 처리함..

개발/ETC 2023.04.20
728x90