SQL(40)
-
[사전캠프] SQL 연습문제 - 3
문제 : 아래의 테이블을 참고해 문제 해결을 위한 SQL 문을 작성하자.idcustomer_idproduct_idamountshipping_freeorder_date171913500002023-11-01213121100002023-11-0236541200002023-11-054100832250002023-11-05535611150002023-11-09[oders(주문) 테이블]Q1. 테이블에서 주문수량(amount)이 2개 이상인 고객ID(customer_id)만 선택하는 쿼리 작성SELECT customer_idFROM ordersWHERE amount >= 2 WHERE 절에 조건식 'amount >= 2' 을 만족하는 'customer_id' 를 출력하는 쿼리를 작성했다. Q2. 테이블에서 주문일자..
2024.08.15 -
[사전캠프] SQL 연습문제 - 2
문제 : 아래의 테이블을 참고해 문제 해결을 위한 SQL 문을 작성하자.idproduct_namepricecategory1맥북 프로1200컴퓨터2다이슨 청소기300생활가전3갤럭시탭600컴퓨터4드롱기 커피머신200주방가전[products(상품) 테이블]Q1. 테이블에서 제품명(product_name)과 제품가격(price)만을 선택하는 쿼리 작성SELECT product_name, priceFROM products 특정 컬럼들을 SELECT 절에서 지정해 해당 컬럼들의 데이터를 출력하는 쿼리를 작성했다. Q2. 테이블에서 제품명에 '프로' 가 포함된 모든 제품을 선택하는 쿼리 작성SELECT *FROM productsWHERE product_name LIKE '%프로%' WHERE 절에 'product_..
2024.08.15 -
[사전캠프] SQL 연습문제 - 1
문제 : 아래의 테이블을 참고해 문제 해결을 위한 SQL 문을 작성하자.idnamepositionsalaryhire_date1르탄이개발자300002022-05-012배갬이PM400002021-09-253구구이파트장350002023-06-014이션이팀장500002021-07-09[sparta_employees(직원) 테이블]Q1 : 테이블에서 모든 직원의 이름(name)과 직급(position)을 선택하는 쿼리 작성SELECT name, positionFROM sparta_employees 특정 컬럼(속성)들을 선택하라고 했기에 SELECT 에 해당 컬럼들을 지정하였다. Q2 : 테이블에서 중복 없이 모든 직급(position)을 선택하는 쿼리 작성SELECT DISTINCT position as posi..
2024.08.15 -
[SQL] 카테고리별 필터링 - HAVING
이전에 배운 집계함수(SUM, AVG, COUNT 등)는 'WHERE' 문과 사용할 수 없기에, 'SELECT' 문과 함께 사용하였다. 그러면 'GROUP BY' 를 통해 그룹화(카테고리화)된 데이터에 그룹별로 조건을 적용해 결과를 얻는 방법은 없을까? 질문에 대한 해답을 찾기 위해 검색을 해보니 'HAVING' 이란 것이 있었고 의문을 해소 할 수 있었다. '아 이런게 있구나' 하고 넘기기엔 아쉬워 좀 더 알아보고 이렇게 게시글에 내용을 정리하게 되었다. 1. 기본 문법SELECT 그룹화 컬럼명, 집계함수(컬럼명) 별명FROM 테이블명GROUP BY 그룹화 컬럼명HAVING 집계함수(컬럼명) 조건식 기본적으로 'HAVING' 은 'WHERE' 과 같이 데이터를 필터링하는 조건절의 역할을 한다. 하지만..
2024.08.14 -
[SQL] 데이터 정렬 - ORDER BY
지금까지 출력된 결과 데이터를 보면 아마 데이터가 DB 에 저장된 순서로 출력 되었을 것이다. 하지만 실무에서는 필요에 따라 특정 조건 순서에 따라 출력된 결과를 보는 것이 업무에 더 효율적인 경우가 더러 있을 것이다. 이번에는 출력 결과를 Query 작성자가 원하는 순서대로 출력하는 방법에 대해 알아보자. 1. 기본 문법SELECT 컬럼명FROM 테이블명ORDER BY 정렬 대상 컬럼명 ASC // 'ASC' 는 생략 가능 'ORDER BY' 문에는 정렬을 원하는 컬럼명을 작성하면 된다. 'ASC' 는오름차순(점점 값이 커지는 순서)을 의미하며 생략이 가능하다(아마 기본 값이 'ASC' 인 것 같다). 반대 개념의 내림차순(점점 값이 작아지는 순서)은 'DESC' 를 사용하면 된다 2. 사용 예시2-..
2024.08.14 -
[SQL] 카테고리별 연산 - GROUP BY
지금까지 학습한 내용으로 음식점의 음식 종류(한식, 일식 등) 별로 음식 가격의 평균을 구하면 어떨까?SELECT cuisine_type, AVG(price)FROM food_ordersWHERE cuisine_type = 'Korean' 이런식의 쿼리를 'cuisine_type' 값의 가짓수 만큼 반복해야 할 것 이다. 이는 너무 비효율적인 작업이 될 것 이다. 개발자는 어떻게든 최소한의 쿼리로 원하는 결과를 얻기 위해 노력해야 하므로 우리는 'GROUP BY' 를 알아야 한다. 1. 기본 문법SELECT 카테고리화 할 컬럼명, 집계함수(계산 대상 컬럼명)FROM 테이블명GROUP BY 카테고리화 할 컬럼명 위에서 든 예시처럼 음식 종류마다 가격 평균을 구한다고 하면, '카테고리화 할 컬럼명' 에는 '..
2024.08.14