백엔드 부트캠프[사전캠프] 32

[내일배움캠프-사전캠프 문제풀이] JAVA 응용문제 1, 2

[1단계] 랜덤 닉네임 생성기import java.util.Random;class Main { public static void main(String[] args) { String[] box1 = {"기철초풍", "멋있는", "재미있는"}; String[] box2 = {"도전적인", "노란색의", "바보같은"}; String[] box3 = {"돌고래", "개발자", "오랑우탄"}; Random random = new Random(); int randomInt1 = random.nextInt(box1.length); int randomInt2 = random.nextInt(box2.length); int randomInt3 = random.nextInt(box3...

[내일배움캠프-사전캠프 03일차] JAVA 입문

1. JAVA / ( Part 01. Hello World! | java handbook)0) 언어의 역사- 컴퓨터와 소통하기 위해 기계 명령어와 일상 용어를 일대일로 매칭하는 기계어와 니모닉의 매칭 코드표를 만듦.- 이를 우리는 '어셈블리'라고 얘기함.- 어셈블리어가 등장하고 개발자들은 편해졌으나, 개선되어야할점이 많았음.- 어셈블리가 CPU마다 언어가 다 다르니, 배워야할 언어가 너무 많아져 버린 것임. 어셈블리어를 개발할 때는 같은 작업을 수행하는 소스 파일을 각 기계의 종류만큼 만들어야 했었음.- 그리하여 C 언어가 등장하게됨. 언어의 등장으로 이제는 소스파일을 단 하나만 만들어도 되는 시대가 됨.- C 언어는 하나의 소스파일을 각 기계어에 맞는 컴파일러로 컴파일을 하여 기계어 목적파일을 만듦. ..

[내일배움캠프-사전캠프] SQL 단계별 문제 풀이

[마지막 연습 문제] 다음과 같은 상품(products) 테이블과 주문(orders) 테이블이 있습니다.- 이번 문제에서는 MYSQL에서 실제 TABLE을 만들어서 진행하였다.44. 모든 주문의 주문 ID와 주문된 상품의 이름을 나열하는 쿼리를 작성해주세요!SELECT od.id, pd.nameFROM orders od, products pdWHERE od.product_id = pd.id- 결과는 아래와 같다.45. 총 매출(price * quantity의 합)이 가장 높은 상품의 ID와 해당 상품의 총 매출을 가져오는 쿼리를 작성해주세요!- GROUP BY 없이 집계함수와 비집계함수를 함께 사용되는 것이 허용되지 않을 수 있다.- 생각해보니, 둘이 그냥 곱하고, 그걸 ORDERBY 한후, LIMIT를..

[내일배움캠프-사전캠프] SQL 단계별 문제 풀이

[10단계] 이젠 테이블이 2개입니다38. 현재 존재하고 있는 총 부서의 수를 구하는 쿼리를 작성해주세요!SELECT count(*)FROM departments39. 모든 직원과 그들이 속한 부서의 이름을 나열하는 쿼리를 작성해주세요!- JOIN ON으로 처리 했다.- JOIN ON 은 말 그대로 교집합?이라고 생각하면 쉽다. - INNER JOIN: 기본적으로 많이 사용되는 JOIN입니다. 두 테이블에서 일치하는 데이터를 모두 반환합니다.- LEFT JOIN: 왼쪽 테이블의 모든 데이터를 반환하며, 오른쪽 테이블에 일치하는 값이 없으면 NULL을 반환합니다.- RIGHT JOIN: 오른쪽 테이블의 모든 데이터를 반환하며, 왼쪽 테이블에 일치하는 값이 없으면 NULL을 반환합니다.- FULL OUTER..

[내일배움캠프-사전캠프 02일차] SQL의 서브쿼리, DATEDIFF

1. 서브쿼리 Subquery - 서브 쿼리란 부속질의를 말하는 것으로 내포된 query와 바깥족의 query에서 참조한 table이 서로 다를 경우, 여러개의 table에 걸쳐서 질의를 처리하는 것이다.- Subquery는 FROM 절과 WHERE 절에 사용이 가능하며, bottom-up(아래에서 위) 방식으로 바깥쪽 query가 실행되기 전에 실행된다.1) 예시 문항을 살펴보겠다.SELECT *FROM RETAIL_ORDERWHERE OrderTotal > AVG(OrderTotal)- 아래는 ordertoal 열에서, 평균보다 높은 열을 찾는 SQL 문이다.- 하지만 위의 열은 error 가 생긴다.  AVG()는 하나의 값으로 반환되며, 단일값을 비교할려면 서브쿼리 또는 다른 방식으로 값을 처리해..

[내일배움캠프-사전캠프] SQL 단계별 문제 풀이

[7단계] 랭크게임 하다가 싸워서 피드백 남겼어요… 25. lol_feedbacks 테이블에서 만족도 점수(satisfaction_score)에 따라 피드백을 내림차순으로 정렬하는 쿼리를 작성해주세요!내림차순은 DESC, 오름차순은 ASCSELECT *FROM lol_feedbacksORDER BY satisfaction DESC26. lol_feedbacks 테이블에서 각 유저별로 최신 피드백을 찾는 쿼리를 작성해주세요!- 유저별로 최신 피드백을 찾아야하기 때문에.- feedback_date 가 가장 높은 서브쿼리를 만들어서, 피드백을 출력한다.SELECT *FROM lol_feedbacks t1WHERE feedback_date = ( SELECT MAX(feedback_date) FROM..

[내일배움캠프-사전캠프] SQL 단계별 문제 풀이

[6단계] 팀 프로젝트 열심히 했으니 다시 놀아볼까요?!21. lol_users 테이블에서 각 유저의 레이팅(rating) 순위를 계산하는 쿼리를 작성해주세요! 전체 지역(region) 기준이고 순위는 레이팅이 높을수록 높아야해요. (e.g. rating 1400 유저의 순위 > rating 1350 유저의 순위)** 순위에 대한 함수 RANK 는 윈도우 내장 함수이다. PARTITION은 그룹화 하는 것이다. ORDER BY는 정렬할 COL을 정하는 것이다. PARTITION은 COL 값 별로 순위를 매기는 것이라고 생각하면 쉽다.RANK() OVER (PARTITION BY COL1 ORDER BY CO1 [ASC/DESC])무엇을? RANK 된 열을어디에서? lol_users에서SELECT *, R..

[내일배움캠프-사전캠프] SQL 단계별 문제 풀이

빠르게 자바를 배우고자, SQL은 주말에 시간을 내어 진도를 빼보고자 한다.SQL은 몇번 배운 적이 있기 때문에 리마인드 하는 느낌으로 문제를 풀어보고자 한다. [3단계] 상품 주문이 들어왔으니 주문을 처리해봅시다!9. orders 테이블에서 주문 수량(amount)이 2개 이상인 주문을 진행한 소비자의 ID(customer_id)만 선택하는 쿼리를 작성해주세요!SELECT customer_idFROM ordersWHERE amount >= 2뭐를? 소비자 아이디를.어디서? orders에서조건은? amount가 2개 이상인것만.10. orders 테이블에서 2023년 11월 2일 이후에 주문된 주문 수량(amount)이 2개 이상인 주문을 선택하는 쿼리를 작성해주세요!SELECT *FROM ordersW..

[내일배움캠프-사전캠프] SQL 단계별 문제 풀이

1단계) 돈을 벌기위해 일을 합시다1. sparta_employees 테이블에서 모든 직원의 이름(name)과 직급(position)을 선택하는 쿼리를 작성해주세요. SELECT name, position FROM sparta_employees2. sparta_employees 테이블에서 중복 없이 모든 직급(position)을 선택하는 쿼리를 작성해주세요.SELECT DISTINCT positon FROM sparta_employees3. sparta_employees 테이블에서 연봉(salary)이 40000과 60000 사이인 직원들을 선택하는 쿼리를 작성해주세요.SELECT * FROM sparta_employees WHERE hire_date BETWEEN 40000 AND 600004. spa..