koa进行mysql数据库操作

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 基于数据再排序 当需要返回的信息为顺序或者倒序时,对上面的语句基于数据再排序。order by ASC/DESC 顺序或倒序 默认为顺序

一、数据库连接


const mysqlDb = require("mysql");
const config = require("./dbconfig");
let options = {
  host: config.config.db_host,    --主机名
  user: config.config.db_user,    --用户名 
  password: config.config.db_passwd,  --用户密码
  database: config.config.db_name,  --数据库名
  multipleStatements: true,   --启用多线池
};
 var pool = mysqlDb.createPool(options);
 exports.query = function (sql, values) {
    return new Promise((resolve, reject) => {
      pool.getConnection(function (err, connection) {
        if (err) {
          reject(err)
          //console.log(err, "数据库连接失败");
          resolve({
            status: 500,
          });
        } else {
          //console.log("数据库连接成功");
          connection.query(sql, values, (err, results) => {
            if (err) {
              reject(err);
              resolve({
                status: 400
              });
            } else {
              connection.release();
              resolve({
                status: 200,
                results,
              });
              //resolve(rows)
            }
            //connection.release() // 释放连接池
          });
        }
      })
    })
  }


二、数据库操作


  • --user 数据库表名


1.数据库查询


精准查询


select * from user where title   --查询一title查询所有数据
select * from user where title='今日新闻'   --查询title为今日新闻的一条数据


多条件查询


select * from user where title='今日新闻' and age='28'
select * from user where title='今日新闻' or age='28'


模糊查询


select * from user where title like '%龙%'   --查询出所有含有“龙”的记录
select * from user where realname like '%文%' and realname like '%龙%'  --所查询字段 + like '%龙%' and 所查询字段 + like '%文%'


2、具体数据库查询


let ctx_query = ctx.request.body;       --接受post取值
  let pageSize = ctx_query.size-1;      --每页显示的条数
  let page = ctx_query.page ? (ctx_query.page - 1) * pageSize : 0;   --页数
  //查询数据库
  let sql = "select * from list";       --不带分页的查询
  let total = await db.query(sql);      --总页数
  if (ctx_query.country==''&& ctx_query.title) {
    sql += ` where title like '%${ctx_query.title}%' limit ${page},${pageSize}`;
  }else if (ctx_query.country && ctx_query.title=='') {
    sql += ` where country like '%${ctx_query.country}%' limit ${page},${pageSize}`;
  }else if (ctx_query.country == "" && ctx_query.title=="") {
    sql += ` limit ${page},${pageSize}`;
  } else {
    sql += ` where title like '%${ctx_query.title}%' and country like'%${ctx_query.country}%' limit ${page},${pageSize}`;
  }
  console.log('sql',sql)
  const result = await db.query(sql);


3.数据库插入数据


INSERT INTO users ( id, user,passwd) VALUES (12,'zhaofang','111111' );
let query = ctx.request.body;   --接受post传值
let sql = "INSERT INTO list";     --list为表名
sql += ` (title, date,content,name,country,city) VALUES ('${query.title}','${query.date}','${query.content}','${query.name}','${query.country}','${query.city}' )`;
const results = await db.query(sql)   --连接数据库操作


4.数据库修改数据


let query = ctx.request.body;   --接受post传值
let sql = "UPDATE list SET";
sql += ` title='${query.title}',date='${query.date}',content='${query.content}',name='${query.name}',country='${query.country}',city='${query.city}' where id='${query.id}'`;
const results = await db.query(sql)   --连接数据库操作


5.数据库删除


let query = ctx.query;    --接受del传值
let sql = `DELETE FROM list where id='${query.id}'`;
const results = await db.query(sql);


假设主键或者唯一索引为 good_id 收到客户端{pageNo:5,pagesize:10} select * from table where good_id > (pageNo-1)*pageSize limit pageSize; –返回good_id为40到50之间的数据


基于数据再排序 当需要返回的信息为顺序或者倒序时,对上面的语句基于数据再排序。order by ASC/DESC 顺序或倒序 默认为顺序


select * from table where good_id > (pageNo-1)*pageSize order by good_id limit pageSize; –返回good_id为40到50之间的数据,数据依据good_id顺序排列

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
SQL 关系型数据库 MySQL
Python怎么操作Mysql数据库
Python怎么操作Mysql数据库
49 0
|
1月前
|
SQL 关系型数据库 MySQL
python如何操作mysql数据库
python如何操作mysql数据库
24 0
|
2月前
|
SQL 存储 算法
mysql常用指令操作
mysql常用指令操作
|
16天前
|
存储 SQL 关系型数据库
【MySQL】4. 表的操作
【MySQL】4. 表的操作
19 0
|
3月前
|
关系型数据库 MySQL
MySQL对小数进行四舍五入等操作
MySQL对小数进行四舍五入等操作
25 0
|
30天前
|
SQL 关系型数据库 MySQL
|
2月前
|
存储 关系型数据库 MySQL
MySQL技能完整学习列表5、数据库操作——1、创建数据库和表——2、修改表结构(ALTER TABLE)
MySQL技能完整学习列表5、数据库操作——1、创建数据库和表——2、修改表结构(ALTER TABLE)
183 0
|
3月前
|
SQL 关系型数据库 MySQL
MySQL | 数据库的管理和操作【表的增删改查】(二)
MySQL | 数据库的管理和操作【表的增删改查】(二)
|
15天前
|
缓存 关系型数据库 MySQL
MySQL查询优化:提速查询效率的13大秘籍(合理使用索引合并、优化配置参数、使用分区优化性能、避免不必要的排序和group by操作)(下)
MySQL查询优化:提速查询效率的13大秘籍(合理使用索引合并、优化配置参数、使用分区优化性能、避免不必要的排序和group by操作)(下)
|
1月前
|
存储 SQL 关系型数据库
【mysql】—— 表的操作
【mysql】—— 表的操作