您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > MYSQL实用技术-MySQL数据类型
MYSQL实用技术数据类型种类数值列类型字符串列类型日期和时间列类型MySQL数据类型数值型分为整型和浮点型整型:可以由十进制和十六进制表示整数由数字序列组成,如:1,100。由十六进制表示方法:0x且后面加1—9和A—F的任意数字或字母,并且0x中的X不能大写。浮点型:浮点数由一个数字加一个小数点再加上一个数字组成。两个数字序列不能同时为空。数据类型种类字符串:由单引号或者双引号括起来的字符或者数字。如:”abc”,‘abc10’字符串中要用转义字符才能表示的特殊符号日期和时间值是存储如“2005-1-1”或者“12:00:00”这样的数值的值。在MySQL中日期是按”年-月-日”的顺序。NULL值是一种无类型的值,表示“空,什么也没有”。MySQL为除了NULL值外的所有通用数据类型提供了列类型。列类型是一种手段,通过这种手段可以描述表的列可以包含什么样类型的值。数值列类型所有数值列类型的类型名及其说明和所占的字节数见下表:数值列类型数值列类型包括整型和浮点型说明:TINYINT,SAMLLINT,MEDIUMINT,INT,BIGINT每个数据类型的取值范围不同,故分别可以表示不同的数值范围。在定义整型列时,可以指定可选的显示尺寸M(见上表),M是从1到255的值,它表示显示列中值的字符数。输入以下语句,观察结果Createtabledata1(TINTINYINT,SMALLSMALLINT);Describedata1;观察结构Createtabledata2(TINTINYINT(1),SMALLSMALLINT(2));Describedata2;观察结构Insertintodata2values(1,1);Insertintodata2values(128,1);Insertintodata2values(127,1);Insertintodata2values(127,32768);Insertintodata2values(127,32767);尝试例如:INT(4)意思是指定了一个具有4个字符显示宽度的INT列。如果定义了一个没有明确宽度的整数列,则会分配缺省的宽度,缺省值为每种类型的最长值的长度。对于每种浮点型,可指定一个最大的显示尺寸M和小数位数D,M的取值应该是0-30。正数位最大为M-D-1,M和D对于DECIMAL是必须的。AUTO_INCREMENT自动标识列,在需要产生唯一标志符号或者顺序值时候,可用此属性。值一般从1开始,每行增加1,在插入NULL到一个AUTO_INCREMENT列时,MySQL会插入一个比该列中当前最大值大1的值,一个表中最多能有一个有此属性的列。对于想使用此属性的列应该定义为NOTNULL,并定义为PRIMARYKEY或者定义为UNIQUE键。举例:createtablet(idintauto_incrementnotnullprimarykey);UNSIGNED无符号,此属性禁用负值,将数值的取值范围从零开始。举例:createtablet(numtinyint,num2tinyintunsigned);数值列的完整性约束NULL和NOTNULL默认为NULL,即插入值时没有在此字段插入值时自动填NULL,如果指定了NOTNULL,则必须在插入值时在此字段添入值,不允许插入NULL值。DEFAULT可以通过此属性来指定一个缺省值,即如果没有在此列添加值,那么默认添加DEFAULT后指定值。ZEROFILL前导零填充数值类型值以达到列的显示宽度。举例:createtabletest2(num1intdefault1,num2intzerofill);字符串列类型所有字符串列类型及其说明和所占的字节数见下表:说明:对于可变长的字符串类型,其长度取决于实际存放在列中的值的长度。此长度在上表中用L来表示。附加若干额外字节,用来记录字符串长度,也就是说总长度等于L+n(n=1、2、3、4、8)CHAR和VARCHAR类型CHAR类型和VARCHAR类型长度范围都是0~255之间的大小。他们之间的差别在于MySQL处理存储的方式:CHAR把这个大小视为值的准确大小(用空格填补比较短的值)。VARCHAR类型把它视为最大值并且只使用了存储字符串实际上需要的字节数(增加了一个额外的字节记录长度)。因而,较短的值当被插入一个语句为VARCHAR类型的字段时,将不会用空格填补(然而,较长的值仍然被截短)。BLOB和TEXT类型BLOB是二进制大对象,如果想存储二进制数BLOB将是最佳选择,而TEXT与之相同,只是BOLOB按照二进制编码排序(区分大小写),TEXT按照字符文本模式排序(不区分大小写)。ENUM和SET类型是特殊的串类型,其列值必须从固定的串集中选择,二者差别为前者必须是只能选择其中的一个值,而后者可以多选。(不推荐使用)字符串列类型的可选属性BINARY使用此属性可以使列值作为二进制串处理,即看成BLOB类型。NULL和NOTNULL同数值型功能相同DEFAULT同数值型功能相同日期和时间列类型所有时间和日期列类型的类型名及其说明和所占的字节数见下表:说明:每个时间和日期列类型都有一个零值,当插入非法数值时就用零值来添加表示日期时必须先按:年,月,日的顺序给出DATE,TIME,DATETIME分别是存储日期,时间与日期和时间的组合,其格式为“YYYY-MM-DD”,“hh:mm:ss”和“YYYY-MM-DDhh:mm:ss”,对于DATETIME类型,日期和时间部分都需要TIMESTAMP时间戳列类型以YYYYMMDDhhmmss的格式来表示值,其取值范围是19700101000000到2037年的某个时间,主要用于记录更改或创建某个记录总结:常用数据类型分类备注和说明数据类型说明二进制数据类型存储非子符和文本的数据BLOB可用来存储图像文本数据类型字符数据包括任意字母、符号或数字字符的组合char固定长度的非Unicode字符数据varchar可变长度非Unicode数据text存储长文本信息日期和时间日期和时间在单引号内输入time时间date日期datetime日期和时间数值型数据该数据仅包含数字,包括正数、负数以及浮点数intsmallint整数floatdouble浮点数货币数据类型用于财务数据decimal定点数Bit数据类型表示是/否的数据bit存储布尔数据类型
本文标题:MYSQL实用技术-MySQL数据类型
链接地址:https://www.777doc.com/doc-7985624 .html