?? manual_comparisons.html
字號:
<li>對于整數列的<code>ZEROFILL</code>選項。</li>
<li>對于是一個<code>PRIMARY KEY</code>的整數列的<code>AUTO_INCREMENT</code>選項。見<a HREF="manual_Clients.html#mysql_insert_id">20.4.29<code> mysql_insert_id()</code></a>。</li>
<li>對所有列的<code>DEFAULT</code>值。 </li>
</ul>
</dd>
<dt><code>mSQL2</code> </dt>
<dd><code>mSQL</code>列類型對應于<strong>MySQL</strong>類型顯示在下面:<table BORDER="1" WIDTH="100%" NOSAVE="#101090" class="p4">
<tr>
<td><code>mSQL</code><strong>類型</strong> </td>
<td><strong>相應<strong>的MySQL</strong>類型</strong> </td>
</tr>
<tr>
<td><code>CHAR(len)</code> </td>
<td><code>CHAR(len)</code> </td>
</tr>
<tr>
<td><code>TEXT(len)</code> </td>
<td><code>TEXT(len)</code>,<code>len</code>是最大長度。并且<code>LIKE</code>可運用。</td>
</tr>
<tr>
<td><code>INT</code> </td>
<td><code>INT</code>,有很多的選項! </td>
</tr>
<tr>
<td><code>REAL</code> </td>
<td><code>REAL</code>,或<code>FLOAT</code>。有4和8字節版本。</td>
</tr>
<tr>
<td><code>UINT</code> </td>
<td><code>INT UNSIGNED</code> </td>
</tr>
<tr>
<td><code>DATE</code> </td>
<td><code>DATE</code>,使用 ANSI SQL 格式而非<code>mSQL</code>自己的。</td>
</tr>
<tr>
<td><code>TIME</code> </td>
<td><code>TIME</code> </td>
</tr>
<tr>
<td><code>MONEY</code> </td>
<td><code>DECIMAL(12,2)</code>,有2個小數位的定點值。</td>
</tr>
</table>
</dd>
</dl>
<p><strong>索引創建</strong>
<dl COMPACT="manual_Clients.html#mysql_insert_id">
<dt><code><strong>MySQL</strong></code> </dt>
<dd>索引可以在表創建時用<code>CREATE TABLE</code>語句指定。 </dd>
<dt><code>mSQL</code> </dt>
<dd>在表被創建了以后,索引必須被創建,用單獨的<code>CREATE INDEX</code>語句。</dd>
</dl>
<p><strong>把一個唯一標識符插入到一張表中</strong>
<dl COMPACT="manual_Clients.html#mysql_insert_id">
<dt><code><strong>MySQL</strong></code> </dt>
<dd>使用<code>AUTO_INCREMENT</code>作為列類型修飾符。見<a HREF="manual_Clients.html#mysql_insert_id">20.4.29<code> mysql_insert_id()</code></a>。</dd>
<dt><code>mSQL</code> </dt>
<dd>在一張表上創建一個<code>SEQUENCE</code>并且選擇<code>_seq</code>列。</dd>
</dl>
<p><strong>為行獲得一個唯一標識符</strong>
<dl COMPACT="manual_Clients.html#mysql_insert_id">
<dt><code><strong>MySQL</strong></code> </dt>
<dd>向表中增加一個<code>PRIMARY KEY</code>或<code>UNIQUE</code>鍵。 </dd>
<dt><code>mSQL</code> </dt>
<dd>使用<code>_rowid</code>列。注意<code>_rowid</code>可以將來改變,取決于很多因素。</dd>
</dl>
<p><strong>得到列最后被修改的時間</strong>
<dl COMPACT="manual_Clients.html#mysql_insert_id">
<dt><code><strong>MySQL</strong></code> </dt>
<dd>在表中增加一個<code>TIMESTAMP</code>列。如果你不給出列值或如果你給它一個<code>NULL</code>值,該列自動為<code>INSERT</code>或<code>UPDATE</code>語句設置為當前的日期和時間。</dd>
<dt><code>mSQL</code> </dt>
<dd>使用<code>_timestamp</code>列。</dd>
</dl>
<p><strong><code>NULL</code>值的比較</strong>
<dl COMPACT="manual_Clients.html#mysql_insert_id">
<dt><code><strong>MySQL</strong></code> </dt>
<dd><strong>MySQL</strong>遵從ANSI SQL且與<code>NULL</code>的比較總是<code>NULL</code>。</dd>
<dt><code>mSQL</code> </dt>
<dd>在<code>mSQL</code>中,<code>NULL = NULL</code>是TRUE(真)。當從<code>mSQL</code>到<strong>MySQL</strong>移植老的代碼時,你必須將<code>=NULL</code>改委<code>IS
NULL</code>,并將<code><>NULL</code>改為<code>IS NOT NULL</code>。</dd>
</dl>
<p><strong>字符串的比較</strong>
<dl COMPACT="manual_Clients.html#mysql_insert_id">
<dt><code><strong>MySQL</strong></code> </dt>
<dd>通常,字符串比較以大小寫無關方式按當前字符集(缺省為ISO-8859-1
Latin1)決定的排序次序實施。如果你不喜歡這樣,聲明你的列有<code>BINARY</code>屬性,它使得比較根據用在<strong>MySQL</strong>服務器主機上的ASCII順序進行。</dd>
<dt><code>mSQL</code> </dt>
<dd>所有的字符串比較以大小寫敏感的方式以ASCII順序排序來進行。</dd>
</dl>
<p><strong>大小寫不敏感的搜索</strong>
<dl COMPACT="manual_Clients.html#mysql_insert_id">
<dt><code><strong>MySQL</strong></code> </dt>
<dd><code>LIKE</code>是一個大小寫不敏感或大小寫敏感的運算符,這取決于涉及的列。如果<code>LIKE</code>參數不以一個通配符字符開始,如有可能,<strong>MySQL</strong>則使用索引。</dd>
<dt><code>mSQL</code> </dt>
<dd>使用<code>CLIKE</code>。</dd>
</dl>
<p><strong>尾部空格的處理</strong>
<dl COMPACT="manual_Clients.html#mysql_insert_id">
<dt><code><strong>MySQL</strong></code> </dt>
<dd>剝去<code>CHAR</code>和<code>VARCHAR</code>列尾部的空格。如果不希望這種行為,使用一個<code>TEXT</code>行列。</dd>
<dt><code>mSQL</code> </dt>
<dd>保留尾部的空格。</dd>
</dl>
<p><strong><code>WHERE</code>子句</strong>
<dl COMPACT="manual_Clients.html#mysql_insert_id">
<dt><code><strong>MySQL</strong></code> </dt>
<dd><strong>MySQL</strong>正確地優先化任何東西(<code>AND</code>在<code>OR</code>前計算)。要想在<strong>MySQL</strong>里得到<code>mSQL</code>的行為,使用括號(如下所示)。</dd>
<dt><code>mSQL</code> </dt>
<dd>從左到右計算任何東西。這意味著超過3個參數的一些邏輯運算不能以任何方式表示,它也意味著當你升級到<strong>MySQL</strong>時,你必須改變一些查詢。你通過增加括號很容易做到這點。假定你有下列<code>mSQL</code>查詢:<pre>mysql> SELECT * FROM table WHERE a=1 AND b=2 OR a=3 AND b=4;
</pre>
<p>為了使<strong>MySQL</strong>像<code>mSQL</code>那樣計算它,你必須增加括號:</p>
<pre>mysql> SELECT * FROM table WHERE (a=1 AND (b=2 OR (a=3 AND (b=4))));
</pre>
</dd>
</dl>
<p><strong>存取控制</strong>
<dl COMPACT="manual_Clients.html#mysql_insert_id">
<dt><code><strong>MySQL</strong></code> </dt>
<dd>有表來存儲對每個用戶、主機和數據庫的授權(許可)選項。見<a HREF="manual_Privilege_system.html#Privileges">6.6 權限系統如何工作</a>。</dd>
<dt><code>mSQL</code> </dt>
<dd>有一個文件<tt>“mSQL.acl”</tt>,在哪里你能為用戶授權讀/寫權限。</dd>
<dd> </dd>
</dl>
<h2><a NAME="Compare_PostgreSQL" HREF="manual_toc.html#Compare_PostgreSQL">21.2
怎樣對比MySQL與PostgreSQL</a></h2>
<p><code>PostgreSQL</code>有一些更高級的功能如定義用戶類型、觸發器、規則和一些事務支持。然而,PostgreSQL
缺乏很多來自 ANSI SQL和ODBC的很多標準類型和函數。對于一個完整的限制列表及其支持或不支持哪一個類型和函數,見<a HREF="http://www.mysql.com/crash-me-choose.htmy"><code>crash-me</code>網頁</a>。</p>
<p>通常,<code>PostgreSQL</code>是比<strong>MySQL</strong>慢很多。見<a HREF="manual_Performance.html#Benchmarks">10.8 使用你自己的基準</a>。這大部分是由于他們的事務系統。如果你確實需要事務或PostgreSQL提供的豐富的類型體系并且你能承受速度的損失,你應該看看
PostgreSQL。</p>
<hr>
<p><a HREF="manual_Introduction.html">第一章</a>, <a HREF="manual_Clients.html">前一章</a>,
<a HREF="manual_Users.html">下一章</a>, <a HREF="manual_Concept_Index.html">最后一章</a>,<a HREF="manual_toc.html">目錄</a>. </p>
</body>
</html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -