Node--7.Node.js 连接 MySQL

Node.js 连接 MySQL

一、安装库

npm install mysql

二、基本使用

  • 引入 mysql 模块: require('mysql')
  • 创建数据库对象: mysql.createConnection(options)
  • 数据库连接: connection.connect(callback)
  • 执行数据库语句: connection.query(sqlStr, callback)
const mysql = require('mysql')

// 1. 创建的数据库配置信息
const options = {
  host: 'localhost',  // 主机名或IP地址
  port: '3306',       // 端口
  user: 'root',       // 用户名
  password: '123456', // 密码
  database: 'nodedb'  // 数据库名称
}

// 2. 创建数据库对象
const connection = mysql.createConnection(options) 

// 3. 连接
connection.connect(err => {
  // 如果建立连接失败,就会执行
  if(err) {
    console.log(err)
    console.log('连接失败')
  }else {
    console.log('连接成功')
  }
})

// 4. 数据库语句
let sqlStr = 'select * from student'
// error: 错误信息
//  result: 结果
//  fields: 查询到字段信息
connection.query(sqlStr, (error, result, fields) => {
  if(error) {
    console.log(error)
    console.log("查询失败")
  }else {
    console.log(result)
    console.log(fields)
  }
})

三、增删查改(CURD)

3.1、连接

const mysql = require('mysql')

// 1. 创建的数据库配置信息
const options = {
  host: 'localhost',  // 主机名或IP地址
  port: '3306',       // 端口
  user: 'root',       // 用户名
  password: '123456', // 密码
  database: 'nodedb'  // 数据库名称
}

// 2. 创建数据库对象
const connection = mysql.createConnection(options) 

// 3. 连接
connection.connect(err => {
  // 如果建立连接失败,就会执行
  if(err) {
    console.log(err)
    console.log('连接失败')
  }else {
    console.log('连接成功')
  }
})

3.2、查询数据

// 4. 数据库语句
let sqlStr = 'select * from student'
// error: 错误信息
//  result: 结果
//  fields: 查询到字段信息
connection.query(sqlStr, (error, result, fields) => {
  if(error) {
    console.log(error)
    console.log("查询失败")
  }else {
    console.log('------SELECT------');
    console.log(result)
    console.log('------------------');
  }
})

结果如下:

------SELECT------
[
  RowDataPacket { id: 1, name: '小明', gender: '男', age: 18, brief: '帅' },
  RowDataPacket { id: 2, name: '小红', gender: '女', age: 19, brief: '美' } 
]
------------------

3.3、修改数据

// 4. 数据库语句
let sqlStr = 'update student set age = ?  where id = ?'
let sqlStrParams = ['20', '1']
// error: 错误信息
//  result: 结果
//  fields: 查询到字段信息
connection.query(sqlStr, sqlStrParams,  (error, result) => {
  if(error) {
    console.log(error)
    console.log("修改失败")
  }else {
    console.log('------UPDATE------');
    console.log(result)
    console.log('------------------');
  }
})

结果如下:

------UPDATE------
OkPacket {
  fieldCount: 0,
  affectedRows: 1,
  insertId: 0,
  serverStatus: 2,
  warningCount: 0,
  message: '',
  protocol41: true,
  changedRows: 0
}
------------------

3.4、插入数据

// 4. 数据库语句
let sqlStr = 'insert into student (id, name, gender, age, brief) value (?, ?, ?, ?, ?)'
let sqlStrParams = ['3', '小绿', '男', '22', '超级']
// error: 错误信息
//  result: 结果
//  fields: 查询到字段信息
connection.query(sqlStr, sqlStrParams,  (error, result) => {
  if(error) {
    console.log(error)
    console.log("插入失败")
  }else {
    console.log('------INSERT------');
    console.log(result)
    console.log('------------------');
  }
})

结果如下:

------INSERT------
OkPacket {
  fieldCount: 0,
  affectedRows: 1,
  insertId: 3,
  serverStatus: 2,
  warningCount: 0,
  message: '',
  protocol41: true,
  changedRows: 0
}
------------------

3.5、删除数据

// 4. 数据库语句
let sqlStr = 'delete from student where id = 3'
// error: 错误信息
//  result: 结果
//  fields: 查询到字段信息
connection.query(sqlStr, (error, result) => {
  if(error) {
    console.log(error)
    console.log("删除失败")
  }else {
    console.log('------DELETE------');
    console.log(result)
    console.log('------------------');
  }
})

结果如下:

------DELETE------
OkPacket {
  fieldCount: 0,
  affectedRows: 1,
  insertId: 0,
  serverStatus: 2,
  warningCount: 0,
  message: '',
  protocol41: true,
  changedRows: 0
}
------------------

3.6、删除 表

let sql = 'drop table student(表名)'

3.7、删除 数据库

let sql = 'drop database nodedb(数据库名)'

3.8、创建 数据库

let sql = 'create database nodedb(数据库名)'

3.9、创建 表

let sql = `CREATE TABLE student1 (
  id int(11) NOT NULL,
  name varchar(255) DEFAULT NULL,
  gender varchar(255) DEFAULT NULL,
  age int(11) DEFAULT NULL,
  brief varchar(255) DEFAULT NULL,
  PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;`
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值