📄 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 + -