NodeJS开发博客(二) 接入数据库
1. mysql 数据库下载网址:https://dev.mysql.com/downloads/mysql/
账号是 root 密码是 a1************
网站账号是邮箱,密码是 Aa1********
2 mysql workbench。操作mysql的客户端,可视化操作。 下载地址是
https://dev.mysql.com/downloads/workbench


右击Tables-->createTable 创建表




alert table是继续编辑表; drop table是删除表
相关命令:
use myblog;
-- show tables; 注释
-- 增加内容
insert into users(username,`password`,realname) values('zhangsan','','张三');
-- password 是关键字 所以包起来
insert into users(username,`password`,realname) values('lisi','','李四');
-- 查询内容
select * from users;
select id,username from users;
select * from users where username='zhangsan';
select * from users where username='zhangsan' and password='';
select * from users where username='zhangsan' or password='';
-- 模糊查询
select * from users where username like '%zhang%';
-- 排序(查找password中包含1的数据,并且根据id排序,默认正顺序,desc是倒顺序)
select * from users where password like'%1%' order by id desc;
--
use myblog;
-- 直接执行update会报错,安全问题,所以先执行下面的命令
SET SQL_SAFE_UPDATES = 0;
update users set realname='李四2' where username='lisi';
select * from users; -- 删除
delete from users where username='lisi';
select * from users;
insert into users(username,`password`,realname) values('lisi','','李四');
select * from users;
-- 执行上述命令之后,可以发现 李四的id已经变成3了,因为之前id=2的时候已经被使用过了
-- 但一般用update去更新表格,新增 state,默认为1;
-- 1表示有效,0表示该行无效
select * from users;
select * from users where state='';
-- 一般不会用delete去删除一行,这样的话这一行就会空出来,用update,且软删除的好处是,可以恢复
update users set state='' where username='lisi';
select * from users where state='';
-- 查询 不等于0
select * from users where state <> '';
这里为了练习使用delete,所以采用 delete方法,故删掉state这一行:

中的 delete Selected;
附: select version(); 查看sql版本;
--------------------------
使用代码连接mysql数据库。
切换源:
安装nrm npm install -g nrm
出现permission denied的,自觉加sudo吧。sudo npm install -g nrm
然后切换到 taobao源。安装mysql: npm i mysql -S
const mysql = require('mysql');
//创建链接对象
const con = mysql.createConnection({
host:'localhost',
user:'root',
password:'a1*********',
prot:'3306',
database:'myblog'
})
//开始连接
con.connect();
//执行 sql 语句
const sql = 'select * from users;'
//const sql = `update users set realname='李四2' where username='lisi';`
con.query(sql,(err,result)=>{
if(err){
console.error(err);
return;
}
console.log(result);
})
//关闭连接
con.end();
NodeJS开发博客(二) 接入数据库的更多相关文章
- NodeJS开发博客(三) 数据的保存
什么是cookie 存储在浏览器的一段字符串(最大5k) 跨域不共享 格式如 k1=v1 k2=v2 因此可以存储结构化数据 每次发送http请求,会将请求域的cookie一起发送给server se ...
- NodeJS 开发博客(四) 日志及安全攻击
node 操作文件: const fs = require('fs'); const path = require('path'); const filename = path.resolve(__d ...
- NodeJS开发博客(一)
1 区分 ECMAScript/JS/NodeJs --ECMAScript.定义了语法,写JS和NodeJS都要遵守: 变量定义,循环/判断/函数: 原型和原形链/作用域和闭包/异步 不能操作DOM ...
- 基于 abp vNext 和 .NET Core 开发博客项目 - 接入GitHub,用JWT保护你的API
上一篇文章(https://www.cnblogs.com/meowv/p/12924859.html)再次把Swagger的使用进行了讲解,完成了对Swagger的分组.描述和开启小绿锁以进行身份的 ...
- NodeJS 开发博客(五) 使用express脚手架
1 安装脚手架 npm i express-generator -g 2 使用 express 命令 生成 项目 express-test express express-test 3. npm ...
- 基于 abp vNext 和 .NET Core 开发博客项目 - 博客接口实战篇(二)
系列文章 基于 abp vNext 和 .NET Core 开发博客项目 - 使用 abp cli 搭建项目 基于 abp vNext 和 .NET Core 开发博客项目 - 给项目瘦身,让它跑起来 ...
- 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(二)
系列文章 基于 abp vNext 和 .NET Core 开发博客项目 - 使用 abp cli 搭建项目 基于 abp vNext 和 .NET Core 开发博客项目 - 给项目瘦身,让它跑起来 ...
- 基于 abp vNext 和 .NET Core 开发博客项目 - 博客接口实战篇(一)
系列文章 基于 abp vNext 和 .NET Core 开发博客项目 - 使用 abp cli 搭建项目 基于 abp vNext 和 .NET Core 开发博客项目 - 给项目瘦身,让它跑起来 ...
- 基于 abp vNext 和 .NET Core 开发博客项目 - 博客接口实战篇(三)
系列文章 基于 abp vNext 和 .NET Core 开发博客项目 - 使用 abp cli 搭建项目 基于 abp vNext 和 .NET Core 开发博客项目 - 给项目瘦身,让它跑起来 ...
随机推荐
- RBF神经网络学习算法及与多层感知器的比较
对于RBF神经网络的原理已经在我的博文<机器学习之径向基神经网络(RBF NN)>中介绍过,这里不再重复.今天要介绍的是常用的RBF神经网络学习算法及RBF神经网络与多层感知器网络的对比. ...
- Java程序内存分析
1. Runtime.getRuntime().freeMemory() 和 jvisualvm.exe http://blog.csdn.net/u011004037/article/details ...
- Python标准库: functools (cmp_to_key, lru_cache, total_ordering, partial, partialmethod, reduce, singledispatch, update_wrapper, wraps)
functools模块处理的对象都是其他的函数,任何可调用对象都可以被视为用于此模块的函数. 1. functools.cmp_to_key(func) 因为Python3不支持比较函数,cmp_to ...
- qt model--view-delegate模式的界面设计概念,ListView用法
最经典的界面设计模式,必须知道. 作为 一种经典到 不能 再 经典 的 架构 模式, qt的model--view-delegate大 行其 道 有其 必然 的 道理. 通过 把 职责. 性质相近的 ...
- Flink状态管理和容错机制介绍
本文主要内容如下: 有状态的流数据处理: Flink中的状态接口: 状态管理和容错机制实现: 阿里相关工作介绍: 一.有状态的流数据处理# 1.1.什么是有状态的计算# 计算任务的结果不仅仅依赖于输入 ...
- 用Gson实现json与对象、list集合之间的相互转化
先写一个Person实体类,导入Gson包 String jsonData="{\"userid\":\"1881140130\"}";// ...
- STL源码剖析——iterators与trait编程#3 iterator_category
最后一个迭代器的相应类型就是iterator_category,就是迭代器本身的类型,根据移动特性与实行的操作,迭代器被分为了五类: Input Iterator:这种迭代器所指的对象,不允许外界改变 ...
- 20191031:Python取反运算详解
20191031:Python取反运算详解 取反运算:~3 == 4 1.对于数字 3 =======>转换为二进制表示为011 2.对011取反为100 3.为什么表示-4 a.计算机用补码表 ...
- io.lettuce.core.protocol.ConnectionWatchdog - Reconnecting, last destination was ***
一.问题 redis起来后一直有重连的日志,如下图: 二.分析 参考lettuce-core的github上Issues解答https://github.com/lettuce-io/lettuce- ...
- jdk 8 特性
date相关: 1.在jdk 8之前,由于Date,Calendar的烂设计(烂的原因:日期计算复杂,Date没有时区),催生了一个优秀的第三方时间框架:Joda-Time(解决了:日期的计算,时区) ...