전 시간에는 Mysql과 node.js를 연동하는 방법을 알아봤습니다.
그럼 이제 연동도 했겠다~ 이 연동한 mysql을 node에서 다루는 방법을 배워봅시다.
CRUD란
C: create
R: read
U: update
D: delete
이 것을 일컫는 말입니다.
즉 DB에 적용해보면
테이블을 생성하고(create), 테이블의 정보를 읽어오고(read DB 용어로는 select), 테이블의 정보를 업데이트하고(upload), 잘못된 정보가 삽입된 경우 삭제(delete)해주는 것입니다.
CRUD의 개념은 DB의 기초 중의 기초이니 꼭 알아야할 개념이라고 할 수 있습니다.
뭐... CRUD 개념이 어려운 것도 아니니 바로 넘어가봅시다.
CRUD 코드를 짤려면 mysql에 테이블을 생성해줘야겠죠??
연동 되어있는 계정으로 들어가서 이 코드를 입력해봅시다.
create database test; use test; create table testTable( age int, name varchar );
저는 test라는 데이터베이스를 생성해서 testTable이라는 테이블을 만들어줬습니다.
여기서 mysql이 참 신기하다고 생각했던 것이 database를 저희가 생성한다는 것입니다. oracleSQL과의 차이점이 확연해서 재미있었습니다.
각색하고, 이제 CRUD를 test할 테이블을 생성했으니 node 코드를 짜봅시다.
먼저 create 입니다.
app.get('/create', function(req, res){ var sql = "create table testTable( age int, name varchar );" connection.query(sql, function(err,results){ if (err) throw err; console.log(results); }) });
create 구문의 코드입니다. 위에서 이미 테이블을 만들었지만 create api는 이렇게 구성됩니다. 사실 create를 굳이 node에서 처리할 필요가 없습니다.
sql 문자열이 mysql에서 구동될 질의문입니다. insert문을 작성하신 뒤에 query 함수를 이용하여 실제로 mysql에서 구동됩니다.
아, connection은 저번에 연동 변수를 connection으로 설정하신 거 아시죠?? 그겁니다.
다음은 readd입니다. read는 select문을 이용합니다.
app.get('/read', function(req, res){ var sql = "SELECT * FROM testTable" connection.query(sql, function(err,results){ if (err) throw err; console.log(results); }) });
read 구문의 코드입니다. create와 비교해보시면 sql 문자열만 바뀐 것을 알 수 있습니다. 실체는 sql 질의문이기에 sql 문자열을 어떻게 바꾸냐에 따라서 sql 질의가 바뀌는 것입니다.
아무튼, select 함수를 이용해서 table의 데이터를 조회하는 것이 read입니다.
다음은 update입니다. 슬 감이 잡히시죠??
app.post('/update', function(req, res){ var sql = "INSERT INTO testTable VALUES ?" connection.query(sql, function(err,results){ if (err) throw err; console.log(results); }) });
테이블에 값을 넣어주는 insert가 update 구문에 해당합니다.
delete 입니다.
app.get('/deleate/:name', function(req, res){ var sql = "DELETE FROM testTable WHERE name" connection.query(sql, function(err,results){ if (err) throw err; console.log(results); }) });
이 CRUD API를 이용하면 왠만한 DB 코드의 기틀은 끝났다고 봐도 됩니다. 나머지는 이 CRUD API의 내용을 자신이 뽑아내고자 하는 데이터에 맞춰 질의문을 작성하면 되는 문제입니다.
CRUD 코드를 이용하여 적절한 질의문을 짜봅시다~!
오늘은 mysql의 CRUD를 알아보았습니다.
저번 시간에 .env 환경 변수에 대해서 짤막하게 소개했었는데 다음에는 이 .env를 조금 더 알아보는 시간을 가져보겠습니다.