美文网首页
Node.js + Mysql 交互

Node.js + Mysql 交互

作者: sylvia_yue | 来源:发表于2017-11-29 21:56 被阅读0次

此处使用的 Mysql 是本地 Mysql,则先要配置本地 Mysql 环境https://dev.mysql.com/downloads/installer/

官网下载 Mysq 安装好即可。后面主要介绍 Node + Mysql 的交互。

1.安装 Mysql

首先在项目里 npm init ,创建 package.json 文件,执行 npm install mysql,安装好 mysql;

2.创建 test.js,进行测试

var mysql = require('mysql');
//下面为数据库连接参数,根据数据库情况进行修改

var connection = mysql.createConnection({
    host : 'localhost',    //主机地址
    user : 'me',    //用户名
    password : 'secret',    //密码
    database : 'my_db'    //数据库名
});

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);
});

connection.end();

执行 node test.js,若连接成功则返回



注:
以上, connection 上调用的每个方法都按顺序执行;
使用 .ende()方法来关闭 connection,他会确保所有查询都在发送最后一个退出指令前被执行。

3.建立连接

1).connect()

var mysql = require('mysql');
var connection = mysql.createConnection({
    host : 'example.org',
    user : 'bob',
    password : 'secret'
});

connection.connect(function(err) {
if (err) {
    console.error('error connecting: ' + err.stack);
    return;
}

console.log('connected as id ' + connection.threadId);
});

2).query()

var mysql = require('mysql');
var connection = mysql.createConnection(...);

connection.query('SELECT 1', function (error, results, fields) {
    if (error) throw error;
    // connected!
});

以上两种方式取决于你倾向于哪种方式来处理 error 。

4.常用Connection options

host:要连接的数据库主机名(默认:localhost)
port:端口(默认:3306)
user:Mysql 用户名
password:Mysql 用户的密码
database:连接的数据库名
charset:连接的字符集。(默认:'UTF8_GENERAL_CI')
multipleStatements:是否允许一个 query 中有多个 Mysql 语句(默认:false)

5.终止连接

1).end()
他会确保所有查询都在发送最后一个退出指令前被执行。
2).destroy()
会立即终止数据发送。

6.切换用户、改变连接状态

connection.changeUser({user : 'john'}, function(err) {
    if (err) throw err;
});

可改变:user、password、charset、database

7.请求方法.query()

connection.query('SELECT * FROM `books` WHERE `author` = "David"', function (error, results, fields) {
// error will be an Error if one occurred during the query
// results will contain the results of the query
// fields will contain information about the returned results fields (if any)
});

8.SQL常用增删改查语句(SQL 语句对大小写不敏感)

* SELECT - 从数据库表中获取数据
* UPDATE - 更新数据库表中的数据
* DELETE - 从数据库表中删除数据
* INSERT INTO - 向数据库表中插入数据
  • SELECT 语法
    1)获取表内某一列数据
    SELECT 列名称 FROM 表名称
    2)获取表内所有列数据
    SELECT * FROM 表名称
    3)从名为 "Persons" 的数据库表内,获取名为 "LastName" 和 "FirstName" 的列的内容
    SELECT LastName,FirstName FROM Persons

  • DISTINCT——返回唯一不同的值,已存在的值不重复返回
    SELECT DISTINCT 列名称 FROM 表名称

  • WHERE——有条件地从表中选取数据
    SELECT 列名称 FROM 表名称 WHERE 列 运算符 值
    可使用如下运算符:
    = <>(不等于) > < >= <= BETWEEN LIKE
    eg: SELECT * FROM Persons WHERE City='Beijing' (数值则不使用引号)

  • AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。

eg:SELECT * FROM Persons WHERE FirstName='Thomas' AND LastName='Carter'
    SELECT * FROM Persons WHERE firstname='Thomas' OR lastname='Carter'
  • ORDER BY 语句
    ORDER BY 语句用于根据指定的列对结果集进行排序。
    ORDER BY 语句默认按照升序对记录进行排序。
    如果您希望按照降序对记录进行排序,可以使用 DESC 关键字。
    eg:
    按 Company 升序显示, Company 相同时则以 OrderNumber 升序显示
    SELECT Company, OrderNumber FROM Orders ORDER BY Company, OrderNumber
    按 Company 逆序显示(DESC),Company 相同时则以 OrderNumber 升序显示(ASC)
    SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC

  • INSERT INTO 语句 —— 向表格中插入新的行
    INSERT INTO 表名称 VALUES (值1, 值2,....)
    也可以指定所要插入数据的列:
    INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)

  • Update 语句 —— 修改表中的数据
    UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
    eg:更新一行中的若干
    UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing' WHERE LastName = 'Wilson'

  • DELETE 语句 —— 删除表中的行
    DELETE FROM 表名称 WHERE 列名称 = 值

相关文章

网友评论

      本文标题:Node.js + Mysql 交互

      本文链接:https://www.haomeiwen.com/subject/ldzpbxtx.html