본문 바로가기
728x90

Programming/SQL74

[MySQL] EXISTS와 IN 사용법 비교하기 (예제) 안녕하세요. 오늘은 WHERE절에서 데이터를 걸러낼 때 자주 사용되는 EXISTS와 IN에 대한 사용법에 대해 알아보겠습니다. SQL에서 EXISTS와 IN은 WHERE절에서 사용되며 조건에 따라 데이터를 걸러내어 결과를 조회할 때 사용되는 공통점을 가지고 있습니다. EXISTS & IN 개념 EXISTS 한 테이블이 다른 테이블과 외래키(FK)와 같은 관계가 있을 때 유용 조건에 해당하는 ROW의 존재 유무와 이후 더 수행하지 않음 일반적으로 SELECT절까지 가지 않기에 IN에 비해 속도나 성능면에서 더 좋음 메인 쿼리 -> EXISTS 쿼리 IN 조건에 해당하는 ROW의 컬럼 비교하여 체크 SELECT절에서 조회한 컬럼 값으로 비교하여 EXISTS에 비해 성능 떨어짐 IN 쿼리 -> 메인 쿼리 실습.. 2021. 8. 5.
[SQL] 상위 n개 데이터 조회하기 안녕하세요. 오늘은 SQL을 활용하여 유형별 상위 n개 데이터를 조회하는 방법에 대해 소개해드리겠습니다. ※ 순위와는 다른 유형으로 순위에 대한 포스팅은 아래의 글을 참조하시면 됩니다. 2021.07.10 - [Programming & Data Analysis/SQL] - [MySQL] rank 순위 구하기 2020.08.25 - [Programming & Data Analysis/SQL] - [MySQL] 그룹별 순위 매기기 구현하기 RDBMS별 문법 차이 RDBMS Function MS-SQL Top N, Top N with ties ORACLE where rownum < N+1 MySQL LIMIT N ▣ 예시 데이터 : Customers 1. MS-SQL SQL Server 또는 MS-SQL에서는.. 2021. 8. 2.
[SQL] null 처리하기 (조회, 대체) 안녕하세요. 오늘은 데이터에서 흔히 볼 수 있는 결측치 null을 SQL로 처리하는 방법에 대해 알아보겠습니다. Null 개념 Null은 unknown 또는 N/A(not applicable)이라는 의미로, 0과 공백과는 다르게 아예 값이 없는 값입니다. 데이터에서는 결측치 또는 결측값이라고 불리며, 이를 어떻게 처리해주느냐에 따라서 분석이 완전히 달라질 수 있어 결측값에 대한 처리는 상당히 중요합니다. 기본적으로 데이터베이스(DB)에서는 테이블을 생성할 때 기본키는 null이 들어갈 수 없다는 조건이 붙습니다. 예를 들어, 어떤 유저에 대한 식별번호 id를 지정해주었을 때 유저라면 id를 무조건 가지고 있어야 함이라는 조건을 강제로 넣어주어 유저를 구별할 수 있게 해줍니다. 또한, null은 아예 값이.. 2021. 7. 29.
[MySQL] 서브쿼리 설명 및 예제 안녕하세요. 오늘은 SQL 서브쿼리문을 어떻게 주로 사용하고 이에 대한 예제를 풀어보겠습니다. 서브쿼리(SubQuery)란? 하나의 SQL문 內 포함되어 있는 또 다른 SQL문을 지칭함. 서브쿼리는 메인쿼리에 종속적인 관계. 사용시 주의할 점 괄호를 감싸서 사용 ORDER BY문 사용 불가 단일 행(=) 또는 복수 행(IN) 비교 연산자와 함께 사용 가능 *본 문제는 모 기업 코딩테스트에서 나온 문제를 제 방식대로 변형한 문제입니다. ▣ 문제. ORDERS 내에 결제 완료 이력이 있는 회원(member_no)들에 대하여 회원별 마지막 결제 완료 주문건의 쿠폰할인율 (last_dc_rate)을 구하는 쿼리를 작성하시오. 쿠폰할인율 = 쿠폰할인액 주문금액 단, 쿠폰을 쓰지 않은 주문건의 쿠폰할인율은 0으로 .. 2021. 7. 28.
[MySQL] rank 순위 구하기 DB에서 데이터를 처리할 때, 순위(랭킹)를 구해야 하는 상황은 자주 일어납니다. MySQL은 Oracle이나 MSSQL 등에서 제공하는 ROW_NUMBER()나 RANK() 함수가 따로 존재하지 않아 따로 변수를 만들어 순위를 구하는 쿼리문을 만들어야 합니다. 과거 이와 비슷한 MySQL 그룹별 순위 매기기에 대한 글을 올렸으니 관심 있으신 분들은 보시는 걸 추천드립니다. ☞ [MySQL] 그룹별 순위 매기기 구현하기 - Sample Data : emp CREATE TABLE emp ( empno INT, ename VARCHAR(30), job VARCHAR(30), sal INT )ENGINE=INNODB DEFAULT CHAR SET=UTF8; INSERT INTO emp VALUES (7902,.. 2021. 7. 10.
[MySQL] 엑셀 import & export MySQL 엑셀(csv) 다운로드 및 내보기 sql은 기본적으로 DB에 있는 데이터를 조회하고 활용하는 언어로, DB에 테이블(데이터)이 있어야 쿼리를 보낼 수 있습니다. 따라서, 피치 못하게 외부 csv(엑셀) 파일을 DB에 load하거나 쿼리를 활용하여 만든 데이터 파일을 내보내야 하는 상황이 생길 수 있습니다. 이러한 상황에서 유용한 sql로 csv 파일을 다운로드하거나 내보내는 방법을 소개해드리겠습니다. CSV 파일 다운로드 1. DB에 CSV 저장할 테이블 만들어주기 CSV 파일의 형식에 맞춰 테이블을 만들어줍니다. CSV 파일의 컬럼 개수와 형식을 맞춰줍니다. 외부 파일을 들어오게 하기 위해 빈 방을 만들어준다고 생각하면 됩니다. CREATE TABLE members (`memeber_id` .. 2021. 7. 8.
728x90