在上一节的内容里,小编和大家一起学习了如何使用MongoDB数据库,今天小编就和大家一起学习目前比较主流的关系型数据库MySQL。
什么是MySQL?MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 最流行的关系型数据库管理系统。
MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL 软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
(来源百度百科)
在Node中引用MySQL模块 安装MYSQLwindows下安装方法,请参考百度经验网址http://jingyan.baidu.com/article/f3ad7d0ffc061a09c3345bf0.html
mac下安装方法,请参考百度经验网址http://jingyan.baidu.com/article/c843ea0b96f01877931e4a1d.html
引用MYSQL模块安装MySQL模块,示例代码如下:
$ npm install mysql
在Express项目中引用,示例代码如下
var mysql=require('mysql')
除了MySQL模块,同时还有类似其他高级语言使用的MYSQL的对象关系映射器(ORM)——node-seqelize。ORM提供了一个MYSQL数据库中的数据到JavaScript模型的映射,使得操作数据关系、数据处理变得更加容易。
如何使用MySQL模块简单示意
=(); =.({ : , : , : }); .(); .(,(err,rows) { (err) err .(+rows[].solution); .(); });
了解 Connection Options
host:主机地址 (默认:localhost)user:用户名password:密码port:端口号 (默认:3306)database:数据库名timezone:时区(默认:’local’)connectTimeout:连接超时(默认:不限制;单位:毫秒)其它属性请查看官方网址https://github.com/mysqljs/mysqlMySQL服务器断开与重新连接当遇到网络问题,或者MySQL服务器重启,或者因为超过一段时间没有操作时,MySQL服务器会主动断开,这时就会触发一个error事件。为了保证程序能正常工作,我们需要监听这个事件,示例代码如下图:字符串转义问题在客户端输入的值在拼接SQL查询语句时,我们需要对这些值进行正确的转义,以防止SQL的注入***。我们可以使用escape()方法进行转义。
=; =+connection.(); connection.(,(err,results) { })
另外,还可以在SQL语句中将要转义的值用问号?来代替,在调用query()方法时传入这些转义的值:
connection.(,[a,b],(err,results) { })
seqelize的使用安装
npm install sequelize
连接数据库
= (); = (, , , {: , : , : });
定义模型
= sequelize.define(, { : {: Sequelize.INTEGER, : , : , : }, : {: Sequelize.STRING, : }, : {: Sequelize.TEXT, : }, : {: Sequelize.DATE, : Sequelize.NOW}});
创建表
Task.sync().(, (){ .();}).(, (){ .();});
select查询
Task.findAll({: , : }, {: , : , : }).(, (res){ .(res);}).(, (err){ .(err);})
count运算
Task.({: {: }}, {: }).(, (i){ .(i);}).(, (err){ .(err);});
max与min运算
Task.().(, (max){ .(max);}).(, (err){ .(err);});
添加数据
Task.({: , : }) .(, (msg){ .(msg);}) .(, (err){ .(err);});
更新数据
Task.({: }, {: }) .(, (msg){ .(msg);}) .(, (err){ .(err);});
删除数据
Task.({: }) .(, (msg){ .(msg);}) .(, (err){ .(err);});