1. 데이터 조리 시작하기(DDL - Data Definition Language)
DDL은 데이터 구조를 정의하거나 수정하는 데 사용된다. 이는 재료를 담는 그릇, 즉 테이블을 만드는 과정과 비슷하다.
- 테이블 만들기 : CREATE TABLE 로 새로운 재료함을 마련하는 방법. 각 성분의 특성(열의 데이터 타입과 속성)을 정의
- 테이블 개조하기 : ALTER TABLE 로 이미 만든 재료함에 변화를 주는 방법. 재료를 추가하거나 불필요한 재료를 제거할 수 있다.
- 테이블 제거하기 : 사용하지 않는 재료함을 DROP TABLE 로 철거하는 방법
// 테이블 만들기 : 새로운 재료함 마련
CREATE TABLE users (
id SERIAL,
name VARCHAR(255),
email VARCHAR(255)
);
// 테이블 개조하기 : 재료함 업그레이드
ALTER TABLE users ADD COLUMN role VARCHAR(50);
// 테이블 제거하기 : 사용하지 않는 재료함 철거
DROP TABLE users;
2. 데이터 찾기(DML - Data Manipulation Language)
DML은 테이블에 담긴 데이터를 조회하거나 정렬, 그룹화하는데 사용된다. 즉 필요한 재료를 찾아내고 분류하는 작업과 같다.
- 재료 선택하기 : SELECT 문을 사용해 필요한 재료(데이터)를 찾아보는 방법. WHERE 절로 특정 조건을 만족하는 재료만 고를 수 있다.
- 정렬하여 진열하기 : ORDER BY 로 재료를 순서대로 정렬하고, GROUP BY 로 비슷한 재료들을 그룹화하여 관리할 수 있다.
- 재료 합치기 : 여러 장소에서 가져온 재료를 JOIN 으로 합칠 수 있다.
// 재료 선택하기
// 특정 조건(id = 1)에 맞는 데이터를 선택
SELECT id, name, email FROM users WHERE id = 1;
// 데이터 정렬하여 진열하기
// 이름 순서대로 재료를 정렬하여 보기 좋게 정리한다
SELECT id, name, email FROM users ORDER BY name ASC;
// 비슷한 재료 그룹화하기
// role에 따라 사용자 수를 집계한다.
SELECT COUNT(id) AS user_count, role
FROM users
GROUP BY role;
// 데이터 합치기 : 테이블 간의 데이터를 조합해 하나의 요리로 만드는 과정
// INNER JOIN
// users와 orders 테이블을 연결해 각 사용자의 주문 내역을 가져온다.
SELECT u.id, u.name, o.order_date
FROM users u
INNER JOIN orders o ON u.id = o.user_id;
// LEFT JOIN
// users의 모든 데이터와 매칭되는 orders 데이터를 가져온다. 없는 데이터는 NULL로 표시된다.
SELECT u.id, u.name, o.order_date
FROM users u
LEFT JOIN orders o ON u.id = o.user_id;
// RIGHT JOIN
// orders의 모든 행과 매칭되는 users의 데이터 가져오기. 없는 데이터는 NULL로 표시된다.
SELECT u.id, u.username, o.order_date
FROM users u
RIGHT JOIN orders o ON u.id = o.user_id;
3. 데이터 조리 및 제거 (DML - Data Manipulation Language)
DML은 데이터에 변화를 주는 작업. 이는 새로운 재료를 추가하거나, 기존의 재료를 수정하거나, 불필요한 재료를 제거하는 과정
- 재료 추가하기 : INSERT INTO 로 새로운 재료를 추가할 수 있다.
- 재료 업데이트하기 : UPDATE 로 기존의 재료를 새로 고칠 수 있다.
- 재료 버리기 : DELETE FROM 으로 불필요한 재료를 제거할 수 있다.
//데이터 추가
INSERT INTO users (id, name, email) VALUES (1, '박병천', 'genius1788@naver.com');
//데이터 수정
UPDATE users SET email = 'email@example.com' WHERE id = 1;
//데이터 삭제
DELETE FROM users WHERE id = 1;
4. 트랜잭션 관리와 보안(DCL - Data Control Language)
- 들어가기 전 트랜잭션이란?
데이터베이스 상태를 변화시키기 위해서 수행하는 작업의 단위를 말한다.
요리로 치면 조리대를 의미하며 재료(데이터)들을 조회하여 생성/ 수정/ 사제 후 최종 결과물을 만들 때까지 하나의 작업을 트랜잭션으로 관리 할 수 있으며, 트랜잭션은 조리(데이터 처리) 중에 문제가 발생시 그 전에 했던 변경을 아무일 도 없었던 것 처럼 모두 되돌린다. - 조리대 트랜잭션 관리 : 조리대에서의 사고(다른 요리재료와 섞이거나, 잘못 버려지는 것)를 방지하기 위해 BEGIN, COMMIT, ROLLBACK 으로 트랜잭션을 관리할 수 있다.
- 접근 권한 설정하기 : GRANT 와 REVOEK 로 누가 주방에 들어와서 요리를 할 수 있는지를 관리할 수 있다.
- BEGIN : START TRANSACTION 과 동일하며 새로운 트랜잭션을 생성 및 시작하는 연산
'Back-End > DataBase' 카테고리의 다른 글
| 데이터베이스 연결(Driver) (0) | 2025.01.15 |
|---|---|
| SQL로 복잡한 쿼리 실습하기 (0) | 2025.01.15 |
| Spring JdbcTemplate의 RowMapper() (1) | 2024.12.09 |
| 커넥션 풀과 데이터소스 (0) | 2024.12.06 |
| JDBC - CRUD (0) | 2024.12.06 |