2024/06 41

[MySQL] 서브쿼리

1. 서브쿼리(Subquery) 란?   - 하나의 SQL 쿼리 내에 포함된 또 다른 쿼리를 의미  2. 서브쿼리의 종류   - 스칼라 서브쿼리 (Scalar Subquery)    > SELECT, WHERE, HAVING 절에서 사용    > 하나의 값만 반환     EX> SELECT      EX> WHERE      EX> HAVING    - 행 서브쿼리 (Row Subquery)    > WHERE, HAVING 절에서 사용    > 하나의 행을 반환     EX> WHERE      EX> HAVING    - 테이블 서브쿼리 (Table Subquery)    > WHERE, HAVING 절에서 사용    > 하나 이상의 행과 열을 반환     EX> WHERE      EX> HAVIN..

DB/MySQL 2024.06.25

[JAVA] 백준 2193 이친수_DP

문제:https://www.acmicpc.net/problem/2193  접근 :   - 1자리 수의 경우 = 1  - 2자리 수의 경우 = 10  - 3자리 수의 경우 = 100, 101  - 4자리 수의 경우 = 1000, 1010, 1001  - 5자리 수의 경우 = 10000, 10100, 10010, 10001, 10101  - n자리 수의 경우 = n-1 자리 수의 경우 + 0, n-2 자리수의 경우 + 01    -> DP[n] = DP[n-1] + DP[n-2]  코드 구현 : import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Main { public ..

JAVA/Coding Test 2024.06.24

[JAVA] 백준 2156 포도주_DP

문제 : https://www.acmicpc.net/problem/2156  접근 :   - 마지막 포도주를 마시는 경우와 마시지 않는 경우를 나눈다.  - 만약 마지막 포도주를 마시지 않는 경우, 1) 이전까지(n-1)의 최대값이 정답이다.  - 마지막 포도주를 마시는 경우, 2) 3번째 전(n-3) 최대값에 전 포도주 잔(n-1)과 이번 포도주 잔(n)을 마실 수 있다.  - 또한, 3) 2번째 전(n-2) 최대값에 이번 포도주 잔(n)을 마실 수 있다.  - 1) 2) 3) 3가지 경우 중 최대값을 정답으로 출력한다.    코드 구현 :import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;pu..

JAVA/Coding Test 2024.06.24

[JAVA] 백준 2011 암호코드 _DP

문제:https://www.acmicpc.net/problem/2011  접근 :   - 0 으로 시작하는 숫자가 들어오면 복호화가 불가능 하므로 0을 출력한다.  - 길이가 2이상인 경우에는 복호화 한 수가 26 이하이면 2, 6 개별 수 및 26 합친 수의 경우 모두를 고려한다.  - 첫 번째 글자부터 끝까지 확인하면서 정답을 구한다.  코드 구현 : import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Main { public static void main(String[] args) throws IOException { BufferedReader br ..

JAVA/Coding Test 2024.06.21

[MySQL] 테이블 조인

1. 테이블 조인이란?   - 두 개 이상의 테이블을 결합하여 관련 데이터를 검색하는 데 사용  2. INNERJOIN 내부 조인   - 검색 조건에 해당하는 2개의 테이블의 공통적인 행을 출력   3. LEFT JOIN 왼쪽 외부 조인   - FROM에 해당하는 TABLE을 기준으로 SELECT 한 정보가 합쳐진다.   4. RIGHT JOIN 오른쪽 외부 조인   - JOIN에 해당하는 TABLE을 기준으로 SELECT 한 정보가 합쳐진다.   5. FULL JOIN    - MySQL에서는 FULL JOIN을 직접 지원하지 않으므로 LEFT JOIN과 RIGHT JOIN을 결합하여 사용

DB/MySQL 2024.06.21

[JAVA] 백준 11052 카드 구매하기_DP

문제:https://www.acmicpc.net/problem/11052  접근 :   - 카드를 최댓값으로 N개 구매하기 위해서는 1 부터 N까지 구매 최대값을 알고 있어야한다.  - 카드 1개를 살때 최대값 (dp[1])은, card[1]이 최대값이다.  - 카드 2개를 살때 최대값 (dp[2])은 , card[1]을 2번 구매하는 값과 card[2] 중 더 큰 값이다.  - dp[3] 은, dp[1] + dp[2] 과 card[3] 중 더 큰 값이다.  - dp[4] = dp[1] + dp[3] , dp[2] + dp[2], num[4] 중 가장 큰 값이다.  - dp[5] = max { (dp[1] + dp[4]), (dp[2] + dp[3]), (card[5]) }   - dp[n] = max{..

JAVA/Coding Test 2024.06.20

[MySQL] 데이터 그룹화(묶기)

1. 데이터 그룹화란?  - GROUP BY 를 이용하여 데이터를 그룹화 할 수 있다.  - 또한, HAVING 을 이용하여 그룹화된 데이터를 조건에 따라 필터링 할 수 있다.  - GROUP BY, HAVING을 이용하여 데이터를 요약하고 집계 결과를 보다 세부적으로 제어할 수 있음.  2. GROUP BY  - 동일한 값을 가지는 행들을 그룹화하는 데 사용  - 집계 함수(COUNT, SUM, AVG, MAX, MIN 등)와 함께 사용하여 각 그룹에 대한 집계 결과를 계산 할 수 있다.  - GROUP BY 사용 예시 ( 국가별 사는 사람 수 조회 )  > SELECT country, COUNT(*) as user_count FROM users GROUP BY country;   3.  HAVING ..

DB/MySQL 2024.06.20

[MySQL] 데이터 조회

1. 데이터 조회  - SQL 에서는 SELECT 문을 사용하여 특정한 조건의 데이터를 조회할 수 있다.  2. 사용 예시   - 모든 열 조회  > SELECT * FROM users;   - 모든 특정  조회  > SELECT username, email FROM users;   - 조건을 사용 조회  > SELECT * FROM users WHERE username = 'kim';   - 다중 조건을 사용 조회  > SELECT * FROM users WHERE age > 25 AND username = 'kim';    - 특정 열로 정렬 조회  > SELECT * FROM users ORDER BY created_at DESC;    - 조회 결과 열의 갯수 제한  > SELECT * FROM ..

DB/MySQL 2024.06.20

[MySQL] 데이터 베이스 모델링

1. 데이터베이스 모델링(Database Modeling) 이란?   - 데이터베이스를 설계하는 과정   - 데이터를 어떻게 저장하고, 접근하고, 관리할지를 결정하는 데 중요한 역할   - 데이터베이스의 논리적 구조를 정의   - 데이터의 저장소와 데이터 간의 관계 설계  2. 데이터베이스 모델링의 주요 단계    - 요구사항 분석(Requirement Analysis)   - 개념적 설계(Conceptual Design)   - 논리적 설계(Logical Design)   - 물리적 설계(Physical Design)   - 정규화(Normalization)   - 최적화(Optimization)  3. ERD DIAGRAM

DB/MySQL 2024.06.20

[MySQL] DDL 과 DML

1. DDL(Data Definition Language) 이란?   - 데이터베이스, 테이블, 인덱스, 뷰 등을 생성, 수정, 삭제하는 데 사용   - DDL 명령은 자동으로 커밋됨(작업 완료 후 롤백 불가).  2. 주요 DDL 명령어   - CREATE : 데이터베이스 객체 생성   > CREATE DATABASE DB명;   > CREATE TABLE 테이블명;   > CREATE INDEX 인덱스명 ON 테이블명( 컬럼명 );  - ALTER: 기존의 데이터베이스 객체 수정   > 추가 : ALTER TABLE  테이블명 ADD 컬럼명 데이터타입;   > 수정 : ALTER TABLE  테이블명 MODIFY 컬럼명 데이터타입;   > 삭제 : ALTER TABLE  테이블명 DROP COLUMN..

DB/MySQL 2024.06.20