栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

数据库MySQL 的增删改查使用

数据库MySQL 的增删改查使用

1. 什么是 SQL SQL(英文全称:Structured Query Language)是 结构化查询语言 ,专门用来 访问和处理数据库 的编程语言。能够让 我们 以编程的形式 , 操作数据库里面的数据 。 三个关键点: ① SQL 是一门 数据库编程语言 ② 使用 SQL 语言编写出来的代码,叫做 SQL 语句 ③ SQL 语言 只能在关系型数据库中使用 (例如 MySQL、Oracle、SQL Server)。非关系型数据库(例如 Mongodb) 不支持 SQL 语言 2. SQL 能做什么 ① 从数据库中 查询数据 ② 向数据库中 插入新的数据 ③ 更新 数据库中的 数据 ④ 从数据库 删除数据 ⑤ 可以创建新数据库 ⑥ 可在数据库中创建新表 ⑦ 可在数据库中创建存储过程、视图 ⑧ etc... 重点掌握如何使用 SQL 从数据表中的: 查询数据(select) 、插入数据(insert into) 、更新数据(update) 、删除数据(delete) 额外需要掌握的 4 种 SQL 语法: where 条件、and 和 or 运算符、order by 排序、count(*) 函数 SELECT 语句 SELECT 语句用于 从表中查询数据 。执行的结果被存储在一个 结果表 中(称为 结果集 )
-- 这是注释
-- 从FROM 指定的[表中],查询出[所有的]数据。* 表示[所有列]
select * from 表名称

-- 从 FROM 指定的[表中],查询出指定 列名称 (字段) 的数据。
select 列名称 from 表名称

注意:SQL语句中的关键字对大小写不敏感,效果一样,提示的为大写;

INSERT INTO 语句 INSERT INTO 语句用于 向数据表中 插入新的数据行
-- 语法解读: 向指定的表中,插入如下几列数据,列的值通过values 一一指定
-- 注意:列和值要一一对应,多个列和多个值之间,使用英文的逗号分隔
insert into username(列1,列2,...) values (值1,值2,...)
-- 注意:新的数据(values里面的值)需要加上引号,否则会报错
insert into 表名 set 字段1=值1,字段1=值1,字段1=值1;(推荐使用这种,列和值不会匹配错误)

UPDATe 语句 Update 语句用于 修改表中的数据
-- 语法解读:
-- 1.用 update 指定要更新哪个表中的数据
-- 2.用 set 指定列对应的新值
-- 3.用 where 指定更新的条件
-- 注意:初学者经常忘记提供更新的 where 条件,这样会导致整张表的数据都被更新,(一定要慎重!!!)
update 表名称 set 列名称 = 新值 where 列名称 = 某值
update users set password=654321 where id=4
-- 多个被更新的列之间,使用英文的逗号进行分隔
update users set password=888888,status=1 where id=4

DELETE 语句 DELETE 语句用于删除表中的行
-- 语法解读:
-- 从指定的表中,根据 where 条件,删除对应的数据行
delete from 表名称 where 列名称 = 值
-- 注意:初学者经常忘记提供更新的 where 条件,这样会导致整张表的数据都被更新,(一定要慎重!!!)
delete from users where id=4

WHERe 子句 WHERe 子句用于 限定选择的标准 。在 SELECt 、 UPDATE 、 DELETE 语句中, 皆可使用 WHERe 子句来限定选择的标准
-- 查询语句中的 where 条件
select 列名称 from 表名称 where 列 运算符 值
-- 更新语句中的 where 条件
update 表名称 set 列=新值 where 列 运算符 值
-- 删除语句中的 where 条件
delete from 表名称 where 列 运算符 值

3.可以通过 where 子句来限定 select 的查询条件

-- 查询 id 为 1 的所有用户
select * from users where id=1

-- 查询 id 大于 2 的所有用户
select * from users where id>2

-- 查询 username 不等于 admin 的所有用户
select * from users where username<>'zs'
可在 WHERe 子句中使用的 运算符 下面的运算符可在 WHERe 子句中使用,用来限定选择的标准: 注意:在某些版本的 SQL 中,操作符 <> 可以写为 !=

 

AND 和 OR 运算符 AND 和 OR 可 在 WHERe 子语句 中 把两个或多个条件结合起来 。 AND 表示 必须同时满足多个条件 ,相当于 Javascript 中的 && 运算符,例如 if (a !== 10 && a !== 20) OR 表示 只要满足任意一个条件即可 ,相当于 Javascript 中的 || 运算符,例如 if(a !== 10 || a !== 20)
-- and
-- 使用 AND 来显示所有 status 为 0,并且 id 小于 3 的用户
select * from users where status=0 and id<3
-- or
-- 使用 or 来显示所有 status 为 1,或者 username 为 zs 的用户
select * from users where status=0 or username='zs'

ORDER BY 子句 ORDER BY 语句用于 根据指定的列 对结果集进行排序 。 ORDER BY 语句 默认 按照 升序 对记录进行排序。 如果您希望按照 降序 对记录进行排序,可以使用 DESC 关键字。
对 users 表中的数据,按照 status 字段进行升序排序
-- 下面的这两条 SQL 语句是等价的
-- 因为 order by 默认进行升序排序
select * from users order by status
-- 其中, ASC 关键字代表升序排序
select * from users order by status asc

对 users 表中的数据,按照 id 字段进行降序排序
-- desc 代表降序排序
select * from users order by status desc

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

COUNT(*) 函数 COUNT(*) 函数用于返回 查询结果的 总数据条数
select count(*) from 表名称

-- 查询 users 表中 status 为 0 的总数据条线
select count(*) from users where status=0

如果希望给查询出来的列名称设置别名,可以使用 AS 关键字

-- 将列名从 count(*) 修改为 total
select count(*) as total from users where status=0

-- 将列名 username 改为 uname, password 改为upwd
select username as uname, password as upwd from users

手写 MySQL 的增删改查 项目中操作数据库的步骤: ① 安装操作 MySQL 数据库的第三方模块( mysql ) ② 通过 mysql 模块 连接到 MySQL 数据库 ③ 通过 mysql 模块 执行 SQL 语句

 安装 mysql 模块

mysql 模块是托管于 npm 上的 第三方模块 。它提供了在 Node.js 项目中 连接 和 操作 MySQL 数据库的能力。 想要在项目中使用它,需要先运行 npm i mysql 命令,将 mysql 安装为项目的依赖包: 配置 mysql 模块 在使用 mysql 模块操作 MySQL 数据库之前, 必须先对 mysql 模块进行必要的配置
// 1.导入mysql模块
const mysql = require('mysql')

// db 表示连接对象
const db = mysql.createPool({
    host: '127.0.0.1', //表示连接哪一个服务器上面的mysql数据库
    user: 'root', //数据库的用户名
    password: 'root', //数据库密码
    database:'web67' //指定操作哪个数据库
})
测试 mysql 模块能否正常工作 调用 db.query() 函数,指定要执行的 SQL 语句,通过回调函数拿到执行的结果: 1. 查询数据 查询 users 表中所有的数据:
// 查询语句 data得到是一个数组  增删改 得到是受影响的行数
db.query('select * from users', (err, data) => {
    // 如果连接失败 或者 sql语句写错
    if (err) return console.log(err.message)
    // 如果数组的长度为0 就表示表中没有数据
    if (data.length === 0) return console.log('表里面没有数据')
    console.log(data)
})

2. 插入数据 向 users 表中新增数据
// 注意:postman传递过来的参数的名 要与数据表的字段名一样
app.post('/addUser', (req, res) => {
    // 获取数据
    const data = req.body
    // 构建sql语句
    const sql = 'insert into users set ?'
    // 执行sql 使用数组的形式来给 ?
    db.query(sql, data, (err, data) => {
        // 判断dql是否执行失败
        if (err) return console.log(err.message)
        // 如何判断如果插入成功
        if (data.affectedRows !== 1) return console.log('数据写入失败')
        // 如果写入成功
        res.send({
            status: 0,
            msg:'数据写入成功'
        })
    })
})
4. 更新数据 可以通过如下方式,更新表中的数据:
// 根据id来更新username
app.post('/updateuser', (req, res) => {
    // 获取客户端提交过来的数据
    const body = req.body
    // 构造sql语句
    const sql = 'update users set ? where id = ?'
    // 执行sql
    db.query(sql, [body, body.id], (err, data) => {
        // 判断sql语句是否有错误
        if (err) return console.log(err.message)
        if (data.affectedRows !== 1) return console.log('更新失败')
        // 向客户端响应结果
        res.send({
            status: 0,
            msg:'用户更新成功'
        })
    })
})
6. 删除数据 在删除数据时,推荐根据 id 这样的唯一标识,来删除对应的数据。
// 假删除 ---> 回收站 将需要被删除的这个用户的status值设置为0
app.get('/deluser/:id', (req, res) => {
    // 1.获取客户端提交过来的数据
    const id = req.params.id
    // 2.构建sql语句
    const sql = 'update users set status = 0 where id = ?'
    // 3.执行sql
    db.query(sql, id, (err, data) => {
        // 判断sql语句是否有错误
        if (err) return console.log(err.message)
        if (data.affectedRows !== 1) return console.log('删除失败')
        // 删除成功
        res.send({
            status: 0,
            msg:'删除成功'
        })
    })
})

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/312788.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号