nodejs中关于mysql数据库的操作

 更新时间:2022年08月04日 10:59:22   作者:灯光下的投影  
这篇文章主要介绍了nodejs中关于mysql数据库的操作方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

基本概念

为什么要有数据库

没有数据库,我们的数据都是存储在文件当中的,那么文件存储数据的缺点有:

  • 文件的安全性问题。
  • 文件不利于查询和对数据的管理。
  • 文件不利于存放海量数据
  • 文件在程序中控制不方便

什么是数据库

数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行增加、删除、修改、查询等操作。

前端程序员只需要对数据库有一定了解即可。

浏览器---->服务器---->数据库

数据库的分类

关系型数据库:

  • MySQL
  • Oracle
  • SQL Server
  • SQLite(安卓)

非关系型数据库

  • mongodb
  • redis
  • BigTable
  • DBA

数据库中基本术语

  • 数据库database:存放数据的仓库,一般一个项目中的数据会存储到一个数据库中
  • 表table: 一个表对应一类数据,比如学生表,老师表
  • 列columns:一张表由多列组成,也叫一个字段,比如学生的姓名,成绩,年龄等
  • 行rows: 一个学生信息对应一行,一行也叫一条记录。

数据库的可视化操作(创建数据库、创建表)

数据类型(部分)

  • int: 整数类型
  • varchar: 字符类型
  • datetime: 日期类型

数据库的常见命令

SQL: 结构化查询语言(Structured Query Language)简称SQL 。用于数据库的增删改查以及管理等功能。

数据库相关

--SQL中的注释

  • SHOW DATABASES; 查看所有的数据
  • CREATE DATABASE mydb; 创建数据库
  • DROP DATABASE mydb;删除数据库
  • USE mydb; 使用数据库

表相关

  • SHOW TABLES;查看当前数据库中所有的表

创建表

CREATE TABLE user(
    id INT auto_increment PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    age INT ,
    gender VARCHAR(4),
    content VARCHAR(255)
)
  • DROP TABLE user;删除表

插入数据

INSERT INTO user (name, age, gender, content) VALUES ('胡聪聪', 18, '男', '哈哈哈,哈哈哈')
-- 如果省略列名,那么必须要和字段一一对应
INSERT INTO user VALUES (null, '胡聪聪', 18, '男', '哈哈哈,哈哈哈')
 
INSERT INTO user SET name='hcc', age=18, gender='男', content='嘻嘻嘻'

修改数据

// 修改所有的数据
UPDATE USER SET name='胡西西'
// 根据条件修改
UPDATE USER set name='胡聪聪', content="这是内容" WHERE id = 2

删除数据

// 删除所有的数据
DELETE FROM USER
 
// 删除id为5的数据
DELETE FROM USER WHERE id = 5

查询数据

-- 查询所有数据
SELECT * FROM user
 
-- 查询指定列
SELECT id, name,age from user

条件查询

--- 并且
SELECT * from user where name='胡聪聪' AND age=21
 
--- 或者
SELECT * from user where name='胡聪聪' or age=21
 
-- 范围查询
 
-- 模糊查询  %表示通配  _表示单个字符
SELECT * from user where name LIKE '胡%'
 
-- in语句
SELECT * from user where name in ('胡聪聪', 'hcc')
 
-- order by
-- 排序需要写在最后面,,asc升序  desc:降序
SELECT * from user ORDER BY id desc
 
-- limit分页
SELECT * from user ORDER BY id desc limit 3
SELECT * from user ORDER BY id desc limit 3,3
 
 
-- 获取总条数
SELECT count(*) as total FROM user

导入和导出数据库脚本

node操作mysql

基本使用

安装

npm install mysql

基本使用

// 导入第三方包
const mysql = require('mysql')
// 创建连接
var connection = mysql.createConnection({
  // 本地
  host: 'localhost',
  user: 'root',
  password: 'root',
  // 数据库名称
  database: 'mydb',
  port: 3306
})
 
// 连接数据库
connection.connect()
 
// 执行sql语句
connection.query('select * from user where id = 8', (err, result) => {
  if (err) return console.log('查询失败', err)
  // result返回的是数组, 数组中是一个对象
  console.log(result)
})
 
// 关闭连接
connection.end()

查询语句

var name = '胡聪聪'
// 使用?表示占位,可以防止sql注入
connect.query(`select * from user where name=?`, name, (err, result) => {
  if (err) return console.log('错误了', err)
  console.log(result)
})

插入语句

connect.query(
  'insert into user (name, age, gender, content) values (?, ?, ?, ?)',
  ['胡嘻嘻', 18, '男', '哈哈哈哈'],
  err => {
    if (err) return console.log('错误', err)
    console.log('添加成功了')
  }
)
 
// 方式2
connect.query(
  'insert into user set ?',
  {
    name: '胡洗洗',
    age: 30,
    gender: '男',
    content: '哈哈哈'
  },
  (err, result) => {
    if (err) return console.log('错误', err)
    console.log('添加成功了', result)
  }
)

修改语句

connect.query(
  'update user set ? where id = ?',
  [
    {
      name: '胡洗洗',
      age: 30,
      gender: '男',
      content: '哈哈哈'
    },
    10
  ],
  (err, result) => {
    if (err) return console.log('错误', err)
    console.log('添加成功了', result)
  }
)

删除语句

connect.query('delete from user where id = ?', [10], (err, result) => {
  if (err) return console.log('失败', err)
  console.log(result)
})

db模块封装

// 导入mysql
const mysql = require('mysql')
 
// 创建连接对象
const connect = mysql.createConnection({
  host: 'localhost',
  port: 3306,
  user: 'root',
  password: 'root',
  database: 'mydb'
})
 
exports.query = function(sql, params, callback) {
  connect.connect()
  connect.query(sql, params, (err, data) => {
    callback &&  callback(err, data)
  })
  connect.end()
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。 

相关文章

  • 如何使用Node.js遍历文件夹详解

    如何使用Node.js遍历文件夹详解

    目录遍历挺常见,操作一个文件夹里的所有文件,替换或者添加删除某些东西是非常普遍的操作,这篇文章主要给大家介绍了关于如何使用Node.js遍历文件夹的相关资料,需要的朋友可以参考下
    2022-03-03
  • node.js-path模块你了解多少

    node.js-path模块你了解多少

    这篇文章主要为大家详细介绍了node.js-path模块,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02
  • nodejs中使用worker_threads来创建新的线程的方法

    nodejs中使用worker_threads来创建新的线程的方法

    这篇文章主要介绍了nodejs中使用worker_threads来创建新的线程的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • Node 升级到最新稳定版的方法分享

    Node 升级到最新稳定版的方法分享

    今天小编就为大家分享一篇Node 升级到最新稳定版的方法分享,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • nodejs对express中next函数的一些理解

    nodejs对express中next函数的一些理解

    这篇文章主要介绍了nodejs对express中next函数的一些理解,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09
  • 在windows上用nodejs搭建静态文件服务器的简单方法

    在windows上用nodejs搭建静态文件服务器的简单方法

    这篇文章主要介绍了在windows上用nodejs搭建静态文件服务器的简单方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-08-08
  • 一步步教你利用Docker设置Node.js

    一步步教你利用Docker设置Node.js

    这篇文章主要介绍了利用Docker设置Node.js的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-11-11
  • Node.js v8.0.0正式发布!看看带来了哪些主要新特性

    Node.js v8.0.0正式发布!看看带来了哪些主要新特性

    Node.js v8.0.0 已正式发布。v8.0.0 是下一个主要的版本,带来了一系列重大的变化和新功能,内容十分多!下面这篇文章主要带着大家一起看看Node.js v8.0.0带来了哪些主要新特性,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-06-06
  • 使用C++为node.js写扩展模块

    使用C++为node.js写扩展模块

    本文给大家介绍的是在window7下使用C++来给node.js编写扩展模块的方法,附上一个简单的hello实例,有需要的小伙伴可以参考下。
    2015-04-04
  • node使用querystring内置模块解决分页返回数据太多导致json.parse()解析报错问题

    node使用querystring内置模块解决分页返回数据太多导致json.parse()解析报错问题

    这篇文章主要介绍了node使用querystring内置模块解决分页返回数据太多导致json.parse()解析报错问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-09-09

最新评论