Express -- Mysyql的基本操作

数据以表格形式存储,通过设定的字段对每一行数据进行划分。

express连接数据库的流程

//1.导入
const mysql = require('mysql')
//2.CretaePool生成连接对象
const db = mysql.createPool({
  // 数据库的Ip地址
  host: '127.0.0.1',
  // 数据库权限用户验证
  user: 'root',
  password: "admin123",
  // 指定操作库
  database: 'users'
})
3.db.query发送sq语句,回调中result返回内容如下表连接成功
db.query('select 1', (err, result) => {
    if (err) { console.log(err); return }
    console.log(result)// 返回[ RowDataPacket { '1': 1 } ]为连接成功
  })

sql语句操作

// 1.查询     
db.query('select * from users where status =0', (err, result) => {
    if (err) { console.log(err); return }
// 返回一个数组包含每一行所有字段信息。
    console.log(result)
  })

// 2.// 插入数据操作
const user = { username: '亚索', password: 123 }
// insert into 表名,(字段) value(?:表占位符接收对应字段值)
const sqlStr = 'insert into users (username,password) value (?,?)'
//db.query(执行语句,[占位符接收的值,如果值.length=1可不使用数组包裹],完成回调)
db.query(sqlStr, [user.name, user.password], (err, results) => {
  if (err) { console.log(err); return }
   // 检测是否插入:affectedRows 检测影响行数,如果为1则表插入成功
  if (results.affectedRows === 1) {
    console.log('插入成功')
  }
})

// 简写:定义的对象属性名对应字段名,值对应字段值。
/*const user = { username: 'zed', password: 123 }
const sqlStr = 'insert into users set ?'
db.query(sqlStr, user, (err, results) => {
  if (err) { console.log(err); return }
  if (results.affectedRows === 1) {
    console.log('插入成功')
  }
})
*/
3. // 更新数据
const user = { username: "快乐风男", password: 123456, id: 5 }
// 使用占位符接受修改的值
const str = 'update users set username=?,password=? where id =?'
db.query(str, [user.username, user.password, user.id], (err, res) => {
  if (err) { console.log(err); return }
  if (res.affectedRows === 1) {
    select()
  }
})*/

// 简写
/*const user = { username: "风男", password: 123456, id: 5 }
const str = 'update users set? where id=?'
// 【user】自动进行对对象名与值的提取
db.query(str, [user, user.id], (err, res) => {
  if (err) { console.log(err); return }
  if (res.affectedRows === 1) {
    select()
  }
})*/

4. 删除
// delete不推荐使用:删了就真删了。
/*const str = 'delete from users where id = ?'
db.query(str, 10, (err, res) => {
  if (err) { console.log(err); return }
  if (res.affectedRows === 1) {
    select()
  }
})*/

// 标记删除:通过更新状态值来表示用户被删除,这条数据依旧存在
const str = 'update  users set status=? where id = ?'
db.query(str, [1, 2], (err, res) => {
  if (err) { console.log(err); return }
  if (res.affectedRows === 1) {
    select()
  }
})
-- 按照 id 对结果进行降序的排序  desc 表示降序排序   asc 表示升序排序(默认情况下,就是升序排序的)
 select * from users order by id desc

-- 对 users 表中的数据,先按照 status 进行降序排序,再按照 username 字母的顺序,进行升序的排序
 select * from users order by status desc, username asc

-- 使用 count(*) 来统计 users 表中,状态为 0 用户的总数量
select count(*) from users where status=0

-- 使用 AS 关键字给列起别名
 select count(*) as total from users where status=0
 select username as uname, password as upwd from users

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值