node.js中的MySQL的使用

MySQL的基本用法

1.SQL的select语句

select语句用于从表中查询数据。执行的结果被存储在一个结果表中。语法格式如下:

--SQL的注释
​
--从FROM指定的表中,查询出所有的数据,*表示所有列
​
SELECT*FROM表名称
​
--从FROM指定的表中,查询出指定的列名称(字段)的数据
SELECT 列名称 FROM 表名称

注:SQL的语句中的关键字对大小写不敏感。SELECT相当于select

-- 通过*查询所有的数据
SELECT * FROM users;
-- 查询users中的部分数据
SELECT username,password from users ;

2.SQL的INSERT INTO语句

(1)语法

INSERT INTO语句用于想数据表中插入新的数据行,语法形式如下:

--列和表要一一对应,多个列和多个值之间使用英文的逗号
INSERT INTO table_name(列1,列2,...) VALUES(值1,值2,...)
--向users插入新数据,username=ww&&password=202102943
insert into users (username ,password) values('ww','202102943');

3.SQL的UPDATE的语句

update语句用于修改表中的数据。语法格式如下:

--1.用update指定要更新那个表中的数据
--2.用set指定列对应的新值
--3.用where指定更新的条件
update 表名称 set 列名称=新值 where 列名称=某值

4.SQL中的delete语句

1.语法

delete语句用于删除表中的行。语法格式如下:

--从指定的表中,根据where条件,删除对应的数据行
delete from 表名称 where 列名称=值
delete from users where id=1;
select * from users;

5.SQL的where子句

(1)语法

where子句用于限定选择的标准。在select、update、delete语句中,都可以使用where子句指定选择的标准。

select 列名称 from 表名称 where 列 运算符 值
update 表名称 set列=新值 where 列 运算符 值
delete from 表名称 where 列 运算符 值

(2)可在where子句中使用的运算符

 

注意:在某些版本的 SQL 中,操作符 <> 可以写为 !=。

6.SQL的and和or运算符

(1)语法

and和or可在where子语句中把俩个或多个条件结合起来。

and表示必须同时满足多个条件,相当于js中的&&运算法。

or表示满足任意一个条件即可,相当于js中的||运算法

7.SQL的order by子句

(1)语法

order by语句用于根据指定的列对结果集进行排序。

order by语句默认按照升序对记录进行排序。

按照降序的形式进行排序,可以使用desc关键字。

select *from users order by status;
select * from users order by id desc;

(2)order by子句-多重排序

对users表中的数据,先按照status字段进行降序排序,再按照username的字母顺序,进行升序排序,实例如下:

select * from users order by status desc,username ASC;

8.SQL的COUNT(*)函数

(1)语法

COUNT(*)函数用于返回查询结果的总数据条数,语法格式如下:

SELECT COUNT(*) FROM 表名称
select count(*) from users where status=0;

2.使用AS关键字为列设置别名

给查询的列名称设置别名,可以使用AS关键字,实例如下:

select count(*) as total from users where id>1 and status=0;

二.在项目中操作MySQL

1.操作步骤

(1)安装操作MySQL数据库的第三方模块(mysql)

npm i mysql

(2)通过mysql模块连接到MySQL数据库

const mysql=require('mysql')

(3)通过MySQL模块执行SQL语句

const db=musql.createPool{
host:'127.0.0.1',
username:'root',
password:'admin123',
database:'new)data01'
}

2.查询数据

查询users表中的数据:

db.query('select * from users',(err,result)=>{
​
  if(err)return console.log(err);
​
  console.log(result);
​
})

3.0插入数据

向users表中新增数据,其中username为spider-man,passwor为pcc321.实例代码如下:

const user={username:"spider-man",password:"pcc123"}
​
const sqlStr='insert into users(username,password) values(?,?)'
​
db.query(sqlStr,[user.username,user.password],(err,result)=>{
​
  if(err)return* console.log(err);
​
  if(result.affectedRows===1){
​
    console.log("数据插入成功");
​
  }
​
})

3.1便捷插入数据

向表中新增数据时,如果,每个对象的每个属性和数据表的字段一一对应,则可以通过如下方式快速插入数据:

const user={username:'lisi',password:"pab123"}
const sqlStr='insert into users set ?'
db.query(sqlStr,user,(err,results)=>{
    if(err)return console.log(err);
    if(results.offectedRows===1){
        console.log("数据插入成功");
    }
})

3.2更新数据

更新表中的数据:

const user1={id:22,username:'abc',password:'000'}
const sqlStr1='update users set username=?,password=? where id=?'
db.query(sqlStr1,[user1.username,user1.password,user1.id],(err,results)=>{
    if(err)return console.log(err.message);
    if(results.affectedRows===1){
        console.log("数据更新成功");
    }
}) 

更新数据的简易方法

更新数据时,如果数据对象的每个属性和数据表的字段一一对应,则可以通过如下方式快速更新 表数据:

const user1={id:22,username:'abcc',password:'000'}
const sqlStr1='update users set ? where id=?'
db.query(sqlStr1,[user1,user1.id],(err,results)=>{
    if(err)return console.log(err.message);
    if(results.affectedRows===1){
        console.log("数据更新成功");
    }
}) 

3.3.1删除数据

在删除数据时,根据id这样的唯一标识,俩删除对应的数据,实例如下:

const sqlStr='delete from users where id=?'
db.query(sqlStr,22,(err,result)=>{
if(err)return console.log(err.message);
if(result.affectedRows===1){
    console.log('删除数据成功');
}
})

3.3.2标记删除

使用delete语句,会把真正的数据从表中删除。为了保险起见,推荐使用标记删除的形式,来模拟删除的动作。

所谓的标记删除,就是在表中设置类似于status这样的状态字段,来标记当前这条数据是否被删除。

当用户执行了删除的动作时,我们并没有执行delete语句把这条数据删除,而是执行了update语句,将这条语句的status字段标记为删除即可。

db.query('update users set status=1 where id=?',25,(err,results)=>{
    if(err)return console.log(err.message);
    if(results.affectedRows===1){
        console.log("删除数据成功");
    }
})

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值