在Express中使用SQL语句

引入封装好的工具

const db = require('../model/database')
const query = require('../model/query')

排序语句

// 降序
let sql = 'SELECT * FROM user ORDER BY id DESC'
// 升序
let sql = 'SELECT * FROM user ORDER BY id ASC'

统计语句

// 统计user表中的数据条数
let sql = 'SELECT COUNT(*) FROM user'
// 统计user表中的数据条数,且id大于5
let sql = 'SELECT COUNT(*) FROM user WHERE id > 5'
// 别名
let sql = 'SELECT COUNT(*) AS count FROM user'

分页语句

// 从第0条开始,取5条数据
let sql = 'SELECT * FROM user LIMIT 0,5'
// 从第5条开始,取5条数据
let sql = 'SELECT * FROM user LIMIT 5,5'
// 前端分页器
let sql = 'SELECT * FROM user LIMIT ?,?'
let params = [(page - 1) * pageSize, pageSize]
// 上述两个语句等价于
let sql = `SELECT * FROM user LIMIT ${(page - 1) * pageSize},${pageSize}`

模糊查询

// 模糊查询
let sql = 'SELECT * FROM user WHERE name LIKE ?'
let params = ['%张%']
// 上述两个语句等价于
let sql = `SELECT * FROM user WHERE name LIKE '%张%'`

多表查询

// 多表查询
let sql = 'SELECT * FROM user,article WHERE user.id = article.user_id'

多表联合查询

// 多表联合查询
let sql = 'SELECT * FROM user LEFT JOIN article ON user.id = article.user_id'

上面的语句意思是:从user表中取出所有数据,然后从article表中取出所有数据,然后将两个表中的数据进行合并,合并的条件是user表中的id字段和article表中的user_id字段相等。

子查询

// 子查询
let sql = 'SELECT * FROM user WHERE id IN (SELECT user_id FROM article)'

上面的语句是,先从article表中取出所有的user_id,然后再从user表中取出id字段在上面取出的user_id中的数据。

Last Updated:
Contributors: 黄定鑫