1 /*
 2 在控制台完成:
 3 1. 创建初始化文件
 4 npm init -y
 5 2. 下载 MySQL 模块
 6 npm i mysql
 7 */
 8 
 9 // 代码
10 // 导入 MySQL 模块
11 const mysql = require('mysql');
12 // 建立连接
13 const db = mysql.createPool({
14     host: '127.0.0.1',      // 数据库地址
15     user: 'root',           // 登录数据库用户名
16     password: 'root',       // 登录数据库的密码
17     database: 'my_db_01'    // 连接哪个库
18 })
19 // 测试连接 query事件
20 /* db.query('select 1', (err, res) => {
21     console.log(res);
22 }) */
23 // [ RowDataPacket { '1': 1 } ] 返回值是这个就代表连接成功
24 
25 
26 
27 
28 
29 
30 /* 
31 OkPacket {
32   fieldCount: 0,
33   affectedRows: 1,
34   insertId: 13,
35   serverStatus: 2,
36   warningCount: 0,
37   message: '',
38   protocol41: true,
39   changedRows: 0
40 }
41 以上对象是 增.删.改.查 都会返回的 对象, 这里需要用到 affectedRows, 如果这个属性的值 === 1 
42 就代表增加成功 
43 */
44 
45 
46 /**/
47 // 定义要增加的数据
48 /* const user = { username: '狸雾', password: '123456' };
49 // sql 语句  ? 代表占位符
50 const sqlStri = 'insert into users set ?'
51 db.query(sqlStri, user, (err, res) => {
52     if (err) return console.log(err.message);
53     if (res.affectedRows === 1) return console.log(`操作成功`);
54 })
55  */
56 
57 /**/
58 // 定义要删除的数据: 根据哪一项删除
59 /* const deldata = { id: 14 }
60 // SQL 语句
61 const sqlStrd = 'delete from users where id=? '
62 db.query(sqlStrd, 14, (err, res) => {
63     if (err) return console.log(err.message);
64     if (res.affectedRows === 1) return console.log(`操作成功`);
65 }) */
66 /* !!!! 注意: 实际开发很少用 delete 删除语法(因为一旦删除就无法复原了), 更多使用标记删除, 也就是修改表中一个布尔值的字段, */
67 
68 
69 
70 /* 标记删除 */
71 // sql 语句
72 /* const sqlStrdu = 'update users set status=? where id=?'
73 // 数据少的话 也可以在这里直接修改
74 db.query(sqlStrdu, [1, 12], (err, res) => {
75     if (err) return console.log(err.message);
76     if (res.affectedRows === 1) return console.log(`操作成功`);
77 }) */
78 
79 
80 
81 /**/
82 // 定义要修改的数据
83 /* const updata = { id: 7, username: 'ccc', password: '123123123' };
84 // sql 语句
85 // 设置区域只用写 ? 占位符即可  
86 const sqlStru = 'update users set ? where id=?'
87 db.query(sqlStru, [updata, updata.id], (err, res) => {
88     if (err) return console.log(err.message);
89     if (res.affectedRows === 1) return console.log(`操作成功`);
90 }) */
91 
92 
93 
94 /**/
95 const sqlStrs = 'select * from users'
96 db.query(sqlStrs, (err, res) => {
97     if (err) return console.log(err.message);
98     console.log(res);
99 })

 

/*
在控制台完成:
1. 创建初始化文件
npm init -y
2. 下载 MySQL 模块
npm i mysql
*/

// 代码
// 导入 MySQL 模块
const mysql = require('mysql');
// 建立连接
const db = mysql.createPool({
    host: '127.0.0.1',      // 数据库地址
    user: 'root',           // 登录数据库用户名
    password: 'root',       // 登录数据库的密码
    database: 'my_db_01'    // 连接哪个库
})
// 测试连接 query事件
/* db.query('select 1', (err, res) => {
    console.log(res);
}) */
// [ RowDataPacket { '1': 1 } ] 返回值是这个就代表连接成功






/*
OkPacket {
  fieldCount: 0,
  affectedRows: 1,
  insertId: 13,
  serverStatus: 2,
  warningCount: 0,
  message: '',
  protocol41: true,
  changedRows: 0
}
以上对象是 增.删.改.查 都会返回的 对象, 这里需要用到 affectedRows, 如果这个属性的值 === 1
就代表增加成功
*/


/* 增 */
// 定义要增加的数据
/* const user = { username: '狸雾', password: '123456' };
// sql 语句  ? 代表占位符
const sqlStri = 'insert into users set ?'
db.query(sqlStri, user, (err, res) => {
    if (err) return console.log(err.message);
    if (res.affectedRows === 1) return console.log(`操作成功`);
})
 */

/* 删 */
// 定义要删除的数据: 根据哪一项删除
/* const deldata = { id: 14 }
// SQL 语句
const sqlStrd = 'delete from users where id=? '
db.query(sqlStrd, 14, (err, res) => {
    if (err) return console.log(err.message);
    if (res.affectedRows === 1) return console.log(`操作成功`);
}) */
/* !!!! 注意: 实际开发很少用 delete 删除语法(因为一旦删除就无法复原了), 更多使用标记删除, 也就是修改表中一个布尔值的字段, */



/* 标记删除 */
// sql 语句
/* const sqlStrdu = 'update users set status=? where id=?'
// 数据少的话 也可以在这里直接修改
db.query(sqlStrdu, [1, 12], (err, res) => {
    if (err) return console.log(err.message);
    if (res.affectedRows === 1) return console.log(`操作成功`);
}) */



/* 改 */
// 定义要修改的数据
/* const updata = { id: 7, username: 'ccc', password: '123123123' };
// sql 语句
// 设置区域只用写 ? 占位符即可  
const sqlStru = 'update users set ? where id=?'
db.query(sqlStru, [updata, updata.id], (err, res) => {
    if (err) return console.log(err.message);
    if (res.affectedRows === 1) return console.log(`操作成功`);
}) */



/* 查 */
const sqlStrs = 'select * from users'
db.query(sqlStrs, (err, res) => {
    if (err) return console.log(err.message);
    console.log(res);
})