본문 바로가기

SQL

주식 거래 테이블 생성: 주식 거래 정보를 저장하기 위한 테이블을 생성합니다.

반응형

주식 거래 정보를 저장하는 테이블은 금융 기관, 투자자, 또는 주식 시장 분석가가 주식 거래를 기록, 분석 및 관리하는 데 중요합니다. 이 테이블은 거래 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: 다른 테이블의 주 키를 참조하는 외래 키입니다.

반응형