이번에는 데이터 베이스를 생성하고 테이블 및 데이터를 입력하는 내용을 정리해보자.
4-1. 데이터베이스 생성
데이터베이스란?
- 데이터를 보관하기 위한 '상자' 라고 할 수 있다.
- 데이터베이스에서 데이터를 모을 때는 특정한 규칙을 적용해서 데이터를 정리해서 보관한다.
관계형 데이터베이스란?
- 데이터를 표 형식으로 표현하고, 여러 표에서 항목의 값 사이에 관계를 맺고 있는 데이터베이스
- 가장 일반적으로 사용되는 데이터베이스이고, 보통 RDB로 줄여서 부른다.
4-2. 테이블 생성
테이블이란?
- 데이터베이스 안에서 실제로 규칙을 가진 데이터가 저장되는 상자.
- 테이블은 데이터를 항목으로 해서 이차원 표 형식으로 정리해서 저장한다.
레코드와 컬럼
- 테이블의 가로 행을 레코드(record), 세로 열을 컬럼(column) 이라고 한다.
- 하나의 컬럼은 데이터의 각 요소가 된다.
테이블 생성
CREATE TABLE [테이블명] ([컬럼명] [자료형타입] [제약조건] ... );
- 제약 조건의 예
- NOT NULL : NULL 입력을 허용하지 않는다.
- UNIQUE : 중복값 입력을 허용하지 않는다.
- CHECK : 지정한 조건을 만족하지 않는 값의 입력을 허용하지 않는다.
- PRIMARY KEY : 테이블 안에서 레코드를 식별하는 기본 키를 설정한다. 기본 키는 NOT NULL 과 UNIQUE 가 함께 적용한다.
- FOREIGN KEY : 관련된 테이블을 연결하는 설정. 외부 키라고도 부른다.
- DEFAULT : 컬럼의 초깃값을 설정한다.
4-3. 데이터 입력
SQL 이란?
- 데이터베이스를 조작하기 위한 언어
- 정식 명칭은 Structured Query Language (구조화 질의어)
CRUD
- 영속성으로 데이터를 취급하는 4개의 기본적인 기능인 Create, Read, Update, Delete
| CRUD | 명령어 | 개요 | 구문 |
|---|
| Create | INSERT | 데이터를 등록 | INSERT INTO [테이블명] ([칼럼명, 칼럼명, ...]) VALUES ([값, 값, ...]); |
| Read | SELECT | 데이터를 참조 | SELECT [칼럼명] FROM [테이블명]; |
| Update | UPDATE | 데이터를 갱신 | UPDATE [테이블명] SET [칼럼명] = [값] WEHRE [조건]; |
| Delete | DELETE | 데이터를 삭제 | DELETE FROM [테이블명] WHERE [조건]; |
- UPDATE와 DELETE의 WHERE 절은 없는 경우 모든 레코드가 대상이 된다.
4-4. 엔티티와 레포지토리 알아보기
엔티티란?
- 데이터를 담아두는 객체
- 데이터베이스 테이블의 레코드에 대응하는 객체, 엔티티의 필드는 테이블의 컬럼값에 대응한다.
/**
* Member 테이블 : 엔티티
*/
public class Member {
/** id 컬럼 대응 **/
private Integer id;
/** name 컬럼 대응 **/
private String name;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
레포지토리란?
- 데이터베이스를 조작하는 클래스
- 레포지토리를 생성하는 경우에는 반드시 인터페이스를 정의하고 구현해야 한다.
이유는 레포지토리 인터페이스의 필드에 레포지토리 구현 클래스를 DI 하여 특정 구현에 의존하는 것을 피할 수 있기 때문
- 자바에서는 인터페이스를 구현한 클래스의 접미사에 'Impl'을 붙이는 경우가 많다.