mysql语句在node.js中的写法

  总结一下mysql语句在node.js中的各种写法,参考了npm网站mysql模块给的实例。

  查询 select

//1
db.query(‘select * from tuanshang_users where user_id < 10‘,function(err,results,fields){
    //if(err) throw err;
    console.log( results );
    if(!!results.length){
    	console.log(‘查询到‘+ results.length +‘条数据‘);
    }else{
    	console.log(‘没有相关数据‘);
    }
});
//2
db.query(‘select * from tuanshang_users where user_id=?‘,[8],function(err,results,fields){
    if(err) throw err;
    console.log( results );
});
//3
db.query({
	sql: ‘select * from tuanshang_users where user_id=? and username=?‘,
	values: [43,‘ABCD‘],
	timeout: 40000
},function(err,results,fields){
    if(err) throw err;
    console.log( results );
});
//4
db.query({
	sql: ‘select * from tuanshang_users where user_id=? and username=?‘,
	timeout: 40000
},[44,‘ABCDEF‘],function(err,results,fields){
    if(err) throw err;
    console.log( results );
});
//5
var userid = 44;
var columns = [‘username‘,‘password‘];
var sql = ‘select ?? from ?? where user_id=?‘;
db.query(sql,[columns,‘tuanshang_users‘,userid],function(err,results,fields){
    if(err) throw err;
    console.log( results );
});

  插入 insert into

//1
var o = {username:‘cnode‘, password:‘123456‘};
db.query(‘insert into tuanshang_users set ?‘, o, function(err,result){
    console.log( result );
    if(result){
    	 console.log(‘插入成功‘);
    	 console.log( result.insertId );
    }else{
    	 console.log(‘插入失败‘);
    }
});
//2
db.query(‘insert into tuanshang_users set ?‘,{username:‘hello‘,password:‘123456‘}, function(err,result){
    //if(err) throw err;
    if(result){
    	 console.log(‘插入成功‘);
    	 console.log( result );
    }else{
    	 console.log(‘插入失败‘);
    }
});
//3
db.query({
	sql: ‘insert into tuanshang_users set ?‘,
	values: {username:‘kankan‘,password:‘123456‘},
	timeout: 40000
},function(err,result){
    //if(err) throw err;
    console.log( result );
    if( !!result ){
    	 console.log(‘插入成功‘);
    	 console.log( result.insertId );
    }else{
    	 console.log(‘插入失败‘);
    }
});
//4 5 参考查询select

  更新 update   

//1
db.query(‘update tuanshang_users set ? where user_id=?‘,[{username:‘hello‘},8],function(err,result){
    //if(err) throw err;
    console.log(result);
    if(!!result && !!result.changedRows){
    	console.log(‘更新成功‘);
		console.log( result.changedRows );
    }else{
    	console.log(‘更新失败‘);
    }
});
//2
db.query(‘update tuanshang_users set ? where user_id=5‘,{username:‘hello‘},function(err,result){
    //if(err) throw err;
    console.log(result);
    if(!!result && !!result.changedRows){
    	console.log(‘更新成功‘);
    	console.log( result.changedRows );
    }else{
    	console.log(‘更新失败‘);
    }
});
//3
db.query({
	sql: ‘update tuanshang_users set ? where user_id=?‘,
	values: [{username:‘hello‘},8],
	timeout: 40000
},function(err,result){
    //if(err) throw err;
    console.log( result );
    if(!!result && !!result.changedRows){
    	console.log(‘更新成功‘);
		console.log( result.changedRows );
    }else{
    	console.log(‘更新失败‘);
    }
});
//4 5 参考查询select

  删除 delete   

//1
db.query(‘delete from tuanshang_users where username="hello"‘,function(err,result){
    //if(err) throw err;
    console.log( result );
    if(!!result && !!result.affectedRows){
    	console.log(‘删除成功‘);
		console.log( result.affectedRows );
    }else{
    	console.log(‘删除失败‘);
    }
});
//2
db.query(‘delete from tuanshang_users where user_id=?‘,[10],function(err,result){
    //if(err) throw err;
    console.log( result );
    if(!!result && !!result.affectedRows){
    	console.log(‘删除成功‘);
		console.log( result.affectedRows );
    }else{
    	console.log(‘删除失败‘);
    }
});
//3
db.query({
	sql: ‘delete from tuanshang_users where user_id=?‘,
	values: [51],
	timeout: 40000
},function(err,result){
    //if(err) throw err;
    console.log( result );
    if(!!result && !!result.affectedRows){
    	console.log(‘删除成功‘);
		console.log( result.affectedRows );
    }else{
    	console.log(‘删除失败‘);
    }
});
//4 5 参考查询select

  查询操作,会返回一个结果数组。如果没有查询数据,结果数组为空,即数组长度为0。

   插入,更新,删除操作会返回一个结果对象

{
	fieldCount: 0,
	affectedRows: 0,
	insertId: 0,
	serverStatus: 2,
	warningCount: 0,
	message: ‘‘,
	protocol41: true,
	changedRows: 0
}

  在插入操作后,结果对象中 insertId 返回插入的数据在表中id的位置。

   在更新操作后,结果对象中 changedRows 返回更新了多少行(表中有几条数据中的字段值发生变化),affectedRows 返回满足where条件影响的行。

   在删除操作后,结果对象中 affectedRows 返回删除了多少行。如果是0表示没有删除行或者没有满足删除条件的数据行。

  

时间: 2024-11-04 03:47:59

mysql语句在node.js中的写法的相关文章

[转]在node.js中,使用基于ORM架构的Sequelize,操作mysql数据库之增删改查

本文转自:https://www.cnblogs.com/kongxianghai/p/5582661.html Sequelize是一个基于promise的关系型数据库ORM框架,这个库完全采用JavaScript开发并且能够用在Node.JS环境中,易于使用,支持多SQL方言(dialect),.它当前支持MySQL,.MariaDB.SQLite.PostgreSQL.Sql Server 数据库. 目前在Node.js中,Sequelize的关注度较高,用的也较多. 因为是基于promi

node.js中的exports和module.exports

不同的编程语言都有各自的代码组织和复用的方式,如.net.php中的命名空间,python中的import,ruby中的module等,来避免命名空间污染.一直都没搞清楚node中的exports和module.exports的区别,借此搞清楚node的代码模块复用方式. 首先怎么创建node中的modules. 可以直接创建一个文件作为module,如下module.js function writeLine(){ console.log("module.js"); } export

在node.js中使用COOKIE

node.js中如何向客户端发送COOKIE呢?有如下两个方案: 一.使用response.writeHead,代码示例: //设置过期时间为一分钟 1 var today = new Date(); 2 var time = today.getTime() + 60*1000; 3 var time2 = new Date(time); 4 var timeObj = time2.toGMTString(); 5 response.writeHead({ 6 'Set-Cookie':'myC

Node.js中的URL

Node.js中的URL 什么是URL URL是Uniform Location Resource的缩写,翻译为"统一资源定位符",也就是描述资源位置的固定表示方法.被URL描述的资源可以位于互联网上,也可以位于本地. URL的组成结构 基本URL包含模式(或者成为协议),服务器名(或IP地址),路径和文件名. 第一部分:协议 通过协议,可以获取打开URL的方式,最常见的协议是http,从网上查到的协议如下: http 超文本传输协议 https 用安全套接字层传送的超文本传输协议 f

配置node.js中的express框架

玩node.js,不玩后台那就是杀鸡牛刀,今天没事整理一下以前开发node.js后台的心得 1.首先安装node.js以及cnpm,在这儿我就不说了,看我node.js中的另一篇文章node.js的安装和配置 安装express框架: sudo cnpm install express -g 全局安装express, 之后再安装express生成器,用下面语句就能安装 sudo cnpm install -g express-generator 此时你就可以输入 express -v 查看你所安

Node.js中流程控制

Node.js中的流程控制可以使用async,在使用之前需要先安装,使用npm安装 npm install async --g 下面主要介绍4种流程控制的方式: 1.串行无关联:async.series(tasks,callback) 多个函数依次执行,之间没有数据交换,其中一个函数出错,后续函数不再执行; 以下是标准写法: async.series({ one: function(callback){ callback(null, 1); }, two: function(callback){

在Node.js中使用RabbitMQ系列二 任务队列

在上一篇文章在Node.js中使用RabbitMQ系列一 Hello world我有使用一个任务队列,不过当时的场景是将消息发送给一个消费者,本篇文章我将讨论有多个消费者的场景. 其实,任务队列最核心解决的问题是避免立即处理那些耗时的任务,也就是避免请求-响应的这种同步模式.取而代之的是我们通过调度算法,让这些耗时的任务之后再执行,也就是采用异步的模式.我们需要将一条消息封装成一个任务,并且将它添加到任务队列里面.后台会运行多个工作进程(worker process),通过调度算法,将队列里的任

Node.js权威指南 (10) - Node.js中的错误处理与断言处理

10.1 使用domain模块处理错误 / 272 10.1.1 domain模块概述 / 272 10.1.2 创建并使用Domain对象 / 274 10.1.3 隐式绑定与显式绑定 / 276 10.1.4 绑定回调函数与拦截回调函数 / 279 10.1.5 domain堆栈的弹出与推入 / 280 10.1.6 Domain对象的销毁 / 28610.2 Node.js中的断言处理 / 286 10.2.1 equal方法与notEqual方法 / 287 10.2.2 strictE

node.js中的交互式运行环境-REPL

<Node.js权威指南>第2章Node.js中的交互式运行环境--REPL 开发者可以在该环境中很方便地输入各种JavaScript表达式并观察表达式的运行结果. 在学习Node.js框架的过程中,通过该运行环境的使用,我们可以很方便地了解Node.js中定义的各种对象所拥有的各种属性及方法.本节为大家介绍在REPL运行环境中操作变量 2.2 在REPL运行环境中操作变量 在REPL运行环境中,可以使用var关键字来定义一个变量并为其赋值,但是在输入了对其赋值进行的表达式后,该表达式的执行结