JPQL수업을 들으면서 sql을 공부의 필요성을 느끼고 기록하려고 한다.
SQL의 이해
SQL이란 무엇인가?
Structured Query Language(구조적 쿼리 언어)의 약자이다. 데이터베이스와의 통신을 위해 특별히 고안된 언어이다.
SQL의 강점
- 한 언어를 배워 모든 데이터베이스에서 활용할 수 있다.
- 각 문은 이해가 쉬운 영어 문장과 닮아있다.
- 간단하지만 강력하다. 효과적으로 사용하면 매우 복잡하고 정교한 작업을 수행할 수 있다.
데이터 베이스
테이블
-
특정한 종류의 데이터를 구조적 목록으로 묶은 것
-
테이블에는 특성과 속성이 있어서 데이터가 저장되는 방식을 정의할 수 있다.
-
테이블에 저장되는 데이터를 한 가지 형식의 데이터로
스키마
데이터베이스, 테이블 레이아웃 및 속성에 대한 정보
열과 데이터 형식
열
- 테이블 내의 각 필드, 모든 테이블은 하나 이상의 열로 구성된다.
- 데이터 나누기
- 데이터를 구조적으로 여러 열로 나누는 것은 매우 중요한 작업이다. 열을 나누게 되면 특정한 열을 기준으로 정렬하거나 필터링할 수 있다.
- 데이터 형식
- 허용되는 데이터 종류 (자바의 데이터 타입)
- 각 테이블 열에는 데이터 형식이 저장되어 그 열에 저장할 수 있는 데이터의 종류를 제한하게 된다.
행
- 테이블의 데이터는 행에 저장된다.
- 저장되는 각 레코드는 각자의 행에 담기게 된다.
기본키
- 테이블의 각 행에는 그 행을 고유하게 구분하는 데 사용되는 열 (여러 열일 수도 있음)
- 테이블의 각 행을 고유하게 구분해주는 열을 기본 키라고 부른다.
- 기본 키는 특정한 열을 참조하는 데 사용되며, 기본 키가 없으면 테이블의 특정한 열을 업데이트하거나 삭제하는 일이 어려워진다.
- 테이블의 모든 행은 기본 키로 설정할 수 있지만, 다음과 같은 조건이 맞아야 한다.
- 둘 이상의 행이 같은 기본 키 값을 가질 수 없다.
- 모든 행에는 기본 키 값이 있어야 한다. 기본 키 열에는 NULL값을 사용할 수 없다.
- 기본 키의 값은 변경하거나 업데이트할 수 없다.
- 기본 키 값은 재사용할 수 없다. 테이블에서 행을 삭제했다면 그 기본키 값을 나중에 다른 새 행에 할당해서는 안 된다.
데이터 가져오기
책에서 제공해주는 txt문서에 CREATE와 INSERT문을 사용하여 테이블을 생성하고 데이터를 넣었다.