[mysql] MySQL 메서드로 데이터 패칭하기

inguk·2024년 4월 22일
0

MySQL은 관계형 데이터베이스 관리 시스템(RDBMS)으로 다양한 메서드를 사용하여 데이터를 조작하고 분석할 수 있습니다. 데이터를 패칭하는 기본적인 메서드들을 예시를 함께 까먹지 않도록 남겨보려고 합니다.

목업 데이터 생성

CREATE TABLE employees (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100),
    age INT,
    department VARCHAR(100),
    salary DECIMAL(10, 2),
    joined_date TIMESTAMP
);

이제 테이블에 몇 명의 직원을 추가하겠습니다.

INSERT INTO employees (name, age, department, salary, joined_date)
VALUES 
('John Doe', 30, 'Finance', 50000.00, NOW()),
('Jane Smith', 25, 'IT', 48000.00, '2021-06-17'),
('Emma Jones', 45, 'IT', 55000.00, '2019-05-21'),
('Michael Brown', 31, 'Marketing', 45000.00, '2020-02-15');

SELECTSELECT * FROM employees;
데이터 조회는 가장 기본적인 작업 중 하나입니다.

조건을 사용한 SELECT 문
특정 조건을 만족하는 행만 선택합니다.

SELECT * FROM employees WHERE department = 'IT';

데이터의 업데이트 (UPDATE)
직원의 정보를 업데이트하는 방법입니다.

UPDATE employees SET salary = 51000 WHERE name = 'Jane Smith';

데이터의 삭제 (DELETE)
데이터를 삭제하는 방법입니다.

DELETE FROM employees WHERE name = 'Michael Brown';
JOIN 사용
두 테이블을 연결하여 데이터를 조회합니다. 다음은 employees 테이블과 가상의 department 테이블을 JOIN하는 예입니다.

집계 함수 (AVG, COUNT, MAX 등)
직원들의 평균 연봉을 계산합니다.

SELECT employees.name, department.dept_name
FROM employees
JOIN department ON employees.department = department.id;

날짜 함수 사용
특정 월에 입사한 직원 수를 찾습니다.

SELECT AVG(salary) AS average_salary FROM employees;
SELECT COUNT(*) FROM employees
WHERE MONTH(joined_date) = '06';

이러한 기본적인 SQL 명령들을 사용하여 MySQL 데이터베이스에서 다양한 작업을 수행할 수 있습니다. 각 명령의 결과와 상호 작용을 이해하면, 실제 데이터베이스 환경에서 효율적으로 데이터를 관리하고 문제를 해결할 수 있습니다.

JOIN 연산 예시
employees 테이블

id name department
1 John Doe 1
2 Jane Smith 2
3 Emma Jones 2
4 Michael Brown 3

department 테이블

id dept_name
1 Finance
2 IT
3 Marketing
JOIN 연산 결과
SELECT employees.name, department.dept_name
FROM employees
JOIN department ON employees.department = department.id;
  1. 최종 테이블 (JOIN 결과)

이 쿼리는 employees 테이블의 department 필드와 department 테이블의 id 필드를 연결합니다. 이로 인해 각 직원의 이름과 그들이 속한 부서의 이름이 함께 나타납니다.

name dept_name
John Doe Finance
Jane Smith IT
Emma Jones IT
Michael Brown Marketing
profile
Frontend

0개의 댓글