在Node中链接MySql有两种方法,一种是用Pool,一种是用Connection

首先放出个代码模板

/** 数据库查询
 * 1、链接数据库
 * 2、获取链接,连接可能失败
 */
var mysql = require('mysql');
// console.log(mysql);

//这是后端链接数据库的线
//                          数据库地址:本地    用户名:root    密码:123456    数据库名:20190603    -port(端口):可以改
var pool = mysql.createPool({'host':'localhost','user':'root','password':'123456' ,'database':'20190605'});
// console.log(pool);

// pool.connect();

//异步链接数据库
//获取链接,可能失败,在connection.query 中写sql 语句
pool.getConnection(function(err, connection){
    if(err) {
        console.log('连接失败'+err);
    }else {
        //                关键字    关键字  表名     处理方法
        connection.query('SELECT * FROM `user`;', function(err, data){
            if(err) {
                console.log(err);
            }else {
                console.log(data);
                connection.end();
            }
        })
    }
})

Connection方法

var mysql      = require('mysql');
var connection = mysql.createConnection({
  host     : 'localhost',
  user     : 'root',
  password : '123456',
  database : 'test'
});

connection.connect();

connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {
  if (error) throw error;
  console.log('The solution is: ', results[0].solution);
});

增:

INSERT INTO `表名` (`key`,`key2`,...) VALUES("value","value2",...);
这里要注意的是,表名和key值括起来的不是单引号,而是右上角esc键下方的 `,需要在英文输入下输入


删:

DELETE FROM `表名`
注意:如果直接输入这行的话是删除整个数据库,如果一不小心真的删除了就跑路吧
那么怎么才能精准删除我们所想删的呢 - where关键字能够帮助我们精准定位。

DELETE FROM `表名` WHERE 'key'='value'
假设key值是ID,user,passvalue值是0,user,123那么删除这行用其特定的唯一的其他行数据没有的值来做筛选条件就可以了,假设ID为0是其他行数据没有的唯一存在,那么
DELETE FROM `表名` WHERE `ID`='0';就可以删除这一行数据了


改:

UPDATE `表名` SET key='new value' WHERE key='value'
同样假设其改变的值有唯一的key值,key=ID,value=0;
`UPDATE `表名` SET ID='1' WHERE ID='0'
这样就将ID从0改为1了。


查:

SELECT * FROM `表名`
星号的意思是所有,这句话意思为查询所有key,也就是把表单所有keyvalue打印出来
同样的,利用关键字WHERE可以实现精准查询。
SELECT user,pass FROM `user
这句话的意思是想查询user与pass的数据,想用多个key做查询条件增加特定性的话多个key中间用逗号分开
SELECT user,pass FROM `user` WHERE user="bill"
想查询user与pass,并且user的值为bill的数据

当然,sql语句支持一些运算符,可以查询某个范围的值

SELECT * FROM `user` WHERE `password`>100
SELECT * FROM `user` WHERE `password`!=0

‘与’子句(&&) => AND

AND 和 与JS的(&&)符号一样 所有AND 后的条件都必须满足
SELECT key,key2 FROM `tabName` WHERE key=" " AND key2=""

‘或’子句(||) => OR

OR 和 JS的(||)符号一样 所有OR 后的条件可有可无
SELECT key,key2 FROM `tabName` WHERE key="" OR key2=""

03-05 21:25