알고리즘, MySQL

우정·2023년 1월 11일
1

[내일배움캠프] TIL

목록 보기
38/50

프로그래머스

배열 자르기

  • Java
class Solution {
    public int[] solution(int[] numbers, int num1, int num2) {
        int[] answer = new int[num2-num1+1];
        int index = 0;
        for (int i = num1; i <= num2; i++) {
            answer[index] = numbers[i];
            index++;
        }
        return answer;
    }
}

다른 풀이

import java.util.*;
class Solution {
    public int[] solution(int[] numbers, int num1, int num2) {
        return Arrays.copyOfRange(numbers, num1, num2 + 1);
    }
}
// copyOfRange는 또 뭐지,..
  • Python
def solution(numbers, num1, num2):
    answer = numbers[num1:num2+1]
    return answer

MySQL

조인

  • 두 개의 테이블을 묶어 하나의 결과로 만들어 내는 것

내부조인(Inner Join)

  • 필요한 내용만 묶어서 출력함
  • 형식
SELECT <열 목록>
FROM <첫 번째 테이블>
	INNER JOIN <두 번째 테이블> -- INNER JOIN은 'INNER' 생략가능
	ON <조인될 조건>
[WHERE 검색 조건]
  • 별칭 설정
SELECT buy.mem_id, member.mem_name, buy.prod_name, member.addr
	FROM buy
		JOIN member
		ON buy.mem_id = member.mem_id;


-- 테이블 이름에 별칭을 붙이면
SELECT B.mem_id, M.mem_name, B.prod_name, M.addr
	FROM buy B
		JOIN member M
		ON B.mem_id = M.mem_id;

외부조인(Outer Join)

  • 필요한 내용이 한 쪽 테이블에만 있어도 결과를 추출할 수 있음

  • 형식

SELECT <열 목록>
FROM <첫 번째 테이블(LEFT 테이블)>
	<LEFT | RIGHT | FULL> OUTER JOIN <두 번째 테이블(RIGHT 테이블)>
	ON <조인될 조건>
[WHERE 검색 조건];
  • 예시
SELECT M.mem_id, M.mem_name, B.prod_name, M.addr
	FROM member M
		LEFT OUTER JOIN buy B  # 왼쪽 테이블(member M)의 내용은 모두 출력되어야 함
		ON M.mem_id = B.mem_id
	ORDER BY M.mem_id;
  • 회원가입만 하고 한 번도 구매하지 않은 회원 목록 추출
SELECT M.mem_id, M.mem_name, B.prod_name, M.addr
	FROM member M
		LEFT OUTER JOIN buy B
		ON M.mem_id = B.mem_id
	WHERE B.prod_name IS NULL
	ORDER BY M.mem_id

그 외의 조인(자주 쓰이지 않음)

  • 상호조인(Cross Join)
  • 자체조인(Self Join)

0개의 댓글

관련 채용 정보