TIL 12주차 1,2일 - mysql 모듈

Sang heon lee·2021년 8월 30일
0

TIL 리스트

목록 보기
43/60

mysql 모듈

1. 설치

npm install mysql 

2. 설정

const mysql = require('mysql');
const con = mysql.createConnecion(
// code, code, code
);

3. 연결

A. db 연결

con.connect(function(err){
  if(err){
  // code
  }
  console.log('successfulconnected')
}

B. query 문으로 db에 연결

con.query('query문', function(err,result, fields){
  if(err) throw error;
  console.log('successfulconnected')
}

4. query 문 수행

A. query(sqlString, callback)

con.query('SELECT * FROM users', function(err){
if(err) throw error;
console.log('successfulconnected')
}

B. query(sqlString, values, callback)

con.query('SELECT * FROM users WHERE name = ?',
['kimcoding'],  // ? 자리에 들어간다.
function(err){
if(err) throw error;
console.log('successfulconnected')
}
connection.query('UPDATE users SET foo = ?, bar = ?, baz = ? WHERE id = ?', 
['a', 'b', 'c', userId], 
function (error, results, fields) {
  if (error) throw error;
  // ...
});
var userId = 1;
var columns = ['username', 'email'];
var query = con.query('SELECT ?? FROM ?? WHERE id = ?',
[columns, 'users', userId], 
function (error, results, fields) {
  if (error) throw error;
  // ...
});
 
console.log(query.sql); // SELECT `username`, `email` FROM `users` WHERE id = 1

5. query 문 수행

A. 방금 실행된 id 값 얻기(results.insertId)

con.query('INSERT INTO posts SET ?',
{title: 'test'},
function (error, results, fields) {
  if (error) throw error;
  console.log(results.insertId); 
});

B. 변경된 열 얻기(results.affectedRows)

con.query('DELETE FROM posts WHERE title = "wrong"',
function (error, results, fields) {
  if (error) throw error;
  console.log('deleted ' + results.affectedRows + ' rows');
})

C. 변경된 열 갯수 얻기(results.changedRows)

con.query('UPDATE posts SET ...',
function (error, results, fields) {
  if (error) throw error;
  console.log('changed ' + results.changedRows + ' rows');
})

6. 여러개의 record 한꺼번에 수행하기

var sql = "INSERT INTO customers (name, address) VALUES ?";
var params = [
  ["John", "Highway 71"],
  ["Peter", "Lowstreet 4"],
  ["Amy", "Apple st 652"],
  ["Hannah", "Mountain 21"],
  ["Michael", "Valley 345"],
  ["Sandy", "Ocean blvd 2"],
  ["Betty", "Green Grass 1"],
  ["Richard", "Sky st 331"],
  ["Susan", "One way 98"],
  ["Vicky", "Yellow Garden 2"],
  ["Ben", "Park Lane 38"],
];
con.query(sql, [params], function (err, result) {
  if (err) throw err;
  console.log("Number of records inserted: " + result.affectedRows);
});
profile
개초보

0개의 댓글