MySQL

1、确保已安装wamp并且启动成功

详情请见wamp环境搭建

2、下载navicat premium

文件 -> 新建连接

点击自己新建的链接,新建数据库 字符集uft8 排序规则utf8_bin

3、在项目文件夹中安装mySQL

1
2
npm init -y
npm install mysqljs/mysql

4、在服务器js文件中使用mysql包

引入mysql包

1
const mysql = require('mysql');

创建数据库链接

1
2
3
4
5
6
const connection = mysql.createConnection({
host: 'localhost', //数据库所在的服务器的域名(或ip地址)
user: 'me', //登录数据库的账号
password: 'secret', //登陆数据库的密码
database: 'book' //数据库的名称
});

执行链接操作

1
connection.connect();

操作数据库

数据库的操作是异步的

1
2
3
4
connection.query('数据库操作语句',function(error,results,fields){ //results 数据库语句执行完后的结果
if(error) throw error;
console.log('The solution is:',results[0].solution);
})

关闭数据库

1
connection.end();

数据库常用语句

先给出代码大概框架

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
const mysql = require('mysql');

const connection = mysql.createConnection({
host: 'localhost', //数据库所在的服务器的域名(或ip地址)
user: 'root', //登录数据库的账号
password: '', //登陆数据库的密码
database: 'book' //数据库的名称
});

connection.connect();

//此处开始进行数据库数据操作**********************之后的代码只有此处不同
// ? 是为了给后面的数据进行填充
let sql = 'insert into book set ?';
let data = {
name: '百年孤独',
author: '加西亚·马尔克斯'
};

connection.query(sql,data,function(error,results,fields){ //results 数据库语句执行完后的结果 是个对象
if(error) throw error;
if(results.affectedRows == 1){
console.log('数据插入成功!');
}
});

//此处结束数据库数据操作************************
connection.end();

1
2
3
4
5
6
7
8
9
10
11
12
// ? 是为了给后面的数据进行填充
let sql = 'insert into book set ?';
let data = {
name: '百年孤独',
author: '加西亚·马尔克斯'
};
connection.query(sql,data,function(error,results,fields){ //results 数据库语句执行完后的结果
if(error) throw error;
if(results.affectedRows == 1){
console.log('数据插入成功!');
}
});

1
2
3
4
5
6
7
8
9
let sql = 'delete from book where id=?';
let data = [2];

connection.query(sql,data,function(error,results,fields){ //results 数据库语句执行完后的结果
if(error) throw error;
if(results.affectedRows == 1){
console.log('数据删除成功!');
}
});

1
2
3
4
5
6
7
8
9
let sql = 'update book set name=?,author=? where id=?';
let data = ['红楼梦','曹雪芹',2];

connection.query(sql,data,function(error,results,fields){ //results 数据库语句执行完后的结果
if(error) throw error;
if(results.affectedRows == 1){
console.log('数据更新成功!');
}
})

1
2
3
4
5
6
7
8
9
10
//let sql = 'select * from book'; // * 查询范围是全部数据
//let data = null;

let sql = 'select * from book where id = ?'; //从所有数据中查询id为?的数据
let data = [1];

connection.query(sql,data,function(error,results,fields){ //results 数据库语句执行完后的结果
if(error) throw error;
console.log(results[0].name);
});

不难发现对数据的增删改查在代码层面是类似的。

封装对数据库的操作

新建一个db.js文件,此js中的代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
const mysql = require('mysql');

//当sql是插入操作时,data需要是一个对象
//当sql是删改查时,data是一个数组数组中的数据与表中的字段顺序要一一对应
exports.base = (sql,data,callback)=>{
const connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '',
database: 'book'
});
connection.connect();
connection.query(sql,data,function(error,results,fields){
if(error) throw error;
callback(results);
});
connection.end();
}

最后更新: 2019年09月02日 11:07

原始链接: https://HowlCN1997.github.io/2019/03/15/MySQL/

× 请我吃糖~
打赏二维码