집합 연산 UNIONJOIN이 양 옆으로 데이터 테이블을 붙인다 생각하면, UNION은 위아래로 이어 붙이는 것테이블 간에 중복되는 데이터가 있다면 하나로 합쳐서, 그니까 1개만 나타냄 (중복 제외, DISTINCT같은 개념)이게 디폴트값임 UNION ALL테이블 간에 중복되는 데이터가 있더라도 아래에다 그대로 붙여줌. 중복값 포함(합집합같은 개념) Products 테이블에서 price가 5 이하 또는 200 이상인 데이터를 출력해라>> where문에 or 써서도 출력할 수 있지만 동일 테이블 내에서도 union 사용 가능SELECT *FROM productsWHERE price = 200 FULL OUTER JOIN (MySQL에서 지원 안하지만 JOIN으로 구현할 수 있음)LEFT, RIGHT JO..
OUTER JOIN이 필요한 이유Usersid로그인 아이디주소1A광진구 자양동2B송파구 석촌동3C분당구 판교동 Ordersuseridorderid구매 상품가격결제 수단11234샴푸5000국민 카드25678식빵7000신한 카드 이런 두 테이블이 있다고 해보자.id가 3인 사람은 가입은 했지만 아직 구매를 하지 않았다.이 상태에서 inner join을 하게 되면 id가 3인 데이터는 겹치지 않으므로 출력되지 않는다. 만약, 유저와 그 유저들의 주문 사항을 출력하는데 한번도 주문하지 않은 유저들의 정보도 같이 출력하려면 outer join이 필요하다. LEFT JOIN 1. 위와 같은 사례에서 작성할 수 있는 코드SELECT *FROM Users LEFT JOIN Orders ON User.id = O..
JOIN이 필요한 이유관계형 데이터베이스 RDBMS에서 데이터를 더 효율적으로 관리하기 위함테이블을 따로 두고, 같은 값이 중복되지 않게 ex) 유저 아이디, 연락처, 배송 주소, 구매 상품, 상품 가격, 구매 개수 등이 쭉 나열되어 있음아이디연락처주소구매 상품가격개수결제 수단A010-****-1111영등포구 여의도동NULLNULLNULLNULLB010-****-2222송파구 석촌동샴푸50001국민카드B 010-****-2222 송파구 석촌동 식빵60001계좌이체B 010-****-2222 송파구 석촌동 티백80004국민카드B 010-****-2222 송파구 석촌동 냄비70001우리카드 B라는 고객은 구매 횟수가 많아서 아이디, 연락처, 주소 등이 계속 중복됨이런식으로 한 테이블에 무수히 많은 데이..
1. 평균 일일 대여 요금 구하기(Lv.1)https://school.programmers.co.kr/learn/courses/30/lessons/151136 문제 설명다음은 어느 자동차 대여 회사에서 대여중인 자동차들의 정보를 담은 CAR_RENTAL_COMPANY_CAR 테이블입니다. CAR_RENTAL_COMPANY_CAR 테이블은 아래와 같은 구조로 되어있으며, CAR_ID, CAR_TYPE, DAILY_FEE, OPTIONS 는 각각 자동차 ID, 자동차 종류, 일일 대여 요금(원), 자동차 옵션 리스트를 나타냅니다. 문제 CAR_RENTAL_COMPANY_CAR 테이블에서 자동차 종류가 'SUV'인 자동차들의 평균 일일 대여 요금을 출력하는 SQL문을 작성해주세요. 이때 평균 일일 대여 요금..
https://www.w3schools.com/sql/sql_groupby.asp Demo Database GROUP BY특정 칼럼을 기준으로 모아보고 싶을 때 사용, python에서 pandas 라이브러리를 활용하여 그룹화하는거랑 마찬가지 1. SupplierID를 기준으로 평균 가격을 출력하자SELECT supplierID , AVG(Price)FROM ProductsGROUP BY supplierID 이때, GROUPBY에 있는 칼럼명은 항상 SELECT에도 들어가 있어야함 (→ 여기서 18번 SupplierID의 평균 공급 가격이 상대적으로 높게 나오니까, 얘를 유의해서 데이터를 살펴볼 수 있음) 2. 추가로 SupplierID가 1인 사람의 CategoryID도 같이 보고 싶으면,..
비트 연산자란?데이터를 비트 단위로 연산, 0과 1로 표현이 가능한 정수 타입만 비트 연산이 가능기능에 따라 논리 연산자, 이동 연산자로 구분 논리 연산자&: 대응되는 비트가 모두 1이면 1을 반환 (AND 연산)|: 대응되는 비트 중 하나라도 1이면 1을 반환 (OR 연산)^: 대응되는 비트가 서로 다르면 1을 반환 (XOR 연산)~: 비트를 1이면 0으로, 0이면 1로 반전시킴 (NOT 연산) 논리 연산자는 대상이 boolean일 경우 일반 논리 연산자로 활용되지만 대상이 정수형인 경우 위와 같이 비트 논리 연산자로 활용두 값을 비트 단위로 나열한 뒤, 각 자릿수를 비트 연산자로 연산, 각 자릿수의 연산은 독립적이며 다른 자릿수에 영향 안 줌 ex) 0 & 0 → 10 & 1 → 01 & 1 → 11..