IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Node.js学习-day8-数据库 -> 正文阅读

[大数据]Node.js学习-day8-数据库

数据库安装

我们需要安装mysql和mysql workbench,其中mysql是数据库服务器,mysql workbench是可视化数据库管理工具
安装mysql参考:https://blog.csdn.net/zhouzezhou/article/details/52446608
安装mysql workbench参考:https://blog.csdn.net/weixin_42066185/article/details/106522156

数据库常用语法

--这是注释
-- 通过 * 把users表中所有的数据查询出来
SELECT * FROM users

-- 从users表中把username和password对应的数据查询出来
SELECT username,password FROM users

-- 向users表中,插入新数据,username的值为tony stark,password 的值为098123
INSERT INTO users (username,password) values ('tony stark','098123')

-- 将 id为4的用户密码,更新为888888
UPDATE users set password='888888' where id=4

-- 更新 id 为2的用户,把用户密码更新为admin123同时,把用户的状态更新为 1
update users set password='admin123',status=1 where id = 2

-- 删除users表中,id为4的用户
delete from users where id = 4

-- 使用AND来显示所有状态为0且id小于3的用户
select * from users where status = 0 and id<3

-- 使用OR来显示所有状态为1或者username为zs的用户
 select * from users where status = 1 or username='zs'
 
-- 对users表中的数据,按照status字段进行升序排序,order by 默认升序,ASC是升序的意思
select * from users order by status

-- 按照id对结果进行降序排序,desc表示降序排序
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

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

  1. 安装操作MySQL数据库的第三方模块
  2. 通过mysql模块连接到MySQL数据库
  3. 通过mysql模块执行SQL语句
npm install mysql
//导入mysql模块
const mysql = require('mysql2')
//建立与mysql数据库的连接关系
const db = mysql.createPool({
    host:'127.0.0.1',
    port:3306,
    user:'root',
    password:'admin123',
    database:'my_db_01',
})

//检查mysql模块能否正常工作
db.query('select 1',(err,result)=>{
    if(err) return console.log(err.message)
    console.log(result);
})

使用mysql模块操作MySQL数据库

//导入mysql模块
const mysql = require('mysql2')
//建立与mysql数据库的连接关系
const db = mysql.createPool({
    host:'127.0.0.1',
    port:3306,
    user:'root',
    password:'admin123',
    database:'my_db_02',
})

const sqlstr = 'select * from users'
db.query(sqlstr,(err,result)=>{
    if(err)return console.log(err.message);
    //注意:如果执行的是select查询语句,则执行的结果是数组
    console.log(result);
})

在这里插入图片描述

//如果执行的insert插入语句,则result是一个对象,可以通过affectedRows属性查询是否成功
const user = {username:'Spider-man',password:'pcc321'}
//? 表示占位符
const sqlStr = 'insert into users (username,password) values (?,?)'

db.query(sqlStr,[user.username,user.password],(err,result)=>{
    if(err)return console.log(err.message);
    if(result.affectedRows===1)console.log('插入数据成功');
})

插入语句快捷方式:

const user = {username:'Spider-man2',password:'pcc321'}
//这里不需要逐一写字段,可以自动匹配
const sqlStr = 'insert into users set ?'

db.query(sqlStr,user,(err,result)=>{
    if(err)return console.log(err.message);
    if(result.affectedRows===1)console.log('插入数据成功');
})

更新用户数据

const user = {id:7,username:'aaa',password:'000'}
//? 表示占位符 和query中[]逐一匹配
const sqlStr = 'update users set username=?,password=? where id=?'

db.query(sqlStr,[user.username,user.password,user.id],(err,result)=>{
    if(err)return console.log(err.message);
    if(result.affectedRows===1)console.log('更新数据成功');
})

--------便捷方式
const user = {id:5,username:'bbb',password:'000'}
//? 表示占位符
const sqlStr = 'update users set ? where id=?'

db.query(sqlStr,[user,user.id],(err,result)=>{
    if(err)return console.log(err.message);
    if(result.affectedRows===1)console.log('更新数据成功');
})

删除数据

//删除数据建议使用id,因为id具有唯一标识
//占位符只有一个,数组可以省略
const sqlStr = 'delete from users where id=?'

db.query(sqlStr,7,(err,result)=>{
    if(err)return console.log(err.message);
    if(result.affectedRows===1)console.log('更新数据成功');
})

标记删除:使用delete语句,会真正的把数据从表中删除,为了保险起见,推荐使用标记删除形式,来模拟删除的动作。所谓的标记删除,就是在表中设置类似与status这样的状态字段,来标记当前这条数据是否被删除。当用户执行了删除的动作时,我们并没有执行delete语句把数据删除,而是执行了update语句,将这条数据对应的status字段标记为删除即可。

const sqlStr = 'update users set status=? where id=?'
db.query(sqlStr,[1,5],(err,result)=>{
    if(err)return console.log(err.message);
    if(result.affectedRows===1)console.log('删除成功');
})
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-02-28 15:36:32  更:2022-02-28 15:36:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 12:02:49-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码