nodejs+vue+element+eachers构建开源项目大型连续剧(2)安装mysql数据库,在nodejs服务器中操作数据库数据

news2024/9/25 13:20:12

        太长时间没更新了,然后,理由是什么呢?是因为阳了,真没想到,吃嘛嘛香的我忽然阳了,果然阳的初期症状就是嘴硬。然后,开始我们连续剧的第二集。

一、进行mysql的安装

        学习第一步,从安装开始,别管会不会,先管有没有,你可以说我不会,但不能说我没有。

        下载链接: 百度网盘下载链接

        里面有详细的安装步骤,按照步骤安装即可。

        安装完成后,通过打开MySQL Workbench 8.0 CE 登录我们的账户进入到数据库界面。

 二、创建数据库和表

        创建数据库

         创建数据表

 

 

         向表内写入数据

                右键表选择第一个进行数据的录入

         sql语言

                通过sql语言实现数据的增删改查

查询数据       

                查询代码

--  通过 *把表中的所有数据查询出来
select * from users
-- 从users表中把username和password查询出来
select username,password from users

 添加数据

 向表中添加数据

-- 向表中添加数据,值与表中的值一一对应
insert into users (username,password) values ('we','456789')

修改数据

更新数据代码

-- 将id为3的用户的密码更新为888888
update users set password='888888' where id=3

 更新多个

-- 将id为2的用户密码改为admin123status改为1
update users set password='admin123',status=1 where id=2

 删除数据

 具体代码

-- 在users中删掉id为3的用户信息
delete from users where id=3

where子句

 

and与or运算符

 

 and代码

-- 使用and来查询状态为0且id<2的数据
select * from users where status=0 and id<2

or代码

-- 使用or查询username为zs或状态为1的数据
select * from users where username='zs' or status=1

order by子句

 进行升序

-- 按照状态进行升序排序
 select * from users order by status

进行降序

 -- 按照id进行降序排序
select * from users order by id desc

多重排序

-- 对users表中的数据,先按照status进行降序再按照username进行升序
select * from users order by status desc , username 

count(*)语法

 count代码

-- 使用count(*)来统计users表中,状态为0的数据条数
select count(*) from users where status=0

as设置别名

 代码

-- 通过as关键字给列起别名
select count(*) as total from users where status=0

三、在node中去操作数据库

1.安装第三方的mysql模块--mysql提供了在nodejs中操作数据库的能力

yarn add mysql

2.配置mysql模块

        新建db.js文件用于数据库的配置

//1.导入mysql模块
const mysql = require('mysql')
//2.建立与mysql数据库的连接关系
const db = mysql.createPool(
    {
        host: '127.0.0.1',//数据库ip
        user: 'root',//登录数据库的账号
        password: 'admin123',//登录数据库密码
        database: 'csdnyanshi'//指定操作按个表
    }
)
//测试mysql模块能否正常工作
db.query('select 1', (err, res) => {
    //mysql模块工作期间报错了
    if (err) return console.log(err.message);
    //能够正常执行mysql模块
    console.log(res);
})

输出[ RowDataPacket { '1': 1 } ]表示连接成功,host对应是数据库的ip地址,不是电脑的

3.使用mysql去操作数据---就是在nodejs中执行对应的SQL语句

查询数据

//1.导入mysql模块
const mysql = require('mysql')
//2.建立与mysql数据库的连接关系
const db = mysql.createPool(
    {
        host: '127.0.0.1',//数据库ip
        user: 'root',//登录数据库的账号
        password: 'admin123',//登录数据库密码
        database: 'csdnyanshi'//指定操作按个表
    }
)
//测试mysql模块能否正常工作
const sqlStr = 'select * from users'
db.query(sqlStr, (err, res) => {
    //mysql模块工作期间报错了
    if (err) return console.log(err.message);
    //能够正常执行mysql模块
    console.log(res);
})

插入数据

//需要插入的数据
const user = {username:'mz',password:'123456'}
//执行的SQL语句,?表示占位符
const sqlStr = 'insert into users (username,password) values (?,?)'
//执行
db.query(sqlStr,[user.username,user.password],(err,res)=>{
    if(err) return err.message
    console.log(res);
})

快速的插入数据

//快速插入数据
const user = {username:'mz2222',password:'123456'}
//执行的SQL语句,?表示占位符
const sqlStr = 'insert into users set ?'
//执行
db.query(sqlStr,user,(err,res)=>{
    if(err) return console.log(err.message);
    if(res.affectedRows=1) console.log(res);
})

更新数据

//更新表中的数据
const user = {username :'111',password:'222',id:6}
const sqlStr= 'update users set username=?,password=? where id=?'
db.query(sqlStr,[user.username,user.password,user.id],(err,res)=>{
    if(err) return console.log(err.message);
    if(res.affectedRows=1) console.log(res);
})

快速更新数据

//快速更新数据
const user = {username :'11122',password:'222',id:6}
const sqlStr= 'update users set ? where id=?'
db.query(sqlStr,[user,user.id],(err,res)=>{
    if(err) return console.log(err.message);
    if(res.affectedRows=1) console.log(res);
})

删除数据

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

标记删除-----在数据中用字段进行标识并不是真正的删除,不然没法恢复

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/127507.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[极客大挑战 2019]BuyFlag1(BUUCTF)

前言: 这篇文章还是是为了帮助一些 像我这样的菜鸟 找到简单的题解 题目描述 解题工具: 我爱用edit this cookie2和hackerbar&#xff0c; 当然也可以burpsuite和fiddler抓包 解题过程: 看到他说flag要100000000 MONEY&#xff0c; 还要是Cuits students&#xff0c; …

GCC嵌入汇编特性

前言 在C语言编程中&#xff0c;使用汇编指令有两种方式&#xff0c;一种是使用单独的汇编源文件&#xff0c;在最后编译的时候和其它C工程文件编译到一起&#xff0c;这种方式能够做到汇编函数和C函数的互相调用&#xff0c;但是如果希望在C语言中直接调用汇编表达式就不是那…

kibana在linux环境安装实战遇到的问题汇总

kibana在linux环境安装实战遇到的问题汇总&#xff1a; 1、找不到主节点的错误&#xff1a; savedobjects-service] Unable to connect to Elasticsearch. Error: [master_not_discovered_exception] null 原因是找不到es的主节点&#xff0c;意思是es没有配置主节点。 解决…

【Spring】Spring @Cacheable 官方学习及demo

文章目录前言Cacheable 的来源应用场景集成Redis的思路代码及验证后记前言 Spring 有很多声明式的编程风格&#xff0c;Transactional 是&#xff0c;Cacheable 也是。说起 Transactional&#xff0c;复杂的事务情况下&#xff0c;这个注解也有局限&#xff0c;需要用到编程式…

奇安信病毒检测中心 2022年第二季度App收集个人信息检测报告 学习笔记 附下载地址

奇安信 2022年第二季度App收集个人信息检测报告 下载地址 2022年第二季度 APP收集个人信息 检测报告 奇安信 病毒响应中心 研究背景 随着互联网和移动设备的发展&#xff0c;手机已成为人人都拥有的设备&#xff0c;其中各式各样的APP更是丰富了人们的生活&#xff0c;从社交…

现在考系统集成项目管理工程师有用吗?

有用&#xff01; 现在考系统集成项目管理工程师还是挺有用的哈&#xff0c;虽然它资质评定国务院取消了&#xff0c;但它是由国家人力资源和社会保障部、工业和信息化部领导下的国家级考试&#xff0c;并且是职业资格考试、职称资格考试和水平考试。 系统集成项目管理工程师…

sql-labs靶场环境搭建及搭建过程遇到的问题

sql-labs是github上的一个开源项目&#xff0c;通过闯关的方式训练自己的SQL注入。 下载php-study 进入官网 php-study 下载sql-labs 进入github sql-labs 将sql-labs下载到php-study的WWW\目录下&#xff0c;解压。 配置sql-llibs 记事本打开sqli-labs-master\sql-conn…

用python采集四大电商平台商品数据进行对比

前言 大家早好、午好、晚好吖 ❤ ~ 环境介绍: python 3.8 越稳定越好 pycharm 2021专业版 一、考拉 模块使用: requests >>> pip install requests parsel >>> pip install parsel 代码展示 导入模块 # import 导入模块 import requests # 第三方…

这届黑客不讲武德

编者按 腾讯安全2022年典型攻击事件复盘第七期&#xff0c;希望帮助企业深入了解攻击手法和应对措施&#xff0c;完善自身安全防御体系。 本篇讲述了某物流公司遭遇不明黑客攻击&#xff0c;腾讯安全服务团队和客户通力合作&#xff0c;排查溯源&#xff0c;最后揪出黑客的尾…

十、HashMap详解

文章目录小结底层源码框架特点源码详解小结 Map接口的常用实现类:HashMap、Hashtable和Properties.HashMap是Map接口使用频率最高的实现类。HashMap是以 key-val对的方式来存储数据(HashMap$Node类型)key不能重复&#xff0c;但是值可以重复,允许使用null键和null值。如果添加…

Android设计模式详解之组合模式

前言 组合模式也称为部分整体模式&#xff0c;结构型设计模式之一&#xff1b; 定义&#xff1a;将对象组合成树形结构以表示“部分-整体”的层次结构&#xff0c;使得用户对单个对象和组合对象的使用具有一致性&#xff1b; 使用场景&#xff1a; 表示对象的部分-整体的层…

屏幕录制为什么没声音?检查这2项,轻松解决

相信很多人在录制视频的时候都会遇到各种各样的问题&#xff0c;比如录制的视频没有声音。屏幕录制为什么没声音&#xff1f;今天小编就和大家分享一下如何录制音画同步视频的具体操作方法。如果你有录制的视频没有声音&#xff0c;你可以试试这个方法。 一、检查是否打开电脑系…

amCharts 5: Maps 附加组件

amCharts 5: Maps 附加组件 将reverseGeodata设置添加到MapPolygonSeries。如果设置为true&#xff0c;将反转GeoJSON数据中多边形角的方向。 向MapLine添加了新的linechanged事件。 amCharts 5&#xff1a;地图 amCharts:Maps是amCharts:Charts的附加组件。使用它可以将完整的…

Java学习笔记【7】面向对象

⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐ &#x1f300; 个人首页&#xff1a;&#x1f3e0; 星空之路Star &#x1f3e0; &#x1f300; 所属专栏&#xff1a;&#x1f4d6; Java知识点总结 &#x1f4d6; &#x1f300; 大家好&#x1f91d; 我是 &#x1f449;老孙&#x1f448; &…

操作系统期末考试必会题库5——文件管理

1、画出文件系统的层次模型&#xff0c;并描述各层的功能。 2、某文件系统为一级目录&#xff0c;文件的数据一次性写入磁盘&#xff0c;已经写入的文件不可修改&#xff0c;但可以多次创建新文件&#xff0c;请回答&#xff1a; (1) 采用哪种文件物理结构形式更适合&#xff…

hnu计网实验二-网络基础编程实验(JAVA\Python3)

前言&#xff1a;这次实验用的是python语言&#xff0c;但是本人的python也不是很强&#xff0c;所以代码大部分也是借鉴别人的。实验本身还是很有趣的 一、实验目的 通过本实验&#xff0c;学习采用Socket&#xff08;套接字&#xff09;设计简单的网络数据收发程序&#xf…

Qt编写雷达模拟仿真工具

一、前言 雷达模拟仿真工具&#xff0c;已发布很长一段时间&#xff0c;一直以来没有好好整理该系列文章&#xff0c;在刘哥6.5的极力推荐下&#xff0c;整理出该系列的更加详细细节的文章出来。懒散了很久&#xff0c;也颓废了不少&#xff0c;人啊&#xff0c;感觉不能颓废下…

Python入门小案例: 采集全网表情包图片

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 又到了学Python时刻~ 环境使用: Python 3.8 Pycharm 2021.2版本 模块使用: import requests >>> pip install requests -pip install -i https://pypi.doubanio.com/simple/ requests import re 安装pyt…

Revit中:该扶手的坡度可能与梯段及平台楼梯不平行问题

一、Revit中单独绘制楼梯扶手问题 单独绘制扶手的时候总是会出现梯段及平台上的楼梯不平行&#xff0c;这种情况怎么办? 在正常操作下楼梯会制动生成扶手&#xff0c;但有时候还是回碰到单独绘制扶手的时候然后就会出现这样的些问题&#xff0c;如图1、图2所示。 解决方法&…

(Research)深度迁移学习使循环肿瘤细胞的病变追踪成为可能

Tips: 深度迁移学习使循环肿瘤细胞的病变追踪成为可能 &#xff08;Nat Commun&#xff09;&#xff0c;原文链接: https://pubmed.ncbi.nlm.nih.gov/36509761/ 摘要&#xff1a; CTC做为液体活检中最重要的一个目标&#xff0c;如果能够对 CTC 进行溯源那么就能够实现肿瘤的早…