MySQL自娱—2.基本概念
数据库和数据仓库是两个概念:
数据库是存储数据的软件,运行在操作系统之上;数据库的作用: 存储数据和管理数据
数据库管理系统(DBMS)——数据库管理软件,科学有效的管理、维护和获取数据
数据库分类
关系型数据库——通过表和表之间,行和列之间的关系进行数据的存储: mysql,oracle,sql server,db2,sqllite
非关系型数据库——对象存储,听过对象的自身的属性来决定(NoSQL-not only),redis,mongdb
数据库引擎
- innodb 事务优先;安全性高,失误的处理,多表多用户 // 默认使用
- myisam 性能优先;节约空间,速度较快 // 早年版本
- 在物理空间存在的位置
| 所有的数据库文件都存放在data目录下 一个文件夹对应一个数据库
| 本质还是文件
- mysql引擎在物理文件上的区别
| INNODB 在数据库表中只有一个 *.frm 文件 以及上级目录下的 ibdata1 文件
| MYISAM 对应的文件
| - *.frm 表结构的定义文件
| - *.MYD 数据文件(data)
| - *.MYI 索引文件(index)
字符集编码
- 如:charset=utf8
- 建表的时候一般写作 default charset=utf8
- 不设置的话,会是mysql默认字符集编码,不支持中文
- mysql的默认编码是latin1,不支持中文
- 在my.ini中配置默认的编码 character-set-server=utf8
mysql语言分类
数据定义语言DDL——Data Definition Language
数据查询语言DQL——Data Query Language
数据操作语言DML——Data Manipulation Language
数据控制语言DCL——Data Control Language
事务控制语言TCL——Transaction Control Languae
数据库的列数据类型
--- 数值 ---
- tinyint // 十分小的数据 - 1个字节
- smallint // 较小的数据 - 2个字节
- mediumint // 中等大小的数据 - 3个字节
- int // 标准的整数 - 4个字节
- bigint // 较大的数据 - 8个字节
- float // 浮点数 - 4个字节
- double // 浮点数 - 8个字节
- decimal // 字符串形式的浮点数 - # 金融计算的时候使用
--- 字符串 ---
- char // 字符串固定大小的 - 0~255 # char和varchar单位都是字符
- varchar // 可变字符串 - 0~65535
- tinytext // 微型文本
- text // 文本串
--- 时间日期 ---
- date // YYYY-MM-DD
- time // HH:mm:ss
- datetime // YYYY-MM-DD HH:mm:ss 最常用的
- timestamp // 时间戳
--- null ---
- 不要使用null值进行运算
数据库字段属性
- Unsigned // 无符号的整数;声明了该列不能为负数
- zerofill // 不足的为数,使用0填充
- 自增 // 通常理解为自增,自动在上一条记录基础上加1;
// 通常用来设计唯一的主键 必须是整数类型;
// 可以自定义设计主键自增的起始值和步长
- 非空 // 假设设置为not null,如果不给它赋值,就会报错!
- null // 如果不填写值,默认就是null!
- 默认 // 设置为默认值
- 每个表都必须存在以下五个字段!未来做项目用,表示一个记录存在的意义!
| id 主键
| `version` 乐观锁
| is_delete 伪删除
| gmt_create 创建时间
| gmt_update 修改时间
归纳
- 7大sql性能分析工具
- 10大类30小类sql优化场景
- 7大日志
- 6大范式
- 15个锁应用场景
- 11大适合创建索引场景
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律