인프런 올인원 자바 스프링 강의를 학습 목적으로 정리하여 포스팅합니다.
section2. 생애 최초 Database 조작하기
10강. Database와 MySQL
1. Databse와 MySQL
컴퓨터의 핵심 부품
- CPU : 연산 담당
- RAM : 메모리, 단기 기억
- DISK : 장기 기록
서버를 실행시켜 API를 동작시키기까지 과정
1. 스프링 부트 서버는 DISK에 파일로 들어있다.
2. 서버를 실행시키면 DISK에 있는 코드 정보가 RAM으로 복사된다.
3. API가 실행되면 '연산'이 수행되며, CPU와 RAM을 왔다 갔다 한다.
4. 즉, POST API를 통해 생긴 유저 정보는 RAM에 쓰여 있다.
5. 만약 서버가 종료되면 RAM에 있는 모든 정보가 사라진다.
6. 그래서 데이터베이스 연결 없이 서버를 껐다 다시 시작하면 정보가 사라지는 것이다.
데이터 장기 기록 방법
데이터를 구조화 시켜 저장하는 Database를 활용해야 한다.
그 중 데이터를 표처럼 구조화 시켜 저장하는 것을 RDB(Relational Database)라고 한다.
ex) MySQL
SQL(Stricted Query Language)
: 표처럼 구조화된 데이터를 조회하는 언어
ex) select 학번 from 학생;
2. MySQL에서 테이블 만들기
명령어
create database 데이터베이스이름; // 데이터베이스 생성
show database // 데이터베이스 목록 확인
drop database 데이터베이스이름; // 데이터베이스 삭제
use 데이터베이스이름; // 데이터베이스 사용
show tables; // 테이블 목록 확인
* 필트 타입 부가 조건에 auto_increment를 붙이면 자동 생성된다.
보통 id의 부가조건에 적는다.
이렇게 자동적으로 증가하는 인덱스 같은 것들은 primary key로 지정한다.
* CLI에서 shift + enter를 활용해서 적으면 가독성이 좋다.
정수 타입
- tinyint : 1바이트 정수
- int : 4바이트 정수
- bigint : 8바이트 정수
실수 타입
- double : 8바이트 정수
- decimal(A, B) : 소수점을 B개 가지고 있는 전체 A자릿수 실수 ex) Decimal(4,2) = 12.23
문자열 타입
- char(A) : A 글자가 들어갈 수 있는 문자열
- varchar(A) : 최대 A 글자가 들어갈 수 있는 문자열
날짜, 시간 타입
- date : 날짜, yyyy-MM-dd
- time : 시간, HH:mm:ss
- datetime : 날짜와 시간을 합친 타입, yyyy-MM-dd HH:mm:ss
4. Spring에서 Database 사용하기
// 파일명은 application.yml
spring:
datasource:
url: "jdbc:mysql://localhost/library:
username: "root"
password: "1234"
driver-class-name: com.mysql.cj.jdbc.Driver
* url : 연결할 데이터베이스 주소
jdbc:mysql:// - jdbc를 이용해 mysql에 접근한다.
localhost - 접근하려는 mysql은 localhost에 있다.
/cafe - 접근하려는 데이터베이스는 cafe이다.
* username : MySQL에 접근하기 위한 계정명
* password : MySQL에 접근하기 위한 비밀번호
* driver-class-name : 데이터베이스에 접근할 때 사용할 프로그램
'JAVA > [인프런] 스프링 강의들' 카테고리의 다른 글
[ 서버 개발 올인원 패키지] 5. 책 요구사항 구현하기 (0) | 2023.02.26 |
---|---|
[ 서버 개발 올인원 패키지] 4. 생애 최초 JPA 사용하기 (0) | 2023.02.24 |
[ 서버 개발 올인원 패키지] 3. 역할의 분리와 스프링 컨테이너 (0) | 2023.02.22 |
[ 서버 개발 올인원 패키지] 1. 생애 최초 API 만들기 (0) | 2023.02.19 |
[서버 개발 올인원 패키지] 0. 자바를 공부하기 전 알아두면 좋을 것들 (0) | 2023.02.18 |