数据库概念和一些数据类型

1.事务的四个特性以及对应的子系统:
 
(1)原子性(A):安全性管理子系统;
 
(2)一致性(C):完整性管理子系统;
 
(3)隔离性(I):并发控制子系统;
 
(4)持久性(D):恢复管理子系统;
 
2.MySQL中Decimal类型和Float Double等区别
 MySQL DECIMAL数据类型用于在数据库中存储精确的数值。我们经常将DECIMAL数据类型用于保留准确精确度的列,例如会计系统中的货币数据。
MySQL中存在float,double等非标准数据类型,也有decimal这种标准数据类型。
其区别在于,float,double等非标准类型,在DB中保存的是近似值,而Decimal则以字符串的形式保存数值。
float,double类型是可以存浮点数(即小数类型),但是float有个坏处,当你给定的数据是整数的时候,那么它就以整数给你处理。这样我们在存取货币值的时候自然遇到问题,我的default值为:0.00而实际存储是0,同样我存取货币为12.00,实际存储是12。
mysql提供了两个数据类型:decimal,这种数据类型可以轻松解决上面的问题:decimal类型被 MySQL 以同样的类型实现,这在 SQL92 标准中是允许的。他们用于保存对准确精度有重要要求的值,例如与金钱有关的数据。
amount DECIMAL(6,2);

在此示例中,amount列最多可以存储6位数字,小数位数为2位; 因此,amount列的范围是从-9999.999999.99

浮点数如果不写经度和标度,会按照实际精度值保存,如果有精度和标度,则会自动将四舍五入后的结果插入,系统不会报错;定点数如果不写精度和标度,则按照默认值decimal(10,0) 来操作,如果数据超过了精度和标度值,系统会报错。

3.VARCHAR(M)是长度可变的字符串,M表示最大列长度,varchar的最大实际长度由最长的行的大小和使用的字符集确定,实际占用空间为字符串实际长度加1,如varchar(50),如果插入字符只有10个字符,则实际存储的字符串为10个字符和一个字符串结束字符。在值保存和检索时尾部的空格仍保留

而char(M)是固定长度字符串,保存时,右侧填充空格以达到指定的长度。检索到char值时,尾部的空格将被删除掉。

原文地址:https://www.cnblogs.com/ffaiss/p/10762791.html