MySQL은 관계형 데이터베이스 관리 시스템(RDBMS)으로, 데이터를 효율적으로 저장하고 관리하며, 테이블 형태로 데이터를 정리해준다. 각 테이블은 행과 열로 구성되어 있는데, 스프레드시트와 비슷하지만 훨씬 큰 데이터와 복잡한 쿼리를 처리할 수 있게 설계되었다.

# MySQL의 기본 개념

  1. 데이터베이스란? 데이터베이스는 단순히 데이터를 모아둔 것이다. 예를 들어, 고객 정보를 추적하는 애플리케이션이 있다고 하면, 고객 정보, 주문 내역, 제품 정보 등이 저장되어야 한다. 이 모든 정보가 저장되는 곳이 바로 데이터베이스다.
  2. 테이블 MySQL에서 테이블은 데이터를 구조화된 형태로 저장하는 공간이다. 테이블은 다음과 같이 구성된다:
    • 열(Columns): 어떤 종류의 데이터를 저장할지 정의한다. 예를 들어, 고객을 위한 테이블에는 CustomerID, Name, Email, PhoneNumber 같은 열이 있을 수 있다.
    • 행(Rows): 각 행은 테이블에 있는 하나의 데이터 항목을 나타낸다. 예를 들어, 한 행에는 한 명의 고객 정보가 저장된다:
      • 1, Park Guen, Park@example.com, 555-1234.
      • 2, Sung Jun, Sung@example.com, 999-4321.
  3. SQL (Structured Query Language) SQL은 MySQL 데이터베이스와 상호작용하기 위해 사용되는 언어이다. 이를 통해 테이블을 생성하고, 데이터를 삽입하며, 데이터를 조회하고, 수정 및 삭제하는 등의 작업을 할 수 있다. 대표적인 SQL 명령어는 다음과 같다:
    • CREATE – 새 테이블을 생성한다.
    • INSERT – 테이블에 데이터를 삽입한다.
    • SELECT – 테이블에서 데이터를 조회한다.
    • UPDATE – 테이블의 데이터를 수정한다.
    • DELETE – 테이블에서 데이터를 삭제한다.

# MySQL 설정

1. MySQL 설치 사용하는 운영체제(Windows, macOS, Linux)에 따라 MySQL 설치 방법이 조금 다를 수 있다. 일반적으로 MySQL 웹사이트에서 설치 프로그램을 다운로드하고, 안내에 따라 설치를 진행하면 된다.

설치가 완료되면, root 사용자 계정을 설정할 필요가 있다. root 계정은 MySQL 서버의 관리자 계정으로, 모든 데이터베이스와 테이블에 대한 전체 제어 권한을 가진다.

2. MySQL 서버 시작 MySQL은 서비스로 실행되며, 이 서비스를 시작해야 데이터베이스에 연결하고 쿼리를 실행할 수 있다. macOS나 Linux에서는 다음과 같은 명령어로 MySQL 서비스를 시작할 수 있다:Windows에서는 서비스가 자동으로 시작될 수도 있으며, 서비스 관리자에서 수동으로 시작할 수도 있다.

sudo service mysql start
 

3. MySQL 접속 설치가 완료되면, MySQL에 접속하기 위해 다음과 같은 도구를 사용할 수 있다:

  • MySQL Workbench: 쿼리를 실행하고 데이터베이스를 관리할 수 있는 그래픽 도구다.
  • 명령줄 인터페이스(CLI): 터미널이나 명령 프롬프트에서 직접 명령어를 입력하여 MySQL에 접속할 수 있다.

명령줄을 통해 MySQL에 접속하려면 다음 명령어를 사용한다:여기서 -u root는 root 사용자로 로그인하겠다는 의미이며, -p는 비밀번호 입력을 요청하는 옵션이다.

mysql -u root -p

 

 

# 데이터베이스 및 테이블 생성

1. 데이터베이스 생성 MySQL에서 데이터베이스는 간단한 SQL 명령어로 생성할 수 있다. 예를 들어, 고객 관리 시스템을 위한 데이터베이스를 생성하려면 다음과 같이 한다:이 명령어는 CustomerDB라는 이름의 빈 데이터베이스를 생성한다.

CREATE DATABASE CustomerDB;
 

2. 테이블 생성 데이터베이스가 준비되면, 데이터를 저장할 테이블을 생성한다. 예를 들어, Customers라는 테이블을 생성하는 SQL 명령어는 다음과 같다:

CREATE TABLE Customers (
    CustomerID INT AUTO_INCREMENT PRIMARY KEY,
    Name VARCHAR(100),
    Email VARCHAR(100),
    PhoneNumber VARCHAR(15)
);
  • CustomerID는 각 고객을 위한 고유 식별자다. 자동으로 증가하며, PRIMARY KEY는 각 행을 고유하게 식별할 수 있음을 의미한다.
  • **VARCHAR(100)**은 최대 100글자의 문자열을 저장할 수 있도록 한다.
  • **PhoneNumber VARCHAR(15)**는 최대 15글자의 고객 전화번호를 저장한다.

# 테이블에 데이터 삽입

테이블이 생성되면, 데이터를 삽입할 수 있다. 다음은 Customers 테이블에 새로운 고객 정보를 추가하는 예다:

INSERT INTO Customers (Name, Email, PhoneNumber)
VALUES ('Park Guen', 'Park@example.com', '555-1234');

이 명령어는 Name, Email, PhoneNumber 열에 해당하는 값을 가진 새로운 행을 테이블에 추가한다.

# 데이터 조회 (SELECT 쿼리)

테이블에서 데이터를 조회하려면 SELECT 명령어를 사용한다. 예를 들어, Customers 테이블에서 모든 데이터를 가져오려면 다음과 같이 한다:

SELECT * FROM Customers;

여기서 *는 "모든 열"을 선택한다는 의미다. 특정 열만 조회하고 싶다면 다음과 같이 지정할 수 있다:

SELECT Name, Email FROM Customers;

이 명령어는 Name과 Email 열의 데이터만 출력한다.

# 데이터 수정

기존 데이터를 수정하려면 UPDATE 명령어를 사용한다. 예를 들어, 고객의 전화번호를 변경하려면 다음과 같이 한다:

UPDATE Customers
SET PhoneNumber = '555-5678'
WHERE CustomerID = 1;

이 명령어는 CustomerID가 1인 고객의 전화번호를 수정한다.

# 데이터 삭제

데이터를 삭제하려면 DELETE 명령어를 사용한다. 예를 들어, CustomerID가 1인 고객을 삭제하려면 다음과 같이 한다:

DELETE FROM Customers WHERE CustomerID = 1;

이 명령어는 해당 행을 Customers 테이블에서 삭제한다.

# 기본 유지보수 및 도구

1. 데이터 백업 데이터 손실을 방지하기 위해 정기적으로 데이터베이스를 백업하는 것이 중요하다. mysqldump 유틸리티를 사용하여 데이터베이스 백업을 생성할 수 있다:

mysqldump -u root -p CustomerDB > backup.sql

이 명령어는 CustomerDB 데이터베이스의 내용을 backup.sql 파일로 저장한다.

 

2. 백업 복원 백업한 데이터를 복원하려면 mysql 명령어를 사용한다:이 명령어는 backup.sql 파일의 데이터를 CustomerDB에 복원한다.

mysql -u root -p CustomerDB < backup.sql

3. 에러 로그 및 문제 해결 MySQL이 시작되지 않거나 오류를 발생시키는 경우가 있을 수 있다. MySQL은 일반적으로 설치 디렉토리에 로그 파일을 기록한다. macOS나 Linux에서는 /var/log/mysql/에서 이러한 로그를 찾을 수 있다. 문제가 발생하면 이 로그 파일을 확인해보는 것이 좋다.

# 초보자들이 자주 저지르는 실수

1. 데이터베이스 선택을 잊지 않기 테이블에서 작업하기 전에 항상 올바른 데이터베이스를 선택해야 한다. 이를 위해 다음 명령어를 사용한다:

USE CustomerDB;

2. 기본 키와 다른 키 혼동 데이터를 고유하게 식별하기 위해 항상 테이블에 기본 키를 정의해야 한다. 기본 키가 없으면 데이터를 관리하는 데 어려움이 발생할 수 있다.

3. NULL 값 무시 테이블의 열은 NULL 값을 허용할지 여부를 설정할 수 있다. NULL은 값이 없음을 의미한다. 데이터베이스 설계 시, 각 열이 NULL 값을 허용할지 신중하게 결정해야 한다.

# 요약

  • MySQL은 관계형 데이터베이스에서 데이터를 저장하고 관리하는 데 사용된다.
  • 데이터는 테이블에 행과 열로 구성된다.
  • SQL 명령어를 사용하여 데이터베이스를 생성하고, 데이터를 삽입하고, 조회하고, 수정 및 삭제한다.
  • 데이터를 정기적으로 백업하고, 로그 파일을 통해 문제를 모니터링한다.

'데이터베이스 > Mysql' 카테고리의 다른 글

Mysql 심화 정리  (0) 2024.10.14
Mysql 덤프(dump) - 리스토어(restore)  (1) 2024.09.12

+ Recent posts