데이터베이스 항상 서버와 통신을 하고 데이터 주고받음

컴퓨터 안의 공간을 활용해서 저장하기도 하고 보통은 클라우드 서비스 공간 빌려서 이용.
ex. google cloud

SQL - 구조적 질의(요청) 언어
Structured
Query
Language
우리가 SQL이라고 부르는 것은 보통 RDBMS(관계형데이터베이스)
특정 문법이 있고 그 문법에 맞게 정해놓은 위치에 정해놓은 문법을 배치해서 요청을 보내야만 요청이 성공적으로 이루어지는 언어
SQL 사용하면 편하게, 예측할 수 있게 데이터베이스 사용할 수 있다는 장점이 있음
RDBMS: 엄격하고 관계를 중시하는 데이터베이스

⬇️

이 때 id는 정보를 고유하게 구분할 수 있는 문자 혹은 숫자
테이블이라고 부르는 형식으로 구조가 짜여져 있다(테이블끼리 관계를 이루고 있음)
MySQL 설치
$brew update
$brew install mysql
$brew services start mysql
$mysql_secure_installation // 보안 설정
mysql 로그인(password 사용)
$mysql -u root -p
mysql 종료
$exit;
DB GUI 툴 설치
https://dbeaver.io/download/

Javascript에서 string, number, boolean 등 여러가지 자료형이 있는 것처럼 MySQL에도 자료형 존재
가장 많이 사용하는 세 가지 자료형
✔️ 숫자형
정수형

공간을 많이 사용하고 싶지 않을 때 Unsigned 사용. 음수에 할당된 공간을 양수로 넘겨줘서 양수에 할당할 수 있는 공간이 2배로 늘어나는 것.
모든 정수형에는 Unsigned를 사용할 수 있다.
TINY>SMALL>MEDIUM>INT>BIG
가장 많이 사용하는 범위 SMALLINT~INT
고정 소수점

부동 소수점

소수점의 위치가 정해져있지 않음
float이 좀 더 작은 범위 숫자 저장
DECIMAL: 정확한 값 표기, 오차가 발생하지 않음
FLOAT/DOUBLE: 근사한 값 표기, 오차가 발생할 수 있음
🗣️ 소수점 필요로 하는 자료형에서 DECIMAL 사용하면 됨!
문자형


크게 CHAR와 TEXT로 구분.
CHAR는 문자의 길이가 정해져 있는 자료형 ex. 핸드폰 번호 CHAR(11)
VARCHAR는 길이가 유동적, n을 채우지 않아도 저장 가능. CHAR가 좀 더 엄격한 길이제한.
TEXT는 TINYTEXT, TEXT, MEDIUNTEXT, LONGTEXT 네 가지.
VARCHAR가 TEXT보다 읽는 속도가 빠름.(엄격할 수록 읽는 속도가 빠름)
SET은 거의 쓰지 않음
ENUM Javascript에서 쓰는 것과 동일. 숫자와 문자 매치 시켜서 저장함. 저장할 때는 편하지만 수정, 확장할 때 불편한 측면이 있음.
CHAR - 고정된 길이로 저장, 속도가 빠름
VARCHAR - 길이가 변할 수 있음. 중간 단계의 속도
TEXT - 고정된 길이(65535)로 저장, 느린 속도
날짜와 시간 타입

TIMESTAMP는 따로 날짜 저장하지 않으면 그 당시의 시간 저장됨. 생성 날짜 저장할 때 유용.

DBeaver

로컬 호스트 포트에 MySQL 서버가 열렸고, 그 안에 테이블을 넣을 데이터 베이스 만들어줌
table 생성

column 생성

id, age, name, email, phonenumer

save 💾
