Mysql数据库基本概念、扮演客户端的角色
两种单位
1. 库 —— 用来管理表、类似于文件夹
2. 表 —— 存数据、类似于文件
表:
1. 行:一条数据
2. 字段(域) 一个数据项
Navicat——排序规则——选择utf8_general_ci字段类型
整数:
1. tinyint(存储8位 ) 范围-128~127 | 0-255
2. smallint(存储16位)
3. mediumint(存储24位)
4. int(存储32) 范围:-21亿~21亿之间| 无符号 0-43亿
5. bigint(存储64位) 范围万万亿
无符号:没有负数部分,只有正数部分字符串
1. varchar 等价于字符串、只能存储小的字符串 255字节
2. text 存储大字符串 1G
主键:唯一标识符、性能比别的列高触发器(事件) 当对数据进行某种特定的操作的时候触发一段东西
4大查询
1. 增
指定字段添加数据:insert into 表名(字段名,字段名..) values(值列表...)
insert into 表名 values(值..)
值列表的数据必须对应字段名类型
2. 删 delete
delete from 表名 where 主键字段名=存在值/条件
3. 改 update
update 表名 set 字段=新值,字段2=新值2.. where 主键名=存在的字段值
4. 查 select
select 字段1、字段2.. from 表名
select 字段列表 from 表名 where 主键名 = 存在的字段值
MySQL不会重用已删除的id
数据库里面存地址
数据库性能跟体积相关、体积特别大、性能掉的特别厉害、绝不会直接存文件本身、只会存文件名字进去、便于文件分发
## Transaction 事务
特点:ACID
A:—— 原子性:要么都发生、要么都不发生
C—— 持久性:只要事务提交了,作用就是永久的
I—— 隔离性:各个事务之间是独立的、单个事务失败了、其他事务不受影响D—— 一致性:事务前后的状态是一致的
NodeJS使用mysql(默认不支持MySQL)
node中的MySQL是客户端
npm i -g mysql
1. 连接数据库
db.createPool | db.createConnection(host, port, user, password, database)
2. 给服务器发送请求(查询操作)
db.query(sql语句,(err, data)=>{});
SQL标准写法
1. 关键字大写
2. 库、表、字段名都需要加''
子句:语句的一部分1、Where子句 筛选
1. WHERE 存在的字段名 = 存在的值
2. WHERE 存在的字段名 > |<数字
3. WHERE 存在的字段名 >= AND < 数字
4. WHERE 存在的字段名 >数字 OR 存在的字段名 < 数字
2、ORDER子句 排序(可以有多条件排序)
1. ORDER BY 存在的字段名 ASC/DESC
2. ORDER BY 存在的字段名 ASC,存在的字段名2 DESC
3. ASC 升序 (从小到大)
4. DESC 降序(从大到小)
3、GROUP
合并相同的数据、分组、用于统计效果最佳
配合函数使用最佳(聚合函数)
SELECT * FROM 表名 GROUP BY 存在的字段名; 去掉重复的字段
4、LIMIT —— 限制输出(适用于分页)
1. LIMIT 1
2. LIMIT 2,6 (从第二条开始、要六个)
子句之间编写是有顺序的:
Where => group => order => limit
筛选 分组合并 排序 限制