mysql

데이터를 변수에 저장했다. 변수에 저장했다는 것은 컴퓨터 메모리에 저장했다는 뜻이다 서버가 종료되면 메모리가 정리되면서 저장했던 데이터도 사라져 버립니다.

이를 방지하기 위해서는 데이터베이스를 사용해야 합니다.

다양한 데이터베이스가있다 Mysql SQL 언어 mongoDB NoSQL 언어

데이터베이스란?

데이터베이스는 관련성을 가지며 중복이 없는 데이터들의 집합입니다. 데이터베이스를 관리하는 시스템을 DBMS(데이터 베이스 관리 시스템)라고 부릅니다.

보통 서버의 하드 디스크나 SSD 등의 저장 매체에 데이터를 저장합니다. 저장 매체가 고장나거나 사용자가 직접데이터를 지우지 않는 이상 계속 데이터가 보존되므로 서버 종료 여부와 상관없이 데이터를 계속 사용할 수 있습니다. 또한, 서버에 데이터베이스를 올리면 여러 사람이 동시에 사용할 수 있습니다. 사람들에게 각각 다른 권한을 주어 어떤 사람은 읽기만 가능하고, 어떤 사람은 모든 작업을 가능하게 할 수 있습니다.

데이터베이스를 관리한는 DBMS 중에서는 RDBMS(Relational DBMS)라고 부르는 관계형 DBMS가 많이 사용됩니다. 대표적인 RDBMS로 oracle. mysql.mssql 등이 있습니다. SQL 이라는 언어를 사용해 데이터를 관리 합니다. 하지만 RDBMS별로 SQL문이 조금씩 다르므로

macOS

homebrew를 통해 mysql 설치하는 것이 좋습니다. homebrew install /usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”

https://brew.sh 명령어 확인

brew install mysql@5.7 brew services start mysql mysql_secure_installation

설치후 brew services start mysql mysql_secure_installation 명령어로 root 비밀번호 설정 validate_password 플러그인을 설치하겠냐고 물으면 모두 n을 입력. 실제 서버 운영 시에는 설정해주는 것이 보안상 좋습니다.

테이블 생성하기

CREATE TABLE nodejs.users ( id INT NOT NULL AUTO_INCREMENT, name varchar(20) not null, age int unsigned not null, married Tinyint not null, comment text null, created_at datetime not null default now(), primary key(id), unique index name_unique (name ASC) ) comment=’사용자 정보’ default charset=utf8 engine=InnoDB;

데이터베이스에서는 세로줄을 컬럼(column)
가로줄을 로우(row) 라고 부릅니다. 컬럼과 로우가 교차하는 한칸을 필드라고 부릅니다.

  • INT 정수를 의미 , 소수까지 저장하고 싶다면 FLOAT,DOUBLE 자료형 사용
  • VARCHAR() 는가변길이, CHAR() 는고정길이 예를들어 VARCHAR(10)일 경우 0~10 길이의 문자열을 넣을 수 있습니다. CHAR 에 주어진 길이보다 짧은 문자열을 넣는다면 부족한 자릿수만큼 스페이스가 채워집니다.
  • TEXT는 긴 글을 저장할 때 사용합니다. 몇백자 이내의 문자열은 보통 VARCHAR 로 많이 처리하고 그보다 길면 TEXT로 처리