?? manual_introduction.html
字號:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>MySQL中文參考手冊- 1 mysql的一般信息</title>
<style type="text/css">
<!--
.p3{font-size:14.8px;font-family:宋體;}
.p14{font-size:14.8px;font-family:宋體;line-height:14pt;}
a:hover{color:red;}
a.t1:visited{color:red;}
-->
</style>
</head>
<body BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#101090" VLINK="#7030B0" class="p4">
<h1><img src="Img/mysql-logo.gif" alt="mysql-logo.gif (3082 bytes)" WIDTH="127"
HEIGHT="60"><font color="#FF0000">MySQL中文參考手冊</font></h1>
<p>譯者:晏子 <a href="mailto:(clyan@sohu.com">(clyan@sohu.com</a>)
主頁:<a href="http://linuxdb.yeah.net">http://linuxdb.yeah.net</a></p>
<hr>
<p>第一章,前一章,<a HREF="manual_Questions.html">下一章</a>, <a
HREF="manual_Concept_Index.html">最后一章</a>, <a HREF="manual_toc.html">目錄</a>. </p>
<hr>
<h1><a NAME="Introduction" HREF="manual_toc.html#Introduction">1 MySQL 的一般信息</a></h1>
<p>這是<strong>MySQL</strong>參考手冊;它記載了<strong>MySQL</strong>版本3.23.7-alpha。</p>
<p><strong>MySQL </strong>是一個快速、多線程、多用戶和強壯的SQL數據庫服務器。</p>
<p>對Unix和 OS/2 平臺,<strong>MySQL</strong>基本上是免費的;但對微軟平臺,你在30 天的試用期后必須獲得一個<strong>MySQL </strong>許可證。詳見<a
HREF="manual_Licensing_and_Support.html#Licensing_and_Support">第三節 MySQL許可證和技術支持</a>。
</p>
<p><a href="http://www.mysql.com/default.htm"><strong>MySQL </strong>主頁</a>提供有關<strong>MySQL</strong>的最新信息。</p>
<p>對于<strong>MySQL</strong>能力的討論,詳見<a
HREF="manual_Introduction.html#Features">1.4 MySQL 的主要特征</a>。 </p>
<p>對于安裝指南,見<a HREF="manual_Installing.html#Installing">4 安裝 MySQL</a>。對于有關移植<strong>MySQL</strong>到新機器或操作系統的技巧,參見<a
HREF="manual_Porting.html#Porting">G 對移植到其他系統的說明</a>。 </p>
<p>有關從 3.21 版升級的信息,詳見<a
HREF="manual_Installing.html#Upgrading-from-3.21">4.16.2 從一個 3.21 版本升級到 3.22 </a>。
</p>
<p>MySQL的入門教程,見<a HREF="manual_Tutorial.html#Tutorial">8 MySQL 教程</a>。
</p>
<p>SQL和基準信息的例子,見基準目錄(在分發中的<tt>'sql-bench'目錄</tt>)。</p>
<p>對于新特征和錯誤修復一個歷史記錄,見<a HREF="manual_News.html#News">D
MySQL的變遷</a>。 </p>
<p>對于當前已知錯誤和功能缺陷的一張列表,見<a
HREF="manual_Bugs.html#Bugs">E MySQL已知錯誤和設計缺陷</a>。 </p>
<p>未來計劃,見<a HREF="manual_TODO.html#TODO">F </a><a href="manual_TODO.html#TODO"
name="TODO">我們想要在未來加入到MySQL 的計劃表( TODO )</a>。
</p>
<p>這個計劃的所有貢獻者的名單,見<a HREF="manual_Credits.html#Credits">C
MySQL 的貢獻者</a>。 </p>
<p><strong>重要:</strong></p>
<p>將臭蟲(錯誤)報告、問提和建議發到郵件列表(原文未提供)。</p>
<p>對源代碼分發,<code>mysqlbug </code>腳本可在‘<tt>scripts’</tt>目錄下找到。
對二進制的分發,<code>mysqlbug</code>可在‘<tt>bin’</tt>目錄下找到。</p>
<p>如果你有任何關于這本手冊的增補或修正的任何建議,請將它們發給手冊小組(<a
HREF="mailto:docs@mysql.com">docs@mysql.com </a>)。</p>
<p><a NAME="IDX1"></a></p>
<h2><a NAME="What-is" HREF="manual_toc.html#What-is">1.1 什么是 MySQL?</a></h2>
<p><strong>MySQL</strong>是一個真正的多用戶、多線程SQL數據庫服務器。SQL(結構化查詢語言)是世界上最流行的和標準化的數據庫語言。<strong>MySQL</strong>是以一個客戶機/服務器結構的實現,它由一個服務器守護程序<code>mysqld</code>和很多不同的客戶程序和庫組成。</p>
<p>SQL是一種標準化的語言,它使得存儲、更新和存取信息更容易。例如,你能用SQL語言為一個網站檢索產品信息及存儲顧客信息,同時<strong>MySQL</strong>也足夠快和靈活以允許你存儲記錄文件和圖像。</p>
<p><strong>MySQL </strong>主要目標是快速、健壯和易用。最初是因為我們需要這樣一個SQL服務器,它能處理與任何可不昂貴硬件平臺上提供數據庫的廠家在一個數量級上的大型數據庫,但速度更快,MySQL就開發出來。自1996年以來,我們一直都在使用<strong>MySQL</strong>,其環境有超過 40 個數據庫,包含 10,000個表,其中500多個表超過7百萬行,這大約有100 個吉字節(GB)的關鍵應用數據。</p>
<p><strong>MySQL</strong>建立的基礎是業已用在高要求的生產環境多年的一套實用例程。盡管<strong>MySQL</strong>仍在開發中,但它已經提供一個豐富和極其有用的功能集。</p>
<p><a NAME="IDX2"></a><a NAME="IDX3"></a><strong>MySQL</strong>的官方發音是“My Ess
Que Ell”(不是 MY-SEQUEL )。</p>
<p><a NAME="IDX4"></a></p>
<h2><a NAME="Manual-info" HREF="manual_toc.html#Manual-info">1.2 關于本手冊</a></h2>
<p>目前這本手冊有Texinfo、普通文本、Info、HTML、PostScript和 PDF 等格式的版本。因為它們的長度,PostScript和 PDF 版本沒有包括在主要的<strong>MySQL</strong>分發中,但是可從<a
HREF="../../www.mysql.com">http://www.mysql.com </a>獲得單獨的下載。</p>
<p>主要的文檔是Texinfo文件, HTML版本自動地用一個<code>texi2html</code>改進版本生成。普通文本和Info版本用<code>makeinfo</code>生成。
Postscript版本由<code>texi2dvi</code>和<code>dvips</code>生成。PDF 版本用<code>pdftex</code>生成。
</p>
<p>本手冊由David Axmark, Michael (Monty) Widenius, Paul DuBois and Kim Aldale維護。
而其他的貢獻者,見<a HREF="manual_Credits.html#Credits">C MySQL貢獻者</a>。 </p>
<h3><a NAME="Manual_conventions" HREF="manual_toc.html#Manual_conventions">1.2.1
本手冊中使用的約定</a></h3>
<p>這本手冊使用了一定文字格式的約定:
<dl COMPACT>
<dt><code>constant / 固定寬度</code></dt>
<dd>固定寬度字體用于命令名字和選擇、SQL語句、數據庫、表和列命名、C 和 Perl 代碼、環境變量。例如:“為了了解<code>mysqladmin</code>如何工作,用<code>--help</code>選項調用它”。</dd>
<dt><tt>'文件名'</tt></dt>
<dd>有包圍引號的固定寬度字體用于文件名和路徑。例如:“發行版本被安裝在<tt>'/usr/local/'</tt>目錄下”。</dd>
<dt><samp>'c'</samp></dt>
<dd>有包圍引號的固定寬度字體也用于指明字符序列。例如:“要指定一個通配符,使用<samp>'%'</samp>字符”。</dd>
<dt><em>斜體</em></dt>
<dd>斜體的字體被用于強調,<em>like this </em>。 </dd>
<dt><strong>粗體 </strong></dt>
<dd>粗體用于存取權限名字(例如,“不要輕易授權<strong>process</strong>權限”)并表達<strong>特別強調</strong>。</dd>
</dl>
<p>當命令顯示出準備由一個特定的程序執行時,程序由命令所顯示的提示符指出。例如,<code>shell>
</code>表明你從你的登錄外殼執行一個命令,而<code>mysql></code>表明你從<code>mysql</code>客戶執行命令:</p>
<pre>shell> 在這鍵入一個shell命令
mysql> 在這里鍵入一個mysql命令</pre>
<p>shell命令用 Bourne shell語法顯示。如果你正在使用<code>csh</code>風格的外殼,你可能需要用略微不同的方式發出命令。例如,設置一個環境變量和運行一個命令的序列在 Bourne shell語法看起來像這樣:</p>
<pre>shell> VARNAME=value some_command</pre>
<p>對于<code>csh</code>,你將執行這樣的序列:</p>
<pre>shell> setenv VARNAME value
shell> some_command</pre>
<p>數據庫、表和列名字經常必須被代入命令中。為表明這種代入是必要的,本手冊使用<code>db_name</code>、<code>tbl_name</code>和<code>col_name</code>。例如,你可能看到象這樣的語句:</p>
<pre>mysql> SELECT col_name FROM db_name.tbl_name;</pre>
<p>這意味著如果你想輸入類似的語句,你將提供你自己數據庫、表和列的名字,也許像這樣:</p>
<pre>mysql> SELECT author_name FROM biblio_db.author_list;</pre>
<p>SQL語句可以寫成大寫或小寫的。當本手冊顯示SQL語句時,如果討論這些關鍵字,大寫被用于特定的關鍵字(強調它們)而小寫被用于語句的其他部分。因此你可能在討論<code>SELECT語句時看到如下顯示:</code></p>
<pre>mysql> SELECT count(*) FROM tbl_name;</pre>
<p>另一方面,在討論<code>COUNT()</code>函數時,語句將寫成這樣:</p>
<pre>mysql> select COUNT(*) from tbl_name;</pre>
<p>如果不有意地特別強調,所有的關鍵字一律寫成大寫。</p>
<p>在句法描述中,方括號(<samp>'['</samp>和<samp>']'</samp>)被用來表示任選的詞或子句:</p>
<pre>DROP TABLE [IF EXISTS] tbl_name</pre>
<p>當一個語法元素由很多選擇組成時,各選擇用垂直線分開(<samp>'|'</samp>)。當可能從一組選擇中選擇一個成員時,選擇在方括號內被列出。當必須從一組選擇中選擇一個成員時,選擇在花括號內被列出(<samp>'{'</samp>和<samp>'}'</samp>):</p>
<pre>TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str)
{DESCRIBE | DESC} tbl_name {col_name | wild}<a
NAME="IDX5"></a></pre>
<h2><a NAME="History" HREF="manual_toc.html#History">1.3 MySQL 的歷史</a></h2>
<p>我們曾經開始打算利用<code>mSQL</code>用我們自己的快速底層(ISAM)實用程序連接我們的數據庫表,然而,在一些測試以后我們得到出結論:<code>mSQL</code>對我們的需求來說不夠快速和靈活。這導致了一個連接我們數據庫的新SQL接口,但它幾乎有與<code>mSQL</code>相同的應用編程接口。選擇這個應用編程接口以方便第三方的代碼移植。</p>
<p><strong>MySQL</strong>名字的由來不是非常清楚。我們的基目錄和很多的庫和工具具有前綴“my”已超過10年歷史,然而,Monty的女兒(年輕幾歲的)也被命名"my"。因此其中哪一個原因給<strong>MySQL</strong>起了這個名字仍然是一個謎,甚至對我們。</p>
<h2><a NAME="Features" HREF="manual_toc.html#Features">1.4 MySQL 的主要特征</a></h2>
<p>下表描述<strong>MySQL</strong>一些重要的特征:
<ul>
<li>使用核心線程的完全多線程。這意味著它能很容易地利用多CPU(如果有)。</li>
<li>C 、C++、 Eiffel 、 Java、 Perl、 PHP、Python、和 TCL API。見<a
HREF="manual_Clients.html#Clients">20 MySQL 客戶工具和 API</a>。 </li>
<li>可運行在不同的平臺上,見<a HREF="manual_Installing.html#Which_OS">4.2 MySQL支持的操作系統</a>。
</li>
<li>多種列類型:1、 2、 3、4、和 8 字節長度的有符號/無符號整數、<code>FLOAT</code>、<code>DOUBLE</code>、<code>CHAR</code>、<code>VARCHAR</code>、<code>TEXT</code>、<code>BLOB</code>、<code>DATE</code>、<code>TIME</code>、<code>DATETIME、</code>
<code>TIMESTAMP</code>、<code>YEAR</code>、<code>SET</code>和<code>ENUM</code>類型。
見<a HREF="manual_Reference.html#Column_types">7.3 列類型</a>。 </li>
<li>利用一個優化的一遍掃描多重聯結(one-sweep multi-join)非常快速地進行聯結(join)。</li>
<li>在查詢的<code>SELECT</code>和<code>WHERE部分</code>支持全部運算符和函數,例如:<pre>mysql> SELECT CONCAT(first_name, " ", last_name) FROM tbl_name
WHERE income/dependents > 10000 AND age > 30;</pre>
</li>
<li>通過一個高度優化的類庫實現SQL函數庫并且像他們能達到的一樣快速,通常在查詢初始化后不應該有任何內存分配。</li>
<li>全面支持SQL的<code>GROUP BY</code>和<code>ORDER BY</code>子句,支持聚合函數(
<code>COUNT()</code>、<code>COUNT(DISTINCT)</code>、<code>AVG()</code>、<code>STD()</code>、<code>SUM()</code>、
<code>MAX()</code>和<code>MIN()</code> )。</li>
<li>支持ANSI SQL的<code>LEFT OUTER JOIN</code>和ODBC語法<code>。</code></li>
<li>你可以在同一查詢中混用來自不同數據庫的表。(與版本 3.22一樣 )。</li>
<li>一個非常靈活且安全的權限和口令系統,并且它允許基于主機的認證。口令是安全的,因為當與一個服務器連接時,所有的口令傳送被加密。</li>
<li>ODBC for Windiws 95。所有的 ODBC 2 . 5 函數和其他許多函數。例如,你可以用Access連接你的<strong> MySQL</strong>服務器。見<a
HREF="manual_ODBC.html#ODBC">16 MySQL ODBC 支持</a>。</li>
<li>具備索引壓縮的快速B樹磁盤表。</li>
<li>每個表允許有16個索引。每個索引可以由1~16個列或列的一部分組成。最大索引長度是 256 個字節(在編譯<strong>MySQL</strong>時,它可以改變)。一個索引可以使用一個<code>CHAR</code>或<code>VARCHAR</code>字段的前綴。</li>
<li>定長和變長記錄。</li>
<li>用作臨時表的內存散列表。</li>
<li>大數據庫處理。我們正在對某些包含 50,000,000 個記錄的數據庫使用<strong>MySQL</strong>。</li>
<li>所有列都有缺省值,你可以用<code>INSERT</code>插入一個表列的子集,那些沒用明確給定值的列設置為他們的缺省值。</li>
<li>為了可移植性使用 GNU Automake , Autoconf 和<code>libtool。</code></li>
<li>用C和C++編寫,并用大量不同的編譯器測試。</li>
<li>一個非常快速的基于線程的內存分配系統。</li>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -