varchar
number
date
在mysql里不允许使用number,让我费解。
基础语法如何使用?create table tab1(id varcha(20),photo number(10));另外varchar2也不可以使用吗???这个是oracle中看到的。
number
date
在mysql里不允许使用number,让我费解。
基础语法如何使用?create table tab1(id varcha(20),photo number(10));另外varchar2也不可以使用吗???这个是oracle中看到的。
解决方案 »
- 我有一个mysql数据库要机器码注册怎么去掉这个注册数据库可以用sqlyog打开
- 【求助】mysql表空间问题
- 求助:在C语言里调用SQL语句删除一行出错,在MYSQL命令行里执行相同的语句却成功。
- 关键字: MySQL BLOB Lost Connection 探讨求助
- 数据库连接出错.............很急很急...在线等
- mysql的安装
- 我安装完了MYSQL怎么看不到装在哪儿了?
- 怎么从MYSQL select 头五条记录?用select top 5 * from 不行
- 多线程同时调用MySql存储过程的问题
- mysql集群查询效率问题
- 关于postgresql的问题....请指教
- 被Mysql phpmyadmin搞怕了 帮忙看看这个怎么恢复
11.1.2. 日期和时间类型概述本节综合讨论了临时列类型。详细信息,参见11.3节,“日期和时间类型”。列存储需求参见11.5节,“列类型存储需求”。
· DATE日期。支持的范围为'1000-01-01'到'9999-12-31'。MySQL以'YYYY-MM-DD'格式显示DATE值,但允许使用字符串或数字为DATE列分配值。· DATETIME日期和时间的组合。支持的范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。MySQL以'YYYY-MM-DD HH:MM:SS'格式显示DATETIME值,但允许使用字符串或数字为DATETIME列分配值。· TIMESTAMP[(M)]时间戳。范围是'1970-01-01 00:00:00'到2037年。TIMESTAMP列用于INSERT或UPDATE操作时记录日期和时间。如果你不分配一个值,表中的第一个TIMESTAMP列自动设置为最近操作的日期和时间。也可以通过分配一个NULL值,将TIMESTAMP列设置为当前的日期和时间。TIMESTAMP值返回后显示为'YYYY-MM-DD HH:MM:SS'格式的字符串,显示宽度固定为19个字符。如果想要获得数字值,应在TIMESTAMP 列添加+0。注释:MySQL 4.1以前使用的TIMESTAMP格式在MySQL 5.1中不支持;关于旧格式的信息参见MySQL 4.1 参考手册。· TIME时间。范围是'-838:59:59'到'838:59:59'。MySQL以'HH:MM:SS'格式显示TIME值,但允许使用字符串或数字为TIME列分配值。· YEAR[(2|4)]两位或四位格式的年。默认是四位格式。在四位格式中,允许的值是1901到2155和0000。在两位格式中,允许的值是70到69,表示从1970年到2069年。MySQL以YYYY 格式显示YEAR值,但允许使用字符串或数字为YEAR列分配值。
11.1.3. 字符串类型概述本节综合讨论了字符串列类型。详细信息参见11.4节,“String类型”。列存储需求参见11.5节,“列类型存储需求”。在某些情况中,MySQL可以将一个字符串列更改为不同于CREATE TABLE或ALTER TABLE语句中所给出的类型。参见13.1.5.1节,“沉寂的列规格变更”。MySQL 5.1字符串数据类型包括部分在MySQL 4.1之前的版本中没有的特性:· 许多字符串数据类型的列定义可以包括指定字符集的CHARACTER SET属性,也可能包括校对规则。(CHARSET是CHARACTER SET的一个同义词)。这些属性适用于CHAR、VARCHAR、TEXT类型、ENUM和SET。例如:· CREATE TABLE t· (· c1 CHAR(20) CHARACTER SET utf8,· c2 CHAR(20) CHARACTER SET latin1 COLLATE latin1_bin· );该表定义创建了一个名为c1的列,具有一个utf8字符集和该字符集的默认 校对规则,和一个名为c2的列以及latin1字符集和该字符集的二元 校对规则。二元校对规则对大小写不敏感。· MySQL 5.1用字符单位解释在字符列定义中的长度规范。(以前的一些MySQL版本以字节解释长度)。· 对于CHAR、VARCHAR和TEXT类型,BINARY属性可以为列分配该列字符集的 校对规则。· 字符列的排序和比较基于分配给列的字符集。在以前的版本中,排序和比较基于服务器字符集的校对规则。对于CHAR和VARCHAR 列,你可以用BINARY属性声明列让排序和 校对规则使用当前的字符代码值而不是词汇顺序。关于MySQL 5.1中字符集的支持,参见第10章:字符集支持。· [NATIONAL] CHAR(M) [BINARY| ASCII | UNICODE]固定长度字符串,当保存时在右侧填充空格以达到指定的长度。M表示列长度。M的范围是0到255个字符。注释:当检索CHAR值时尾部空格被删除。如果想要将某个CHAR的长度设为大于255,执行的CREATE TABLE或ALTER TABLE语句将失败并提示错误:mysql> CREATE TABLE c1 (col1 INT, col2 CHAR(500));ERROR 1074 (42000): Column length too big for column 'col' (max = 255); use BLOB or TEXT insteadmysql> SHOW CREATE TABLE c1;ERROR 1146 (42S02): Table 'test.c1' doesn't existCHAR是CHARACTER的简写。NATIONAL CHAR(或其等效短形式NCHAR)是标准的定义CHAR列应使用 默认字符集的SQL方法。这在MySQL中为默认值。BINARY属性是指定列字符集的二元 校对规则的简写。排序和比较基于数值字符值。列类型CHAR BYTE是CHAR BINARY的一个别名。这是为了保证兼容性。可以为CHAR指定ASCII属性。它分配latin1字符集。可以为CHAR指定UNICODE属性。它分配ucs2字符集。MySQL允许创建类型CHAR(0)的列。这主要用于必须有一个列但实际上不使用值的旧版本的应用程序相兼容。当你需要只能取两个值的列时也很好:没有定义为NOT NULL的一个CHAR(0)列只占用一位,只可以取值NULL和''(空字符串)。· CHAR这是CHAR(1)的同义词。· [NATIONAL] VARCHAR(M) [BINARY]变长字符串。M 表示最大列长度。M的范围是0到65,535。(VARCHAR的最大实际长度由最长的行的大小和使用的字符集确定。最大有效长度是65,532字节)。注释:MySQL 5.1遵从标准SQL规范,并且不删除VARCHAR值的尾部空格。VARCHAR是字符VARYING的简写。BINARY属性是指定列的字符集的二元 校对规则的简写。排序和比较基于数值字符值。VARCHAR保存时用一个字节或两个字节长的前缀+数据。如果VARCHAR列声明的长度大于255,长度前缀是两个字节。· BINARY(M)BINARY类型类似于CHAR类型,但保存二进制字节字符串而不是非二进制字符串。· VARBINARY(M)VARBINARY类型类似于VARCHAR类型,但保存二进制字节字符串而不是非二进制字符串。· TINYBLOB最大长度为255(28–1)字节的BLOB列。· TINYTEXT最大长度为255(28–1)字符的TEXT列。· BLOB[(M)]最大长度为65,535(216–1)字节的BLOB列。可以给出该类型的可选长度M。如果给出,则MySQL将列创建为最小的但足以容纳M字节长的值的BLOB类型。· TEXT[(M)]最大长度为65,535(216–1)字符的TEXT列。可以给出可选长度M。则MySQL将列创建为最小的但足以容纳M字符长的值的TEXT类型。· MEDIUMBLOB最大长度为16,777,215(224–1)字节的BLOB列。· MEDIUMTEXT最大长度为16,777,215(224–1)字符的TEXT列。· LONGBLOB最大长度为4,294,967,295或4GB(232–1)字节的BLOB列。LONGBLOB列的最大有效(允许的)长度取决于客户端/服务器协议中配置最大包大小和可用的内存。· LONGTEXT最大长度为4,294,967,295或4GB(232–1)字符的TEXT列。LONGTEXT列的最大有效(允许的)长度取决于客户端/服务器协议中配置最大包大小和可用的内存。· ENUM('value1','value2',...)枚举类型。只能有一个值的字符串,从值列'value1','value2',...,NULL中或特殊 ''错误值中选出。ENUM列最多可以有65,535个截然不同的值。ENUM值在内部用整数表示。· SET('value1','value2',...)一个设置。字符串对象可以有零个或多个值,每个值必须来自列值'value1','value2',...SET列最多可以有64个成员。SET值在内部用整数表示。