데이터를 저장하는 방식은 몇 가지가 존재합니다.

초기에는 파일(File)에 저장하여 사용했습니다. 하지만, 문제가 많았습니다.

보안적인 문제도 있었고, 검색이나 정렬등을 하기에 한계가 있었습니다. 그래서 등장합니다~~

 

바로바아~~~로~~~~~~ Database !!

 

이 방식은 우리 컴퓨터에 깔려있는 스프레드 시트 또는 엑셀과 비슷한 구조로 되어있다는 것을 알 수 있습니다.

공통점으로는 표의 형태로 눈에 보기 쉽게 되어있으며, 정렬하기 쉽고 숨기거나 검색을 하기도 용이합니다.

하지만, 엑셀도 결국 파일이므로 데이터를 내 컴퓨터에서만 사용할 수 있습니다.

하지만, 데이터베이스는 서버 기반으로 코드를 통해서 데이터를 관리할 수 있으며, 전 세계 사람 누구나 볼 수 있도록 할 수 있습니다.

 

데이터베이스는 RDBMS(관계형 데이터베이스 시스템)인 SQL형과 No-SQL형 두 가지 종류로 나뉩니다.

 

Structured Query Language

 

이 두가지는 나중에 알아보고 어떤것이 가장 인기있는 데이터베이스인지 알아봅시다.

 

https://db-engines.com/en/ranking

이렇답니다. 오라클이라는 초대형 데이터베이스와 견주어도 스코어가 막상막하인것 보이시나요?

 

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

 

MySQL 용어

id name age
1 GIL 50
2 JANG 32

이러한 구조로 데이터가 저장되게 되는데, 이 표를 Table이라고 하며, Table들이 하나의 Database로 저장되어 관리됩니다.

Mysql에서는 스키마(schema)라는 의미와 데이터베이스를 같은 뜻으로 취급한다. 따라서, 코딩도 동일합니다.

데이터베이스마다 스키마의 의미가 다르기 때문에 난해한 용어인 것 같습니다. 어쨋든 Mysql에서는 테이블 등의 오브젝트 집합입니다.

 

mysql > CREATE DATABASE `user`;

mysql > CREATE SCHEMA `post`;

 

그럼, mysql를 사용해봅시다.

 

터미널을 열고, 다음과 같이 root로 접속해봅시다.

 

$ mysql -u root -p

 

Mysql을 설치할때 입력했던 비밀번호를 넣어주면, 

이렇게 Welcome!!!

 

mysql> 

 

이렇게 나오면, mysql에 접속이 성공적으로 마쳤습니다! 예~ 이제 Mysql문법을 하나하나 작성해봅시다.

 

1. 데이터베이스 생성 --> create database 데이터베이스이름; ( CREATE DATABASE 데이터베이스이름;)

 

대소문자는 구분없이 명령은 잘 되는데, 대문자로 하는게 관습이라고 합니다.

 

무조건 문장의 끝은 세미콜론(;)을 붙여줘야합니다. 그렇지 않고 Enter를 치면 안 끝났다고 생각하고 아래와 같이 계속 말하라고 합니다.

문장 끝에 ;을 입력해주세요

 

에러 없이 데이터베이스 생성!

 

무조건 Query OK, 가 나와야 성공한 겁니다. 그외 이상한 문장이 나왔으면 오타일 확률 99.999%입니다~~ 오타 주의!!

에러 문장

 

2. 데이터베이스 제거(삭제) --> drop database 데이터베이스이름;

 

3. 데이터베이스 목록 보기

show databases;

 

4. 특정(데이터베이스이름) 데이터베이스 선택하기(사용하겠다)

user 데이터베이스이름;

 

5. 테이블 생성하기 create table 테이블명(....ㅇㅇ...);

 

 

 

6. 테이블 목록 보기

show tables;

 

6. 테이블 삭제하기

show table 테이블명;

 

테이블 이름 바꾸기

rename table 기존_테이블명 to 변경할_테이블명;

 

8. 테이블 구조 확인하기

DESC users;

 

CRUD 명령어 작성

 

1. 생성하기. Create가 아니라, insert 명령어입니다.

 

1. INSERT INTO테이블이름(필드이름1, 필드이름2, 필드이름3, ...)  VALUES (데이터값1, 데이터값2, 데이터값3, ...)

 

2. 조회하기 : Select

 

SELECT * FROM users; -- users 테이블에 있는 모든 row를 보여준다. 

SELECT id, email FROM users; -- users 테이블에 있는 모든 row를 보여주는데, id와 email만 보여준다.

SELECT id, email FROM users WHERE first_name="HONG"; -- users 테이블에 있는 row중에, first_name이 HONG인 사람만 보여주는 조건식이다.


WHERE 문 뒤에 ORDER BY로 정렬까지 붙여서 사용할 수 이싿 

Posted by sungho88
,

Sequelize is a promise-based Node.js ORM for Postgres, MySQL, MariaDB, SQLite and Microsoft SQL Server. It features solid transaction support, relations, eager and lazy loading, read replication and more.

 

라고 공식 홈페이지 첫 화면에 나와있습니다... 영알못인 저는 구글 번역기에 넣어보겠습니다.

 

Sequelize는 Postgres, MySQL, MariaDB, SQLite 및 Microsoft SQL Server를위한 Promise 기반 Node.js ORM입니다.

견고한 트랜잭션 지원, 관계, eager 및 lazy로드, 읽기 복제 등을 제공합니다.

 

ORM = Object Relational Mappings

 

뭔 말인지 모르겠지만, 쉽게 말해 Sequelize는 Node.js에서 DB 서버를 생성할 수 있도록 해주는 것 같습니다.

 

Sequelize 설치

 

npm 또는 yarn을 이용해서 설치할 수 있습니다.

 

npm install sequelize (yarn add sequelize)

 

database 연결하기

 

const { Sequelize } = require('sequelize');

const sequelize = new Sequelize('database', 'username', 'password', etc_config);

 

[Sequelize 특징]

Sequelize에서 제공하는 대부분의 메서드는 비동기식이므로 Promise를 반환합니다.

그러므로, Promise API (예 : then, catch, finally 사용)를 즉시 사용할 수 있습니다.

Posted by sungho88
,

홈페이지를 리뉴얼하면서 게시판에 있는 게시물들을 다른 사이트로 옮기고 싶었다.

어떻게 해야할지 막막했지만, 엑셀 파일을 이용하면 간편하게 할 수 있다는 것을 알게되었다.

찾아본 결과 파일명.csv 형식의 파일로 만들면 집어넣을 수 있다고 한다. 

SCV도 아니고 CSV는 무슨 약자일까?


CSV = Comma Separated values

즉, 몇 가지 데이터 필드를 쉼표로 구분한 텍스트 데이터 및 텍스트 파일이다.


1. 일단 엑셀을 실행시키고, 데이터베이스에 삽입할 데이터를 작성한다.

(DB에 생성된 컬럼들을 맞춰주자)


2. 작성한 뒤, 다른이름으로 저장 -> 파일형식 -> CSV(쉼표로 분리)를 선택한 후 저장한다.


mysql에 접속한 뒤, DB를 선택하고 다음과 같은 문장을 써서 입력했다고 한다.


LOAD DATA INFILE '파일위치/파일명.csv' INTO TABLE 테이블명 FIELDS TERMINATED BY ',';


이렇게하면 다른사람들은 되는데 에러가 발생한다.


--secure-file-priv 옵션이 무엇인가? 


으... 오전 내내 이것때문에 진행을 못해서 점심먹고 오후부터는 다른 방법을 쓰기로 했다.


바로 phpmyadmin.


여기서 import를 사용해서 .csv파일을 넣을 수 있다고 한다.

해봤다.


이런!! 또다시 같은 에러가 발생한다.

검색하다보니 LOCAL을 써줘야 잘 작동한다고 한다.


1. 업로드 파일에서 -> 올리고자 하는 csv파일을 선택하고,

2. 파일 문자셋은 무난한 -> UTF-8

3. 형식은 -> CSV가 아닌 CSV using LOAD DATA

4. 열(컬럼) 구분자 -> ,

5. 열 감싸기 -> "

6. LOCAL 키워드 사용 에 체크!


이렇게 한 뒤 실행을 눌렀다. 그랬더니. 


에러 메세지가 바뀌었다. 오 뭔가 값을 읽는 느낌이 생겼다. 좋다.

UTF-8 설정했지만, 엑셀쪽이 UTF-8이 아닐 경우 이런 문제가 발생한다.

엑셀에서 문자 인코딩을 변경해주거나 아니면 txt 파일로 편집을 누른뒤에 메모장에서 인코딩을 바꿔도 된다.

어떻게하던지 인코딩만 바꿔주면된다.

자. 다시 도전 



오호라. 해결~ 빨간색보다 훨씬 기분이 좋은 녹색~

Posted by sungho88
,