My SQL基础知识介绍第一章.doc
《My SQL基础知识介绍第一章.doc》由会员分享,可在线阅读,更多相关《My SQL基础知识介绍第一章.doc(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第1章MySQL入门与初步本章要点:v MySQL标准简介v 关系数据库系统的知识v MySQL的优点v MySQL的SQL语言MySQL 是完全网络化的跨平台关系型数据库系统,同时是具有客户机/服务器体系结构的分布式数据库管理系统。MySQL在UNIX等操作系统上是免费的,在Windows操作系统上,可免费使用其客户机程序和客户机程序库。MySQL是一个精巧的SQL数据库管理系统,虽然它不是开放源代码的产品,但在某些情况下你可以自由使用。由于它的功能强大、使用简便、管理方便、运行速度快、安全可靠性强、灵活性、丰富的应用编程接口(API)以及精巧的系统结构,受到了广大自由软件爱好者甚至是商业软
2、件用户的青睐,特别是与Apache和PHP/PERL结合,为建立基于数据库的动态网站提供了强大动力。1.1 MySQL简介MySQL的进展是非常快了,越来越多的领域里都可以见到MySQL的身影,在学习如何使用这个强大的系统之前,我们首先要了解MySQL的历史、功能、特点,你会对学习MySQL更具信心。在正式开始之前,我们现了解一下它的读音。MySQL的官方发音是“My Ess Que Ell”(不是 MY-SEQUEL )。1.1.1 MySQL是什么?MySQL是一个真正的多用户、多线程SQL数据库服务器。SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言。MySQL是以一个客户机
3、/服务器结构的实现,它由一个服务器守护程序mysqld和很多不同的客户程序和库组成。SQL是一种标准化的语言,它使得存储、更新和存取信息更容易。例如,你能用SQL语言为一个网站检索产品信息及存储顾客信息,同时MySQL也足够快和灵活以允许你存储记录文件和图像。MySQL 主要目标是快速、健壮和易用。最初是因为我们需要这样一个SQL服务器,它能处理大型数据库,但速度更快。自1996年以来,我们一直都在使用MySQL,其环境有超过 40 个数据库,包含 10,000个表,其中500多个表超过7百万行,这大约有100 个吉字节(GB)的关键应用数据。MySQL建立的基础是业已用在高要求的生产环境多年
4、的一套实用例程。尽管MySQL仍在开发中,但它已经提供一个丰富和极其有用的功能集。MySQL 最早起始于 1979 年,开始是 Michael “Monty” Widenius 为瑞典的 TcX 公司创建的 UNIREG 数据库工具。1994 年,TcX 开始寻找一个用来开发 Web 应用程序的 SQL 服务器。他们测试了一些商业服务器,但是发现所有服务器对于 TcX 的大型表来说都太慢。他们也试了 mSQL,但它缺乏 TcX 需要的某些功能。因此,Monty 开始开发一种新的服务器。其编程接口明确地设计为类似 mSQL 的编程接口,因为 mSQL 可得到几个免费的工具,所以利用与 mSQL
5、类似的接口,可以将这些相同的工具用于MySQL 从而大大减少了开发接口的工作。1995 年,Detron HB公司的 David Axmark 努力争取 TcX公司在因特网上发布 MySQL。David 还做了文档资料方面的工作和使 MySQL 与 GNU 的配置实用程序一起建造的工作。MySQL 3.11.1 在 1996 年以用于 Linux 和 Solaris 系统的二进制分发形式发布。今天,MySQL 正工作在许多平台上,并且二进制和源代码的形式都可以得到。MySQL 并不是一个开放源代码的产品,因为在某些条件下使用它需要许可证。但是,MySQL 很愿意在开放源代码的团体内得以普及,因
6、为“认证”这个术语并不是非常有约束力的(除非通过出售 MySQL 或出售需要它的服务来挣钱,否则,大体上说 MySQL 一般是免费的)。MySQL 的普及并不限于开放源代码团体内。虽然它在个人计算机上运行(确实,MySQL 的开发一般在不昂贵的 Linux 系统上进行),但它是可移植的,并且运行在商用操作系统(如 Solaris、Irix 和 Windows)和一直到企业服务器的各种硬件上。此外,它的性能也足以和任何其他系统相匹敌,而且它还可以处理具有数百万个记录的大型数据库。MySQL 的广泛应用前景在我们面前尚未完全展开,如运行在功能强但不昂贵的硬件上的免费可用操作系统,将丰富的处理功能和
7、能力提供给比以往更多的人,在比过去范围更广的系统上运行等等。信息处理的经济障碍的降低使强有力的数据库解决方案到达了比过去任何时候更多的人和机构的手中。例如,本人在运行 LinuxPPC 的 G3 PowerBook 笔记本电脑上使用 MySQL 与 Perl、Apache 和 PHP,这允许本人在任何地方都可以进行工作,总的成本只是 PowerBook 的成本。过去只能梦想将高性能的 RDBMS 用于自己工作的机构,现在可以这样做了,并且开销很低。数据库的利用在单一的层次上也在不断地增加。过去从未想过要使用数据库的人现在也开始考虑一旦得到一个数据库,怎样将其用于自己的各种目的,例如用来存储和访
8、问系统的研究结果,跟踪和维护最喜爱的收藏物(蝴蝶、邮票、捧球明星卡等等),帮助管理新开张的公司,或者提供个人 Web 站点的搜索能力。1.1.2 我需要MySQL吗?如果您正在寻找一种免费的或不昂贵的数据库管理系统,可以有几个选择,如,MySQL、mSQL、Postgres(一种免费的但不支持来自商业供应商引擎的系统)等。在将 MySQL 与其他数据库系统进行比较时,所要考虑的最重要的因素是性能、支持、特性(与 SQL 的一致性、扩展等等)、认证条件和约束条件、价格等。相比之下,MySQL 具有许多吸引人之处:1、速度。MySQL 运行速度很快。开发者声称 MySQL 可能是目前能得到的最快的
9、数据库。可访问 (MySQL Web 站点上的性能比较页),调查一下这个性能。2、容易使用。MySQL 是一个高性能且相对简单的数据库系统,与一些更大系统的设置和管理相比,其复杂程度较低。3、价格。MySQL 对多数个人用户来说是免费的。详细的信息请参阅本前言后面的 “MySQL是否免费”一节。4、支持查询语言。MySQL 可以利用 SQL(结构化查询语言),SQL 是一种所有现代数据库系统都选用的语言。也可以利用支持 ODBC(开放式数据库连接)的应用程序,ODBC 是 Microsoft 开发的一种数据库通信协议。5、性能。许多客户机可同时连接到服务器。多个客户机可同时使用多个数据库。可利
10、用几个输入查询并查看结果的界面来交互式地访问 MySQL。这些界面为:命令行客户机程序、Web 浏览器或 X Window System 客户机程序。此外,还有由各种语言(如 C、Perl、Java、PHP 和 Python)编写的界面。因此,可以选择使用已编好的客户机程序或编写自己的客户机应用程序。6、连接性和安全性。MySQL 是完全网络化的,其数据库可在因特网上的任何地方访问,因此,可以和任何地方的任何人共享数据库。而且 MySQL 还能进行访问控制,可以控制哪些人不能看到您的数据。7、可移植性。MySQL 可运行在各种版本的 UNIX 以及其他非 UNIX 的系统(如 Windows
11、和 OS/2)上。MySQL 可运行在从家用 PC 到高级的服务器上。如果,你对上面的特性非常在意,尤其是价格和速度、性能方面,那么我认为MySQL十分适合你。1.1.3 我需要付钱吗?基本上,我们许可证政策如下: 对于一般的内部使用,MySQL通常是免费的。如果你不想,就不必付钱给我们。 一个许可证是必需的,如果:你直接销售MySQL服务器或作为其他产品或服务的一部分; 你在某些客户那里为了安装和维护一个 MySQL 服务器而收费; 你在不可再分发的分发中包括 MySQL并且你对该分发的某些部分收费; 在必须有 MySQL 许可证的情况下,对每台运行mysqld服务器的机器,你都需要一个许可
12、证,但多CPU机器按单CPU计算,并且在一台机器上运行 MySQL 服务器的数量或并发连接到这台运行一个服务器的机器的客户数量也无限制! 你在商业程序中包含客户代码不需要一个许可证,MySQL的客户端存取部分不属公共领域,mysql命令行客户程序包含在 GNU 通用许可证下的 readline 库的代码。 对于已经购买了 10 个许可证或一种足够级别的技术支持的消费者,我们提供附加的功能。目前,这意味着我们提供 myisampack实用工具,它能生成快速的压缩的只读数据库(服务器支持读取这样的数据库,但不包含用于生成它们的压缩工具)。当支持协议产生了足够的收入时,我们将在与MySQL 服务器同
13、样的许可证下发行这个工具。 如果你使用不需要一个许可证的 MySQL,但是你的确喜欢 MySQL 并且有志于更进一步的开发,无论如何肯定欢迎你购买一个许可证。 如果你在一个商业环境中使用 MySQL以便通过它获利,我们要求你购买一定级别的技术支持以推进开发。我们感到,如果 MySQL 有助于你的业务,要求你帮助MySQL也是合理的(否则,如果向我们你询问支持问题,你不仅是正在免费使用我们倾注大量精力的产品,而且你正在要求我们提供免费的支持。)。 对于在微软操作系统下面( Win95/Win98/WinNT)的使用,你在一个 30 天的试用期后需要一个 MySQL 许可证,除了教育用途或大学或政
14、府资助的研究机构的许可证可免费申请获得,见 K 针对微软操作系统的 MySQL 许可证。一个共享软件版本的 MySQL -Win32 可在购买前从 下载试用。在你付钱后,你将得到一个口令让你能够访问最新 MySQL - Win32 版本。如果你需要一个 MySQL 许可证,最容易的付款方法是使用在 Tcx 的安全服务器上的许可证表格。1.1.4 如何得到MySQL?在本小节读者不仅讲知道如何得到MySQL还将知道如何得到与MySQL有关的很多软件,虽然由于篇幅和本书写作目的的原因,我们不可能一一介绍它们:从TcX公司的MySQL网站上MySQL分发包(包括各种平台Windows、Linux等,
15、各种形式二进制、源代码、RPM包的分发),现在已经有适用GPL许可证的MySQL分发,请仔细阅读最新的许可信息。MySQL 用于ODBC驱动程序MyODBC。MySQL的JDBC驱动程序mm.mysql。用PHP写成的客户程序phpMyAdmin。以及其它各种第三方客户机。获得Active Perl获得Perl DBIhttp:/www.symbolstone.org/technology/perl/DBI获得PHP获得Apachehttp:/www.apache.org1.1.5总结本节简单介绍的MySQL的方方面面,相信读者对MySQL已经有了一定的了解了。看看你是不是了解了它:l MyS
16、QL是一个关系数据库系统,支持SQL查询语言。l MySQL可以是免费的,你不需要为它付费。l MySQL系统的速度非常快,同样它的性能也是十分优良的。l MySQL是一个管理简捷的数据库,它没有庞大而臃肿的可视化管理工具。1.2 关系数据库管理系统在过去的许多年里,有许多关于“数据库”这个名词的定义。数据库是一个服务于一个核心目标的数据的有组织的集合。数据库中的数据是有组织的,从某种意义上说,数据库中存储的数据采用一种不变的方式被存储、格式化、存取以及显示。因为数据库不含有无关的或冗余的数据,它可以适用于一个核心目标。一本电话簿就是一个很好的数据库例子,它包含有关的数据(名字),让人们能够查
17、找电话号码;它不包含无关的数据,如某人的电话机的颜色;它只贮存那些与它的目标相关的信息。最常见的,一个数据库的目标是商务应用,但是也可能贮存科学、军事或其他数据,这些数据通常不能当作商务数据看待。因此,有商业数据库、科学数据库、军事数据库以及其他的数据库等等。另外,数据不仅能根据它的应用分类,还能根据它的格式分类,现代数据库包括多种类型的数据。例如,现在数据库贮存图像、图表、声音、视频或包括两种或多种类型的复合文档,已经是很普通的事了。1.2.1 关系数据库系统所谓RDBMS,即关系数据库管理系统,为了进一步了解一个RDBMS 是由什么构成的,你必须先了解关系模型。下列情况出现在一个关系模型中
18、:l 数据的基础项是关系。l 在这些表上的操作只产生关系(关系型闭合)。什么是关系?这是一个描述两个集合的元素如何相互联系或如何一一对应的数学概念。因此,关系模型是建立在数学基础上的。然而,对你来说,关系只是一个带有一些特殊属性的表,一个关系模型把数据组织到表中,而且仅在表中。客户、数据库设计者、数据库系统管理员和用户都以同样的方式即从表中查看数据。那么,表就是关系模型的近义词。一个关系型表有一组命名的属性(a t t r i b u t e )或列,以及一组元组(t u p l e )或行。有时列被称为域,行被称为记录,列和行的交集通常被叫做单元。列标示位置,有作用域或数据类型,例如字符或整
19、数。行自己就是数据。一个关系表必须符合某些特定条件,才能成为关系模型的一部分:1、贮存在单元中的数据必须是原子的。每个单元只能存贮一条数据,这也叫信息原则(Information Principle )。尽管在过去的数年中按某些违反这一条的方式已经建立了许多系统,但违反这一条将不能运用良好的设计原则。当一个单元包含多于一条的信息时,这叫做信息编码(information coding )。在这样的情况下,是否采用违背理论的方案是一个设计的选择问题,尽管在多数情况下,结果证明这对数据的完整性是一不利的。2、贮存在列下的数据必须具有相同数据类型。3、每行是唯一的(没有完全相同的行)。4、列没有顺序
20、。5、行没有顺序。6、列有一个唯一性的名称。除了表和它们的属性,关系模型有它自己特殊的操作。不需要深入研究关系型数学,只需说明这些操作可能包括列的子集、行的子集、表的连接以及其他数学集合操作(如联合)等就足够了。真正要知道的事情是这些操作把表当作输入,而将产生的表作为输出。S Q L 是当前R D B M S 的A N S I 标准语言,它包含这些关系型操作。允许数据操作或数据处理的主要语句是S E L E C T 、I N S E RT 、U P D AT E 和D E L E T E 。因此,这些数据处理操作中任何一个都是一个事务。允许数据定义或结构化处理的基本语句是C R E AT E
21、、A LT E R 和D R O P 。关系模型要求的最后一件事是两个基础的完整性原则。它们是实体完整性原则(e n t i t y integrity rule )和引用完整性原则(referential integrity rule )。首先,让我们看看两个定义:1、主键(primary key )是能唯一标识行的一列或一组列的集合。有时,多个列或多组列可以被当作主键。2、由多个列构成的主键被称为连接键(concatenated key )、组合键(compound key ),或者更常称为复合键(composite key )。数据库设计者决定哪些列的组合能够最准确和有效地反映业务情形,
22、这并不意味着其他数据未被存贮,只是那一组列被选作主键而已。剩余有可能被选为主键的列被叫做候选键(candidate key )或替代键(alternate key )。一个外键(foreign key )是一个表中的一列或一组列,它们在其他表中作为主键而存在。一个表中的外键被认为是对另外一个表中主键的引用。实体完整性原则简洁地表明主键不能全部或部分地空缺或为空,引用完整性原则简洁地表明一个外键必须为空或者与它所引用的主键当前存在的值相一致。一个R D B M S 就是一个建立在前面这些关系模型基础上的,一般能满足所提到的全部要求的D B M S 。但是,在7 0 年代末到8 0 年代初,R D
23、 B M S 开始销售的时候,S Q L 超越了本质为非关系型的系统,受到普遍欢迎,并被称作关系型。1.2.2 数据库系统的发展1969年美国的IBM公司开发了第一个数据库系统IMS。这是一个层次数据库系统,在数据库系统发展史上有着重要的地位。同年,美国的数据系统语言委员会(CODASYL)下属的数据库任务组提出了著名的DBTG报告,并在1970年提出了该报告的修订版。这份报告定义了数据库操纵语言、模式定义语言和子模式定义语言的概念。数据库操纵语言用于编写操纵概念视图的应用程序,模式定义语言用来编写概念视图和内部视图相结合的模式程序。在七十年代,开发了许多遵循DBTG报告的网状数据库系统,如:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- My SQL基础知识介绍第一章 SQL 基础知识 介绍 第一章
限制150内