mysql模块介绍
node的数据库操作,是需要建立在mysql模块之下,mysql模块不是系统模块,需要从npm下载,先解释下node系统模块为什么没有封装mysql,因为数据库的种类有很多,不可能每一种都封装在里面,那样会造成性能浪费。
SQL用的比较多的就有:
MySQL:免费,中小网站,性能较好、
Oracle:银行类使用、金融级、不免费而且挺贵、性能强、容灾强
SQLServer:微软的一种,用的比较少
基于node环境下数据库操作需要介绍以下几个知识点:
1、如何连接数据库,
2、数据的增、删、改、查,
3、数据的JSON格式转换,
4、如何创建数据库连接池,
搭建数据库
开始这些之前我们先利用数据库创建一个表:
首先CMD打开命令环境输入=>
mysql -u 账号 -p 密码
进入数据库,显示所有数据库=>
show databases;
创建一个叫myapp的库=>
create database myapp;
进入myapp库,创建users表=>
use myapp;
建表:
CREATE TABLE users(
id INT(16) auto_increment primary key,
username varchar(32) NOT NULL,
password varchar(32) NOT NULL
);
//id设为主键并且自增
插入数据,因为id已经是自增这里不需要设置=>
INSERT INTO users (username,password) VALUES ('王花花',123456);
。。。多插入几条数据后。。。
查看表内容=>
SELECT*FROM users
创建数据库连接
1、先从npm下载mysql模块=>
npm install mysql
2、连接=>
const mysql=require('mysql');
const connection=mysql.createConnection({
host:'localhost',
//数据库主机地址
user:'root',
password:'root',
database:'myapp'
});
connection.connect();
connection.query("数据库语句",function(err,data){
if(!err){
console.log(data);
}
});
connection.end();
SQL操作之增、删、改、查
node并不能直接操作数据库,而是通过query()函数来操作数据库命令语句。
数据库操作语句都放在query()函数中=>
增:(因为id是自增,所以不用设置)
connection.query("INSERT INTO users(username,password) VALUES ('zzh','12354')");
删:(这里通过名字检索删除)
connection.query("DELETE FROM users WHERE username='zzh'");
改:(这里通过id检索修改)
connection.query("UPDATE users SET username ='赵二蛋',password ='123' WHERE id =11");
查:
(查看表所有数据)
connection.query("SELECT*FROM users");
(查看单条数据,通过id检索)
connection.query("SELECT*FROM users WHERE id=7");
SQL数据连接池
用户频繁的访问数据库的时候,如果每次都要创建连接,那样势必会造成性能损失,如果创造一个连接池一直保持30-50个连接,当用户访问的时候就可以直接拿来使用,那样就可以大大增加用户体验。
只需要简单的几句代码就可以创建一个连接池=>
const mysql=require('mysql');
const pool=mysql.createPool({
host:'localhost',
user:'root',
password:'root',
database:'myapp'
});
connection.connect();
connection.query("数据库语句");
connection.end();
数据转json格式
因为数据库拿到的数据前端无法识别,这时候就需要使用到json数据格式,前端拿到后再解析成js对象、数组。
connection.query('SELECT*FROM users', function (err, data){
console.log(data);
var json=JSON.stringify(data);
response.write(json);
response.end();
});
领取专属 10元无门槛券
私享最新 技术干货