본문 바로가기
반응형

RDBMS14

[Spring JPA] 상속관계 엔티티 매핑 전략 (@Inheritance @DiscriminatorColumn) 이전 포스트들 보고 이어서 하기 스프링부트와 jpa 연동(설정)하기 테이블,엔티티 jpa로 생성하기 프로젝트(이전포스트) 상속관계 매핑 자바 객체는 상속 관계가 존재하지만, 관계형 데이터베이스는 상속관계가 대부분 없습니다. JPA를 이용해서 매핑하는 법에는 세가지가 있는데 아래와 같습니다. @Inheritance(strategy=InheritanceType.XXX)의 stategy를 설정해주면 됩니다. default 전략은 SINGLE_TABLE(단일 테이블 전략)이다. InheritanceType 종류 JOINED SINGLE_TABLE TABLE_PER_CLASS @DiscriminatorColumn(name="DTYPE") 부모 클래스에 선언합니다. 자식 클래스를 구분하는 용도의 컬럼이다. 관례는 .. 2023. 2. 1.
[Spring JPA] 엔티티(연관 테이블) 생성하고 일대일,일대다 연관관계(1:1 1:n) 설정하기 JPA 세팅에 대해선 이전 포스트를 보고 참고하세요! build.gradle (스프링 2.7.8 기준) getter,setter를 자동으로 생성해주는 lombok 디펜던시를 사용했습니다. dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' // implementation 'org.springframework.boot:spring-boot-devtools' com.. 2023. 1. 31.
[MySQL] 테이블 조인하기 (1) - 결합연산 : join , inner join , left outer join , right outer join 실습을 위해 초기화(클릭) 이미 초기화 한 상태에서 추가로 여러 테이블을 추가해 줍시다. query 창에 복붙하고 실행시켜줍니다! 1. 외래키(foregin key) 란? item의 기본키 id 속성이랑 stock의 기본키 tiem_id속성은 동일한 제품을 가리킵니다. 두 테이블을 조인하면 15번 제품의 정보와 가격과 수량(stock)를 한번에 조회할수 있습니다. stock이 item을 참조한다고 하면 item테이블이 부모키가 되고, stock테이블은 자식 테이블이 됩니다. 이때 부모 테이블의 id는 참조당하는 키 , stock테이블의 참조하는 item_id 키는 외래키(foregin key)가 됩니다. stock이 item을 참조하면 item 부모 테이블 기준으로 조인이 일어납니다. 부모 테이블에 있는.. 2022. 5. 17.
[MySQL] 데이터 조회(5) - 그루핑해서 보기! + 고유값이란? 중복제거 (GROUP BY , DISTINCT) 실습을 위해 초기화(클릭) 1. 중복 제거하기 (DISTINCT 함수) 고유값은 중복이 되는 값을 걷어낸 후의 값입니다. DISTINCT 함수를 통해서 이해를 해볼까요? DISTINCT 함수는 중복되는 값을 제거하고 유일한 값들로 묶습니다. 성별에 대해 DISTINCT를 했더니 수많은 칼럼들은 없어지고 m, f 만 남았죠? 사실 모든 성별은 m , f로 나눠져있고 이것이 고유값입니다! 2. 그루핑하기 (GROUP BY) 그룹핑이라는 것은 고유값을 기준으로 묶는 것입니다. 예를 들어 성별로 그룹핑하면 m , f로 묶이는 거죠. 문법은 이렇습니다 SELECT 그룹할_속성 FROM 테이블 GROUP BY 그룹할_속성 FROM 뒤에 와야되고 , SELECT랑 같이 그루핑할 속성을 공유해야합니다. 그러면 DIST.. 2022. 5. 11.
[MySQL] 문자열 관련 함수들 (length , upper , LPAD , trim , substring) 실습을 위해 초기화(클릭) 1. length 함수 (문자열의 길이 구하기) LENGTH(문자열)로 조회를 하면 문자열의 글자수를 출력합니다. 2. UPPER , LOWER 함수(대소문자 관련) UPPER(문자열)은 안에 있는 모든 문자열을 다 대문자로 변환해줍니다. LOWER(문자열)은 안에 있는 모든 문자열을 다 소문자로 바꿔줍니다. 파이썬에 있는 문법과 똑같죠? 3. 채우기 함수 (LPAD , RPAD) 외우기 까다롭나요? ㅎㅎㅎ 의미를 알면 금방 외울수 있는데요, LPAD는 left + padding, 즉 왼쪽을 채운다는 것입니다. RPAD는 right + padding 으로 오른쪽을 채운다는 것입니다. 문법은 LPAD(문자열 , 길이(정수) , 채울 문자) , RPAD(문자열 , 길이(정수) , .. 2022. 5. 11.
[MySQL] 데이터 조회(4) - 조건별 데이터 별칭 설정하기 (alias , concat , case) - BMI 계산해보기! 실습을 위해 초기화(클릭) [MySQL] SELECT 문으로 데이터 조회(1) - WHERE 조건문 기초 실습을 위해 초기화 먼저 데이터베이스를 생성해줍니다! 이름을 기업 느낌나게 쿠팡으로 할까요? 번개 표시를 눌러서 실행시켜주고, 동기화 버튼 누르면 스키마에 적용이 됩니다. 그다음에 아 konkukcodekat.tistory.com 이 포스트를 이미 보시고 실습 하신 분은 할 필요없습니다. 이 포스트를 안보신분은 이 포스트에서 앞부분에 실습 초기화를 해주세요! 1. 칼럼 데이터에 별칭 짓기(alias) ===========문법=========== SELECT 속성 AS 별칭 , ..... FROM SELECT 속성 부분에서 속성이나 수학식 옆에 AS 별칭을 추가해주면 출력할때 열 이름이 별칭으로 바뀝니.. 2022. 5. 9.
[MySQL] 집계함수와 산술함수 - 갯수 , 평균 ,표준편차 ,최대 ,최소 , 반올림, 절댓값 등등 실습을 위해 초기화(클릭) [MySQL] SELECT 문으로 데이터 조회(1) - WHERE 조건문 기초 실습을 위해 초기화 먼저 데이터베이스를 생성해줍니다! 이름을 기업 느낌나게 쿠팡으로 할까요? 번개 표시를 눌러서 실행시켜주고, 동기화 버튼 누르면 스키마에 적용이 됩니다. 그다음에 아 konkukcodekat.tistory.com 이 포스트를 이미 보시고 실습 하신 분은 할 필요없습니다. 이 포스트를 안보신분은 이 포스트에서 앞부분에 실습 초기화를 해주세요! 집계함수라는 것은 여러행 또는 테이블 전체 행으로부터 하나의 결과값을 반환하는 함수입니다. 산술함수는 각 행마다 수학 계산이나 기능을 해서 각행을 변환 시키는 것을 말합니다. 먼저 집계 함수를 알아보겠습니다 1. COUNT()로 총 갯수 세기 C.. 2022. 5. 8.