【Node.js】MySQL数据库

数据库的基本概念

什么是数据库
  • 数据库是用来组织,存储和管理数据的仓库
  • 为了方便管理互联网世界中的数据,就有了数据库管理系统的概念,用户可以对数据库中的数据进行新增,查询,更新,删除等操作
常见的数据库和分类
  • MySQL数据库
  • Oracle数据库
  • SQL Server数据库
  • Mongodb数据库
  • 前三者属于传统型数据库(关系型数据库或SQL数据库)
数据库的数据组织结构
  • 和Excel结构相似
  • 传统型的数据结构分为,数据库,数据表,数据行,字段,这4大部分
实际开发中库,表,行,字段的关系
  • 在实际开发中,一般,每个项目都对应独立的数据库
  • 不同的数据,要存储在数据库的不同表中,类似,用户数据存在user表,图书数据存在book表
  • 每个表中具体存储哪些信息,由字段来决定,类似。用户user表,可以设计id,username,password这三个字段
  • 表中的行,代表每一条具体的数据

MySQL相关的软件

  • MySQL Sever,专门用来提供数据存储和服务的软件

  • MySQL workbench 可视化的MySQL管理工具

  • 安装软件百度一下,这边复制一下我搜索到的
    安装过程

  • 运行进来点击输入密码连接成功后进入主界面
    在这里插入图片描述
    在这里插入图片描述

  • 可以控制界面的隐藏和显示

  • 切换真正的数据库列表
    在这里插入图片描述

MySQL Workbench创建数据库

  • 数据库名不能输入中文
    在这里插入图片描述
    在这里插入图片描述
  • 例如,我新建的是my_db_01数据库

在这里插入图片描述

创建数据表

在这里插入图片描述

设计表字段

在这里插入图片描述

字段的特殊标识

![在这里插入图片描述](https://img-blog.csdnimg.cn/3645347da1b244a3bb0d3ef867f5e924.png

  • 想要哪种,勾选即可
  • PK(Primary Key),主键。唯一标识
  • NN(Not NULL),值不允许为空
  • UQ(Unique)值唯一,类似张三的名不能重复
  • AI(Autoincrement)值自动增长,类似id值自动增长
    在这里插入图片描述
  • 表创建成功
    在这里插入图片描述
向表中插入数据

在这里插入图片描述

  • apple后id和状态就会自动填充好
    在这里插入图片描述

使用SQL管理数据库

什么是SQL
  • SQL是结构化查询语言,专门用来访问和处理数据库的编程语言,能够让我们以编程的形式,操作数据库里面的数据
  • 关键点:
  • SQL是一门数据库编程语言
  • 使用SQL语言编写出来的代码,叫做SQL语句
  • SQL语言只能在关系型数据库中使用,非关系型不支持SQL语言
SQL能做什么
  • 增删改查数据库的数据
  • 也可以创建数据库,创建数据表,创建存储过程等

SQL语句

SELECT,查询
  • SELECT语句用于从表中查询语句,执行的结果要被存储在一个结果表中(称为 结果集)
  • sleect语句中对大小写不敏感
-- 从FROM指定的【表中】,查询出【所有的】数据,*表示【所有的】
SElECT * FROM 表名称
select * from users 

-- 从FROM指定的【表中】,查询出指定 列名称(字段)的数据
SElECT 列名称,列名称 FROM 表名称
select username,password from users 

在这里插入图片描述

INSERT INTO 新增
  • 注意:字段名要拼写正确
  • 语句用于向数据表中插入新的数据行
insert into 表名(字段名,字段名2) values("字段名的值","字段名2的值")
insert into users(username,password) values("罗曼蒂克","888888")
  • 再次查询
  • 在这里插入图片描述
Update 修改
UPDATE 表名称 set 列名称 = 新值 where 列名称 = 某值
-- 将id为2的用户密码和用户状态,修改为666666和1,也就是更新某一行的若干列
UPDATE users set password = '666666',status=1 where id = 2; 

在这里插入图片描述

DELETE ,删除表中的行
  • 初学者容易忘加where条件,导致误删整张表
DELETE FROM 表名称 WHERE 列名称=-- 删除id=3的用户 
delete from users where id=3;
WHERE子句, 限定选择的标准
  • WHERE子句用于限定选择的标准
  • 在SELECT,UPDATE,DELETE语句中,皆可使用WHERE子句来限定选择的标准
--类似
SELECT 列名称 FROM 表名称 WHERE 列 运算符 值
WHERE子句的运算符
  • = 等于
  • <>或者!=表示不等于
  • .> 大于
  • <小于
  • .>=大于等于
  • <=小于等于
  • BETWEEN在某个范围内
  • LIKE搜索模糊匹配
 -- 查询用户名不等于王大海的所有用户
 select * from users where username<>'王大海';
 select * from users where username!='王大海';
SQL的AND和OR运算符
  • and 和 or 可在where语句中把两个或多个条件结合起来
  • and表示必须同时满足多个条件、
  • or 表示多个条件里面满足一项即可
 -- 使用and来显示所有status=0,并且id小于6的所有用户
 select * from users where status=0 and id<6
  -- 使用and来显示所有status=0,或者id小于6的所有用户
 select * from users where status=0 or id<6 
SQL的ORDER BY语句,用于排序
  • 用于根据指定的列对结果进行排序
  • 默认升序进行排序,asc,表示升序排序
  • 降序对记录进行排序,可以使用DESC关键字
 -- 按照id对列表进行升序排序
 -- select * from 表名 order by 按照的字段名
 select * from users order by id 
 -- 按照id对列表进行降序排序
 select * from users order by id desc
SQL的ORDER BY语句,多重排序
  • 逗号分隔
 -- 多重排序,对users的表先按照status字段进行降序排序,再按照username的字母升序排序,进行升序排序、
 select * from users order by status desc,username asc
SQL的COUNT(*)函数,返回查询结果的总数据条数
 -- 返回status=0的总数据条数
 select  count(*) from users where status=0

在这里插入图片描述

SQL的AS,为列设置别名
-- 对查询出来的列名设置别名,可以使用AS关键字
select count(*) AS total from users where status=0
-- 从FROM指定的【表中】,查询出指定 列名称(字段)的数据,并指定别名
select username as name,password as word from users

在这里插入图片描述
在这里插入图片描述

  • 总计
-- 从FROM指定的【表中】,查询出【所有的】数据,*表示【所有的】
-- select * from users 

-- 从FROM指定的【表中】,查询出指定 列名称(字段)的数据
-- select username,password from users 

-- 向数据表中插入新的数据行
 -- insert into users(username,password) values("罗蒂克","888888");

-- 将id为2的用户密码和用户状态,修改为666666和1,也就是更新某一行的若干列
--  UPDATE users set password = '666666',status=1 where id = 2; 

-- 删除id=3的用户 
-- delete from users where id=3;
 
-- 查询用户名不等于王大海的所有用户
-- select * from users where username<>'王大海';
 
-- 使用and来显示所有status=0,并且id小于6的所有用户
-- select * from users where status=0 and id<6
 
-- 使用and来显示所有status=0,或者id小于6的所有用户
-- select * from users where status=0 or id<6
 
-- 对列表进行降序排序
-- select * from users order by id desc
 
-- 多重排序,对users的表先按照status字段进行降序排序,再按照username的字母升序排序,进行升序排序、
-- select * from users order by status desc,username asc
 
-- 返回status=0的总数据条数
-- select  count(*) from users where status=0
 
-- 对查询出来的列名设置别名,可以使用AS关键字
-- select count(*)  AS total from users where status=0;

-- 从FROM指定的【表中】,查询出指定 列名称(字段)的数据,并指定别名
-- select username as name,password as word from users

打开和保存文件

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44899940/article/details/129234949