大概意思是这样的:
decimal(m,d)
m是数字的最大位数,他的范围是从1-65;
d是小数点后的位数,他的范围是0-30,并且不能大于m。
如果m被省略了,那么m的值默认为10,
如果d被省略了,那么d的值默认为0.
举例表示:
1、decimal(5,2) 所指代的范围是-999.99~999.99 数字的最大位数是5位,小数点右侧是2位,即有两位小数。
2、decimal(7,6)所指代的范围是-9.999999~9.999999 数字的最大位数是7位,小数点右侧是6位,即有六位小数。
字的位数和所占字节数,有以下对应表:
小数点左侧位数
数据结构所占的字节数
1–21
3–42
5–63
7–94
举例表示:
decimal(18,9)小数位左右各为9位数,此数据所占以上表格即为4字节整数位,4字节小数位;
decimal(20,6)整数位为14位,小数位位6位,此数据需要4个字节给整数位的9位和3字节给另外的5位整数,另外小数位需要3个字节,总共是4+3+3 = 11个字节。
decimal不能够存储以“+”、“-”和“0”开头的数据,如果是“+”开头momo默认存为正数,而“-”开头则不存储
具体的对decimal的定义,可以在mysql源码中的strings/decimal.c文件中的decimal2bin()函数查看。
在源码包里,编辑文件 cmd-line-utils/libedit/terminal.c把terminal_set方法中的 char buf[TC_BUFSIZE]这一行注释,再把 area = buf改为 area = NULL
更改后如下:
protected int
terminal_set(EditLine *el, const char *term)
{
int i
/*char buf[TC_BUFSIZE]*/
char *area
const struct termcapstr *t
sigset_t oset, nset
int lins, cols
--phpfensi.com
(void) sigemptyset(&nset)
(void) sigaddset(&nset, SIGWINCH)
(void) sigprocmask(SIG_BLOCK, &nset, &oset)
area = NULL
然后重新编译即可
优点:
体积小、速度快、总体拥有成本低,开源;
支持多种 *** 作系统;
是开源数据库,提供的接口支持多种语言连接 *** 作 ;
MySQL的核心程序采用完全的多线程编程。线程是轻量级的进程,它可以灵活地为用户提供服务,而不过多的系统资源。用多线程和C语言实现的mysql能很容易充分利用CPU;
MySql有一个非常灵活而且安全的权限和口令系统。当客户与MySql服务器连接时,他们之间所有的口令传送被加密,而且MySql支持主机认证;
支持ODBC for Windows, 支持所有的ODBC 2.5函数和其他许多函数, 可以用Access连接MySql服务器, 使得应用被扩展;
支持大型的数据库, 可以方便地支持上千万条记录的数据库。作为一个开放源代码的数据库,可以针对不同的应用进行相应的修改;
拥有一个非常快速而且稳定的基于线程的内存分配系统,可以持续使用面不必担心其稳定性;
MySQL同时提供高度多样性,能够提供很多不同的使用者介面,包括命令行客户端 *** 作,网页浏览器,以及各式各样的程序语言介面,例如C+,Perl,Java,PHP,以及Python。你可以使用事先包装好的客户端,或者干脆自己写一个合适的应用程序。MySQL可用于Unix,Windows,以及OS/2等平台,因此它可以用在个人电脑或者是服务器上。
缺点:
不支持热备份;
MySQL最大的缺点是其安全系统,主要是复杂而非标准,另外只有到调用mysqladmin来重读用户权限时才发生改变;
没有一种存储过程(Stored Procedure)语言,这是对习惯于企业级数据库的程序员的最大限制;
MySQL的价格随平台和安装方式变化。Linux的MySQL如果由用户自己或系统管理员而不是第三方安装则是免费的,第三方案则必须付许可费。Unix或linux 自行安装 免费 、Unix或Linux 第三方安装 收费。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)