此处使用的 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 列名称 = 值