node.js第5天笔记:数据库基本概念、数据库的可视化操作、数据库的常见命令、node操作mysql

本文介绍了数据库的基本概念,包括为什么需要数据库、数据库的类型如MySQL、Oracle等,以及数据库中的基本术语。此外,详细阐述了如何通过可视化工具Navicat创建和管理数据库,以及SQL命令进行数据的增删改查。最后,讲解了Node.js操作MySQL的基础,包括安装、查询、插入、修改和删除数据的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.基本概念

1.1 为什么要有数据库

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

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

1.2 什么是数据库

数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,或是数据的仓库

用户可以对文件中的数据运行增加、删除、修改、查询等操作。

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

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

1.3 数据库的分类

关系型数据库: 有行和列的结构

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

非关系型数据库 键值对的形式

  • mongodb
  • redis
  • BigTable

1.4 数据库中基本术语

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

2. 数据库的可视化操作

Navicate仅仅是一个可视化的操作数据库的工具,要想真正的操作数据库中的数据,应该要先连接MySql数据库

2.1 创建数据库

2.2 创建表

存储以下学生信息

{id: 1, name: '张三', age: 18, gender: '男', content: '这是描述信息‘}

2.3 数据类型

int: 整数类型

varchar: 字符类型 string

datetime: 日期类型

3.数据库的常见命令

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

3.1 数据库相关

  • --SQL中的注释

  • SHOW DATABASES; 查看所有的数据

  • CREATE DATABASE mydb; 创建数据库

  • DROP DATABASE mydb;删除数据库

  • USE mydb; 使用数据库

3.2 表相关

  • 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;删除表

3.3 插入数据

-- 2. 增加语句
-- 语法: insert [into] 表名 (字段1,字段2...) values (值1,值2...);
insert into stuinfo (id,name,gender,age,phone) values (NULL,'张三','男',20,'1302012345');
insert into stuinfo (name,age,gender) values ('李四',21,'男');
insert into stuinfo values (null,"王五","男",21);  -- 如果直接写值的话,必须和字段匹配起来,这样写会报错的
insert into stuinfo values (null,"王五","男",21,"1234666"); -- 没有字段的时候,如果要是直接添加值的话,必须和字段对应,不能缺少

3.4 删除数据

-- 3. 删除语句
-- 语法: DELETE FROM 表名 where 条件  
DELETE FROM stuinfo where id = 7;
DELETE FROM stuinfo where id = 2 or id = 8;
DELETE FROM stuinfo where id in (4,5,10);
DELETE FROM stuinfo WHERE gender ='男' AND age = 20;  -- 通过多条件来删除数据  and 在这里表示并且的关系 
DELETE FROM stuinfo WHERE id > 10;   -- 还可以根据id的特性

3.5 修改数据

-- 4. 修改语句
-- 语法: UPDATE 表名 set 字段1= 值1,字段2 = 值2... where 条件 
UPDATE stuinfo set gender = '男';  -- 如果后面没有跟条件的话,则表示将表中所有的数据中的gender都改成了男
UPDATE stuinfo set gender = '女' WHERE id = 3; --  将id为3的那条数据中的gender修改为“女”
UPDATE stuinfo set gender = '女' WHERE age = 21 and name = '李四'; -- 将数据表中名字叫"李四"的并且年龄为21的性别修改为"女"

3.6 查询数据

-- 1. 查询的SQL语句  查询出来的数据都是结果集
-- 语法:  select * from 表名 where 条件 
select * from  stuInfo;  --  表示查询所有的数据信息
select id,name,gender from stuinfo; -- 根据指定的字段来查询
select * from stuinfo where id = 2;  -- 查询id为2的那一条数据
select name,age from stuinfo where id = 3;  -- 查询id为3的那条数据中的name age id
select * from stuinfo where id =3 or id= 5; -- 查询id为3 和5 的那两条数据
select * from stuinfo where id = 2 or id = 3 or id = 4;
select * from stuinfo where id in (2,3,4,5,7);  -- 查询id为 2  3  4  5  7 的那些数据

3.7 几个常用函数

count,MAX,MIN,avg

SELECT count(*) FROM stuinfo; -- count用来统计所有的数据条数 会根据里面的参数来进行统计
SELECT count(id) FROM stuinfo; -- 根据id来统计具体的数据条数
SELECT count(phone) FROM stuinfo; -- 根据phone字段来统计具体的条数,如果数据为空则会忽略
SELECT MAX(age) FROM stuinfo;        -- 查询年龄中的最大值
SELECT MIN(age) FROM stuinfo;  -- 查询年龄中的最小值
SELECT avg(age) FROM stuinfo;  -- 查询年龄中的平均值 average 平均值

order by

SELECT * FROM stuinfo order by id;  -- order by是用来排序的,默认是以升序进行排序 asc就是升序排序
SELECT * FROM stuinfo ORDER BY id desc; 
SELECT * FROM stuinfo ORDER BY age desc;  -- desc是降序排列

limit

SELECT * FROM stuinfo ORDER BY id;
select * from stuinfo limit 3;  -- 取结果集中的前3SELECT * FROM stuinfo  ORDER BY id limit 3;

-- limit  n (索引) m (数量)   数据表中数据的索引默认也是从0开始的,索引只会对剩下的数据进行排序
SELECT * FROM stuinfo ORDER BY id LIMIT 3, 3;

-- 还可以这样来实现一个分页  limit count(数量)  offset index(索引);
SELECT * FROM stuinfo ORDER BY id limit 3 offset 0; -- 从索引为0的位置向下查询3SELECT * FROM stuinfo ORDER BY id limit 3 offset 3; -- 从索引为3的位置向下查询3SELECT * FROM stuinfo ORDER BY id limit 3 offset 6; -- 从索引为6的位置向下查询3-- 经过上面的规律可以总结如下:
int pageCount = 3 ; -- 每页显示的条数
int  pageSize = 1 ; -- 当前的页码  112233SELECT * FROM stuinfo ORDER BY id LIMIT pageCount offset (pageSize - 1)* pageCount;

4. node操作mysql

4.1 基本使用

  • 安装
npm install mysql
  • 基本使用
// 引入模块
let mysql = require('mydql')
let conn = mysql.createConnection({
  host:'127.0.0.1',
  user:'root',
  password:'root',
  database:'qianduan39'
})

4.2 查询语句

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

4.3 插入语句

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: 'jerry',
    age: 30,
    gender: '男',
    content: '哈哈哈'
  },
  (err, result) => {
    if (err) return console.log('错误', err)
    console.log('添加成功了', result)
  }
)

4.4 修改语句

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

4.5 删除语句

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值