?? manual_reference.html
字號:
<tr>
<td>別名</td>
<td>255</td>
<td>所有字符</td>
</tr>
</table>
<p>注意,除了以上,你在一個標識符中不能有ASCII(0)或ASCII(255)。 </p>
<p>注意,如果標識符是一個限制詞或包含特殊字符,當你使用它時,你必須總是用<code>`</code>引用它:
</p>
<pre>SELECT * from `select` where `select`.id > 100;
</pre>
<p>在 MySQL的先前版本,命名規則如下:
<ul>
<li>一個名字可以包含來自當前字符集的數字字母的字符和<samp>“_”</samp>和<samp>“$”</samp>。缺省字符集是ISO-8859-1
Latin1;這可以通過重新編譯<strong>MySQL</strong>來改變。見<a HREF="manual_Server.html#Character_sets">9.1.1 用于數據和排序的字符集</a>。</li>
<li>一個名字可以以在一個名字中合法的任何字符開始。特別地,一個名字可以以一個數字開始(這不同于許多其他的數據庫系統!)。然而,一個名字不能<em>僅僅</em>由數字組成。
</li>
<li>你不能在名字中使用<samp>“.”</samp>,因為它被用來擴充格式,你能用它引用列(見下面)。
</li>
</ul>
<p>建議你不使用象<code>1e</code>這樣的名字,因為一個表達式如<code>1e+1</code>是二義性的。它可以解釋為表達式<code>1e
+ 1</code>或數字<code>1e+1</code>。 </p>
<p>在<strong>MySQL</strong>中,你能使用下列表格的任何一種引用列: </p>
<table BORDER="1" WIDTH="100%" NOSAVE="#101090" class="p4">
<tr>
<td><strong>列引用</strong> </td>
<td><strong>含義</strong> </td>
</tr>
<tr>
<td><code>col_name</code> </td>
<td>來自于任意表的列<code>col_name</code>,用于包含該表的一個列的查詢中</td>
</tr>
<tr>
<td><code>tbl_name.col_name</code> </td>
<td>來自當前的數據庫的表<code>tbl_name</code>的列<code>col_name</code></td>
</tr>
<tr>
<td><code>db_name.tbl_name.col_name</code> </td>
<td>行列<code>col_name</code>從表格<code>tbl_name</code>數據庫<code>db_name</code>。這個形式在<strong>MySQL</strong>3.22或以后版本可用。
</td>
</tr>
<tr>
<td><code>`column_name`</code> </td>
<td>是一個關鍵詞或包含特殊字符的列。 </td>
</tr>
</table>
<p>在一條語句的列引用中,你不必指定一個<code>tbl_name</code>或<code>db_name.tbl_name</code>前綴,除非引用會有二義性。例如,假定表<code>t1</code>和<code>t2</code>,每個均包含列<code>c</code>,并且你用一個使用<code>t1</code>和<code>t2</code>的<code>SELECT</code>語句檢索<code>c</code>。在這種情況下,<code>c</code>有二義性,因為它在使用表的語句中不是唯一的,因此你必須通過寫出<code>t1.c</code>或<code>t2.c</code>來指明你想要哪個表。同樣,如果你從數據庫<code>db1</code>中一個表<code>t</code>和在數據庫<code>db2</code>的一個表<code>t</code>檢索,你必須用<code>db1.t.col_name</code>和<code>db2.t.col_name</code>引用這些數據表的列。
</p>
<p><a NAME="IDX186"></a>句法<code>.tbl_name</code>意味著在當前的數據庫中的表<code>tbl_name</code>,該句法為了ODBC的兼容性被接受,因為一些ODBC程序用一個<samp>“.”</samp>字符作為數據庫表名的前綴。
</p>
<h4><a NAME="Name_case_sensitivity" HREF="manual_toc.html#Name_case_sensitivity">7.1.5.1
名字的大小寫敏感性</a><a NAME="IDX190"></a> <a NAME="IDX191"></a> <a NAME="IDX192"></a> <a NAME="IDX193"></a> <a NAME="IDX194"></a> <a NAME="IDX195"></a> </h4>
<p>在<strong>MySQL</strong>中,數據庫和表對應于在那些目錄下的目錄和文件,因而,內在的操作系統的敏感性決定數據庫和表命名的大小寫敏感性。這意味著數據庫和表名在Unix上是區分大小寫的,而在Win32上忽略大小寫。
</p>
<p><strong>注意:</strong>在Win32上,盡管數據庫和表名是忽略大小寫的,你不應該在同一個查詢中使用不同的大小寫來引用一個給定的數據庫和表。下列查詢將不工作,因為它作為<code>my_table</code>和作為<code>MY_TABLE</code>引用一個表:</p>
<pre>mysql> SELECT * FROM my_table WHERE MY_TABLE.col=1;
</pre>
<p>列名在所有情況下都是忽略大小寫的。 </p>
<p>表的別名是區分大小寫的。下列查詢將不工作<code>,</code>:
因為它用<code>a</code>和<code>A</code>引用別名:</p>
<pre>mysql> SELECT col_name FROM tbl_name AS a
WHERE a.col_name = 1 OR A.col_name = 2;
</pre>
<p>列的別名是忽略大小寫的。 </p>
<h2><a NAME="Variables" HREF="manual_toc.html#Variables">7.2 用戶變量</a></h2>
<p><strong>MySQL</strong>支持線程特定的變量,用<code>@variablename</code>句法。一個變量名可以由當前字符集的數字字母字符和<samp>“_”</samp>、<samp>“$”</samp>和<samp>“.”</samp>組成。缺省字符集是ISO-8859-1
Latin1;這可以通過重新編譯<strong>MySQL</strong>改變。見<a HREF="manual_Server.html#Character_sets">9.1.1 用于數據和排序的字符集</a>。 </p>
<p>變量不必被初始化。缺省地,他們包含NULL并能存儲整數、實數或一個字符串值。當線程退出時,對于一個線程的所有變量自動地被釋放。
</p>
<p>你可以用<code>SET</code>句法設置一個變量: </p>
<pre>SET @variable= { integer expression | real expression | string expression }
[,@variable= ...].
</pre>
<p>你也可以用<code>@variable:=expr</code>句法在一個表達式中設置一個變量:
</p>
<pre>select @t1:=(@t2:=1)+@t3:=4,@t1,@t2,@t3;
+----------------------+------+------+------+
| @t1:=(@t2:=1)+@t3:=4 | @t1 | @t2 | @t3 |
+----------------------+------+------+------+
| 5 | 5 | 1 | 4 |
+----------------------+------+------+------+
</pre>
<p>(這里,我們不得不使用<code>:=</code>句法,因為<code>=</code>是為比較保留的)</p>
<h2><a NAME="Column_types" HREF="manual_toc.html#Column_types">7.3 列類型</a></h2>
<p><strong>MySQL</strong>支持大量的列類型,它可以被分為3類:數字類型、日期和時間類型以及字符串(字符)類型。本節首先給出可用類型的一個概述,并且總結每個列類型的存儲需求,然后提供每個類中的類型性質的更詳細的描述。概述有意簡化,更詳細的說明應該考慮到有關特定列類型的附加信息,例如你能為其指定值的允許格式。
</p>
<p>由<strong>MySQL</strong>支持的列類型列在下面。下列代碼字母用于描述中:
<dl COMPACT="Column_types">
<dt><code>M</code> </dt>
<dd>指出最大的顯示尺寸。最大的合法的顯示尺寸是 255 。 </dd>
<dt><code>D</code> </dt>
<dd>適用于浮點類型并且指出跟隨在十進制小數點后的數碼的數量。最大可能的值是30,但是應該不大于<code>M</code>-2。
</dd>
</dl>
<p>方括號(<samp>“[”</samp>和<samp>“]”</samp>)指出可選的類型修飾符的部分。
</p>
<p>注意,如果你指定一個了為<code>ZEROFILL</code>,<strong>MySQL</strong>將為該列自動地增加<code>UNSIGNED</code>屬性。
<dl COMPACT="IDX196">
<dt><code>TINYINT[(M)] [UNSIGNED] [ZEROFILL]</code> </dt>
<dd><a NAME="IDX197"></a>一個很小的整數。有符號的范圍是<code>-128</code>到<code>127</code>,無符號的范圍是<code>0</code>到<code>255</code>。
<a NAME="IDX198"></a> </dd>
<dt><code>SMALLINT[(M)] [UNSIGNED] [ZEROFILL]</code> </dt>
<dd>一個小整數。有符號的范圍是<code>-32768</code>到<code>32767</code>,無符號的范圍是<code>0</code>到<code>65535</code>。
<a NAME="IDX199"></a> </dd>
<dt><code>MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]</code> </dt>
<dd>一個中等大小整數。有符號的范圍是<code>-8388608</code>到<code>8388607</code>,無符號的范圍是<code>0</code>到<code>16777215</code>。
<a NAME="IDX200"></a> </dd>
<dt><code>INT[(M)] [UNSIGNED] [ZEROFILL]</code> </dt>
<dd>一個正常大小整數。有符號的范圍是<code>-2147483648</code>到<code>2147483647</code>,無符號的范圍是<code>0</code>到<code>4294967295</code>。
<a NAME="IDX201"></a> </dd>
<dt><code>INTEGER[(M)] [UNSIGNED] [ZEROFILL]</code> </dt>
<dd>這是<code>INT</code>的一個同義詞。 <a NAME="IDX202"></a> </dd>
<dt><code>BIGINT[(M)] [UNSIGNED] [ZEROFILL]</code> </dt>
<dd>一個大整數。有符號的范圍是<code>-9223372036854775808</code>到<code>9223372036854775807</code>,無符號的范圍是<code>0</code>到<code>18446744073709551615</code>。注意,所有算術運算用有符號的<code>BIGINT</code>或<code>DOUBLE</code>值完成,因此你不應該使用大于<code>9223372036854775807</code>(63位)的有符號大整數,除了位函數!注意,當兩個參數是<code>INTEGER</code>值時,<code>-</code>、<code>+</code>和<code>*</code>將使用<code>BIGINT</code>運算!這意味著如果你乘2個大整數(或來自于返回整數的函數),如果結果大于<code>9223372036854775807</code>,你可以得到意外的結果。<a NAME="IDX204"></a>一個浮點數字,不能是無符號的,對一個單精度浮點數,<code>其精度可以</code>是<code><=24</code>,對一個雙精度浮點數,是在25
和53之間,這些類型如<code>FLOAT</code>和<code>DOUBLE</code>類型馬上在下面描述。<code>FLOAT(X)</code>有對應的<code>FLOAT</code>和<code>DOUBLE</code>相同的范圍,但是顯示尺寸和小數位數是未定義的。在<strong>MySQL</strong>3.23中,這是一個真正的浮點值。在更早的<strong>MySQL</strong>版本中,<code>FLOAT(precision)</code>總是有2位小數。該句法為了ODBC兼容性而提供。
<a NAME="IDX207"></a> <a NAME="IDX208"></a> <a NAME="IDX209"></a> </dd>
<dt><code>FLOAT[(M,D)] [ZEROFILL]</code> </dt>
<dd>一個小(單精密)浮點數字。不能無符號。允許的值是<code>-3.402823466E+38</code>到<code>-1.175494351E-38</code>,<code>0</code>
和<code>1.175494351E-38</code>到<code>3.402823466E+38</code>。M是顯示寬度而D是小數的位數。沒有參數的<code>FLOAT</code>或有<24
的一個參數表示一個單精密浮點數字。<a NAME="IDX210"></a> <a NAME="IDX211"></a>
</dd>
<dt><code>DOUBLE[(M,D)] [ZEROFILL]</code> </dt>
<dd>一個正常大小(雙精密)浮點數字。不能無符號。允許的值是<code>-1.7976931348623157E+308</code>到<code>-2.2250738585072014E-308</code>、
<code>0</code>和<code>2.2250738585072014E-308</code>到<code>1.7976931348623157E+308</code>。M是顯示寬度而D是小數位數。沒有一個參數的<code>DOUBLE</code>或<code>FLOAT(X)</code>(25
< = X < = 53)代表一個雙精密浮點數字。 <a NAME="IDX212"></a> <a NAME="IDX213"></a> </dd>
<dt><code>DOUBLE PRECISION[(M,D)] [ZEROFILL]</code> </dt>
<dd> </dd>
<dt><code>REAL[(M,D)] [ZEROFILL]</code> </dt>
<dd>這些是<code>DOUBLE</code>同義詞。 <a NAME="IDX214"></a> </dd>
<dt><code>DECIMAL[(M[,D])] [ZEROFILL]</code> </dt>
<dd>一個未壓縮(unpack)的浮點數字。不能無符號。行為如同一個<code>CHAR</code>列:“未壓縮”意味著數字作為一個字符串被存儲,值的每一位使用一個字符。小數點,并且對于負數,<samp>“-”</samp>符號不在M中計算。如果<code>D</code>是0,值將沒有小數點或小數部分。<code>DECIMAL</code>值的最大范圍與<code>DOUBLE</code>相同,但是對一個給定的<code>DECIMAL</code>列,實際的范圍可以通過<code>M</code>和<code>D</code>的選擇被限制。如果<code>D</code>被省略,它被設置為0。如果<code>M</code>被省掉,它被設置為10。注意,在<strong>MySQL</strong>3.22里,<code>M</code>參數包括符號和小數點。
<a NAME="IDX215"></a> </dd>
<dt><code>NUMERIC(M,D) [ZEROFILL]</code> </dt>
<dd>這是<code>DECIMAL</code>的一個同義詞。 <a NAME="IDX216"></a> </dd>
<dt><code>DATE</code> </dt>
<dd>一個日期。支持的范圍是<code>'1000-01-01'</code>到<code>'9999-12-31'</code>。<strong>MySQL</strong>以<code>'YYYY-MM-DD'</code>格式來顯示<code>DATE</code>值,但是允許你使用字符串或數字把值賦給<code>DATE</code>列。
<a NAME="IDX217"></a> </dd>
<dt><code>DATETIME</code> </dt>
<dd>一個日期和時間組合。支持的范圍是<code>'1000-01-01 00:00:00'</code>到<code>'9999-12-31
23:59:59'</code>。<strong>MySQL</strong>以<code>'YYYY-MM-DD HH:MM:SS'</code>格式來顯示<code>DATETIME</code>值,但是允許你使用字符串或數字把值賦給<code>DATETIME</code>的列。
<a NAME="IDX218"></a> </dd>
<dt><code>TIMESTAMP[(M)]</code> </dt>
<dd>一個時間戳記。范圍是<code>'1970-01-01 00:00:00'</code>到<code>2037</code>年的某時。<strong>MySQL</strong>以<code>YYYYMMDDHHMMSS</code>、<code>YYMMDDHHMMSS</code>、<code>YYYYMMDD</code>或<code>YYMMDD</code>格式來顯示<code>TIMESTAMP</code>值,取決于是否<code>M</code>是<code>14</code>(或省略)、<code>12</code>、<code>8</code>或<code>6</code>,但是允許你使用字符串或數字把值賦給<code>TIMESTAMP</code>列。一個<code>TIMESTAMP</code>列對于記錄一個<code>INSERT</code>或<code>UPDATE</code>操作的日期和時間是有用的,因為如果你不自己給它賦值,它自動地被設置為最近操作的日期和時間。你以可以通過賦給它一個<code>NULL</code>值設置它為當前的日期和時間。見<a HREF="manual_Reference.html#Date_and_time_types">7.3.6 日期和時間類型</a>。 <a NAME="IDX219"></a> </dd>
<dt><code>TIME</code> </dt>
<dd>一個時間。范圍是<code>'-838:59:59'</code>到<code>'838:59:59'</code>。<strong>MySQL</strong>以<code>'HH:MM:SS'</code>格式來顯示<code>TIME</code>值,但是允許你使用字符串或數字把值賦給<code>TIME</code>列。
<a NAME="IDX220"></a> </dd>
<dt><code>YEAR[(2|4)]</code> </dt>
<dd>一個2或4位數字格式的年(缺省是4位)。允許的值是<code>1901</code>到<code>2155</code>,和<code>0000</code>(4位年格式),如果你使用2位,1970-2069(
70-69)。<strong>MySQL</strong>以<code>YYYY</code>格式來顯示<code>YEAR</code>值,但是允許你把使用字符串或數字值賦給<code>YEAR</code>列。(<code>YEAR</code>類型在<strong>MySQL</strong>3.22中是新類型。)<a NAME="IDX221"></a> <a NAME="IDX222"></a> <a NAME="IDX223"></a> <a NAME="IDX224"></a> </dd>
<dt><code>CHAR(M) [BINARY]</code> </dt>
<dd>一個定長字符串,當存儲時,總是是用空格填滿右邊到指定的長度。<code>M</code>的范圍是1
~ 255個字符。當值被檢索時,空格尾部被刪除。<code>CHAR</code>值根據缺省字符集以大小寫不區分的方式排序和比較,除非<code>給出BINARY</code>關鍵詞。<code>NATIONAL
CHAR</code>(短形式<code>NCHAR</code>)是ANSI SQL的方式來定義CHAR列應該使用缺省字符集。這是<code>MySQL</code>的缺省。<code>CHAR</code>是<code>CHARACTER</code>的一個縮寫。
<a NAME="IDX225"></a> <a NAME="IDX226"></a> <a NAME="IDX227"></a> </dd>
<dt><code>[NATIONAL] VARCHAR(M) [BINARY]</code> </dt>
<dd>一個變長字符串。注意:當值被存儲時,尾部的空格被刪除(這不同于ANSI
SQL規范)。M的范圍是1 ~ 255個字符。 <code>VARCHAR</code>值根據缺省字符集以大小寫不區分的方式排序和比較,除非<code>給出BINARY</code>關鍵詞值。見<a HREF="manual_Reference.html#Silent_column_changes">7.7.1 隱式列指定變化</a>。 <code>VARCHAR</code>是<code>CHARACTER
VARYING</code>一個縮寫。 <a NAME="IDX228"></a> <a NAME="IDX229"></a> </dd>
<dt><code>TINYBLOB</code> </dt>
<dd> </dd>
<dt><code>TINYTEXT</code> </dt>
<dd>一個<code>BLOB</code>或<code>TEXT</code>列,最大長度為255(2^8-1)個字符。見<a HREF="manual_Reference.html#Silent_column_changes">7.7.1 隱式列指定變化</a>。 <a NAME="IDX230"></a> <a NAME="IDX231"></a> </dd>
<dt><code>BLOB</code> </dt>
<dd> </dd>
<dt><code>TEXT</code> </dt>
<dd>一個<code>BLOB</code>或<code>TEXT</code>列,最大長度為65535(2^16-1)個字符。見<a HREF="manual_Reference.html#Silent_column_changes">7.7.1 隱式列指定變化</a>。 <a NAME="IDX232"></a> <a NAME="IDX233"></a> </dd>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -