当前位置: 首页 > Web前端 > JavaScript

node.js-mysql

时间:2023-03-26 22:20:54 JavaScript

今天很早就结束了,因为今天的内容并不算太难。今天学习了一些mysql数据库和sql查询语句,包括如何在node终端连接数据库。经过今天的学习,感觉自己离那个点越来越近了,就是自己完成一个网站,有服务器,有响应,就像现在的这些在线网站,越来越近了。1、这些内容其实在学校的时候就学过,现在主要用来复习。首先,让我们了解一下数据库的基本概念,数据库是用来组织、存储和管理数据仓库的。我们传统数据库(mysql、sql、oracle)的一个数据结构是:数据库“数据表”数据行“字段库、表、行、字段的一些关系:①每个项目都有一个独立的数据库文件②不同的数据要放在不同的表,比如一个用户的信息应该放在user表中③每个表存储什么信息是由字段决定的④表中的行代表一个具体的数据1.1安装配置mysql,其实还是有一些步骤。建议这里不再赘述。然后安装好之后,使用workbench创建数据库,然后创建表。这时候有一些数据类型可以参考,commonintinteger类型,varcharstring类型,tinyint是一个boolean值,包括一些特殊的标识,pk代表主键有唯一标识,nn不为null不能为空,uq是唯一值,ai是值会自己增加1.2以上是就是用那个工具往里面写一些数据,但是我们是程序员,所以必须用代码来实现是的,sql结构化查询语言来了,专门做数据库的语言。无非就是四次增删改查。先说一些注意点,然后看代码就可以了。首先,这里的列名和值必须是一一对应的,不会再有--通过*查询users表中的所有数据--select*fromusers--查询数据从users表中对应username和password--selectusername,passwordfromusers--往users表中插入新数据,username的值为tonystark,password的值为098123--insertintousers(username,password)values('tonystark','098123')--select*fromusers--updatetheuserpasswordwithid4to888888--updateuserssetpassword='888888'whereid=4--select*fromusers--更新id为2的用户,设置updatetheuserpasswordtoadmin123同时更新用户状态为1--updateuserssetpassword='admin123',status=1whereid=2--select*fromusers--删除users表中id为4的用户--deletefromuserswhereid=4--select*fromusers--andoperator--select*fromuserswhereid=1andusername='2'--select*fromuserswhereid=1orusername='2'--oderby--select*fromusersorderbyiddesc--countselectcount(*)astotalfromuserswherestatus=01.3查看如何mysql模块在项目中运行必须先通过npm安装一个mysql,然后Configure连接到那个数据库,然后执行一些语句。主要功能是增、删、查、修改。注意:返回的是一个数组increase:usedinthesqlstatement?先来作为占位符先不填充数据,然后表面也是如此。返回的是一个对象,它有一个属性affectedRows,也就是受影响的行。该操作必须等于1才能算作有效。那么,因为我们的id是唯一标识的,如果你删掉4,再增加一个,那么他的id是5,而不是4,还有一个方便的版本操作变化:也有一个方便的版本,返回一个对象。注意他方便版的where条件是不能省略的:建议使用id作为唯一标识符作为删除的条件,然后我们的delete实际上是从数据库中删除。其实还是有点危险的,因为万一用户后悔了,想恢复,这个时候也没办法,所以我们一般都是用mark来删除,也就是通过改变类似status的值update实现模拟删除操作,并不会真正从数据库中删除//1.如果你通过npm安装了mysql第三方包,需要先配置mysql模块//是importconstmysql=require('mysql')//通过mysql.createPool配置constdb=mysql.createPool({host:'127.0.0.1',//数据库ip地址user:'root',//login数据库账号密码:'admin123',//登录数据库密码database:'my_db_01'//指定操作哪个数据库})//2.测试mysql//select1没有作用但是可以测试是否连接成功db.query('select1',(err,results)=>{if(err)returnerr.messagereturnconsole.log(results);})//3.查询数据db.query('select*fromusers',(err,results)=>{if(err)returnerr.messagereturnconsole.log(results);})//4.插入数据/*letobj={username:'meteor',password:'653213'}*///4.1注意它在sql语句中可用吗?发生/*letinsertStr='insertintousers(username,password)values(?,?)'//4.2array的形式可以按顺序填写吗?db.query(insertStr,[obj.username,obj.password],(err,results)=>{if(err)returnerr.message//4.3使用rsults的一个属性来指示受影响的行数,只有为1时才表示真正插入成功if(results.affectedRows==1)returnconsole.log('数据添加成功');})*///4.2插入数据便捷版/*letobj={username:'jj',password:'653213'}letinsertStr='insertintousersset?'//4.2array的形式可以按顺序填写吗?db.query(insertStr,obj,(err,results)=>{if(err)returnerr.message//4.3中使用了rsults的一个属性来表示受影响的行数,只有当它是1时,它表示真正插入成功if(results.affectedRows==1)returnconsole.log('数据添加成功');})*///5.更改数据/*letuser={username:'sister',password:'1243333',id:'9'}letupdateStr='updateuserssetusername=?,密码=?其中id=?'db.query(updateStr,[user.username,user.password,user.id],(err,results)=>{if(err){returnerr.message}elseif(results.affectedRows==1){返回控制台.log('更新数据成功');}})*///5.1便捷版/*letuser={username:'sister',password:'1243333',id:'9'}letupdateStr='updateusersset?whereid=?'db.query(updateStr,[user,user.id],(err,results)=>{if(err){returnerr.message}elseif(results.affectedRows==1){returnconsole.log('更新数据成功');}})*///6.删除数据letdeleteStr='deletefromuserswhereid=?'db.query(deleteStr,9,(err,results)=>{if(err){returnerr.message}elseif(results.affectedRows==1){returnconsole.log('删除数据成功');}})