1.5 SQL语句以及在Node中操作数据库

SQL学习目标

重点掌握如何使用SQL从数据表中:
查询数据(select)、插入数据(insert into)、更新数据(update)、删除数据(delete)

额外需要掌握的4种SQL语法:
where条件、and和or运算符、order by排序、count(*)函数

SQL语句学习

SQL的SELECT(查询)语句

1、语法
SELECT语句用于从表中查询数据。执行的结果被存储在一个结果表中,语法格式如下:
在这里插入图片描述
注意:SQL语句中的关键字对大小写不敏感。SELECT等效于select,FROM等效于from。

2、SELECT* 示例

我们希望从user表中选取所有的列,可以使用符号*取代列的名称,示例:
在这里插入图片描述
如需获取名为"username"和"password"的列的内容,则使用如下的语句:
在这里插入图片描述

SQL的 INSERT INTO (插入)语句

1、语法
INSERT INTO 语句用于向数据表中插入新的数据行,语法格式如下:
在这里插入图片描述
2、INSERT INTO 示例

向users表中,插入一条username为tony stark,password为098123的用户数据,示例如下:
在这里插入图片描述

SQL的 UPDATE (修改)语句

1、语法
Update 语句用于修改表中的数据,语法格式如下:
在这里插入图片描述
2、UPDATE 示例 - 更新某一行中的一个列
把users表中id为7的用户密码,更改为888888,示例如下:
在这里插入图片描述
把users表中id为2的用户密码和用户状态,分别更新为admin123和1,示例如下:
在这里插入图片描述

SQL的 DELETE (删除)语句

1、语法
DELETE 语句用于删除表中的行,语法格式如下:
在这里插入图片描述
2、DELETE 示例
从users表中,删除id为4的用户,示例如下:
在这里插入图片描述

SQL的 WHERE 子句

1、语法
WHERE 子句用于限定选择的标准。在SELECT、UODATE、DELETE语句中,皆可使用 WHERE 子句来限定选择的标准。
在这里插入图片描述
2、可在WHERE 子句中使用的运算符

下面的运算符可以在WHERE 子句中使用,用来限定选择的标准:
在这里插入图片描述《》
注意:<>可以写成 !=

SQL的 AND 和 OR 运算符

1、语法
AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。
AND 表示必须同时满足多个条件,相对于Javascript中的&&运算符,例如if(a!==10&&a!==20)
OR 表示只要满足任意一共条件即可,相对于Javascript中的 || 运算符,例如if(a!==10 || a!==20)

2、AND运算符示例
使用AND来显示所有status为0,并且id小于3的用户:
在这里插入图片描述
3、OR运算符示例
使用OR来显示所有status为1,或者username为zs的用户:
在这里插入图片描述

SQL的 ORDER BY子句

1、语法
ORDER BY 语句用于根据指定的列对结果进行排序。
ORDER BY 语句默认按照升序对记录进行排序。
如果你希望按照降序对记录进行排序,可以使用 DESC 关键字

2、ORDER BY子句 - 升序排序
在这里插入图片描述
3、ORDER BY子句 - 降序排序
对users表中的数据,按照id字段进行降序排序,示例如下:
在这里插入图片描述
4、ORDER BY 子句 - 多重排序
对users表中的数据,先按照status字段进行降序排序,在按照username的字母顺序,进行升序排列,示例如下:
在这里插入图片描述

SQL的 COUNT(*) 函数

1、语法:
COUNT()函数用于返回查询结果的总数据条数,语法格式如下:
在这里插入图片描述
2、COUNT(
)示例
查询users表中status为0的总数据条数:
在这里插入图片描述
3、使用AS 我i列设置别名
如果希望给查询出来的列名设置别名,可以使用AS关键字,示例:
在这里插入图片描述

在项目中操作数据库的步骤

  1. 安装操作MySQL数据库的第三方模块(mysql)
  2. 通过mysql模块链接到MySQL数据库
  3. 通过mysql模块执行SQL语句
    在这里插入图片描述
    1、安装mysql模块

nom install mysql

2、配置mysql模块
在使用mysql模块操作MySQL数据库之前,必须先对mysql模块进行必要的配置,主要配置步骤如下:
在这里插入图片描述
3、测试mysql模块能否正常工作
调用 db.query()函数,指定要执行的SQL语句,通过回调函数拿到执行的结果:
在这里插入图片描述

查询数据

查询users表中的所有的数据:
在这里插入图片描述
示例:
如果执行的是select查询语句,则执行的结果是数组

// 查询users表中所有的用户数据
const sqlStr = 'SELECT *FROM users'
db.query(sqlStr, (err, results) => {
    // 报错返回数据
    if (err) return console.log(err.message);
    // 打印出查询结果
    console.log(results);
})

添加数据

向users表中新增数据,其中username为 Spider-Man,password为pcc321.示例代码如下:
在这里插入图片描述
示例:

// 插入数据到users表中的数据对象
const user = { username: 'Spider-Man', password: 'pcc321' }
// 待执行的SQL语句,其中英文的 ? 表示占位符
const addStr = 'INSERT INTO users(username,password) VALUES(?,?)'
// 使用数组的形式,一次为 ? 占位符指定具体的值
db.query(addStr, [user.username, user.password], (err, results) => {
    if (err) return console.log(err.message);   //失败执行语句
    //如果执行的是INSERT INTO插入语句,则results是一个对象
    //可以通过affectedRows 属性,来判断是否插入数据成功
    if (results.affectedRows === 1) { console.log('插入数据成功'); }  //成功
})

插入数据的便捷方式:

向表中新增数据时,如果==数据对象的每个属性和数据表的字段一 一对应,==则可以通过如下方式快速插入数据:
在这里插入图片描述
示例:

// 插入数据便捷方式
const user = { username: 'Spider-Man2', password: 'pcc123' }
const addStr = 'INSERT INTO users set ?'
db.query(addStr, user, (err, results) => {
    if (err) return console.log(err.message);   //失败执行语句
    if (results.affectedRows === 1) { console.log('插入数据成功'); }  //成功
})

修改数据

在这里插入图片描述
示例:
修改id为4,把username改为aaa,把password改为000

//演示如何更新用户信息
const user = { id: 4, username: 'aaa', password: '000' }
const xgStr = 'update users set username=?,password=? where id=?'
db.query(xgStr, [user.username, user.password, user.id], (err, results) => {
    if (err) return console.log(err.message);   //失败执行语句
    if (results.affectedRows === 1) { console.log('更新数据成功'); }
})

修改数据的便捷方式:

修改数据时,如果==数据对象的每个属性和数据表的字段一 一对应,==则可以通过如下方式快速更新数据:
在这里插入图片描述
示例:

//更新数据便捷方式
const user = { id: 4, username: 'ccc', password: '11111' }
const xgStr = 'update users set ? where id=?'
db.query(xgStr, [user, user.id], (err, results) => {
    if (err) return console.log(err.message);   //失败执行语句
    if (results.affectedRows === 1) { console.log('更新数据成功'); }
})

删除数据

在删除数据时,推荐根据id这样的唯一标识,来删除对应的数据,示例如下:
在这里插入图片描述

// 删除id为5的用户
const scStr = 'delete from users where id=?'
db.query(scStr, 5, (err, results) => {
    if (err) return console.log(err.message);   //失败执行语句
    if (results.affectedRows === 1) { console.log('删除数据成功'); }
})

标记删除

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_46073653/article/details/125274283
1.5
今日推荐