노드

노드 데이터베이스 MySQL

포칼이 2023. 4. 18. 15:40

  데이터베이스

지금까지는 데이터를 서버 메모리에 저장했다.

  • 서버를 재시작하면 데이터도 사라져버린다. ->영구적으로 저장할 공간이 필요하다.

 

MySQL 관계형 데이터베이스 사용

  • 데이터베이스 : 관련성을 가지며 중복이 없는 데이터들의 집합
  • DBMS : 데이터베이스를 관리하는 시스템
  • RDBMS : 관계형 데이터베이스를 관리하는 시스템
  • 서버의 하드 디스크나 SSD 등의 저장 매체에 데이터를 저장
  • 서버 종료 여부와 상관 없이 데이터를 계속 사용할 수 있다.
  • 여러 사람이 동시에 접근할 수 있고, 권한을 따로 줄 수 있다. 

 

MySQL 설치는 여기에서

https://dev.mysql.com/downloads/installer/

 

MySQL :: Download MySQL Installer

Select Operating System: Select Operating System… Microsoft Windows Select OS Version: All Windows (x86, 32-bit) Windows (x86, 32-bit), MSI Installer 8.0.32 2.4M (mysql-installer-web-community-8.0.32.0.msi) MD5: 0f882590f8338adc614e9dc5cb00ca0b | Signatu

dev.mysql.com

그리고 맥 유저들은 home brew가 깔려 있으면 brew install mysql로 간편하게 설치가 가능하다.

*설치에 관련해서는 다루지 않겠다.

 

콘솔(CMD)에서 MySQL이 설치된 경로로 이동

기본 경로는 C:\Program Files\MySQL\MySQL Server 8.0\bin

-h는 호스트, -u는 사용자 -p는 비밀번호를 의미한다.

프롬프트가 mysql>로 바뀐다면 성공

프롬프트를 종료하려면 exit을 입력하면 된다.

 

데이터베이스 생성하기

콘솔에서 MySQL프롬프트에 접속

CREATE SCHEMA nodejs;로 nodejs 데이터베이스를 생성한다. 

use nodejs;로 생성한 데이터베이스 선택

 

테이블 생성하기

MySQL 프롬프트에서 테이블 생성하기

  • create table [데이터베이스명.테이블명]으로 테이블 생성
  • 사용자 정보를 저장하는 테이블

 

*컬럼과 로우에 대한 이해를 돕기위한 그림은 다음과 같다

실제로 들어가는 데이터는 로우이다. 

 

id INT NOT NULL AUTO_INCREMENT

  • 컬럼명 옆의 것들은 컴럼에 대한 옵션들이다.

 

  • INT : 정수 자료형 (FLOAT, DOUBLE은 실수)
  • VARCHAR : 문자열 자료형, 가변 길이(CHAR은 고정 길이)
  • TEXT : 긴 문자열은 TEXT로 별도 저장
  • DATETIME : 날짜 자료형 저장
  • TINYINT : -128에서 127까지 저장하지만 여기서는 1 또는 0만 저장해 bool 값을 표현한다.
  • NOT NULL : 빈 값은 받지 않는다는 뜻(NULL은 빈 값 허용)
  • AUTO-INCREMENT : 숫자 자료형인 경우 다음 로우가 저장될 때 자동으로 1 증가
  • UNSIGNED : 0과 양수만 허용
  • ZEROFILL : 숫자의 자리 수가 고정된 경우 빈 자리에 0을 넣음
  • DEFAULT now() : 날짜 컬럼의 기본값을 현재 시간으로 설정

 

*만약에 comments 테이블을 만들때 users라는 테이블을 열 수 없다고 에러가 발생하면 

users 테이블을 만들고 comments테이블을 생성하자.