⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 06-2.html

📁 MySQL4.1.0 中文参考手册
💻 HTML
📖 第 1 页 / 共 5 页
字号:
<HTML>
  <HEAD>
  <TITLE>MySQL 4.1.0 中文参考手册 --- 犬犬(心帆)翻译</TITLE>
   <style> code {color:purple} tt {color:green} samp {color:navy} pre {color:maroon} </style>
   <META http-equiv="Content-Type" content="text/html; charset=gb2312">
   <META name="description" content="MySQL 4.1.0  中文参考手册">
   <META name="keywords" content="MySQL,4.1.0,Shuixin13,MySQL 4.1.0,中文,中文参考手册,犬犬(心帆)">
   <LINK rel="shortcut icon" href="shuixin13.ico" />
   <LINK href="images/index.css" type=text/css rel=STYLESHEET>
<SCRIPT language=javascript src="images/index.js"></SCRIPT>
<SCRIPT language=javascript><!--
x = new Date()  
function cal() {
	y = new Date()   
	diff = y.getTime() - x.getTime()
	document.write("载入时间 " + diff/1000 + " 秒")
}
//--></SCRIPT>
<SCRIPT language=JavaScript>
var currentpos,timer; 
function initialize() 
{ 
timer=setInterval("scrollwindow()",10); 
} 
function sc() 
{ 
clearInterval(timer); 
} 

function scrollwindow() 
{ 
currentpos=document.body.scrollTop; 
window.scroll(0,++currentpos); 
if (currentpos != document.body.scrollTop) 
sc(); 
} 
document.onmousedown=sc 
document.ondblclick=initialize 
</SCRIPT>

  </HEAD>
  <BODY BGCOLOR=#efefff TEXT=#000000 LINK=#101090 VLINK=#7030B0>
<H1>MySQL Reference Manual for version 4.1.0-alpha.</H1>
<P>
<P><HR>
<H2><A NAME="Column_types"></A>6.2  列类型</H2>
<P>
<A NAME="IDX1008"></A>
<A NAME="IDX1009"></A>

</P>
<P>
MySQL 支持大量的列类型,它们可以被分为 3 类:数字类型、日期和时间类型以及字符串(字符)类型。这个章节首先给出可用类型的概述,并且总结各类型所需的存储需求,然后提供各类型中的类型范畴更详细的描述。概述有意地简化了。更详细的说明应该参考特写列类型的附加信息,例如你能为其指定值的允许格式。
</P>
<P>
MySQL 支持的列类型在下面列出。下列代码字母用于描述中:
</P>
<P>
<A NAME="IDX1010"></A>
<A NAME="IDX1011"></A>
<A NAME="IDX1012"></A>
<A NAME="IDX1013"></A>
<A NAME="IDX1014"></A>
<A NAME="IDX1015"></A>
<DL COMPACT>

<DT><CODE>M</CODE>
<DD>
指出最大的显示尺寸。最大的显示尺寸长度为 255。

<DT><CODE>D</CODE>
<DD>
适用于浮点类型。指出跟随在十进制小数点后的数字数量。最大可能值为 30,但不应大于 <CODE>M</CODE>-2。
</DL>

<P>
方括号 (<SAMP>“[”</SAMP> and <SAMP>“]”</SAMP>) 指定可选的类型修饰部份。
</P>
<P>
<A NAME="IDX1016"></A>

</P>

<P>
注意,如果为一个列指定了 <CODE>ZEROFILL</CODE>,MySQL 将自动为这个列添加 <CODE>UNSIGNED</CODE> 属性。
</P>
<P>
<STRONG>警告:</STRONG>你应该知道当在两个整数类型值中使用减法时,如有一个为 <CODE>UNSIGNED</CODE>类型,那么结果也是无符号的。查看章节 <A HREF="06-3.html#Cast_Functions">6.3.5  Cast 函数</A>。
</P>
<DL COMPACT>

<DT><CODE>TINYINT[(M)] [UNSIGNED] [ZEROFILL]</CODE>
<DD>
<A NAME="IDX1017"></A>
 

一个非常小的整数。有符号的范围是 <CODE>-128</CODE> 到 <CODE>127</CODE>。无符号的范围是 <CODE>0</CODE> 到 <CODE>255</CODE>。
<A NAME="IDX1018"></A>
<A NAME="IDX1019"></A>
<DT><CODE>BIT</CODE>
<DD>
<DT><CODE>BOOL</CODE>
<DD>
它们是 <CODE>TINYINT(1)</CODE> 的同义词。

<A NAME="IDX1020"></A>
<DT><CODE>SMALLINT[(M)] [UNSIGNED] [ZEROFILL]</CODE>
<DD>
一个小整数。有符号的范围是 <CODE>-32768</CODE> 到 <CODE>32767</CODE>。无符号的范围是 <CODE>0</CODE> 到 <CODE>65535</CODE>。

<A NAME="IDX1021"></A>
<DT><CODE>MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]</CODE>
<DD>
一个中等大小的整数。有符号的范围是 <CODE>-8388608</CODE> 到 <CODE>8388607</CODE>。无符号的范围是 <CODE>0</CODE> 到 <CODE>16777215</CODE>。

<A NAME="IDX1022"></A>
<DT><CODE>INT[(M)] [UNSIGNED] [ZEROFILL]</CODE>
<DD>
一个正常大小的整数。有符号的范围是 <CODE>-2147483648</CODE> 到 <CODE>2147483647</CODE>。无符号的范围是 <CODE>0</CODE> 到 <CODE>4294967295</CODE>。

<A NAME="IDX1023"></A>
<DT><CODE>INTEGER[(M)] [UNSIGNED] [ZEROFILL]</CODE>
<DD>
<CODE>INT</CODE> 的同义词。

<A NAME="IDX1024"></A>
<DT><CODE>BIGINT[(M)] [UNSIGNED] [ZEROFILL]</CODE>
<DD>
一个大的整数。有符号的范围是 <CODE>-9223372036854775808</CODE> 到 <CODE>9223372036854775807</CODE>。无符号的范围是 <CODE>0</CODE> 到 <CODE>18446744073709551615</CODE>。

你应该知道的有关 <CODE>BIGINT</CODE> 列的一些事情:


<UL>
<LI>

<A NAME="IDX1025"></A>
所有的算术运算均是用有符号的 <CODE>BIGINT</CODE> 或 <CODE>DOUBLE</CODE> 值来完成的,因此你不应该使用大于 <CODE>9223372036854775807</CODE> (63 bits) 的无符号大整数,除了位函数之外!如果你这样做了,结果中的某些大数字可能会出错,因为将 <CODE>BIGINT</CODE> 转换成 <CODE>DOUBLE</CODE> 时产生了舍入错误。MySQL 4.0 在下列情况下可以处理 <CODE>BIGINT</CODE>:
<UL>
<LI>

在一个 <CODE>BIGINT</CODE> 列中使用整数存储一个大的无符号值。
<LI>

在 <CODE>MIN(big_int_column)</CODE> 和 <CODE>MAX(big_int_column)</CODE>中。
<LI>

当两个操作数都是整数时使用操作符 (<CODE>+</CODE>、<CODE>-</CODE>、<CODE>*</CODE>、等)。
</UL>

<LI>

通常你可以在一个 <CODE>BIGINT</CODE> 列中以字符串方式存储的一个精确的整数。在这种情况下,MySQL 将执行一个字符串到数字的转换,包括无 intermediate 的双精度表示法。
<LI>

当两个参数均是整数值时,<SAMP>“-”</SAMP>、<SAMP>“+”</SAMP>和 <SAMP>“*”</SAMP> 将使用 <CODE>BIGINT</CODE> 运算!这就意味着,如果两个大整数的乘积(或函数的结果返回整数)的结果大于 <CODE>9223372036854775807</CODE> 时,你可能会得到意想不到的结果。
</UL>

<A NAME="IDX1026"></A>
<A NAME="IDX1027"></A>
<A NAME="IDX1028"></A>
<DT><CODE>FLOAT(precision) [UNSIGNED] [ZEROFILL]</CODE>
<DD>
一个浮点型数字。<CODE>precision</CODE> 可以是
<CODE>&#60;=24</CODE> 作为一个单精度的浮点数字和介于 25 和 53 之间作为一个双精度的浮点数字。这些类型与下面描述的 <CODE>FLOAT</CODE> 和 <CODE>DOUBLE</CODE> 类型相似。

<CODE>FLOAT(X)</CODE> 有与相应的 <CODE>FLOAT</CODE> 和 <CODE>DOUBLE</CODE> 类型同样的范围,但是显示尺寸和十进制小数位数是未定义的。
在 MySQL  3.23 中,它是一个真实的浮点值。而在 MySQL 早期的版本中,<CODE>FLOAT(precision)</CODE> 通常有 2 小数位。

注意,由于在 MySQL 中所有的计算都是以双精度执行的,所以使用 <CODE>FLOAT</CODE> 可能带来一些意想不到的问题。
查看章节 <A HREF="manual2.html#No_matching_rows">A.5.6  解决没有匹配行的问题</A>。

<A NAME="IDX1029"></A>
<A NAME="IDX1030"></A>
该句法是为了 ODBC 兼容而提供的。

<A NAME="IDX1031"></A>
<A NAME="IDX1032"></A>
<DT><CODE>FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]</CODE>
<DD>
一个小的(单精度) 浮点数字。允许的值是 <CODE>-3.402823466E+38</CODE> 到 <CODE>-1.175494351E-38</CODE>、<CODE>0</CODE> 和 <CODE>1.175494351E-38</CODE> 到 <CODE>3.402823466E+38</CODE>。如果 <CODE>UNSIGNED</CODE> 被指定,负值是不允许的。<CODE>M</CODE> 是显示宽度,<CODE>D</CODE> 是小数位数。<CODE>FLOAT</CODE> 没有参数或有 <CODE>X</CODE> &#60;= 24 的 <CODE>FLOAT(X)</CODE> 代表一个单精度的浮点数字。

<A NAME="IDX1033"></A>
<A NAME="IDX1034"></A>
<DT><CODE>DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]</CODE>
<DD>
一个正常大小的(双精度)浮上数字。允许的值是 <CODE>-1.7976931348623157E+308</CODE> 到 <CODE>-2.2250738585072014E-308</CODE>、<CODE>0</CODE> 和 <CODE>2.2250738585072014E-308</CODE> 到 <CODE>1.7976931348623157E+308</CODE>。如果 <CODE>UNSIGNED</CODE> 被指定,负值是不允许的。<CODE>M</CODE> 是显示宽度,<CODE>D</CODE> 是小数位数。<CODE>DOUBLE</CODE> 没胡参数或有 25 &#60;= <CODE>X</CODE> &#60;= 53 的 <CODE>FLOAT(X)</CODE> 代表一个双精度的浮点数字。

<A NAME="IDX1035"></A>
<A NAME="IDX1036"></A>
<DT><CODE>DOUBLE PRECISION[(M,D)] [UNSIGNED] [ZEROFILL]</CODE>
<DD>
<DT><CODE>REAL[(M,D)] [UNSIGNED] [ZEROFILL]</CODE>
<DD>
它们是 <CODE>DOUBLE</CODE> 同义词。

<A NAME="IDX1037"></A>
<DT><CODE>DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]</CODE>
<DD>
一个未压缩(unpacked)的浮点数。运作如同一个 <CODE>CHAR</CODE> 列:“unpacked” 意味着数字是以一个字符串存储的,值的每一位将使用一个字符。小数点并且对于负数,<SAMP>“-”</SAMP> 符号不在 <CODE>M</CODE> 中计算(但是它们的空间是被保留的)。如果 <CODE>D</CODE> 是 0,值将没有小数点或小数部份。<CODE>DECIMAL</CODE> 值的最大范围与 <CODE>DOUBLE</CODE> 一致,但是对于一个给定的 <CODE>DECIMAL</CODE> 列,实际的范围可以被所选择的 <CODE>M</CODE> 和 <CODE>D</CODE> 限制。如果 <CODE>UNSIGNED</CODE> 被指定,负值是不允许的。

如果 <CODE>D</CODE> 被忽略,缺省为 0。如果 <CODE>M</CODE> 被忽略,缺省为 10。

在 MySQL 3.23 以前,<CODE>M</CODE> 参数必须包含符号与小数点所需的空间。

<A NAME="IDX1038"></A>
<A NAME="IDX1039"></A>
<DT><CODE>DEC[(M[,D])] [UNSIGNED] [ZEROFILL]</CODE>
<DD>
<DT><CODE>NUMERIC[(M[,D])] [UNSIGNED] [ZEROFILL]</CODE>
<DD>
<CODE>DECIMAL</CODE> 的同义词。

<A NAME="IDX1040"></A>
<DT><CODE>DATE</CODE>
<DD>
一个日期。支持的范围是 <CODE>'1000-01-01'</CODE> 到 <CODE>'9999-12-31'</CODE>。MySQL 以 <CODE>'YYYY-MM-DD'</CODE> 格式显示 <CODE>DATE</CODE> 值,但是允许你以字符串或数字给一个 <CODE>DATE</CODE> 列赋值。查看章节 <A HREF="06-2.html#DATETIME">6.2.2.2  <CODE>DATETIME</CODE>、<CODE>DATE</CODE> 和 <CODE>TIMESTAMP</CODE> 类型</A>。

<A NAME="IDX1041"></A>
<DT><CODE>DATETIME</CODE>
<DD>
一个日期和时间的组合。支持的范围是 <CODE>'1000-01-01 00:00:00'</CODE> 到 <CODE>'9999-12-31 23:59:59'</CODE>。MySQL 以<CODE>'YYYY-MM-DD HH:MM:SS'</CODE> 格式显示 <CODE>DATETIME</CODE> 值,但是允许你以字符串或数字给一个 <CODE>DATETIME</CODE> 列赋值。查看章节 <A HREF="06-2.html#DATETIME">6.2.2.2  <CODE>DATETIME</CODE>、<CODE>DATE</CODE> 和 <CODE>TIMESTAMP</CODE> 类型</A>。

<A NAME="IDX1042"></A>
<DT><CODE>TIMESTAMP[(M)]</CODE>
<DD>
一个时间戳。范围是 <CODE>'1970-01-01 00:00:00'</CODE> 到 <CODE>2037</CODE> 年间的任意时刻。

MySQL 4.0 和更早版本中,<CODE>TIMESTAMP</CODE> 值是以 <CODE>YYYYMMDDHHMMSS</CODE>、<CODE>YYMMDDHHMMSS</CODE>、<CODE>YYYYMMDD</CODE> 或 <CODE>YYMMDD</CODE> 格式显示的,它取决于 <CODE>M</CODE> 是否是 <CODE>14</CODE> (或省略)、<CODE>12</CODE>、<CODE>8</CODE> 或 <CODE>6</CODE>,但是允许你以字符串或数字给一个 <CODE>TIMESTAMP</CODE> 列赋值。

从 MySQL 4.1 开始,<CODE>TIMESTAMP</CODE> 以 <CODE>'YYYY-MM-DD HH:MM:DD'</CODE> 格式作为字符返回。如果你你希望以数字形式返回则必须在该时间戳字段后加上 +0。不同的时间戳长度是不支持的。从 MySQL 4.0.12 开始,选项 <CODE>--new</CODE> 可以被用来使服务器与 4.1 一样运作。

<CODE>TIMESTAMP</CODE> 列有益于记录一个 <CODE>INSERT</CODE> 或 <CODE>UPDATE</CODE> 操作的日期和时间,因为如果你自己没有给它赋值,它将被自动地设置为最近一次操作的日期和时间。也可以通过给它赋一个 <CODE>NULL</CODE>  而使它设置为当前的日期和时间。查看章节 <A HREF="06-2.html#Date_and_time_types">6.2.2  Date 和 Time 类型</A>。

参数 <CODE>M</CODE> 只影响一个 <CODE>TIMESTAMP</CODE> 列的显示格式;它的值总是占用 4 个字节存储。

注意,当 <CODE>TIMESTAMP(M)</CODE> 列的 <CODE>M</CODE> 是 8 或 14 时,它返回的是数字而其它的 <CODE>TIMESTAMP(M)</CODE> 列返回的是字符串。这仅仅是为了可以可靠地转储并恢复到其它格式的表中。
查看章节 <A HREF="06-2.html#DATETIME">6.2.2.2  <CODE>DATETIME</CODE>、<CODE>DATE</CODE> 和 <CODE>TIMESTAMP</CODE> 类型</A>。

<A NAME="IDX1043"></A>
<DT><CODE>TIME</CODE>
<DD>
一个时间。范围是 <CODE>'-838:59:59'</CODE> 到 <CODE>'838:59:59'</CODE>。MySQL 以 <CODE>'HH:MM:SS'</CODE> 格式显示  <CODE>TIME</CODE> 值,但是允许你使用字符串或数字来给 <CODE>TIME</CODE> 列赋值。查看章节 <A HREF="06-2.html#TIME">6.2.2.3  <CODE>TIME</CODE> 类型</A>。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -