Node.js 로 MySQL 제어하기

nayonsoso·2021년 4월 26일
2

Node.js과 MySQL 연결하기

npm으로 node-mysql모듈 다운로드 : npm install node-mysql —save

mysql 모듈 사용, createConnection 메서드로 객체화

  • host : mysql 서버가 어디에 있는가? (같은 컴퓨터에 있으면 'localhost' )
    user : 그냥 지금은 'root' 라고만 알아두자
    password : mysql 설치할때 썼던 비밀번호
    database : 사용할 데이터베이스 이름

mysql과 연결 : 객체.connect();

mysql과 질의 : 객체.query('sql 구문',function(err,rows,fields){});

  • query 메서드는 첫번째 인자로 SQL 구문을 받음
  • 콜백의 rows 는 SQL 구문에 해당하는 행을, fields는 열을 배열 형태로 받음

연결 해제 : 객체.end();

var mysql = require('mysql'); // mysql 모듈 사용

var conn = mysql.createConnection({ // createConnection 메서드로 객체화
  host : 'localhost',  
  user : 'root',
  password : '129329aa',
  database : 'TWICE'
}); // 실제는 이렇게 비밀번호 적나라하게 적으면 절대 안됨

conn.connect(); // mysql과 연결

var sql = '';
conn.query(sql, function(err,rows, fields){}); // query 메서드로 질의

conn.end(); // 연결 해제

Select

var sql = 'select * from song'
conn.query(sql, function(err,rows, fields){
	// sql 문에 해당하는 행을 rows가 받음 -> 테이블 전체 행
	for(var i = 0; i < rows.lenght ; i++){
		console.log(rows[i].id, rows[i].name, rows[i].year);
		// rows가 행을 배열로 받으므로 인덱스 사용 가능
		// 행 하나하나는 객체이므로 .으로 접근 가능
});

Insert

var sql = 'insert into song (name, year) values ("what is love",2018)';
conn.query(sql,function(err,rows,fields){
	// sql 구문에 해당하는 행을 rows가 받음 -> insert 하는 행
  console.log(rows.name,' ',rows.year); // what is love 2018
})
var sql = 'insert into song (name, year) values (?,?)';
var params = ['yes or yes', 2018];
conn.query(sql, params, function(err,rows,fields){
  console.log(rows.name,' ',rows.year); // yes or yes 2018
})

Update

var sql = 'update song set name="I can\'t stop me", year=2020 where name="more and more"';
conn.query(sql, function(err,rows,fields){
  console.log(rows.name); // 대상으로 하는 행 없으므로 의미 x
})
conn.end();
var sql = 'update song set name=?, year=? where name=?';
var params = ["I can't stop me", 2020, "more and more"];
conn.query(sql, params, function(err,rows,fields){
  console.log(rows.name); // 대상으로 하는 행 없으므로 의미 x
})
conn.end();

Delete

var sql = 'delete from song  where name="I can\'t stop me"';
conn.query(sql, function(err,rows,fields){
  console.log(rows.name); // 대상으로 하는 행 없으므로 의미 x
})
conn.end();
var sql = 'delete from song  where name=?';
var params = ["I can't stop me"];
conn.query(sql, params, function(err,rows,fields){
  console.log(rows.name); // 대상으로 하는 행 없으므로 의미 x
})
conn.end();
profile
공부한 것들을 정리하기 위한 용도입니다.

0개의 댓글