本文介绍: 当用户执行删除动作时,我们没有执行delete语句把这条数删除,而是执行update语句,将这条语句status字段标记删除即可。在selectupdatedelete语句中,都可以使用where子句指定选择标准使用delete语句,会把真正的数据表中删除。为了保险起见,推荐使用标记删除的形式,来模拟删除的动作。所谓的标记删除,就是在表中设置类似于status这样的状态字段,来标记当前条数是否被删除。执行结果存储一个结果表中。注:SQL的语句中的关键字大小写敏感

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子句用于限定选择标准。在selectupdatedelete语句中,都可以使用where子句指定选择标准

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

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

 

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

6.SQL的andor运算符

(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("删除数据成功");
    }
})

原文地址:https://blog.csdn.net/weixin_63048999/article/details/127717002

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_34964.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注