数据类型
常用的数据类型
整数类型 tiny(1字节) smallint(2字节)
mediumint(3字节) int(4字节) bigint(8字节)
浮点型 double(总长度,小数位) float decimal
字符串 char varchar text longtext
char最大长度是255
varchar 能够存储的字节数是65535
1、结构varchar类型的第一个字节不存储数据
2、varchar 前两个字节存储数据长度
3、有效位就剩下了65532,编码格式决定了能存储多少个字符
4、行中列的在总字节长度不能超过65535
如果要存储长文本,使用text类型
char和varchar的区别
1、char是定长的,varchar是变长的
char(20) 存入abcd,占了20个字符位
varchar(20) 变长的 存入abcd 占了4个字符位
2、char的性能更好 varchar需要计算字符数
3、使用场景
char;身份证号、手机号、学号、订单号等
varchar;介绍信息、地址、姓名、店名等
text用来记录长文本,不需要设置长度
日期
1、date;只能记录年月日
2、time;只能记录时分秒
3、datetime:年月日时分秒
视图 view 是一个已经编译好的SQL语句
创建视图
视图中不存储数据,数据还是存储在表中
-- 视图中不存储数据,数据还是存储在表中
触发器 trigger
相当于一个事件,一旦表中发生了指定事件,该触发器就会自动运行
触发器可以通过三种操作出发,增删改
触发时机 before after
尽量不用触发器,会影响正常业务逻辑
Java逻辑代码完成触发器工作
函数 now() max聚合函数 if()
自定义函数
日期函数
SELECT NOW();返回当前的日期和时间
SELECT CURDATE();返回当前的日期
SELECT CURTIME();返回当前的时间
SELECT CURRENT_TIMESTAMP;返回当前的日期和时间
存储过程 procedure
三范式
1、每一列的数据不可分割的(不可以分割)
2、每一列的数据完全依赖主键(不可以部份依赖)
3、不可以传递依赖
事物
ACID是指数据库事务管理中的四个重要特性,
用于确保数据库系统的可靠性和一致性。
这四大特性分别是:
1、原子性(Atomicity):事务内的操作是一个整体, 要么执行成功, 要么执行失败
2、一致性(Consistency):事务执行前后, 数据库状态保持一致
3、隔离性(Isolation):多个事务并发时, 事务之间不能相互影响
4、持久性(Durability):事务一旦执行成功,数据库会保证事务处理一定会持久化到数据库中
并发访问数据混乱
- 脏读:一个事务读取到了另一个事务修改未提交的记录
- 幻读:当事务不是独立执行时出现的一种现象
- 不可重复读:一个事务两次读取的记录数据不一致