데이터베이스란?
데이터베이스는 일반적으로 DBMS에 의해 제어되는 구조화된 데이터 저장소입니다. 데이터를 효율적으로 관리하기 위해 행과 열로 모델링 된 테이블을 사용합니다. 그리고 대부분의 경우 SQL 언어를 작성하여 데이터를 조회, 등록, 갱신, 삭제 등과 같은 제어 처리를 수행합니다.
데이터베이스와 테이블의 차이점
데이터베이스는 데이터 저장소이고, 테이블은 데이터베이스 내에서 데이터가 저장되는 형태입니다.
예시) 도서 관리 데이터베이스
도서 관리 데이터베이스에는 사용자 정보를 저장하는 사용자 테이블과 도서 정보를 저장하는 도서 테이블 등이 존재한다고 가정합니다. 그리고 도서 테이블은 도서 제목, 출판일, 저자 등의 칼럼(Column)으로 구성되어 있으며 제목과 저자는 문자 형태로 저장할 수 있고 출판일 칼럼은 날짜 데이터만 저장될 수 있도록 설계되어 있습니다.
데이터 조회 SQL 구성요소
SELECT
데이터를 조회할 때 사용하는 명령어입니다. SELECT 절 뒤에 테이블의 어떤 칼럼(Column)을 조회할 것인지 지정해 줄 수 있습니다.
예시) SELECT NAME, AGE FROM STUDENT
→ FROM 절 뒤에 조회할 테이블 명을 적어줍니다.
학생(STUDENT) 테이블에서 이름(NAME)과 나이(AGE)를 조회하도록 칼럼을 지정했습니다.
FROM
데이터를 조회하거나 삭제 작업을 수행할 때 어떤 테이블에서 수행할 것인지 지정할 때 사용합니다.
가장 기본적인 경우는 테이블 명을 명시해 주는데, 상황에 따라서는 서브 쿼리도 올 수 있습니다.
HAVING
데이터 조회 시 그룹으로 묶고 싶을 때 GROUP BY 절을 사용하는 데, 이때 그룹 조건을 지정해 줄 때 사용하는 키워드입니다.
JOIN
두 테이블을 하나로 합칠 때 사용하는 키워드입니다. JOIN은 두 테이블 간의 JOIN 조건에 대해 교집합인 레코드를 가지고 테이블을 형성하는 INNER JOIM과 JOIN 조건에 대해 교집합 + 왼쪽에 있는 테이블의 레코드를 가지고 테이블을 형성하는 LEFT JOIN 등 다양한 JOIN절이 존재합니다.
예시)
SELECT * FROM VOCABULARY
INNER JOIN CATEGORY
ON VOCABULARY.ID = CATEGORY.VOCABULARY_ID
→ 단어장(VOCABULARY) 테이블과 카테고리(CATEGORY) 테이블을 JOIN 하는 예시입니다.
ON절 뒤에는 JOIN 조건을 적어줍니다. SELECT 뒤에 *는 모든 칼럼을 보겠다는 ALL의 의미를 갖고 있습니다.
ORDER BY
데이터 조회 시 정렬 조건을 주고 싶을 때 사용하는 키워드입니다.
특정 칼럼을 오름차순 하고 싶을 땐 ASC를 사용하고 내림차순을 하고 싶을 땐 DESC를 사용합니다.
예시 1)
SELECT * FROM STUDENT
ORDER BY AGE DESC
→ 나이 내림차순 정렬
예시 2)
SELECT * FROM STUDENT
ORDER BY AGE
→ 나이 오름차순 정렬
대부분의 DBMS는 DESC과 ASC를 생략하면 자동으로 ASC가 됩니다.
예시 3)
SELECT * FROM STUDENT
ORDER BY AGE ASC, NAME DESC
→ 1차적으로는 나이 오름차순 정렬, 그중에서 같은 레코드는 이름 내림차순 정렬
정렬 조건을 1차 조건, 2차 조건, n차 조건처럼 여러 개 줄 수도 있습니다.
'📓 CS 지식 > 📖 데이터베이스' 카테고리의 다른 글
데이터베이스 관계 정리(1:1, 1:N, N:M) (0) | 2023.09.11 |
---|---|
데이터베이스 Key 종류(기본키, 후보키 등등) (0) | 2023.09.07 |