2.3 샘플 데이터 베이스 설치

minjun kim·2024년 6월 11일

mysql 접속방법

/usr/local/mysql/bin

해당 경로에서 bin 디렉토리로 들어간다

  • bin : : mysql 서버 프로그램, 클라이언트 프로그램 및 유틸리티 프로그램 파일

mysql -u root -p 

-u : user 정보
-p : password

이렇게 접속하게 되면, password로 기존 컴퓨터 password를 작성하면 된다.




샘플데이터 dump 처리

대량의 데이터를 설치하기 위해 employees 라는 이름의 샘플데이터를 설치하는 과정.

처음에는 테이블이 만들어졌으나 안에 데이터가 없는 상황이였다.

/Users/minjunpyeon/Documents/study/thisDB/employees/employees.sql

해당 경로에 다운로드를 진행했고

터미널 환경에서 mysql에 접속후 source를 통해 진행하게 되면 error : 2 번 이 발생

source /Users/minjunpyeon/Documents/study/thisDB/employees/employees.sql


해당 에러는 .dump 파일이 실행이 안되는 것이 문제가 있었다.

employees 파일에 들어가보았을때

.... 생략

DROP DATABASE IF EXISTS employees;
CREATE DATABASE IF NOT EXISTS employees;
USE employees;

SELECT 'CREATING DATABASE STRUCTURE' as 'INFO';

DROP TABLE IF EXISTS dept_emp,
                     dept_manager,
                     titles,
                     salaries, 
                     employees, 
                     departments;

-- set storage_engine = InnoDB;
-- set storage_engine = MyISAM;
-- set storage_engine = Falcon;
-- set storage_engine = PBXT;
-- set storage_engine = Maria;

-- select CONCAT('storage engine: ', @@storage_engine) as INFO;

CREATE TABLE employees (
    emp_no      INT             NOT NULL,
    birth_date  DATE            NOT NULL,
    first_name  VARCHAR(14)     NOT NULL,
    last_name   VARCHAR(16)     NOT NULL,
    gender      ENUM ('M','F')  NOT NULL,    
    hire_date   DATE            NOT NULL,
    PRIMARY KEY (emp_no)
);

CREATE TABLE departments (
    dept_no     CHAR(4)         NOT NULL,
    dept_name   VARCHAR(40)     NOT NULL,
    PRIMARY KEY (dept_no),
    UNIQUE  KEY (dept_name)
);

CREATE TABLE dept_manager (
   dept_no      CHAR(4)         NOT NULL,
   emp_no       INT             NOT NULL,
   from_date    DATE            NOT NULL,
   to_date      DATE            NOT NULL,
   KEY         (emp_no),
   KEY         (dept_no),
   FOREIGN KEY (emp_no)  REFERENCES employees (emp_no)    ON DELETE CASCADE,
   FOREIGN KEY (dept_no) REFERENCES departments (dept_no) ON DELETE CASCADE,
   PRIMARY KEY (emp_no,dept_no)
); 

CREATE TABLE dept_emp (
    emp_no      INT             NOT NULL,
    dept_no     CHAR(4)         NOT NULL,
    from_date   DATE            NOT NULL,
    to_date     DATE            NOT NULL,
    KEY         (emp_no),
    KEY         (dept_no),
    FOREIGN KEY (emp_no)  REFERENCES employees   (emp_no)  ON DELETE CASCADE,
    FOREIGN KEY (dept_no) REFERENCES departments (dept_no) ON DELETE CASCADE,
    PRIMARY KEY (emp_no,dept_no)
);

CREATE TABLE titles (
    emp_no      INT             NOT NULL,
    title       VARCHAR(50)     NOT NULL,
    from_date   DATE            NOT NULL,
    to_date     DATE,
    KEY         (emp_no),
    FOREIGN KEY (emp_no) REFERENCES employees (emp_no) ON DELETE CASCADE,
    PRIMARY KEY (emp_no,title, from_date)
); 

CREATE TABLE salaries (
    emp_no      INT             NOT NULL,
    salary      INT             NOT NULL,
    from_date   DATE            NOT NULL,
    to_date     DATE            NOT NULL,
    KEY         (emp_no),
    FOREIGN KEY (emp_no) REFERENCES employees (emp_no) ON DELETE CASCADE,
    PRIMARY KEY (emp_no, from_date)
); 

SELECT 'LOADING departments' as 'INFO';
source load_departments.dump ;
SELECT 'LOADING employees' as 'INFO';
source load_employees.dump ;
SELECT 'LOADING dept_emp' as 'INFO';
source load_dept_emp.dump ;
SELECT 'LOADING dept_manager' as 'INFO';
source load_dept_manager.dump ;
SELECT 'LOADING titles' as 'INFO';
source load_titles.dump ;
SELECT 'LOADING salaries' as 'INFO';
source load_salaries.dump ;

-- Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'source load_departments.dump' at line 1
![](https://velog.velcdn.com/images/big9810/post/adfee19f-f52a-439a-891c-2a8b8d39c341/image.png)

해당 밑에 source로 덤프파일을 실행시켜주는 것이였는데 이부분이 오류였다.
경로 이상이라는 것을 인지하고, 모든 덤프파일을 수동으로 해당 파일들의 위치로 각각 실행시켜주었다.

img {
margin-bottom: 0.5rem; / 이미지와 글 사이의 간격 조절 /
}

정상적으로 쿼리가 실행

mysql 워크벤치 에서 데이터가 정상적으로 들어갔는지도 확인 !

profile
배움의 흔적을 남기고 싶습니다.

0개의 댓글