MySQL数据库学习笔记(一)

我一直从事Informix和Oracle数据库开发,有一天发现网络上有一种小巧别致的数据库,被广泛使用,从MySQL的网站 http://www.mysql.com/ 我下载了它的数据库软件,使用过后觉得真的挺好,这是我的一点学习笔记希望对各位初学者有点帮助。

1. MySQL 数据库介绍

MySQL 是瑞典的 MySQL AB 公司开发的一个可用于各种流行操作系统平台的关系数据库系统,它具有客户机 / 服务器体系结构的分布式数据库管理系统。 MySQL 完全适用于网络,用其建造的数据库可在因特网上的任何地方访问,因此,可以和网络上任何地方的任何人共享数据库。 MySQL 具有功能强、使用简单、管理方便、运行速度快、可靠性高、安全保密性强等优点。 MySQL 用 C 和 C++ 编写,它可以工作在许多平台( Unix , Linux , Windows )上,提供了针对不同编程语言 (C,C++,JAVA 等 ) 的 API 函数;使用核心线程实现多线程,能够很好的支持多 CPU ;提供事务和非事务的存储机制;快速的基于线程的内存分配系统; MySQL 采用双重许可,用户可以在 GNU 许可条款下以免费软件或开放源码软件的方式使用 MySQL 软件,也可以从 MySQL AB 公司获得正式的商业许可。

除了以上特点, MySQL 还有一个最大的特点,那就是在诸如 UNIX 这样的操作系统上,它是免费的,可从因特网上下载其服务器和客户机软件。并且还能从因特网上得到许多与其相配的第三方软件或工具。而在 Windows 系统上,其客户机程序和客户机程序库是免费的。

1.1. 为什么选用 MySQL

如果您正在寻找一种免费的或不昂贵的数据库管理系统,可以有几个选择,如, MySQL 、 mSQL 、 Postgres (一种免费的但不支持来自商业供应商引擎的系统)等。在将 MySQL 与其他数据库系统进行比较时,所要考虑的最重要的因素是性能、支持、特性(与 SQL 的一致性、扩展等等)、认证条件和约束条件、价格等。相比之下, MySQL 具有许多吸引人之处:

1. 速度。 MySQL 运行速度很快。开发者声称 MySQL 可能是目前能得到的最快的数据库。可访问 http://www.mysql.com/benchmark.html ( MySQL Web 站点上的性能比较页),调查一下这个性能。

2. 容易使用。 MySQL 是一个高性能且相对简单的数据库系统,与一些更大系统的设置和管理相比,其复杂程度较低。

3. 价格。 MySQL 对多数个人用户来说是免费的。

4. 小巧。 4.1.1 的数据库发行版仅仅只有 21M ,安装完成也仅仅 51M 。

5. 支持查询语言。 MySQL 可以利用 SQL (结构化查询语言), SQL 是一种所有现代数据库系统都选用的语言。也可以利用支持 ODBC (开放式数据库连接)的应用程序, ODBC 是 Microsoft 开发的一种数据库通信协议。

6. 性能。许多客户机可同时连接到服务器。 MySQL 数据库没有用户数的限制,多个客户机可同时使用同一个数据库。可利用几个输入查询并查看结果的界面来交互式地访问 MySQL 。这些界面为:命令行客户机程序、 Web 浏览器或 X Window System 客户机程序。此外,还有由各种语言(如 C, C++, Eiffel, Java, Perl, PHP, Python, Ruby, and Tcl )编写的界面。因此,可以选择使用已编好的客户机程序或编写自己的客户机应用程序。

7. 连接性和安全性。 MySQL 是完全网络化的,其数据库可在因特网上的任何地方访问,因此,可以和任何地方的任何人共享数据库。而且 MySQL 还能进行访问控制,可以控制哪些人不能看到您的数据。

8. 可移植性。 MySQL 可运行在各种版本的 UNIX 以及其他非 UNIX 的系统(如 Windows 和 OS/2 )上。 MySQL 可运行在从家用 PC 到高级的服务器上。

9. 开放式的分发。 MySQL 容易获得;只要使用 Web 浏览器即可。如果不能理解某样东西是如何起作用的,或者对某个算法感到好奇,可以将其源代码取来,对源代码进行分析。如果不喜欢某些东西,则可以更改它。

1.2. MySQL 提供的工具

MySQL 包含有下列工具:

1. SQL 服务器。这是 MySQL 的引擎,它提供对数据库的访问。

2. 访问服务器的客户机程序。包括一个允许直接录入查询并查看结果的交互式程序,以及几个帮助操纵站点的管理程序和实用程序。其中有一个实用程序允许控制服务器。其他的实用程序导入或导出数据,检查访问许可等。

3. 帮助用户编写自己的程序的客户机库。 MySQL 提供众多的 API ( C, C++, Eiffel, Java, Perl, PHP, Python, Ruby, and Tcl )

4. MySQL 除了提供内嵌软件外,它还被许多很有才能的人使用。这些人喜欢编写软件以提高其产品效率,或愿意将自己编写的软件提供给他人使用。因此,使用 MySQL 能得到各种各样的第三方工具,这些工具令 MySQL 使用更方便,或者扩展了 MySQL ,使其进入诸如 Web 站点开发这样的领域。

1.3. MySQL 是否免费

MySQL 不是一种开放的源代码产品,但一般可以免费使用。可以参考“ MySQL 参考指南”的许可说明,其基本内容如下:

1. 客户机程序和客户机编程库在所有平台上都是免费的。

2. 在 UNIX 和其他非 Windows 平台上, MySQL 服务器可免费使用,但不能出售它或出售需要它的任何软件或服务。如果这样做,应该得到服务器的使用许可证。理由是,如果用 MySQL 赚钱,那么应当分一些给 MySQL 的开发者( $495 对有助于您赚钱的专业的 RDBMS 来说是很便宜的,并且还有大量的免费软件,可用来帮助您更有效地使用 MySQL 。)

3. MySQL 服务器的 Windows 版本需要许可证。目前 MySQL Pro 在网上的报价( 注意 MySQL Pro 是 MySQL 的商业版本):

http://www.mysql.com/products/pricing.html

MySQL Pro includes the InnoDB transactional storage engine, which provides row-level locking.

Number of licenses

|

Price per copy

---|---

EUR

|

USD

|

GBP

1 .. 9

|

440.00

|

495.00

|

290.00

10 .. 49

|

315.00

|

360.00

|

205.00

50 .. 99

|

255.00

|

290.00

|

165.00

100 .. 249

|

195.00

|

220.00

|

127.00

250 .. 499

|

155.00

|

175.00

|

100.00

500 +

|

ask for quote, [email protected]

4. MySQL 的较旧的版本通过 GNU Public License ( GPL )许可证可以得到,并可用于任何用途而无需付费。 MySQL 3.20.32a 在 GPL 条件下可用。

5. 无论是否需要服务器许可证,都可在付费的基础上从 MySQL 开发者那里得到正式的技术支持,本人提请读者注意这一点。(特别是如果您的公司主管不赞成使用没有如此保证的软件时更是如此。) MySQL 提供多种级别的技术支持,除了得到极好的支持外,您还能帮助 MySQL 的开发,进而使整个 MySQL 世界受益。

6. 关于 Windows 许可证的说明

有时候有人会问,“我使用的是 Windows ,为什么必须取得 MySQL 服务器的许可证呢?”这是一个很合理的问题,而且也存在一个合理的答案,那就是软件开发的费用。为了从事软件开发,需要一个操作系统和一些开发工具,如编辑器和编译器等。就这些需求而言,在 UNIX 的开发与 Windows 的开发之间存在根本的不同。在 UNIX 下,可免费得到几乎所有东西:

a) 使用的操作系统有几个选择,如 Linux 或免费的 BSD 系列,譬如 FreeBSD 、 NetBSD 和 OpenBSD 。

b) 使用的开发工具,这些操作系统全都带有编辑器,如 vi 和编辑程序宏指令及 gcc 和 egcs 这样的编译器。

c) 在升级这些操作系统或发布开发工具时,可从因特网上下载它们或从一个便宜的 CD 上得到,即使是进行重大的修改也是这样。

而在 Windows 上开发软件却相当昂贵,例如:

a) 操作系统不是免费的。

b) 开发工具,如编译器不是免费的。

c) 操作系统或工具的升级时,除非是小问题的修改或作微小的升级,否则要再次付费。所有这些表明, UNIX 下的软件开发成本几乎是零,而在 Windows 其成本相当可观。 MySQL 的开发者可能愿意继续研究 MySQL ,但他们不希望为这种权利付那么多钱。不管怎么说,其 Windows 的开发成本必须收回,发售 MySQL 许可证就是一种手段。

1.4. 目前版本

可以在网上下载的 MySQL 版本如下:

MySQL 4.0 -- Production release (recommended)

MySQL 4.1 -- Alpha release (use this for new development)

MySQL 5.0 -- Development tree (use this for previewing and testing new features)

MySQL 3.23 -- Older production release

各版本的主要特性:

Feature

|

MySQL version

---|---

Unions

|

4.0

Subqueries

|

4.1

R-trees

|

4.1 (for MyISAM tables)

Stored procedures

|

5.0

Views

|

5.0 or 5.1

Cursors

|

5.0

Foreign keys

|

5.1 (already implemented in 3.23 for InnoDB )

Triggers

<TD style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 0.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 0.75pt; PADDING

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus