인사 관리 시스템 데이터베이스 설정

SQLBeginner
지금 연습하기

소개

이 프로젝트에서는 MySQL 을 사용하여 인력 관리 시스템 데이터베이스를 만드는 방법을 배우게 됩니다. 이 데이터베이스는 직원, 그들의 근무 부서, 그리고 거주지 세부 정보를 저장합니다.

👀 미리보기

MariaDB [companySys]> DESC company;
+--------------+-------------+------+-----+---------+-------+
| Field        | Type        | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| company_name | varchar(50) | NO   | PRI | NULL    |       |
| city         | varchar(10) | YES  |     | NULL    |       |
+--------------+-------------+------+-----+---------+-------+
2 rows in set (0.001 sec)

🎯 과제

이 프로젝트에서는 다음을 배우게 됩니다:

  • sudo 명령어를 사용하여 MySQL 에 접속하는 방법
  • companySys라는 데이터베이스를 생성하는 방법
  • company, work, 그리고 employ 세 개의 테이블을 생성하는 방법
  • 각 테이블에 적절한 기본 키 (primary key) 와 외래 키 (foreign key) 제약 조건을 설정하는 방법
  • 테이블에 데이터를 삽입하는 방법

🏆 성과

이 프로젝트를 완료하면 다음을 수행할 수 있습니다:

  • 데이터베이스 생성 및 관리의 기본 사항 이해
  • 관계형 데이터베이스에서 CRUD (Create, Read, Update, Delete) 연산 구현
  • 기본 키와 외래 키를 사용하여 테이블 간의 관계 설정
  • 인력 관리 시스템 데이터베이스에서 데이터 관리 및 조작

MySQL 접속 및 데이터베이스 생성

이 단계에서는 sudo 명령어를 사용하여 MySQL 에 접속하고 companySys 데이터베이스를 생성하는 방법을 배우게 됩니다.

  1. 터미널을 열고 다음 명령을 실행하여 MySQL 서비스를 시작합니다:
sudo service mysql start
  1. sudo 명령어를 사용하여 MySQL 에 접속합니다:
sudo mysql
  1. creatComDatabase.sql 파일을 엽니다.
  2. creatComDatabase.sql 파일에서 UTF-8 문자 집합을 사용하여 companySys 데이터베이스를 생성합니다:
CREATE DATABASE IF NOT EXISTS companySys DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  1. companySys 데이터베이스를 사용합니다:
USE companySys;

테이블 생성

이 단계에서는 company, work, 그리고 employ 세 개의 테이블을 생성합니다.

  1. creatComDatabase.sql 파일을 열고 파일 내에서 다음 테이블들을 순서대로 생성합니다.
  2. company 테이블을 생성합니다:
CREATE TABLE IF NOT EXISTS company (
  company_name varchar(50) NOT NULL,
  city varchar(10),
  PRIMARY KEY (company_name)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  1. work 테이블을 생성합니다:
CREATE TABLE IF NOT EXISTS work (
  per_name varchar(10) NOT NULL,
  company_name varchar(50),
  salary decimal(10,2),
  PRIMARY KEY (per_name),
  FOREIGN KEY (company_name) REFERENCES company(company_name)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  1. employ 테이블을 생성합니다:
CREATE TABLE IF NOT EXISTS employ (
  id int NOT NULL,
  person_name varchar(10),
  street varchar(100),
  city varchar(10),
  PRIMARY KEY (id),
  FOREIGN KEY (person_name) REFERENCES work(per_name)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

데이터 삽입

이 단계에서는 세 개의 테이블에 데이터를 삽입합니다.

  1. creatComDatabase.sql 파일을 열고 이전 단계에서 이어서 다음 SQL 문을 추가합니다.
  2. company 테이블에 데이터를 삽입합니다:
INSERT INTO company (company_name, city) VALUES
  ('ABC Company', 'New York'),
  ('LabEx', 'London'),
  ('Company 3', 'Paris');
  1. work 테이블에 데이터를 삽입합니다:
INSERT INTO work (per_name, company_name, salary) VALUES
  ('John', 'ABC Company', 5000.00),
  ('Jane', 'LabEx', 6000.00),
  ('Mary', 'Company 3', 5500.00);
  1. employ 테이블에 데이터를 삽입합니다:
INSERT INTO employ (id, person_name, street, city) VALUES
  (1, 'John', '123 Main Street', 'New York'),
  (2, 'Jane', '456 Park Avenue', 'London'),
  (3, 'Mary', '789 Broadway', 'Paris');

데이터베이스 검증

이 단계에서는 테이블을 설명하여 데이터베이스를 확인합니다.

  1. MySQL 클라이언트에서 다음 명령을 실행하여 SQL 스크립트를 실행합니다:
MariaDB [(none)]> SOURCE /home/labex/project/creatComDatabase.sql;
  1. company 테이블을 설명합니다:
DESC company;
MariaDB [companySys]> DESC company;
+--------------+-------------+------+-----+---------+-------+
| Field        | Type        | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| company_name | varchar(50) | NO   | PRI | NULL    |       |
| city         | varchar(10) | YES  |     | NULL    |       |
+--------------+-------------+------+-----+---------+-------+
2 rows in set (0.001 sec)
  1. employ 테이블을 설명합니다:
DESC employ;
MariaDB [companySys]> DESC employ;
+-------------+--------------+------+-----+---------+-------+
| Field       | Type         | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
| id          | int(11)      | NO   | PRI | NULL    |       |
| person_name | varchar(10)  | YES  | MUL | NULL    |       |
| street      | varchar(100) | YES  |     | NULL    |       |
| city        | varchar(10)  | YES  |     | NULL    |       |
+-------------+--------------+------+-----+---------+-------+
4 rows in set (0.001 sec)
  1. work 테이블을 설명합니다:
DESC work;
MariaDB [companySys]> DESC work;
+--------------+---------------+------+-----+---------+-------+
| Field        | Type          | Null | Key | Default | Extra |
+--------------+---------------+------+-----+---------+-------+
| per_name     | varchar(10)   | NO   | PRI | NULL    |       |
| company_name | varchar(50)   | YES  | MUL | NULL    |       |
| salary       | decimal(10,2) | YES  |     | NULL    |       |
+--------------+---------------+------+-----+---------+-------+
3 rows in set (0.001 sec)

이제 인적 관리 시스템 데이터베이스를 성공적으로 생성하고 데이터를 삽입했습니다. 축하합니다!

요약

축하합니다! 이 프로젝트를 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.

✨ 솔루션 확인 및 연습✨ 솔루션 확인 및 연습✨ 솔루션 확인 및 연습✨ 솔루션 확인 및 연습