Node.js에서 Mysql 의 사용방법 및 간단한 문법 정리
안녕하세요 개발적금입니다.
오늘은 Mysql의 간단한 문법을 알아보겠습니다.
( MAC 기준으로 설명이 되어있습니다 )
목차
1. mysql 설치방법 , 실행방법
2. SQL , DATABASE 란..?
3. SQL 분류
4. 게시판 테이블 만들기 연습!
1. mysql 설치방법 , 실행방법
1-1) 설치
$ sudo brew install mysql
$ mysql --version
-> mysql을 "설치"하고 잘 설치되었는지 버젼을 확인하였습니다.
(저는 Ver 8.0.31 버전입니다.)
1-2) 실행
파일을 설치만해놓고 실행을 안하면 안되겠죠?
$ brew services start mysql
-> mysql을 실행시켰습니다.
1-3) 세팅
$sudo mysql_secure_installation
-> 세팅을 하려고 명령어를 입력하면 계정 비밀번호를 입력하라고 합니다.
-> 입력하시면됩니다.
1-4) 접속
$ mysql -u[계정아이디] -p[계정비밀번호]
-> [계정아이디]로 접속할건데 [계정비밀번호]까지 먼저 입력해주는것입니다.
접속이 완료되었을것입니다.
종료하시고 싶으시면 control + c 를 눌러 나오시면됩니다.
2. SQL , DATABASE 란..?
2-1)
- " DATABASE " 란 단순하게 데이터들을 저장하는 공간 이라고 생각하면됩니다
- 제 기준으로 설명드리면 workspace(저의 작업폴더명) 입니다.
- 그럼 " SQL "이란?
-> 데이터를 조작할수 있게끔 처리해주는 명령어 입니다.
-> Structured Query Language의 줄임말로,
-> mysql에서 구현된 기능을 실행시키기 위해 특정한 [언어]입니다.
-> 데이터를 보관하거나,삭제하거나,수정하거나 등등.. 여러방면으로 사용됩니다.
Mysql은 크게보면 "RDBMS" ( Relational Data Base Management System) 입니다.
-> 관계형 데이터베이스라고도 불리며 RDBMS의 대표적인 플랫폼은 우리가 잘아는
- Oracle
- Mysql
- MariaDB
- PostgreSQL
- Mssql ...
-> 비관계형 데이터베이스도 있습니다. 대표적인 플랫폼은
- MongoDB
2-2) SQL 분류
-> 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어 라고 생각하시면 됩니다.
-> 문법이라고 생각하시고 이해하면 빠를것 같습니다.
- 데이터 정의어(DDL)
- CREATE
: CREATE DATABASE 폴더명; -> DATABASE 폴더를 만듭니다.
: CREATE DATABASE 폴더명 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
-> 폴더를 만들때 디폴트값으로 글자설정을 utf8로 하겠다 라는 말입니다.
: CREATE TABLE user(
user_id varchar(50) PRIMARY KEY,
user_pw varchar(50) NOT NULL,
user_name varchar(50) NOT NULL,
gender char(4) DEFAULT '남자',
register_date DATETIME DEFAULT now()
);
-> user라는 TABLE을 만들것인데, 그안의 field값은 ( )안의 값이며
-> user_id는 varchar형태의 50크기를 가진 값이고, PRIMARY KEY(고유키) 입니다.
-> user_pw와 user_name은 varchar형태의 50크기를 가진 값이고, NOT NULL이어야 합니다.
-> gender는 char형태의 4크기를 가진 값이며, DEFAULT 값은 "남자"입니다( 입력안하면 자동으로 "남자" 값이 저장됨)
-> register_date의 형태는 DATETIME(날짜 형태) 이며 DEFAULT 값은 now() 입니다.
- SHOW
: SHOW DATABASES;
-> DATABASE를 다보여달라는 말입니다.
: SHOW TABLES;
-> TABLE을 다 보여달라는 말입니다.
- DROP
: DROP DATABASE 폴더명;
-> 폴더를 삭제합니다.
- ALTER
: ALTER TABLE store RENAME TO store2;
-> store란 TABLE 명에서 store2로 테이블명을 변경합니다.
- USE
: USE 폴더명
-> 폴더명으로 들어갑니다(바라보는방향?)
-> PROJECT 라는 데이터베이스 안에 USER / BOARD 관련된 DB를 만들고 싶으면
-> 1. 우선 PROJECT 라는 데이터베이스를 만들고
-> 2. USE PROJECT; -> PROJECT를 바라보게 한 다음
-> 3. CREATE TABLE USER () , CREATE TABLE BOARD() 를 통해 진행합니다.
- DESC 폴더명;
: 해당 폴더의 필드명을 확인할수 있습니다!
: ex) :
CREATE TABLE user(
user_id varchar(50) PRIMARY KEY,
user_pw varchar(50) NOT NULL,
user_name varchar(50) NOT NULL,
gender char(4) DEFAULT '남자',
register_date DATETIME DEFAULT now()
); -> DESC user; 를 하게되면
-> 콘솔창에 출력이 됩니다. ( 저는 기존에 만들었던것이라 필드명이 조금 다를수있습니다 )
- Field Type
- 숫자형
: INT -> 4byte
- 문자형
: CHAR
-> 255bye ( 고정데이터를 사용할때 )
: VARCHAR
-> 255byte ( 가변데이터를 사용할때 )
: TEXT
-> 65535byte ( 내용을 담을때 )
- 날짜형
: DATE
-> 년 월 일 사용할때
: TIME
-> 시간 사용할때
: DATETIME
-> 년월일 시간 ( yyyy-mm-dd hh:MM:ss) 8byte
: TIMESTAMP
-> 년월일 시간(interger) 4byte
: YEAR
-> 년...
- KEY
: PRIMARY KEY
-> 중복값 안되고 NULL 값 안됩니다. 테이블당 하나만 넣을수 있습니다!
: UNIQUE
-> 중복값 안됩니다! NULL 값은 한번만 가능합니다. 테이블당 여러개를 넣을수 있습니다.
: AUTO_INCREMENT
-> 1씩 index가 증가하며 자동생성됩니다.
- 데이터 조작어(DML)
: 데이터 필드까지 테이블 만들었으면, 그이후에 CRUD라고 해야하나요?
: 데이터를 만들고 수정하고 삭제하고... 이런것을 하는 조작어입니다. 실제적인 SQL 문법입니다.
- SELECT
: 내용들을 볼때 사용됩니다.
: SELECT user_id, user_pw, user_name, gender FROM user;
-> user테이블에 있는 user_id,user_pw,user,name,gender를 보여줘!
: SELECT * FROM user;
-> user 테이블에 있는 모든 Field의 값을 보여줘
- WHERE 절
: 검색할때 조건을 붙힙니다
: SELECT * FROM user WHERE user_id="0000";
-> user의 모든 필드와 필드값을 보여주는데, user_id가 "0000"인것만 보여줘!
- INSERT
: 실제 Field의 값들을 넣을때 사용합니다
: INSERT INTO [테이블명](필드1,필드2,....) values (필드1의값,필드2의값....)
: INSERT INTO user(user_id, user_pw,user_name,nickname,gender)
values ("개발적금","1234","개발적금","개발은너무어려워","남자");
- UPDATE
: 수정할때 사용됩니다!
: UPDATE user SET gender="여자" WHERE user_id="개발적금";
-> user TABLE에서 user_id "개발적금"의 gender를 "여자"로 바꿉니다.
- DELETE
: DELETE FROM user WHERE user_id="개발적금";
-> 말그대로 user_id 개발적금을 user TABLE에서 삭제시킵니다.
여기까지 간단하게 알아보았습니다. 잊어버리지 않게 많이 연습하고
사용하는게 좋을것 같습니다.
번외로 sql 만든것을 backup하는 기능을 마지막으로 소개해드리겠습니다.
- BACKUP
: mysql : exit -> [ mysqldump -u계정명 -p 데이터베이스명 > backup.sql ]
: backup.sql에 내가만들었었던 데이터베이스가 저장됩니다.
: %주의% 폴더 경로설정을 확실하게 하고 가야합니다!
: CREATE DATABASE 데이터베이스명
: USE [TABLE명]; 으로 지정해주고
: SOURCE ./bakup.sql 하면 backup.sql을 불러옵니다!
감사합니다.