728x90
DB 제어 기본 명령어
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100),
email VARCHAR(100) UNIQUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
- CREATE TABLE: 새로운 테이블을 생성하는 명령입니다.
- id INT PRIMARY KEY AUTO_INCREMENT:
- id는 정수형(INT)이며, 기본 키입니다(PRIMARY KEY).
- AUTO_INCREMENT는 새 레코드가 추가될 때마다 자동으로 1씩 증가하는 숫자를 부여합니다.
- name VARCHAR(100): 최대 100자의 이름을 저장할 수 있는 문자열 칼럼입니다.
- email VARCHAR(100) UNIQUE: 이메일 주소를 저장합니다.
- UNIQUE 제약 조건을 사용하여 중복된 이메일은 저장 불가하도록 설정합니다.
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP:
- 사용자가 등록될 때의 시각(TIMESTAMP)을 저장하며, 기본값은 현재 시간입니다.
분산환경에서는 고유키를 가지고 있다고 고유해지는 게 아님.
id값이 숫자이기 때문

INSERT INTO users (name, email)
VALUES
('Alice', 'alice@example.com'),
('Bob', 'bob@example.com');
- INSERT INTO: 테이블에 새로운 데이터를 삽입하는 SQL 명령어입니다.
- (name, email): 어떤 컬럼에 데이터를 넣을 것인지 명시합니다.
- VALUES (...): 실제로 삽입될 값을 지정합니다.
- 각각의 괄호는 한 개의 사용자 데이터입니다.
- id는 AUTO_INCREMENT, created_at은 DEFAULT CURRENT_TIMESTAMP이므로 자동 처리됩니다.

-- 전체 조회
SELECT * FROM users;
- SELECT: 데이터를 조회할 때 사용합니다.
- : 모든 컬럼을 의미합니다. (id, name, email, created_at)
- 결과는 전체 사용자 데이터를 모두 보여줍니다.

-- 조건부 조회
SELECT * FROM users WHERE name = 'Alice';
- WHERE: 조건절로 특정 조건을 만족하는 행만 조회합니다.
- 위 쿼리는 이름이 'Alice'인 사용자만 가져옵니다.


-- 특정 컬럼만
SELECT name, email FROM users;
- 대신 특정 컬럼만 명시하여 필요한 데이터만 가져옵니다.
- 이 경우, name과 email 정보만 보여주며, id와 created_at은 제외됩니다.

UPDATE users
SET email = 'alice@newdomain.com'
WHERE name = 'Alice';
- UPDATE: 테이블 내 데이터를 수정할 때 사용합니다.
- SET: 어떤 값을 바꿀 것인지 지정합니다.
- WHERE: 어떤 조건에 해당하는 데이터만 수정할지 지정합니다.
- 이 쿼리는 이름이 'Alice'인 사용자의 이메일을 변경합니다.
- WHERE 절이 빠지면 모든 사용자의 이메일이 바뀝니다.

대문자 소문자 상관 없을 무
-- 최근 가입자 1명만
SELECT * FROM users ORDER BY created_at DESC LIMIT 1;
대문자 소문자 상관 없을 무
- ORDER BY created_at DESC: 가입 시간 기준으로 최신 순 정렬합니다. (DESC: 내림차순)
- LIMIT 1: 상위 1개만 가져옵니다.
- 결과는 가장 최근에 가입한 사용자 1명입니다.

SELECT COUNT(*) AS user_count FROM users;
- COUNT(*): 행의 개수를 셉니다.
- AS user_count: 결과 컬럼 이름을 user_count로 지정합니다.
- 결과는 사용자 수를 숫자로 반환합니다.

CREATE TABLE orders (
id INT PRIMARY KEY AUTO_INCREMENT,
user_id INT,
item_name VARCHAR(100),
FOREIGN KEY (user_id) REFERENCES users(id)
);
- orders: 사용자의 구매 정보를 저장하는 테이블입니다.
- user_id: users 테이블의 id를 참조합니다.
- FOREIGN KEY (user_id) REFERENCES users(id):
- user_id는 users.id와 연결되어 있어야 합니다.
- 즉, 존재하지 않는 사용자에게 주문을 넣을 수 없습니다.
- 이것을 **참조 무결성 제약조건(Foreign Key Constraint)**이라고 부릅니다.

insert into orders (user_id, item_name)
values (
(select id from users where email = 'alice@newdomain.com'),
'electronic keyboard'
);
-- 조인 조회
SELECT users.name, orders.item_name
FROM users
JOIN orders ON users.id = orders.user_id;
- JOIN: 두 테이블을 연결할 때 사용합니다.
- users.id = orders.user_id: 연결 조건. 사용자 ID와 주문 내 사용자 ID가 일치하는 경우를 의미합니다.
- 결과는 각 주문에 대해 주문한 사람의 이름과 **상품명(item_name)**을 보여줍니다.

postman API 테스트 구성하기
Send를 누르면 FastAPI의 marketing 도메인의 Controller가 요청을 수신하여 DB에 가상 마켓팅 정보 배치

이후 정상적으로 가상 마켓팅 정보가 배치되었는지 DB에서 아래 명령으로 확인 가능

'데이터 엔지니어링' 카테고리의 다른 글
| 가상 마켓팅 데이터 정보 업데이트 (수정), 가상 마켓팅 데이터 중 특정 정보 삭제 (0) | 2025.05.24 |
|---|---|
| webflux 확인하기 (0) | 2025.05.24 |