nodejs中关于mysql数据库的操作

目录
  • 基本概念
    • 为什么要有数据库
    • 什么是数据库
    • 数据库的分类
    • 数据库中基本术语
  • 数据库的可视化操作(创建数据库、创建表)
    • 数据类型(部分)
    • 数据库的常见命令
    • 数据库相关
    • 表相关
    • 插入数据
    • 修改数据
    • 删除数据
    • 查询数据
    • 条件查询
    • 导入和导出数据库脚本
  • node操作mysql
    • 基本使用
    • 查询语句
    • 插入语句
    • 修改语句
    • 删除语句
    • db模块封装

基本概念

为什么要有数据库

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

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

什么是数据库

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

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

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

数据库的分类

关系型数据库:

  • 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()
}

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

(0)

相关推荐

  • Vue项目通过node连接MySQL数据库并实现增删改查操作的过程详解

    目录 Vue项目通过node连接MySQL数据库 1.创建Vue项目 2.下载安装需要的插件 3.在项目中创建server文件夹,用于搭建本地服务器 4.Vue项目访问接口获取数据 数据表的增删改查操作 1.服务器配置 2.前端配置 页面样式 总结 Vue项目通过node连接MySQL数据库 1.创建Vue项目 vue create 项目名 Vue项目创建的详细步骤,有需要的可移步这里 2.下载安装需要的插件 下载express npm install express 下载cors,用于处理接口

  • Node服务端实战之操作数据库示例详解

    目录 连接数据库 insert语句 简化新增sql update语句 delete语句 连接数据库 本系列是使用node作为服务器开发的操作过程记录,记录一下主要的内容并且整理过程的脉络,以初学者的方式将学习内容记录下来,从0到1逐步的学习node,教程使用过程中用到的是基于express的node框架. const mysql = require('mysql') const db = mysql.createPool({ host: 'localhost', user: 'root', pa

  • Node.js连接数据库实现过程详解

    目录 创建数据库 mysql 创建数据库 在前面的数据库入门中我们讲解了常用的sql语法以及实战,接下来我们来介绍一下如何在nodejs中使用数据库 在前面的文章中我们有手把手使用docker创建数据库,这里就直接沿用之前创建的数据库 首先启动docker,把之前的mysql容器运行起来 然后登入mysql客户端查看一下现有的数据库,以及user表 mysql 在前面我们已经使用mysql自带的客户端连接数据库进行一些操作, 到了node.js中我们可以用mysql这个npm包来连接mysql数

  • node连接MySQL数据库的3种方式总结

    目录 1.使用mysql包的提供的接口进行连接 2.建立数据库连接池 总结 以下我们将说明node连接数据库的三种方式,并进行利弊说明,以挑选出最适合项目的连接方式. 1.使用mysql包的提供的接口进行连接 例如: connection.query('SELECT * FROM users WHERE id = ?', ['123'], function(err, rows) { if (err) { // error } else { for (let row in rows) { proc

  • node基于express框架操作Mysql数据库的步骤

    目录 一.在express项目中操作数据库的步骤 1.安装mysql模块 2.配置mysql模块 3.测试mysql模块能否正常工作 4.查询数据库数据 5.向数据库插入数据 6.更新数据库数据 7.更新数据库数据 8.删除数据库信息的标记删除 一.在express项目中操作数据库的步骤 ①安装操作 MySQL 数据库的第三方模块(mysql) ②通过mysql模块连接到MySQL 数据库 ③通过 mysql模块执行SQL语句 1.安装mysql模块 mysql模块是托管于npm 上的第三方模块

  • nodejs中关于mysql数据库的操作

    目录 基本概念 为什么要有数据库 什么是数据库 数据库的分类 数据库中基本术语 数据库的可视化操作(创建数据库.创建表) 数据类型(部分) 数据库的常见命令 数据库相关 表相关 插入数据 修改数据 删除数据 查询数据 条件查询 导入和导出数据库脚本 node操作mysql 基本使用 查询语句 插入语句 修改语句 删除语句 db模块封装 基本概念 为什么要有数据库 没有数据库,我们的数据都是存储在文件当中的,那么文件存储数据的缺点有: 文件的安全性问题. 文件不利于查询和对数据的管理. 文件不利于

  • 如何在Java程序中访问mysql数据库中的数据并进行简单的操作

    在上篇文章给大家介绍了Myeclipse连接mysql数据库的方法,通过本文给大家介绍如何在Java程序中访问mysql数据库中的数据并进行简单的操作,具体详情请看下文. 创建一个javaProject,并输入如下java代码: package link; import java.sql.*; /** * 使用JDBC连接数据库MySQL的过程 * DataBase:fuck, table:person: * 使用myeclipse对mysql数据库进行增删改查的基本操作. */ public

  • docker中使用mysql数据库详解(在局域网访问)

    前言 开发过程中经常需要安装.调试mysql数据库,还需要在各种操作系上安装包依赖,实在是繁琐,因此就研究了一下如何在docker上运行一个mysql镜像,省却了我安装.找依赖的问题. 注:本文所有内容均在CentOS Linux release 7.2.1511 (Core) 上测试完成 假设,你已经安装好docker.如果没有安装好docker可以参考centos7上安装docker 使用 docker pull mysql 获得mysql镜像,接着使用 docker images 查看镜像

  • MySQL数据库常用操作和技巧(DBA必备知识)

    MySQL数据库可以说是DBA们最常见和常用的数据库之一,MySQL的广泛应用,也使更多的人加入到学习它的行列之中.下面是老MySQL DBA总结的MySQL数据库最常见和最常使用的一些经验和技巧,分享给大家! 一.MySQL数据库的备份 使用MySQL数据库,最常用也是最重要的就是数据库备份了,所以我们先介绍数据库备份.进行数据库备份,又很正规的数据库备份方法,同其他的数据库服务器有相同的概念,但有没有想过,MySQL会有更简捷的使用文件目录的备份方法,而且又快有好(这个方法没有得到官方正式文

  • linux下mysql数据库的操作的方法

    ①.Mysql数据库的安装: 数据库的安装分为源码安装和rpm安装. 当然对于老手来说需要进行一些自定义的配置,那么当然源码安装的灵活性要高一些. 但是这种安装方式需要管理员自己处理好于系统的依赖关系. 而rpm安装是已经经过编译的二进制文件,然而这种方式仍然对于处理依赖关系很麻烦,于是 产生了一种基于rpm包的前端管理软件yum,yum可以从特点的镜像源下载rpm包并进行自动安装,配置和移除以及在线更新. 而作为linux新手,又是centos用户.我当然选择yum安装. 一般情况下cento

  • MySQL数据库常用操作技巧总结

    本文实例总结了MySQL数据库常用操作技巧.分享给大家供大家参考,具体如下: 一.查询不同表中同名字段(表连接查询条件神器) use information_schema; select * from columns where column_name='字段名'; 二.查询记录总数 SELECT SQL_CALC_FOUND_ROWS * FROM TABLE WHERE 1=1; 即可得出总数据行数 SET @RowCount=found_rows(); 三.存储过程数据查询分页 预定义变量

  • docker中使用mysql数据库实现局域网访问

    1.获取mysql镜像 docker pull mysql:5.6 注意:此处之所以获取mysql5.6是因为mysql5.7在centos7中启动可能会报错 2.查看镜像列表 docker images 3.启动mysql镜像 docker run -itd -P mysql:5.6 bash 其中 docker run是启动容器的命令:i是交互式操作,t是一个终端,d指的是在后台运行, -P指在本地生成一个随机端口,用来映射mysql的3306端口,mysql指运行mysql镜像,bash指

  • MySQL数据库约束操作示例讲解

    目录 一.约束是什么 二.约束的具体操作 Not NULL UNIQUE 约束的组合使用 PRIMARY KEY DEFAULT FOREIGN KEY 一.约束是什么 约束就是,在创建表的时候,对表设置一些规则,只有满足这些规则,才可以插入数据,我们把这些规则叫做约束 常见的约束有: 约束类型 规则 Not Null 指定某列不能存储NULL值 UNIQUE 保证某列的每行必须有唯一的值 DEFAULT 给没有赋值的列赋默认值 PRIMARY KEY Not NULL 与 UNIQUE的结合,

  • Mysql数据库delete操作没报错却删除不了数据的解决

    1.在操作页面执行删除操作,但没有删除成功,删除过程无报错(以下为删除操作的控制台日志) 2.在数据库执行删除操作 表数据 执行删除语句删除staffId为3的数据 结果却没有删除成功 3.原因 staffId为3的数据的flag为Null,虽然delete from staff where staffId=3 and flag != 1语句中的flag != 1说明了删除除1以外的数据,但却没有删除flag为Null的数据 4.解决办法 把staffId为3的flag置为0 再次执行delet

  • Mysql数据库 ALTER 操作详解

    目录 背景: 案例一:将表employees的lastName字段修改到firstName字段后面,并减少字符长度. 案例二:将表employees的sex字段改名为employee_sex. 案例三:修改employee_sex字段,数据类型为CHAR(1),非空约束 案例四:删除字段employee_sex 案例五:增加字段名city,数据类型为VARCHAR(10). 案例六:将表employees名称修改为employees_info 背景: ALTER作为DDL语言之一,工作中经常遇到

随机推荐