RDB를 조작하는 언어인 SQL문을 JPA와 연관하여 무의식중으로 사용중인
SQL문 분석을 통해 다시 개념정리를 하도록 하겠습니다.
설명을 위해 작성되는 테이블은 JPA를 이용하는 만큼, SQL문을 통해 테이블을 먼저 생성하고
DB모델을 맵핑하는 방식이아닌, 처음부터 OOP방식으로 데이터 모델을 설계하고
해당 모델이 어떠한 SQL문으로 변환이되고 사용되어지는지 확인해보도록 하겠습니다.
SELECT 구문
주소 테이블 생성
어플리케이션에서는 데이터모델뿐 아니라 JSON유틸리티/리퀘스트유틸/라우터처리 등
여러가지 성격이 다른 클래스를 다루게 됩니다. 여기서는 data모듈하위에 데이터베이스에
관련된 테이블의 정의를 집합하도록 하겠습니다.
JPA-주소테이블
@Entity public class Address { @Id @GeneratedValue @Column(name = "ADDRESS_ID") private Integer id; private String name; private String phoneNbr; private String address; private String sex; private int age; //getter,setter 생략 }
SQL-주소테이블
CREATE TABLE `address` ( `address_id` int(11) NOT NULL AUTO_INCREMENT, `address` varchar(255) DEFAULT NULL, `age` int(11) NOT NULL, `name` varchar(255) DEFAULT NULL, `phone_nbr` varchar(255) DEFAULT NULL, `sex` varchar(255) DEFAULT NULL, PRIMARY KEY (`address_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8
검색
데이터베이스의 핵심처리는 검색입니다. 저장되어 있는 테이블에서 필요한 데이터를 뽑아내는 것이며
질의(query),추출(retrieve)이라고도 부릅니다. SQL은 검색과 관련되어 굉장히 많은 기능을 제공합니다.