[SQL] Advanced SQL
·
Backend/MySQL
우재남님의 "혼자 공부하는 SQL"을 기반으로 학습한 게시물입니다. 📕 목차 1. MySQL의 데이터 형식 2. 두 테이블을 묶는 조인 3. SQL 프로그래밍 1. MySQL의 데이터 형식 📌 데이터 형식 1️⃣ 정수형 데이터 형식 바이트 수 숫자 범위 TINYINT 1 -128 ~ 127 SMALLINT 2 -32,768 ~ 32,767 INT 4 -21^31 ~ 21^31-1 BIGINT 8 UNSIGNED : 정수형 데이터 형식 뒤에 붙일 수 있다. 2️⃣ 문자형 데이터 형식 바이트 수 CHAR(개수) 1~255 VARCHAR(개수) 1~16,383 char는 고정 길이, varchar는 가변 길이 문자형이다. 공간 측면으로는 varchar가 좋지만, 성능 측면으로는 char가 빠르다. 3️⃣ 대량..
[JPA] Proxy
·
Backend/Spring Boot & JPA
이 포스트는 김영한님의 "자바 ORM 표준 JPA 프로그래밍"을 참조하였음을 알립니다. 📕 목차 1. 프록시 2. 즉시 로딩과 지연 로딩 3. 지연 로딩 활용 4. 영속성 전이: CASCADE 5. 고아 객체(Orphan Object) 6. 영속성 전이 + 고아 객체, 생명주기 👀 Summary • 객체 그래프 탐색을 위해 Proxy를 사용한다. • 객체 조회 시에는 즉시 로딩과 지연 로딩이 있다. • 객체 저장&삭제 시, 연관 객체를 함께 저장&삭제하려면 영속성 전이를 사용한다. • 부모 객체와 연관관계가 끊어진 자식을 자동으로 삭제하려면 고아 객체 제거 기능을 사용한다. 1. 프록시 연관된 객체를 처음부터 전부 다 가져오지 않고, 실제 사용 시점에 데이터베이스에서 조회하는 방법이다. JPA 표준 명세..
[SQL] Basic SQL
·
Backend/MySQL
우재남님의 "혼자 공부하는 SQL"을 기반으로 학습한 게시물입니다. 📕 목차 1. SELECT, FROM, WHERE 2. SELECT 옵션 3. INSERT, UPDATE, DELETE 1. SELECT, FROM, WHERE 📌 USE USE 데이터베이스_이름; 쿼리문을 사용하기 이전에 가장 먼저 사용할 데이터베이스를 지정하는 방법 다른 데이터베이스를 이용하려면 다시 USE 문을 사용하면 된다. USE를 사용하기 싫다면 (데이터베이스_이름).(테이블명)을 반복적으로 사용하면 된다. 📌 SELECT SELECT 열_이름 FROM 테이블_이름 WHERE 조건식 GROUP BY 열_이름 HAVING 조건식 ORDER BY 열_이름 LIMIT 숫자 SELECT 외엔 모두 생략 가능하다. 사용하게 된다면 순서..
[JPA] Advanced Mapping
·
Backend/Spring Boot & JPA
이 포스트는 김영한님의 "자바 ORM 표준 JPA 프로그래밍"을 참조하였음을 알립니다. 📕 목차 1. 상속 관계 매핑 2. @MappedSuperclass 3. 복합 키와 식별 관계 매핑 : 조인 전략 4. 조인 테이블 : 단일 테이블 전략 5. 엔티티 하나에 여러 테이블 매핑 : 구현 클래스마다 테이블 전략 6. 정리 1. 상속 관계 매핑 • As-is • 조인 전략(Joined Strategy) • 단일 테이블 전략(Single-Table Strategy) • 구현 클래스마다 테이블 전략(Table-per-Concrete-Class Strategy) 🤔 As-is 관계형 데이터베이스에는 상속이라는 개념이 없다. 대신 비슷한 개념으로 Super-Type Sub-Type Relationship 모델링 기..