一、mysql中修改字段的数据类型要占内存吗?
mysql修改字段的数据类型要占内存,不同的类型占用的内存数量会有所不同,比如一个 SET 类型最多可以包含 64 项元素。在 SET 元素中值被存储为一个分离的“位”序列,这些“位”表示与它相对应的元素。“位”是创建有序元素集合的一种简单而有效的方式。并且它还去除了重复的元素,所以 SET 类型中不可能包含两个相同的元素,它占的内存就是256mb。
在处理日期和时间类型的值时,MySQL 带有 5 个不同的数据类型可供选择。它们可以被分成简单的日期、时间类型,和混合日期、时间类型。根据要求的精度,子类型在每个分类型中都可以使用,并且 MySQL 带有内置功能可以把多样化的输入格式变为一个标准格式,这意味着它们占用的内存都是有区别的。
二、MySQL中字段数据类型详解
MySQL中字段数据类型详解
MySQL是一种常用的关系型数据库,它提供了各种各样的数据类型,方便开发人员根据实际需求来定义表中的字段。在MySQL中,每个字段都必须定义一个数据类型,以确保存储的数据的准确性和一致性。
常见的MySQL字段数据类型
以下是一些常见的MySQL字段数据类型:
- INT:用于存储整数,可以指定长度和是否有符号。
- VARCHAR:用于存储可变长度的字符数据,最大长度需要指定。
- CHAR:用于存储定长的字符数据,长度需要指定。
- TEXT:用于存储较大的文本数据,可以存储最长65535个字符。
- DATE:用于存储日期,格式为YYYY-MM-DD。
- TIME:用于存储时间,格式为HH:MM:SS。
选择合适的字段数据类型
选择合适的字段数据类型对于数据库设计非常重要。以下是一些选择字段数据类型的原则:
- 准确性:选择能够准确存储数据的数据类型,例如选择INT来存储整数。
- 节省空间:选择合适的数据类型可以节省数据库的空间,例如选择TINYINT而不是INT来存储0和1。
- 格式一致:选择固定长度的数据类型可以确保存储数据的格式一致,例如选择CHAR来存储固定长度的字符串。
- 可扩展性:选择合适的数据类型可以确保数据库的可扩展性,例如选择VARCHAR而不是CHAR来存储可变长度的字符串。
了解MySQL中的字段数据类型,可以帮助开发人员更好地设计和优化数据库结构,提高数据库的性能和安全性。
谢谢您看完这篇文章,希望对您了解MySQL字段数据类型有所帮助!
三、mysql增加字段方法?
一、mysql中不同位置增加字段
增加字段(在特定的字段后增加)
alter table 表名 add 需要修改/增加的信息 afer 字段名(在哪个字段后增加)
alter table dept Add column name varchar(20) not null default 0 AFTER sex;
增加字段(把字段添加在第一个位置)
alter table 表名 add 需要修改/增加的信息 first;
alter table dept Add column name varchar(20) not null default 0 first;
二、修改字段名
alter table 表名 change 原字段 要修改的字段名 字段类型;
alter table dept change name newname varchar(30);
三、删除字段:
alter table 表名 drop column 列名
alter table user_movement_log drop column Gatewayid;
四、调整字段顺序:
ALTER TABLE user_movement_log CHANGE GatewayId GatewayId int not null default 0 AFTER RegionID。
四、mysql删除字段语句?
一般用update语句 update 表名 set 某字段=null; 注意:执行语句前做好备份,避免误操作。
五、MySQL字段详解:数据类型、属性和用途
什么是MySQL字段?
在MySQL数据库中,字段是数据表中的一列,用于存储特定类型的数据。每个字段都具有特定的数据类型、属性和用途,它们决定了字段可以存储的数据范围和所支持的操作。
常见的MySQL字段数据类型
MySQL提供了丰富的数据类型,用于存储不同种类和大小的数据。常见的数据类型包括:
- 整数类型:用于存储整数,如INT、BIGINT、TINYINT等。
- 浮点类型:用于存储小数,如FLOAT、DOUBLE等。
- 字符类型:用于存储文本或字符,如VARCHAR、CHAR等。
- 日期和时间类型:用于存储日期、时间或日期时间,如DATE、TIME、DATETIME等。
- 二进制类型:用于存储二进制数据,如BLOB、BIT等。
MySQL字段属性
每个字段还可以具有不同的属性,用于进一步定义字段的行为和特性。常见的字段属性包括:
- 主键(PRIMARY KEY):用于唯一标识数据表中的记录。
- 自增(AUTO_INCREMENT):用于自动增加字段的值。
- 非空(NOT NULL):禁止字段为空值。
- 唯一(UNIQUE):确保字段的值在表中是唯一的。
- 外键(FOREIGN KEY):用于定义字段与其他表的关联关系。
MySQL字段的用途
MySQL字段的用途是存储、检索和操作数据。通过定义合适的字段类型、属性和关联关系,可以有效地存储和管理大量的结构化数据。字段还可以参与数据查询、排序、过滤和计算等数据库操作。
总结
MySQL字段是用于存储数据的表的列,具有数据类型、属性和用途。了解和合理使用不同的字段类型和属性,可以提高MySQL数据库的性能和数据存储效率。
感谢您阅读本文,希望对您理解MySQL字段有所帮助。
六、mysql去除字段怎么恢复?
1.如果开启了日志,直接mysqlbinlog 使用日志恢复即可。
2.如果不是删除了一个表的部分数据,而是删除整个表,那么可以在删除后马上用磁盘数据恢复软件尝试恢复。(因为删除表后会有文件被删除,而删除表的部分数据,文件还是存在)
3.找数据恢复的公司,使用工具分析ibdata1(分析过程参考一页一页查看有没有历史记录存在,使用ibdata1恢复数据,应该是在了解数据表结构的前提下,数据库除ibdata1外其他数据受损不能正常使用数据库时尝试,而不是删了表数据后恢复什么的。(事实上,这个文件是存储现有表数据的,其实也可以设置成每个表一个文件。)
4.mysql下有ib_logfile0和ib_logfile1两个文件,其实这两个文件里,记录了Mysql的一些事物日志,用于事务的前滚后滚,是Mysql自身使用的,这个文件用文本工具打开后,有很多乱码,但却可以查找到被删除的少量数据的insert记录,极少数的乱码通过前后语句找出了原文,最终通过事物日志恢复了删除的文件。
七、MySQL字段属性详解:数据类型、长度和约束
什么是MySQL字段属性?
MySQL是一种常用的关系型数据库管理系统,用于存储和管理大量的数据。在MySQL中,字段属性指的是每个字段的特性和限制,包括数据类型、长度和约束等。
MySQL支持的数据类型
MySQL支持多种数据类型,常用的包括:
- 整数型:包括TINYINT、SMALLINT、INT、BIGINT等。
- 浮点型:包括FLOAT和DOUBLE。
- 定点型:包括DECIMAL。
- 字符串型:包括CHAR、VARCHAR和TEXT等。
- 日期和时间型:包括DATE、TIME、DATETIME和TIMESTAMP等。
MySQL字段长度
字段长度是指每个字段允许存储的字符数或者数字范围。不同的数据类型有不同的长度限制。
例如,CHAR类型的字段长度是固定的,VARCHAR类型的字段长度可变。
MySQL字段约束
字段约束用于限制字段的取值范围和行为。MySQL支持多种字段约束:
- 主键约束:用于唯一标识表中的每一行,保证数据的唯一性。
- 外键约束:用于建立表之间的关系,保证数据的完整性。
- 唯一约束:用于保证数据的唯一性,但可以有空值。
- 非空约束:用于限制字段不能有空值。
- 默认约束:用于在字段没有显式指定值时,自动填充默认值。
- 检查约束:用于自定义字段的取值范围。
总结
MySQL字段属性是指每个字段的特性和限制,包括数据类型、长度和约束等。了解和合理使用字段属性,可以提高数据库的效率和数据的完整性。
感谢您阅读本文,希望通过本文能够帮助您更好地理解MySQL字段属性,提升数据库管理的能力。
八、如何在MySQL中修改字段数据类型
MySQL是一种广泛使用的关系型数据库管理系统,它提供了丰富的功能和灵活的数据操作方式。在使用MySQL时,有时候我们需要修改数据库表中某个字段的数据类型,以适应新的业务需求或提高数据存储的效率。
1. 确定需要修改的字段
在进行字段数据类型的修改之前,首先需要明确需要修改的字段是哪个。可以使用以下的SQL语句查询表结构:
DESCRIBE 表名;
通过查看表结构,我们可以找到需要修改的字段以及它原来的数据类型。
2. 分析修改的影响
在修改字段数据类型之前,需要考虑修改可能带来的影响。例如,如果将一个字段从较小的数据类型改为较大的数据类型,可能会导致数据丢失或超过字段最大长度的情况。
我们需要确保修改后的字段数据类型能够存储原有字段的数据,并且不会引起其他数据异常。
3. 创建备份
在修改字段数据类型之前,建议先对相关的数据进行备份,以防止数据丢失或错误。可以使用以下SQL语句创建表的备份:
CREATE TABLE 表名_备份
SELECT * FROM 表名;
这样就创建了一个与原表结构相同的备份表,并将原表中的数据复制到备份表中。
4. 修改字段数据类型
在确定了需要修改的字段、分析了修改的影响并创建了备份之后,就可以开始修改字段数据类型了。使用以下的SQL语句来修改字段数据类型:
ALTER TABLE 表名
MODIFY COLUMN 字段名 新的数据类型;
这里需要将"表名"替换为实际的表名,"字段名"替换为需要修改的字段名,"新的数据类型"替换为目标数据类型。
5. 验证修改结果
在完成字段数据类型的修改之后,需要验证修改是否成功。可以使用以下SQL语句查看表结构,确认字段数据类型是否已经修改:
DESCRIBE 表名;
如果新的数据类型已经生效,那么说明修改成功。
总结
通过以上的步骤,我们可以在MySQL中成功修改字段数据类型。在修改字段数据类型之前,建议先确定需要修改的字段、分析修改的影响,并创建表的备份;然后使用ALTER TABLE语句修改字段数据类型;最后验证修改结果是否生效。
感谢您阅读本文,希望通过本文能够帮助您更好地在MySQL中修改字段数据类型。
九、mysql数据类型的详解?
MySQL数据库的表是一个二维表,由一个或多个数据列构成。 每个数据列都有它的特定类型,该类型决定了MySQL如何看待该列数据,我们可以把整型数值存放到字符类型的列中,MySQL则会把它看成字符串来处理。 MySQL中的列类型有三种:数值类、字符串类和日期/时间类。 从大类来看列类型和数值类型一样,都是只有三种。但每种列类型都还可细分。 下面对各种列类型进行详细介绍。
数值类的数据列类型 数值型的列类型包括整型和浮点型两大类。
TINYINT:1字节 非常小的正整数,带符号:-128~127,不带符号:0~255 SMALLINT:2字节 小整数,带符号:-32768~32767,不带符号:0~65535 MEDIUMINT:3字节 中等大小的整数,带符号:-8388608~8388607,不带符号:0~16777215 INT:4字节 标准整数,带符号:-2147483648~2147483647,不带符号:0~4294967295 BIGINT:8字节 大整数,带符号:-9223372036854775808~9233372036854775807,不带符号:0~18446744073709551615 FLOAT:4字节 单精度浮点数,最小非零值:+-1.175494351E-38,最大非零值:+-3.402823466E+38 DOUBLE:8字节 双精度浮点数,最小非零值:+-2.2250738585072014E-308,最大非零值:+-1.7976931348623157E+308 DECIMAL:M+2字节 以字符串形式表示的浮点数,它的取值范围可变,由M和D的值决定。 MYSQL支持大量的列类型,它们可以被分为 3 类:数字类型、日期和时间类型以及字符串(字符)类型。这个章节首先给出可用类型的概述,并且总结各类型所需的存储需求,然后提供各类型中的类型范畴更详细的描述。概述有意地简化了。更详细的说明应该参考特写列类型的附加信息,例如你能为其指定值的允许格式。 MySQL 支持的列类型在下面列出。下列代码字母用于描述中: M指出最大的显示尺寸。最大的显示尺寸长度为 255。D适用于浮点类型。指出跟随在十进制小数点后的数字数量。最大可能值为 30,但不应大于M-2。 方括号 (“[”and“]”) 指定可选的类型修饰部份。 注意,如果为一个列指定了ZEROFILL,MySQL 将自动为这个列添加UNSIGNED属性。 警告:你应该知道当在两个整数类型值中使用减法时,如有一个为UNSIGNED类型,那么结果也是无符号的。查看章节6.3.5 Cast 函数。
TINYINT[(M)] [UNSIGNED] [ZEROFILL]-128到127。无符号的范围是0到255。 BITBOOL它们是TINYINT(1)的同义词。
SMALLINT[(M)] [UNSIGNED] [ZEROFILL]一个小整数。有符号的范围是-32768到32767。无符号的范围是0到65535。
MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]一个中等大小的整数。有符号的范围是-8388608到8388607。无符号的范围是0到16777215。
INT[(M)] [UNSIGNED] [ZEROFILL]一个正常大小的整数。有符号的范围是-2147483648到2147483647。无符号的范围是0到4294967295。
INTEGER[(M)] [UNSIGNED] [ZEROFILL]INT的同义词。
BIGINT[(M)] [UNSIGNED] [ZEROFILL]一个大的整数。有符号的范围是-9223372036854775808到9223372036854775807。无符号的范围是0到18446744073709551615。 你应该知道的有关BIGINT列的一些事情: BIGINT或DOUBLE值来完成的,因此你不应该使用大于9223372036854775807(63 bits) 的无符号大整数,除了位函数之外!如果你这样做了,结果中的某些大数字可能会出错,因为将BIGINT转换成DOUBLE时产生了舍入错误。MySQL 4.0 在下列情况下可以处理BIGINT: 在一个BIGINT列中使用整数存储一个大的无符号值。 在MIN(big_int_column)和MAX(big_int_column)中。 当两个操作数都是整数时使用操作符 (+、-、*、等)。 通常你可以在一个BIGINT列中以字符串方式存储的一个精确的整数。在这种情况下,MySQL 将执行一个字符串到数字的转换,包括无 intermediate 的双精度表示法。 当两个参数均是整数值时,“-”、“+”和“*”将使用BIGINT运算!这就意味着,如果两个大整数的乘积(或函数的结果返回整数)的结果大于9223372036854775807时,你可能会得到意想不到的结果。 FLOAT(precision) [UNSIGNED] [ZEROFILL]一个浮点型数字。 precision可以是<=24作为一个单精度的浮点数字和介于 25 和 53 之间作为一个双精度的浮点数字。这些类型与下面描述的FLOAT和DOUBLE类型相似。FLOAT(X)有与相应的FLOAT和DOUBLE类型同样的范围,但是显示尺寸和十进制小数位数是未定义的。在 MySQL 3.23 中,它是一个真实的浮点值。而在 MySQL 早期的版本中,FLOAT(precision)通常有 2 小数位。 注意,由于在 MySQL 中所有的计算都是以双精度执行的,所以使用FLOAT可能带来一些意想不到的问题。查看章节A.5.6 解决没有匹配行的问题。 FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]一个小的(单精度) 浮点数字。允许的值是-3.402823466E+38到-1.175494351E-38、0和1.175494351E-38到3.402823466E+38。如果UNSIGNED被指定,负值是不允许的。M是显示宽度,D是小数位数。FLOAT没有参数或有X<= 24 的FLOAT(X)代表一个单精度的浮点数字。 DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]一个正常大小的(双精度)浮上数字。允许的值是-1.7976931348623157E+308到-2.2250738585072014E-308、0和2.2250738585072014E-308到1.7976931348623157E+308。如果UNSIGNED被指定,负值是不允许的。M是显示宽度,D是小数位数。DOUBLE没胡参数或有 25 <=X<= 53 的FLOAT(X)代表一个双精度的浮点数字。 DOUBLE PRECISION[(M,D)] [UNSIGNED] [ZEROFILL] REAL[(M,D)] [UNSIGNED] [ZEROFILL]它们是DOUBLE同义词。 DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]一个未压缩(unpacked)的浮点数。运作如同一个CHAR列:“unpacked” 意味着数字是以一个字符串存储的,值的每一位将使用一个字符。小数点并且对于负数,“-”符号不在M中计算(但是它们的空间是被保留的)。如果D是 0,值将没有小数点或小数部份。DECIMAL值的最大范围与DOUBLE一致,但是对于一个给定的DECIMAL列,实际的范围可以被所选择的M和D限制。如果UNSIGNED被指定,负值是不允许的。 如果D被忽略,缺省为 0。如果M被忽略,缺省为 10。 在 MySQL 3.23 以前,M参数必须包含符号与小数点所需的空间。 DEC[(M[,D])] [UNSIGNED] [ZEROFILL] NUMERIC[(M[,D])] [UNSIGNED] [ZEROFILL]DECIMAL的同义词。 DATE一个日期。支持的范围是'1000-01-01'到'9999-12-31'。MySQL 以'YYYY-MM-DD'格式显示DATE值,但是允许你以字符串或数字给一个DATE列赋值。查看章节6.2.2.2DATETIME、DATE和TIMESTAMP类型。 DATETIME一个日期和时间的组合。支持的范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。MySQL 以'YYYY-MM-DD HH:MM:SS'格式显示DATETIME值,但是允许你以字符串或数字给一个DATETIME列赋值。查看章节6.2.2.2DATETIME、DATE和TIMESTAMP类型。 TIMESTAMP[(M)]一个时间戳。范围是'1970-01-01 00:00:00'到2037年间的任意时刻。 MySQL 4.0 和更早版本中,TIMESTAMP值是以YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD或YYMMDD格式显示的,它取决于M是否是14(或省略)、12、8或6,但是允许你以字符串或数字给一个TIMESTAMP列赋值。 从 MySQL 4.1 开始,TIMESTAMP以'YYYY-MM-DD HH:MM:DD'格式作为字符返回。如果你你希望以数字形式返回则必须在该时间戳字段后加上 +0。不同的时间戳长度是不支持的。从 MySQL 4.0.12 开始,选项--new可以被用来使服务器与 4.1 一样运作。TIMESTAMP列有益于记录一个INSERT或UPDATE操作的日期和时间,因为如果你自己没有给它赋值,它将被自动地设置为最近一次操作的日期和时间。也可以通过给它赋一个NULL而使它设置为当前的日期和时间。查看章节6.2.2 Date 和 Time 类型。 参数M只影响一个TIMESTAMP列的显示格式;它的值总是占用 4 个字节存储。 注意,当TIMESTAMP(M)列的M是 8 或 14 时,它返回的是数字而其它的TIMESTAMP(M)列返回的是字符串。这仅仅是为了可以可靠地转储并恢复到其它格式的表中。查看章节6.2.2.2DATETIME、DATE和TIMESTAMP类型。TIME一个时间。范围是'-838:59:59'到'838:59:59'。MySQL 以'HH:MM:SS'格式显示TIME值,但是允许你使用字符串或数字来给TIME列赋值。查看章节6.2.2.3TIME类型。YEAR[(2|4)]一个 2 或 4 位数字格式的年(缺省为 4 位)。允许的值是1901到2155、0000(4 位年格式) 以及使用 2 位格式的 1970-2069 (70-69)。MySQL 以YYYY格式显示YEAR值,但是允许你使用字符串或数字来给YEAR列赋值。(YEAR类型在 MySQL 3.22 之前不支持。) 查看章节6.2.2.4YEAR类型。 [NATIONAL] CHAR(M) [BINARY]一个定长的字符串,当存储时,总是以空格填满右边到指定的长度。M的范围是 0 到 255 (在 MySQL 3.23 版本之前为 1 到 255)。当该值被检索时,尾部空格将被删除。CHAR值根据缺省的字符集进行忽略大小写的排索与比较,除非指定了关键词BINARY。NATIONAL CHAR(或短形式NCHAR) 是以 ANSI SQL 方式定义一个CHAR列,它将使用缺省的字符集。这在 MySQL 中是默认的。 CHAR是CHARACTER的缩写。 MySQL 允许以CHAR(0)类型建立一个列。一些老程序运行时必需一个列,却又并不使用这个列的值,你就不得不为了适应它而建立该列,在这情况下,CHAR(0)将是很有益的。当需要一个列仅保存两个值时:一个为CHAR(0)(该列没有定义为NOT NULL),这将仅占用一个比特位来存储 2 个值:NULL或""。查看章节6.2.3.1CHAR和VARCHAR类型。CHAR这是CHAR(1)的同义词。 [NATIONAL] VARCHAR(M) [BINARY]一个变长的字符串。注意:尾部的空格在存储时将会被删除(这与 ANSI SQL 约规不同)。M的范围是 0 到 255 (在 MySQL 4.0.2 之前的版本中是 1 到 255)。 VARCHAR值以大小写忽略方式进行排索与比较,除非关键词BINARY被指定。查看章节6.5.3.1 隐式的列定义变化。VARCHAR是CHARACTER VARYING的缩写。查看章节6.2.3.1CHAR和VARCHAR类型。 TINYBLOBTINYTEXT一个BLOB或TEXT列,最大长度为 255 (2^8 - 1) 个字符。查看章节6.5.3.1 隐式的列定义变化。查看章节6.2.3.2BLOB和TEXT类型。 BLOBTEXT一个BLOB或TEXT列,最大长度为 65535 (2^16 - 1) 个字符。查看章节6.5.3.1 隐式的列定义变化。查看章节6.2.3.2BLOB和TEXT类型。 MEDIUMBLOBMEDIUMTEXT一个BLOB或TEXT列,最大长度为 16777215 (2^24 - 1) 个字符。查看章节6.5.3.1 隐式的列定义变化。查看章节6.2.3.2BLOB和TEXT类型。 LONGBLOBLONGTEXT一个BLOB或TEXT列,最大长度为 4294967295 (2^32 - 1) 个字符。查看章节6.5.3.1 隐式的列定义变化。注意,由于服务器/客户端的协议以及 MyISAM 表通常有一个 16M 每通信包/表行的限制,你仍然不能使用这个类型的整个范围。查看章节6.2.3.2BLOB和TEXT类型。ENUM('value1','value2',...)一个枚举类型。一个仅能有一个值的字符串对象,这个值选自值列'value1'、'value2'、...、NULL或特殊的""出错值。一个ENUM列可以有最大 65535 不同的值。查看章节6.2.3.3ENUM类型。SET('value1','value2',...)一个集合。一个能有零个或更多个值的字符串对象,其中每个值必须选自值列'value1'、'value2'、...。一个SET列可以有最大 64 个成员。查看章节6.2.3.4SET类型。 MySQL 支持所有的 ANSI/ISO SQL92 数字类型。这些类型包括准确数字的数据类型(NUMERIC、DECIMAL、INTEGER和SMALLINT),也包括近似数字的数据类型(FLOAT、REAL和DOUBLE PRECISION)。关键词INT是INTEGER的同义词,关键词DEC是DECIMAL的同义词。 NUMERIC和DECIMAL类型被 MySQL 以同样的类型实现,这在 SQL92 标准中是允许的。他们用于保存对准确精度有重要要求的值,例如与金钱有关的数据。当以它们中的之一声明一个列时,精度和数值范围可以(通常是)被指定;例如: salary DECIMAL(5,2) 在这个例子中,5(精度(precision)) 代表重要的十进制数字的数目,2(数据范围(scale)) 代表在小数点后的数字位数。在这种情况下,因此,salary列可以存储的值范围是从-99.99到99.99。(实际上 MySQL 在这个列中可以存储的数值可以一直到999.99,因为它没有存储正数的符号)。 译者注: M 与D 对DECIMAL(M, D) 取值范围的影响 类型说明 取值范围(MySQL < 3.23) 取值范围(MySQL >= 3.23) DECIMAL(4, 1) -9.9 到 99.9 -999.9 到 9999.9 DECIMAL(5, 1) -99.9 到 999.9 -9999.9 到 99999.9 DECIMAL(6, 1) -999.9 到 9999.9 -99999.9 到 999999.9 DECIMAL(6, 2) -99.99 到 999.99 -9999.99 到 99999.99 DECIMAL(6, 3) -9.999 到 99.999 -999.999 到 9999.999 # 在MySQL 3.23 及以后的版本中,DECIMAL(M, D) 的取值范围等于早期版本中的DECIMAL(M + 2, D) 的取值范围。注释结束: 在 ANSI/ISO SQL92 中,句法DECIMAL(p)等价于DECIMAL(p,0)。同样的,在执行被允许决定值p的地方,句法DECIMAL等价于DECIMAL(p,0)。MySQL 目前还不支持DECIMAL/NUMERIC数据类型的这些变体形式中的任一种。一般来说这并不是一个严重的问题,通过明确地控制精度和数值范围可以得到这些类型的主要功能益处。 DECIMAL和NUMERIC值是作为字符串存储的,而不是作为二进制浮点数,以便保护这些值的十进制精确度。一个字符用于数值的每一位、小数点(如果scale> 0) 和“-”符号(对于负值)。如果scale是 0,DECIMAL和NUMERIC值不包含小数点或小数部分。 DECIMAL和NUMERIC值的最大范围与DOUBLE一致,但是对于一个给定的DECIMAL或NUMERIC列,它的实际范围可制定该列时的precision或scale限制。当这样的列被赋给了小数点的位数超过scale所指定的值时,该将根据scale进行四舍五入。当一个DECIMAL或NUMERIC列被赋与一个大小超过指定(或缺省)的precisionandscale的限止范围时,MySQL 以该列范围的端点值存储该值。
十、php数据类型和mysql数据类型区别?
php是弱数据类型语言,也就是说对于数据类型不是特别敏感,mysql有较多的数据类型 其中timestamap,datetime等时间类型与php相差较大