주식 거래 정보를 저장하는 테이블은 금융 기관, 투자자, 또는 주식 시장 분석가가 주식 거래를 기록, 분석 및 관리하는 데 중요합니다. 이 테이블은 거래 ID, 주식 ID, 사용자 ID, 거래 유형(매수/매도), 주식 수, 가격, 거래 날짜 및 시간 등의 정보를 포함할 수 있습니다. 다음은 주식 거래 정보를 저장하기 위한 테이블 생성을 위한 SQL 쿼리문 예제와 각각의 설명입니다.
1. 기본 주식 거래 테이블 생성
CREATE TABLE stock_trades (
trade_id INT AUTO_INCREMENT PRIMARY KEY,
stock_id INT,
trader_id INT,
trade_type VARCHAR(4),
quantity INT,
price DECIMAL(10, 2),
trade_date TIMESTAMP,
FOREIGN KEY (stock_id) REFERENCES stocks(stock_id),
FOREIGN KEY (trader_id) REFERENCES traders(trader_id)
);
설명: 거래 ID, 주식 ID, 거래자 ID, 거래 유형(매수/매도), 주식 수량, 가격, 거래 날짜 및 시간 등을 저장합니다.
2. 주식 정보 테이블 생성
CREATE TABLE stocks (
stock_id INT AUTO_INCREMENT PRIMARY KEY,
symbol VARCHAR(10),
company_name VARCHAR(100)
);
설명: 주식의 심볼, 회사 이름을 저장합니다.
3. 거래자 정보 테이블 생성
CREATE TABLE traders (
trader_id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
registration_date DATE
);
설명: 거래자의 이름과 등록 날짜를 저장합니다.
4. 거래 주문 테이블 생성
CREATE TABLE trade_orders (
order_id INT AUTO_INCREMENT PRIMARY KEY,
trade_id INT,
order_type VARCHAR(10),
order_status VARCHAR(10),
order_date TIMESTAMP,
FOREIGN KEY (trade_id) REFERENCES stock_trades(trade_id)
);
설명: 거래 주문 유형(지정가, 시장가 등), 주문 상태, 주문 날짜를 기록합니다.
5. 거래 기록 테이블 생성
CREATE TABLE trade_logs (
log_id INT AUTO_INCREMENT PRIMARY KEY,
trade_id INT,
log_description TEXT,
log_date TIMESTAMP,
FOREIGN KEY (trade_id) REFERENCES stock_trades(trade_id)
);
설명: 거래에 관련된 로그(이벤트, 변경 사항 등)와 로그 날짜를 저장합니다.
6. 거래 커미션 테이블 생성
CREATE TABLE trade_commissions (
commission_id INT AUTO_INCREMENT PRIMARY KEY,
trade_id INT,
commission_rate DECIMAL(5, 2),
commission_amount DECIMAL(10, 2),
FOREIGN KEY (trade_id) REFERENCES stock_trades(trade_id)
);
설명: 거래별 수수료율과 수수료 금액을 저장합니다.
7. 시장 데이터 테이블 생성
CREATE TABLE market_data (
data_id INT AUTO_INCREMENT PRIMARY KEY,
stock_id INT,
date TIMESTAMP,
open_price DECIMAL(10, 2),
close_price DECIMAL(10, 2),
high_price DECIMAL(10, 2),
low_price DECIMAL(10, 2),
volume INT,
FOREIGN KEY (stock_id) REFERENCES stocks(stock_id)
);
설명: 주식별 시장 데이터(시가, 종가, 고가, 저가, 거래량)와 날짜를 저장합니다.
8. 투자 포트폴리오 테이블 생성
CREATE TABLE portfolios (
portfolio_id INT AUTO_INCREMENT PRIMARY KEY,
trader_id INT,
portfolio_description TEXT,
creation_date DATE,
FOREIGN KEY (trader_id) REFERENCES traders(trader_id)
);
설명: 투자자별 포트폴리오 설명과 생성 날짜를 저장합니다.
9. 포트폴리오-주식 연결 테이블 생성
CREATE TABLE portfolio_stocks (
ps_id INT AUTO_INCREMENT PRIMARY KEY,
portfolio_id INT,
stock_id INT,
holding_quantity INT,
FOREIGN KEY (portfolio_id) REFERENCES portfolios(portfolio_id),
FOREIGN KEY (stock_id) REFERENCES stocks(stock_id)
);
설명: 각 포트폴리오에 포함된 주식과 보유 수량을 저장합니다.
10. 거래 알림 테이블 생성
CREATE TABLE trade_alerts (
alert_id INT AUTO_INCREMENT PRIMARY KEY,
trader_id INT,
alert_message TEXT,
alert_date TIMESTAMP,
FOREIGN KEY (trader_id) REFERENCES traders(trader_id)
);
설명: 거래자에게 보낸 알림 메시지와 알림 날짜를 저장합니다.
관련 전문용어 설명
CREATE TABLE: 새로운 테이블을 생성하는 SQL 명령어입니다.
INT, VARCHAR, DECIMAL, DATE, TIMESTAMP, TEXT: 데이터 유형을 나타냅니다.
AUTO_INCREMENT: 자동으로 숫자를 증가시키는 속성입니다.
PRIMARY KEY: 각 행을 고유하게 식별하는 주 키입니다.
FOREIGN KEY: 다른 테이블의 주 키를 참조하는 외래 키입니다.
'SQL' 카테고리의 다른 글
블로그 포스트 테이블 생성: 블로그 포스트 정보를 저장하기 위한 테이블을 생성합니다. (0) | 2024.01.01 |
---|---|
채팅 메시지 테이블 생성: 채팅 메시지 정보를 저장하기 위한 테이블을 생성합니다. (0) | 2024.01.01 |
제품 레시피 테이블 생성: 제품 레시피 정보를 저장하기 위한 테이블을 생성합니다. (1) | 2024.01.01 |
고객 리워드 테이블 생성: 고객 리워드 정보를 저장하기 위한 테이블을 생성합니다. (0) | 2024.01.01 |
영화 상영 일정 테이블 생성: 영화 상영 일정 정보를 저장하기 위한 테이블을 생성합니다. (0) | 2024.01.01 |