안녕하세요~ 오늘은 MySQL를 이용한 데이터베이스를 제어하는 과정과 데이터베이스에 대한 세부적인 내용도 살펴보겠습니다.
📑목차
1.데이터베이스
1-1. 데이터베이스란?
1-2. 데이터베이스의 장단점
1-3. 데이터베이스의 발전
1-4. NoSQL란?
1-5. MySQL란?
1-6. 데이터베이스 관리 시스템 (DBMS)
1-7. SQL란?
1-8. 작업 단위의 원칙(ACID)
1-9. 관계형 데이터베이스의 개념
2. 데이터베이스 생성 ( Cmd )
2-1. 데이터베이스 조회 ( Cmd )
2-2. 데이터베이스 사용 ( Cmd )
3. 테이블(TABLE)
3-1. 테이블(TABLE) 이란?
3-2. 테이블 타입 종류
3-3. 테이블 생성 (Create) 코드
3-4. 테이블 생성시 옵션 (NOT NULL, PRIMARY KEY, UNIQUE 등등 )
3-5. 테이블 값 생성 (Create)
3-6. 테이블 값 조회 (Read)
3-7. 테이블 값 수정 (Update)
3-8. 테이블 값 삭제 (Delete)
서론
먼저 이 포스트를 읽기 전에 데이터베이스에 대해 들어보신적 있으시나요? 광고나, 게임에서, 다양한 곳에서 데이터 베이스라는 개념이 활용됩니다. 게임에서 내 정보를 보시면 내 정보에 대한 데이터가 저장되어 있습니다. 예를 들면 닉네임, 로그인한 날짜, 생일, 이렇게 등등 다양한 정보가 관리되고 있습니다.
본론
1. 데이터베이스(DB)
1-1. 데이터베이스(DB)란?
정보를 규칙적, 체계적으로 관리하기 위한 시스템으로 소프트웨어를 개발할 때 필요한 데이터를 효율적으로 관리하기 위해서 사용하는 것을 말합니다.
1-2. 데이터베이스 장단점
장점
1. 데이터를 빠르게 조회할 수 있다.
2. 중복되는 데이터를 줄일 수 있다.
3. 데이터를 안전하게 보호할 수 있다.
단점
1. 소프트웨어 개발비용 증가
2. 통제의 어려움
3. 오류의 잠재성 증대
1-3. 데이터베이스의 발전
과거에는 데이터를 저장하는 방식으로 파일 시스템이 사용되었고, 개별 파일에 데이터를 입력하고 저장하는 방식으로, 메모장처럼 데이터를 기록하는 형태였습니다. 하지만 이 방식은 같은 데이터가 중복될 가능성이 높고, 데이터를 검색하거나 수정할 때 모든 파일을 확인해야 하는 비효율적인 문제가 있었습니다. 이러한 문제를 해결하기 위해 계층형 데이터베이스가 등장했고, 이는 IBM에서 개발한 방식으로, 데이터를 트리 구조를 사용해 부모와 자식 관계로 저장하는 형태로 이를 통해 데이터 검색 속도가 빨라지고 체계적으로 관리할 수 있었지만, 데이터의 구조가 복잡해지면서 수정 및 관리가 어려워지는 문제점이 있었습니다.
이후 관계형 데이터베이스가 탄생하면서 데이터 저장 방식에 큰 변화가 일어나면서 관계형 데이터베이스는 데이터를 테이블 형태로 저장하며, SQL이라는 언어를 통해 데이터를 쉽게 조회하고 저장할 수 있도록 설계되었고, 이를 통해 데이터의 중복을 최소화하고 무결성을 유지할 수 있으며, 빠른 검색 엔진이 확대 되었습니다. 또한 보안과 접근 제어 기능이 강화되면서, 쇼핑몰의 주문-결제 시스템과 같이 데이터 간의 연관성이 중요한 분야에서 널리 사용되었다.
그러나 데이터의 양이 폭발적으로 증가하면서 기존 관계형 데이터베이스는 확장성의 한계를 보이기 시작했습니다. 이를 해결하기 위해 NoSQL 데이터베이스가 등장하였고, NoSQL은 데이터를 키와 값, 문서, 열 기반 등의 방식으로 저장하며, 정해진 구조 없이 자유롭게 확장할 수 있는 것이 특징입니다. 이를 통해 대량의 데이터를 빠르게 처리할 수 있으며, 실시간 데이터 분석이나 자주 변경되는 데이터 환경에서 유용하게 활용되고 있습니다. 하지만 구조가 자유로운 만큼, 체계적으로 설계하지 않으면 데이터 관리가 어려울 수 있는 단점도 존재하며, 이처럼 데이터베이스는 데이터 관리의 효율성을 높이기 위해 지속적으로 발전해 왔으며, 현재는 관계형 데이터베이스와 NoSQL 데이터베이스가 서로의 장점을 보완하며 함께 사용되는 추세로 이어지고 있습니다.
1-4. NoSQL 이란?
NoSQL은 전통적인 관계형 데이터베이스와 다른 방식으로 데이터를 저장하고 관리하는 데이터베이스 시스템, 테이블 형식으로 저장하지 않고 키-값, 열, 그래프 등 다양한 저장 방식을 사용
1-5. MySQL 이란?
전 세계에서 많이 쓰이는 무료 관계형 데이터베이스
1-6. 데이터 관리 시스템(DBMS) 이란?
데이터베이스를 효율적으로 운영하고 관리해주는 시스템 소프트웨어
1-7. SQL 이란?
관계형 데이터베이스에서 데이터를 관리하고 조작하는 데 사용되는 표준 프로그래밍 언어
1-8. 작업단위의 ACID 원칙 4가지
1. 원자성 (Atomicity) : 모든 작업이 성공해야 저장한다.
2. 일관성 (Consistency) : 데이터의 무결성을 유지한다.
3. 고립성 (lsolation) : 여러 트랜잭션이 독립적으로 실행된다.
4. 지속성 (Durability) : 트랜잭션이 완료되면 영구적으로 데이터를 저장한다.
1-9. 관계형 데이터베이스의 개념
1. 테이블 : 데이터를 저장하는 기본 단위
2. 행 : 레코드 하나의 데이터의 단위
3. 열 : 저장할 데이터의 속성 혹은 필드라는 값의 단위
4. 기본키 : 각 행의 고유 식별자(검색 속도에 영향을 준다)
5. 외래키 : 다른 테이블의 관계성을 나타내는 키(제약 조건)
2. 데이터베이스 생성 (Cmd 에서 작업)
참고
MySQL Installer 설치 프로그램 경로
https://dev.mysql.com/downloads/installer/
MySQL :: Download MySQL Installer
MySQL Installer 8.0.41 Note: MySQL 8.0 is the final series with MySQL Installer. As of MySQL 8.1, use a MySQL product's MSI or Zip archive for installation. MySQL Server 8.1 and higher also bundle MySQL Configurator, a tool that helps configure MySQL Serve
dev.mysql.com
먼저 데이터베이스를 생성하기전 mysql 로 root 계정으로 접속합니다. Cmd에서 다음 명령어를 합니다.
mysql -u root -p
데이터베이스 생성 명령어
create database 생성할 데이터베이스;
2-1. 데이터베이스 조회 (Cmd)
데이터 베이스를 조회할려면 다음 명령어를 입력합니다.
show databases;
이렇게 데이터베이스를 조회해보면 testsql 이라는 데이터베이스가 저장되어 있는 것을 보실 수 있습니다.
그럼 이 생성한 데이터베이스를 사용할려면 어떻게 해야할까요?
2-2. 데이터베이스 사용 (Cmd)
use 사용할 데이터베이스;
3. 테이블(TABLE)
3-1. 테이블(TABLE)이란?
데이터베이스에서 데이터를 저장하는 기본적인 구조로, 엑셀에서 테이블을 만드는 것처럼 보시면 됩니다
3-2. 테이블 타입의 종류
## 테이블 필드의 타입
- 문자형 : 가변 길이의 문자형, 고정 길이의 문자형
- 숫자형 : 정수형과 실수형
- 날짜형 : DATE: 연도, 월, 일만 저장 (YYYY-MM-DD)
TIME: 시간만 저장 (HH:MM:SS)
DATETIME: 날짜와 시간 모두 저장 (YYYY-MM-DD HH:MM:SS)
TIMESTAMP: 날짜와 시간을 저장하며, 보통 UTC 시간으로 저장 (자동으로 기록되는 시간 포함)
YEAR: 연도만 저장 (YYYY)
- 옵션 : 값의 옵션을 지정
### 문자형
- VARCHAR : 가변 길이의 문자형, 정의한 길이보다 적게 사용한 경우, 문자형에 맞게 데이터의 크기를 지정한다.
5자로 설정을 했는데 3자를 사용하면 3자리만큼의 데이터의 크기로 저장한다.
- CHAR : 고정 길이의 문자형, 설정한 문자의 크기가 5, 우리가 저장한 문자의 크기가 3이면 2자리는 공백으로 채워진다.
5의 크기만큼씩 저장이 고정된다.
- TEXT : 65,535개의 문자를 사용할 수 있는 타입
> 너무 큰 텍스트의 내용을 사용하면 텍스트 파일로 관리하는게 효율적
> 최적화 관련해서 사용하기 위해서는 문서를 파일로 만들어서 경로를 저장한 후, 파일 시스템으로 가져와서 사용하는게 효과적
- BLOB : 이미지처럼 큰 파일을 저장할 수 있는 문자열 데이터를 저장할 때 사용할 수 있다. (요즘에는 사용하지 않고, 클라우드 저장소나 이미지를 저장한 경로를 사용한다)
### 정수 숫자형
UNSIGNED가 있을때는 범위가 0 ~ 4,294,967,295 음수가 될 수 없다.
- INT : 정수형 -2,147,483,648 ~ 2,147,483,647
- BIGINT : -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
숫자를 사용할 수 있다.
### 실수형
- DOBULE : 부동 소수와 다르게 근사값을 저장한다. 소수점의 숫자를 저장할 수 있는 타입
### 날짜형
- DATE : 2025-03-10 이런식으로 날짜의 데이터를 저장할 수 있는 타입 YYYY-MM-DD 형식을 사용
3-3. 테이블 생성 (Create) 코드
# CREATE TABLE 테이블 이름 ( 필드명 타입 옵션, 필드명 타입 옵션);
test 라는 테이블을 생성 코드
## test 라는 테이블을 생성하고 id,name, age, phone_number라는 필드명을 생성
## 각각의 타입은 id는 int, name VARCHAR, age VARCHAR, phone_number VARCHAR 타입을 정의
## id 필드에는 AUTO_INCREMENT, 숫자가 자동으로 증가하는 옵션과 PRIMARY KEY 라는 고유의 값을 가지도록 설정
CREATE TABLE test(
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(20) NOT NULL,
age VARCHAR(10) NOT NULL,
phone_number VARCHAR(30)
);
해당 테이블의 필드를 조회하는 명령어
DESC test;
3-4. 테이블 생성시 사용되는 옵션
테이블 생성시 옵션 목록
### 테이블 생성시 옵션들
1. NOT NULL : 이 옵션은 해당 필드가 NULL을 가질 수 없는 옵션
2. AUTO_INCREMENT : 이 옵션은 숫자가 자동으로 증가하는 옵션
3. PRIMARY KEY : 이 옵션은 해당 필드가 고유의 값을 가지도록 하는 옵션
4. UNIQUE : 이 옵션은 해당 필드가 중복된 값을 가지지 못하도록 제약조건을 거는 옵션
5. foreign key : 이 옵션은 하나의 테이블에서 다른 테이블의 기본키를 참조하는 옵션
3-5. 테이블 값 생성 (Create)
test 테이블의 해당 필드명의 값을 추가합니다.
추가할 때는 INSERT INTO 라는 구문으로 작성합니다.
## test 테이블의 값을 추가
INSERT INTO test(name, age, phone_number) VALUES ("몰라", "22", "010-1234-2345");
3-6. 테이블 값 조회 (Read)
test 테이블의 값을 조회합니다. 조회할 때는 SELETE 구문으로 값을 조회합니다.
# 테이블 필드 값 모두 조회
SELECT * FROM [테이블 이름];
# 테이블의 선택 값 조회
SELECT [필드명, 필드명2] FROM [테이블의 이름];
1. test 테이블의 필드값을 모두 조회하는 코드입니다.
## test 테이블의 필드값 모두 조회;
SELECT * FROM test;
2. name 필드값이 "홍길동" 일때 age 의 값을 조회
## name 필드값이 "홍길동" 일때 해당하는 age 필드의 값을 조회
SELECT age FROM test WHERE name = "홍길동";
3. age 필드값이 "22" 일때 name 의 값을 조회
## age 필드값이 22 일때 해당하는 name 필드의 값을 조회
SELECT name FROM test WHERE age="22";
3-7. 테이블 값 수정(Update)
UPDATE [테이블의 이름] SET [필드명] = [새로운 값], [필드명2] = [새로운 값] WHERE [조건];
## Update
## test 테이블에서 id가 4행인 필드의 name을 "수호"로 변경 age의 값도 25로 수정
UPDATE test SET name="수호", age="25" WHERE id=4;
test 테이블의 모든 값 조회
SELETE * FROM test;
3-8. 테이블 값 삭제(DELETE)
## DELETE
## test 테이블에서 id가 3인 필드를 삭제
DELETE FROM test WHERE id=3;
이렇게 id가 3인 필드가 삭제된 것을 보실 수 있습니다.
결론
MySQL을 활용하여 데이터베이스를 직접 생성하고, 데이터를 조회·수정·삭제하는 쿼리문을 작성할 수 있었습니다. 이를 통해 데이터 관리의 기본 원리를 이해하고, 효율적인 데이터 처리 방법을 익힐 수 있었습니다. MySQL의 다양한 기능을 활용하면 보다 체계적이고 최적화된 데이터베이스 운영이 가능함을 확인할 수 있었습니다. 감사합니다.

'Mysql 기록' 카테고리의 다른 글
Mysql 테이블 조인(JOIN) 이란? INNER JOIN, OUTER JOIN, Left JOIN, Right JOIN (2) | 2025.03.18 |
---|