🌱 관계형 데이터베이스(Relational Database)
- 데이터를 테이블, 행, 열 등으로 나누어 구조화하는 방식
- 구조화해서 저장하므로 보다 체계적으로 데이터를 저장하고 관리할 수 있음
- 자료를 여러 테이블로 나누어서 관리하고, 테이블간 관계를 설정해 여러 데이터를 조작할 수 있음
- 데이터의 무결성(정확성, 일관성) 유지에 장점이 있음
- SQL을 사용하여 데이터를 조회하고 조작
관계형 데이터베이스의 구조
스키마(Schema)
- 테이블의 구조(Structure)
- 데이터베이스에서 자료의 구조, 표현 방법, 관계 등 전반적인 명세를 기술한 것
테이블(Table)
- 필드와 레코드를 사용해 조작된 데이터 요소들의 집합
- 관계(Relation)라고도 부름
- 필드(field)
- 속성 혹은 컬럼(Column)
- 각 필드에는 고유한 데이터 형식(타입)이 지정됨
- 레코드(record)
- 튜플 혹은 행(Row)
- 테이블의 데이터는 레코드에 저장됨
PK (Primary Key)
- 기본 키
- 각 레코드의 고유한 값
- 기술적으로 다른 항목과 절대로 중복될 수 없는 단일 값(unique)
- 데이터베이스 관리 및 테이블 간 관계 설정 시 주요하게 활용
FK (Foreign Key)
- 외래 키
- 한 테이블의 속성 중 다른 테이블의 레코드를 식별할 수 있는 키
- 다른 테이블의 기본 키를 참조
- 참조하는 테이블의 속성 1개 값은 참조되는 측 테이블의 레코드 값에 대응 됨
- 각 레코드에서 서로 다른 테이블 간의 관계를 만드는 데 사용할 수 있음
🍀 SQL (Structured Query Language)
- 관계형 데이터베이스에서 데이터를 관리하기 위해 사용하는 언어
- 데이터베이스 관리 + CRUD
SQL Commands
SQL Commands 종류
명령어는 특성에 따라 세 가지 그룹으로 분류한다.
DDL (Data Definition Language) : 데이터 정의 언어
- 관계형 데이터베이스 구조(테이블, 스키마)를 정의(생성, 수정 및 삭제)하기 위한 명령어
- SQL 키워드 :
CREATE
, DROP
, ALTER
DML (Data Manipulatin Language) : 데이터 조작 언어
- 데이터를 조작(추가, 조회, 변경, 삭제)하기 위한 명령어
- SQL 키워드 :
INSERT
, SELECT
, UPDATE
, DELETE
DCL (Data Control Language) : 데이터 제어 언어
- 데이터의 보안, 수행제어, 사용자 권한 부여 등을 제어하기 위한 명령어
- SQL 키워드 :
GRANT
, REVOKE
, COMMIT
, ROLLBACK
- SQLite는 파일로 관리되는 DB이기 때문에 SQL을 이용한 접근 제한이 아닌 운영체제 파일 접근 권한으로만 제어 가능
- 권한 설정을 담당하는
GRNAT
와 REVOKE
는 지원 하지 않음.
SQL Syntax
SELECT column_name From table_name;
- 모든 SQL 문(statement)는 SELECT, INSERT, UPDATE 등과 같은 키워드로 시작하고, 하나의 statement는
세미콜론(;)
으로 끝남
- 세미콜론은 각 SQL 문을 구분하는 표준 방법
- SQL 키워드는 대소문자를 구분하지 않음
- 즉, SELECT와 select는 SQL 문에서 동일한 의미
- 하지만 대문자로 작성하는 것을 권장
[참고] Statement & Clause
- Statement(문)
- 독립적으로 실행할 수 있는 완전한 코드 조각
- statement는 clause로 구성됨
- Clase(절)
SELECT column_name From table_name;
- SELECT statement라 부름
- 이 statemetn는 다음과 같이 2개의 clause로 구성됨
- SELECT column_name
- FROM table_name