INNER JOIN 첫번째 테이블과 두번째 테이블에 조건을 만족하는 데이터만 출력 SELECT * FROM TABLE_A INNER JOIN TABLE_B ON 조건 OUTERJOIN LEFT JOIN 첫 번째 테이블을 기준으로 두 번째 테이블에 조건을 만족하는 데이터가 없더라도 출력 첫 번째 테이블의 필드 값은 그대로 가져오고 두 번째 테이블의 필드 값은 NULL로 표시 SELECT * FROM TABLE_A LEFT JOIN TABLE_B ON 조건 RIGHT JOIN LEFT JOIN과 반대로 두번쨰 테이블을 기준으로 한다. SELECT * FROM TABLE_A RIGHT JOIN TABLE_B ON 조건 ❓JOIN할 때 ON과 WHERE의 차이 ON : JOIN 전에 조건을 필터링 WHERE :..
WHEN에 적은 조건식에 따라 결과식을 다르게 조회할 수 있다. CASE문은 SELECT절 뿐만 아니라 WHERE, ORDER BY 등 SQL 모든 구문에서 활용할 수 있다. SELECT CASE WHEN [조건식1] THEN [결과식1] WHEN [조건식2] THEN [결과식2] ... ELSE [조건식N] END -- 예시 SELECT CASE WHEN deptId = 1 THEN '홍보' WHEN deptId = 2 THEN '기획' ELSE '무소속' END AS `부서명`
유형별로 정보를 알고싶을 때는 데이터를 그룹화할 수 있는 GROUP BY를 사용한다. GROUP BY : 특정 컬럼을 그룹화 HAVING : 그룹화한 결과에 거는 조건 ❓ WHERE과 HAVING의 차이 WHERE은 그룹화 하기 전 조건, HAVING은 그룹화 한 후의 조건이다. 조건은 생략 가능하다. SELECT 컬럼 FROM 테이블 GROUP BY 그룹화할 컬럼; SELECT 컬럼 FROM 테이블 GROUP BY 그룹화할 컬럼 HAVING 조건식;
DDL(Data Definition Language) - 데이터 정의어 데이터를 생성, 수정, 삭제하는 등 데이터의 전체 구조를 결정 create, alter, drop, truncate DML (Data Manipulation Language) - 데이터 조작어 DB에 입력된 레코드를 조회, 수정, 삭제하는 역할 select, insert, update, delete DCL(Data Control Language) DB에 접근하거나 객체에 권한을 주는 역할 grant, revoke, commit, rollback
DB 다루기 DB 생성 : create database DB 삭제 : drop database --전체 데이터베이스 보기 SHOW DATABASES; -- 만약 기존에 sqlDB가 존재하면 삭제 DROP DATABASE IF EXISTS sqlDB; -- 새 데이터베이스 생성 CREATE DATABASE sqlDB; -- 데이터베이스 선택 USE sqlDB; 테이블 다루기 TB 생성 : create table TB 삭제 : drop table TB 수정 : alter table 테이블 생성, 삭제 -- 테이블 생성 CREATE TABLE 테이블명 ( 칼럼명1 타입1, 칼럼명2 타입2, 칼럼명3 타입3 ); -- 테이블 삭제 DROP TABLE 테이블명 NOT NULL : 필드에 NULL값 저장할 수 없음..
https://school.programmers.co.kr/learn/courses/30/lessons/120836 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 상황 순서쌍이란 두 개의 숫자를 순서를 정하여 짝지어 나타낸 쌍으로 (a, b)로 표기합니다. 자연수 n이 매개변수로 주어질 때 두 숫자의 곱이 n인 자연수 순서쌍의 개수를 return하도록 solution 함수를 완성해주세요. 문제 풀이 // 순서쌍의 개수 = 약수의 개수 class Solution { public int solution(int n) { int answer = 0; for..
가비지 컬렉터 (Garbage Collector) 가비지 컬렉터는 자동 메모리 관리 시스템이다. C나 C++ 등에서는 메모리 관리를 직접 해야하지만, 자바에는 가비지 컬렉터가 존재해서 자동으로 객체의 메모리 점유를 자동으로 초기화해준다. 가비지 컬렉터가 하는 일 메모리 할당 사용 중인 메모리 인식 사용하지 않는 메모리 인식 프로그램에 의해 할당된 메모리가 더이상 인스턴스를 참조하지 않아 가비지(garbage) 상태가 되면 자동으로 메모리를 초기화해준다. 가비지 컬렉터의 특징 가비지 컬렉터 동작은 자바에 의해 자동 실행되고 어느 시점에 어디에서 시작할지에 따라 다르다. 가비지 컬렉터가 동작하면, 어플리케이션에 있는 모든 쓰레드들은 잠시 중단된다. 가비지 컬렉터의 한계 실행 시간에 작업을 하기 때문에 성능 ..
https://school.programmers.co.kr/learn/courses/30/lessons/120811 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 상황 중앙값은 어떤 주어진 값들을 크기의 순서대로 정렬했을 때 가장 중앙에 위치하는 값을 의미합니다. 예를 들어 1, 2, 7, 10, 11의 중앙값은 7입니다. 정수 배열 array가 매개변수로 주어질 때, 중앙값을 return 하도록 solution 함수를 완성해보세요. 문제 풀이 import java.util.Arrays; class Solution { public int soluti..
https://school.programmers.co.kr/learn/courses/30/lessons/120906 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 상황 정수 n이 매개변수로 주어질 때 n의 각 자리 숫자의 합을 return하도록 solution 함수를 완성해주세요 문제 풀이 class Solution { public int solution(int n) { //스트림 사용 return (n + "") .chars() .map(Character::getNumericValue) .sum(); } public int solutionV2(in..
https://school.programmers.co.kr/learn/courses/30/lessons/120818 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 상황 머쓱이네 옷가게는 10만 원 이상 사면 5%, 30만 원 이상 사면 10%, 50만 원 이상 사면 20%를 할인해줍니다. 구매한 옷의 가격 price가 주어질 때, 지불해야 할 금액을 return 하도록 solution 함수를 완성해보세요. 문제 풀이 class Solution { public int solution(int price) { int answer = 0; double re..