2023年--MySQL数据库 – node使用

358 阅读1分钟

一、MySQL数据库 – node使用

1.1、查询数据的问题

image.png

1.2将brand转成对象

image.png

image.png

1.3、多对多转成数组

image.png

image.png

二、认识mysql2

image.png

2.1、使用mysql2

image.png

const mysql = require('mysql2')

// 1.创建一个连接(连接上数据库)
const connection = mysql.createConnection({
  host: 'localhost',
  port: 3306,
  user: 'root',
  password: 'Wu@123456',
  database: 'mysql1'
})


// 2.执行操作语句, 操作数据库
const statement = 'SELECT * FROM `students`;'
// structure query language: DDL/DML/DQL/DCL
connection.query(statement, (err, values, fields) => {
  if (err) {
    console.log('查询失败:', err)
    return
  }

  // 查看结果
  console.log(values)
  // console.log(fields)
})

image.png

2.2、Prepared Statement(预编译语句)

image.png image.png

6.5、Connection Pools(连接池)

image.png

image.png

const mysql = require('mysql2')

// 1.创建一个连接
const connectionPool = mysql.createPool({
  host: 'localhost',
  port: 3306,
  user:'root',
  password: 'Wu@123456',
  database: 'mysql1',
  connectionLimit: 5
})

// 2.执行一个SQL语句: 预处理语句
const statement = 'SELECT * FROM `products` WHERE price > ? AND score > ?;'
connectionPool.execute(statement, [1000, 8], (err, values) => {
  console.log(values)
})


6.6、Promise方式

image.png

const mysql = require('mysql2')

// 1.创建一个连接
const connectionPool = mysql.createPool({
  host: 'localhost',
  port: 3306,
  database: 'mysql1',
  user: 'root',
  password: 'Wu@123456',

  connectionLimit: 5
})

// 2.执行一个SQL语句: 预处理语句
const statement = 'SELECT * FROM `products` WHERE price > ? AND score > ?;'

connectionPool.promise().execute(statement, [1000, 9]).then((res) => {
  // 数组解构
  const [values, fields] = res
  console.log('-------------------values------------------')
  console.log(values)
  console.log('-------------------fields------------------')
  console.log(fields)
}).catch(err => {
  console.log(err)
})