1、目 录第1章 数据库概述本章介绍数据库的一些基本术语和概念,介绍数据管理的几个阶段,以及关系数据库的一些特点。本章目标:完成本章内容后我们将能够: 掌握数据库的术语和概念 了解数据管理的几个阶段 掌握关系型数据库1.1 数据库常用的术语和基本概念(1)数据Data:是数据库中存储的基本对象。数据在大多数人头脑中的第一个反映就是数字。其实数字只是最简单的一种数据,是数据的一种传统和狭义的理解。广义的理解,数据的种类很多,例如:文字、图形、图像、声音、学生的档案记录、货运的运输情况等。描述事物的符号记录称为数据。描述事物的符号可以是数字,也可以是文字、图像、图形、声音、语言等,数据有多种表现形式,
2、它们都可以经过数字化后存入计算机。举例:在学生档案中,描述一个学生的一条记录(黎明,男,1988-08-08,江苏,计算机专业,2001-07)这就是数据。(2)数据库DataBase,简称DB。数据库,顾名思义,是存放数据的仓库。只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的。所谓数据库是指长期储存在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。(3)数据库管理系统DataBase Management System 简称DBMS如何科学地组织和存储数据,如何高效地获
3、取和维护数据,完成这个任务的是一个系统软件数据库管理系统。数据库管理系统是位于用户与操作系统之间的一层数据管理软件。数据库管理系统的主要功能:1)数据定义功能:DBMS提供数据定义语言(Data Definition Language,简称DDL),用户通过它可以方便地对数据库中的数据对象进行定义。2)数据操纵功能:DBMS还提供数据操纵语言(Data Manipulation Language,简称DML),用户可以使用DML操纵数据实现对数据库的基本操作,如查询、插入、删除和修改等。3)数据库的运行管理:数据库在建立、运用和维护时由数据库管理系统统一管理、统一控制,以保证数据的安全性、完整
4、性、多用户对数据地并发使用及发生故障后的系统恢复。4)数据库的建立和维护功能:它包括数据库初始数据的输入、转换功能,数据库的转储、恢复功能,数据库的重组织功能和性能监视、分析功能等。这些功能通常是由一些实用程序完成的。数据库管理系统是数据库系统的一个重要组成部分。(4)数据库系统DataBase System,简称DBS数据库系统一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成。应当指出的是,数据库的建立、使用和维护等工作只靠一个DBMS远远不够,还要有专门的人员来完成,这些人被称为数据库管理员(DataBase Administrator,简称DBA)。数据库系
5、统是指计算机系统中引进了数据库后的系统,其计算机硬件、软件如下图所示。下面用一个实体与数据库系统进行比较,例如数据库系统与图书馆的比较。数据库图书馆数据图书外存书库用户读者数据模型书卡格式数据库管理系统图书馆管理员数据的物理组织方法图书馆图书存放方法用户对数据库的操作读者对图书馆的访问(使用数据操纵语言对数据检索、插入、删除、修改)(用普通语言借书、还书等)1.2 数据管理技术的产生和发展数据库技术是应数据管理任务的需要而产生的。数据的处理是指对各种数据进行收集、存储、加工和传播的一系列活动的总和。数据管理则是指对数据进行分类、组织、编码、存储、检索和维护,它是数据处理的中心问题。伴随着计算机
6、技术的不断发展,数据处理及时地应用了这一先进的技术手段,使数据处理的效率和深度大大提高,也促使数据处理和数据管理的技术得到了很大的发展,其发展过程大致经历了人工管理、文件管理、数据库管理及分布式数据库管理等四个阶段。1.2.1数据管理三个阶段比较人工管理阶段文件系统阶段数据库系统阶段时间50年代中期50年代后期60年代中期60年代后期应用背景科学计算科学计算、管理大规模管理硬件背景无直接存取存储设备磁盘、磁鼓大容量磁盘软件背景没有操作系统有操作系统(文件系统)有DBMS处理方式批处理批处理联机实时处理批处理联机实时处理分布处理数据保存方式数据不保存以文件的形式长期保存,但无结构以数据形式保存,
7、有结构数据管理考虑安排数据的物理存储位置与数据文件名打交道对所有数据实行统一、集中、独立的管理数据与程序数据面向程序数据与程序脱离数据与程序脱离实现数据的共享数据的管理者人文件系统DBMS数据面向的对象某一应用程序某一应用程序现实世界数据的共享程度无共享共享性差共享性高数据的冗余度冗余度极大冗余度大冗余度小数据的独立性不独立,完全依赖于程序独立性差具有高度的物理独立性和一定的逻辑独立性数据的结构化无结构记录内有结构整体无结构整体结构化用数据模型描述数据的控制能力应用程序自己控制应用程序自己控制由DBMS提供数据的安全性、完整性、并发控制和恢复能力(1)人工管理阶段该阶段指20世纪60年代以前,
8、这一时期的计算机功能比较简单,主要用于科学计算。计算机外存储设备只有磁带和卡片等,计算机软件系统方面,还没有操作系统,也没有数据库系统等专门的数据管理软件,只有汇编语言。由于缺乏软件系统的支持,数据管理的工作由应用程序完成。在应用程序中不仅要规定数据的逻辑结构,还要设计数据的物理结构。这一阶段数据管理的特点是:不存储数据应用程序所对应的数据不单独存在,在程序运行时由数据卡片或数据磁带输入,运算后直接取走结果,源数据与结果都不保存。不具有数据独立性应用程序完全依赖于数据,不具有数据独立性,一旦数据的逻辑结构或物理结构发生变化,应用程序必须做相应的修改。数据不能共享数据是面向应用的,一个数据集只能
9、对应一个应用程序。应用程序之间不能共享数据。数据大量冗余由于数据不能共享,因此即使两个应用程序使用到某些相同的数据,它们之间也无法相互利用对方的数据。(2)文件管理阶段该阶段指20世纪60年代早期到20世纪60年代后期。在这个时期,计算机开始大量用于非数值计算,磁盘,磁鼓等存储设备的出现大大增强了计算机的存取能力。软件方面,出现了操作系统,数据以文件的形式由操作系统的专门软件文件管理系统,进行统一管理。其具有以下特点:数据以文件的形式长期保存在计算机中数据统一由操作系统组织成数据文件,并长期保存在磁盘存储器上。用户通过文件管理系统可以方便地进行访问与修改。数据的独立性有一定的提高由于文件的物理
10、组织由操作系统完成,用户或者应用程序只须根据数据的逻辑结构,通过文件名进行访问,无须了解数据的物理结构,从而提高了数据的物理独立性。文件的组织形式多样化文件管理系统还为用户提供了多种文件组织形式,如顺序文件组织,索引文件组织,直接文件存取组织等。文件管理系统的出现,弥补了手工管理的一些缺陷,使得数据管理技术有了很大的提高,但是它在数据管理方面还存在一些不足,主要表现在以下几点:由于数据只能以文件为单位进行共享,不能实现以记录或数据项为单位的共享,因此数据还存在大量的冗余。数据缺乏逻辑独立性,应用程序与数据文件之间仍互相依赖,文件的逻辑结构一旦改变,应用程序也应做相应的修改。文件与文件之间相互对
11、立,无法实现文件之间的相互联系,不能反映客观世界事物间的复杂联系。(3)数据库管理阶段20世纪60年代后期至今,由于计算机技术的迅速发展,磁盘存储技术取得重要进展,计算机更广泛地应用于管理。随着数据量的剧增,对数据管理提出了更高的要求:要求具有更高的独立性与共享性。文件管理技术已经不能适应上述要求。为了进一步减少数据冗余,满足多用户,多应用程序的数据独立与高度共享的需求,使数据为尽可能多的应用程序服务,出现了统一管理数据的专门软件系统数据库管理系统(database management system,DBMS)。其具有以下特点:数据结构化数据库中的数据是按照一定的数据模型建立起来的相关的数据
12、的集合,它既反映现实世界的客观事物,也反映事物之间的联系。数据结构化是数据库系统与文件系统的根本区别。数据独立性高数据库系统提供了数据的逻辑映射与物理映射,这样,数据库中的数据既有逻辑独立性,又有物理独立性。用户只须通过简单的局部逻辑结构来操作数据,无须考虑数据的全局逻辑结构及物理存储结构。因此确保了较高的数据独立性。实现数据的共享与最小冗余数据的共享性直接影响到数据的冗余度。数据库中的数据是面向整个系统,而不是面向某个应用,可以被多个用户共享。这样既可以保证最小的数据冗余,又可以避免数据的不相容性与不一致性。具有统一的数据管理和控制功能数据库系统中由数据库管理系统对数据进行统一的管理和控制。
13、通过DBMS还可以保证数据库系统中数据的安全性,数据的完整性,数据的并发访问控制和数据的恢复。数据库技术在数据管理中的特点与优势,使得它在计算机数据管理中占据主导地位,成为各类信息系统的核心基础。1.2.2分布式数据库分布式数据库系统(Distributed DataBase System,DDBS)是在集中式数据库基础上发展起来的,是数据库技术与计算机网络技术、分布处理技术相结合的产物。分布式数据库系统是地理上分布在计算机网络不同结点,逻辑上属于同一系统的数据库系统,能支持全局应用,同时存取两个或两个以上结点的数据。分布式数据库系统的主要特点是:(1)数据是分布的。数据库中的数据分布在计算机
14、网络的不同结点上,而不是集中在一个结点,区别于数据存放在服务器上由各用户共享的网络数据库系统。(2)数据是逻辑相关的。分布在不同结点的数据,逻辑上属于同一个数据库系统,数据间存在相互关联,区别于由计算机网络连接的多个独立数据库系统。(3)结点的自治性。每个结点都有自己的计算机软、硬件资源、数据库、数据库管理系统(即Local DataBase Management System,LDBMS局部数据库管理系统),因而能够独立地管理局部数据库。1.3关系型数据库一个关系型数据库由多个关系组成,每个关系是以二维表的形式组织数据的。1.3.1 介绍关系模型中一些术语l 关系(Relation):一个关
15、系对应通常说的一张表,如上表所示;l 元组(Tuple):表中的一行即为一个元组;l 属性(Attribute):表中的一列即为一个属性,给每一个属性起一个名称即属性名。如上表有六列,对应六个属性(学号,姓名,年龄,性别,系和年级);l 主码(Key):表中的某个属性组,它可以唯一确定一个元组,如上表中的学号,可以唯一确定一个学生,也就称为本关系的主码。l 域(Domain):属性的取值范围,如人的年龄一般在1150岁之间,大学生年龄属性的域是(14),性别的域是(男,女),系的域是一个学校所有系名的集合;l 分量:元组中的一个属性值;l 关系模式:对关系的描述,一般表示为:关系名(属性1,属
16、性2,属性3,属性n)1.3.2 关系型数据库主要特点:l 一个关系(表)由行与列组成。l 在关系模式中,能唯一标识元组的属性集称为超键(super key);如果一个属性能唯一标识元组,且又不含有多余属性,那么这个属性称为候选键(candidate key);关系模式中用户正在使用的候选键称为主键(primary key)。l 列是同质的,即同列所有分量是同类型的元素;l 用户能检索、查询表里的数据集。l 用户能把相关的表链接在一起,以便检索存储在不同表中的数据。1.3.3 关系数据库中的一个关系的限制l 关系中没有重复元组,任意元组在关系中都是唯一的l 元组的顺序无关紧要,即元组的次序可以
17、任意交换。l 属性的顺序是非排序的,即它的次序可以任意交换。l 属性必须具有不同的属性名,不同的属性可来自同一个域。l 同一属性名下的诸属性值(同列)是同类型数据,且来自同一个域。l 所有的属性值都是原子的1.3.4 关系数据库系统的体系结构绝大多数数据库系统在总的体系结构上都具有三级模式的特征。三级模式是对数据的三个抽象级别:(1)外模式(用户模式):也称为字模式,它是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。外模式是保证数据库安全性的一个有力措施。每个用户只能看见和访问所对应的外模式中的数
18、据,数据库中的其余数据是不可见的。(2)模式(逻辑模式):是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。一个数据库只有一个模式。定义模式时不仅要定义数据的逻辑结构,例如数据记录由哪些数据项构成,数据项的名字、类型、取值范围等,而且要定义数据之间的联系,定义与数据有关安全性、完整性要求。(3)内模式(存储模式):一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。例如:数据是否压缩存储,是否加密;数据的存储记录结构有何规定等。1.3.5 关系模型的三类完整性规则(1)实体完整性规则(entity integrity rule)这条规则要
19、求关系中元组在关键的属性上不能有空值。如果出现空值,那么关键值就起不了唯一标识元组的作用。(2)引用完整性规则(reference integrity rule )这条规则要求“不允许引用不存在的元组”。这条规则也称为“参照完整性规则”。举例说明:学生实体和专业实体可以用下面的关系表示,其中主码用下划线标识:学生(学号,姓名,性别,专业号,年龄)专业(专业号,专业名)这两个关系之间存在着属性的引用,即学生关系引用了专业关系的主码“专业号”。显然,学生关系中的“专业号”值必须是确实存在的专业的专业号,即专业关系中有该专业的记录,这也就是说,学生关系中的某个属性的取值需要参照专业关系的属性取值。(
20、3)用户定义的完整性规则这是针对某一具体数据的约束条件,由应用环境决定。它反应某一具体应用所涉及的数据必须满足的语义要求。第2章 MySQL软件安装本章描述如何在Windows操作系统平台上安装MySQL服务器和客户端软件,安装MySQL服务器的步骤以及安装过程中的注意事项,同时还介绍MySQL客户端的工具的安装和使用。除了详细的操作步骤外,为了让读者能更形象地理解安装过程,还配备大量安装截屏图。本章目标:完成本章内容后我们将能够: 掌握MySQL安装过程 熟练MySQL客户端安装过程 熟练应用MySQL客户端2.1 安装MySQL读者可以从网站()上下载MySQL5.0的软件,解压后双击Se
21、tup的文件,几秒钟后,会出现图2.1所示的窗口,这时就可以开始进行MySQL的安装了。选择窗口中的Next按钮。这时会出现如图2.2所示的窗口。图2.1 启动安装向导图2.2 选择安装类型在如图2.2所示的窗口中,会询问读者选择何种方式安装MySQL。选择Complete选项,接着会询问读者是否已准备好安装。如果已准备好,那么选择Next。这是会出现如图2.3所示的窗口。准备好后,选择Install。如果希望更改内容,可选择Back并更改一些安装参数。如果选择Install,则安装过程就会开始并显示其进程,如图2.4所示。图2.3准备安装MySQL图2.4 MySQL正在安装中几秒钟后,会出
22、现如图2.5所示的窗口。在该窗口中选择Skip Sign-Up并单击Next,读者可在稍后进行登记。这时会出现如图2.6所示的窗口。图2.5 登记窗口图2.6 安装向导完成在图2.6中标记Configure the MySQL Server now复选框后,选择Finish。这时会出现图2.7所示的窗口。选择Next,这时会出现如图2.8所示的窗口。图2.7开始配置MySQL图2.8 选择所需要的配置在图2.8中,选择Standard Configuration选项,然后单击Next。以后,当读者已有了一定经验并具有了MySQL的完整知识后,可以在重新安装MySQL时选择Detailed Co
23、nfiguration选项。在这里选择Detailed Configuration选项,选择Next后,会出现如图2.9所示的窗口。图2.9 选择机器类型在图2.9中,根据需要选择机器配置类型,选择Developer Machine,选择Next,会出现如图2.10所示的窗口。图2.10 选择应用类型在图2.10中,根据需要选择安装数据库应用类型,选择Multifunctional Database,选择Next,会出现如图2.11所示的窗口。图2.11 选择表空间位置在图2.11中,根据需要选择表空间存放的位置,选择Next,会出现如图2.12所示的窗口。图2.12 选择连接数目在图2.12
24、中,根据需要选择连接数目。如果想指定连接数目,必须选择Manual Setting,在后面的下拉框中输入要指定的连接数目,如不选择Manual Setting,但是在后面的下拉框中输入要指定的连接数目,这是无效的设置。现在选择Manual Setting,在后面的下拉框中输入连接数目30,选择Next,会出现如图2.13所示的窗口。图2.13 选择网络端口在图2.13中,可以设置网络端口号,默认端口号3306,也可以进行修改。该端口号会在以后和Java程序进行连接时用到。在此建议读者不要修改端口号。确定端口号之后,选择Next,会出现如图2.14所示的窗口。图2.14 选择字符集在图2.14中
25、,可以设置数据库的字符集,以便解决字符乱码问题,默认字符集latin1,也可以进行修改。默认的字符集不支持汉字,可以选择gb2312或utf8字符集,就可以支持汉字了。因此在图2.14中,选择Manual Selected Default Character Set/Collation,在下拉框中选择需要的字符集,选择Next,会出现如图2.15所示的窗口。图2.15 作为Windows Service安装MySQL在图2.15中,选择Install As Windows Service选择并单击Next。这时会出现图2.16所示的窗口;此时读者必须输入由MySQL创建的用户口令。该用户的名称
26、为root。当然,读者也可以给出自己的新口令;但在本书中,我们假设读者使用root。读者必须输入该口令两次。为了安全起见,这些口令以星号的形式出现。然后单击Next。这时会显示如图2.17所示的窗口。图2.16 使用root作为口令图2.17 做好开始配置的准备完成MySQL的配置后,单击图2.17所示窗口中的Execute按钮。这时会出现以复选标记标记的配置进行的状态,如图2.18所示。这个过程只需几秒钟时间。当该进程成功完成后,会出现图2.19所示的窗口。图2.18 配置正在进行中图2.19 MySQL的配置完成选择图2.19中的Finish,则安装过程结束,且MySQL数据库服务器已被安
27、装。为检查其是否工作正常,可在操作系统的Control Panel(控制面板)中选择Administrator Tools(管理工具),然后选择Service(服务),如图2.20所示。图2.20 MySQL正在运行如果MySQL作为一个服务器出现在图2.20所示的列表中,则表明MySQL正在运行。下一个问题是读者是否使用数据库服务器,换言之,读者是否可成功登录。这很容易检查,方法是从任务栏启动程序MySQL Command Line Client,如图2.21所示。图2.21 启动MySQL Command Line Client程序MySQL Command Line Client程序会要
28、求用户输入口令root。输入该口令后,会出现如图2.22所示的窗口。在该窗口中,输入如下这条简单的SQL语句(不要遗漏分号)并按回车键:select version();图2.22 MySQL Command Line Client程序需要口令结果显示在图2.23中。如果一切工作正常,在图2.23中键入exit关闭窗口。这时表明已正确地安装了MySQL。图2.23 一切工作正常2.2 MySQL客户端工具2.2.1 客户端工具(Navicat 8)安装双击“navicat8_mysql_cs.exe”文件,出现如图2.24所示的窗口。图2.24 Navicat开始安装界面单击“下一步”按钮,进
29、入图2.25所示的窗口。图2.25 是否同意协议在图2.25中,选择“我同意”,可以继续安装,选择“我不同意”就不可以继续安装,这里选择“我同意”,点击“下一步”按钮,进入图2.26所示的窗口。图2.26 选择安装路径在图2.26中,选择安装路径。点击“下一步”按钮,进入图2.27所示的窗口。图2.27 选择开始目录在图2.27中,输入快捷方式文件夹名称。点击“下一步”按钮,进入图2.28所示的窗口。图2.28 创建快捷方式图标在图2.28中,选择“Create a desktop icon”,可以在桌面上自动创建快捷图标;选择“Create a Quick Launch icon”,在快速启
30、动中创建快捷图标,这里选择“Create a desktop icon”,点击“下一步”按钮,进入图2.29所示的窗口。图2.29 准备安装在图2.29中,选择“安装”,开始进行安装,进入图2.30所示的窗口。图2.30 安装进度在图2.30中经过几秒钟,安装就完成,出现图2.31所示的窗口。图2.31 安装完成在图2.31中,点击“完成”,安装完成。然后按照图2.32所示的窗口,进入客户端的连接界面如图2.33所示。图2.32 启动客户端程序 图2.33 客户端连接MySQL在图2.33界面上,点击“连接”,进入图2.34所示的窗口。图2.34 连接参数在图2.34中,输入“连接名”信息,输
31、入密码,如图2.35所示。图2.35 参数设置在图2.35中,点击“连接测试”按钮,测试一下数据库连接状态,如果成功就出现图2.36所示的界面,点击“确定”按钮,进入图2.37所示的客户端主界面。图2.36 测试成功图2.37客户端主界面在图2.37中,将鼠标移动到左边树结构的跟结点上,点击鼠标右键,选择“创建数据库”,如下图2.38所示的界面。图2.38 创建新数据库在图2.38中,点击“创建数据库”,进入下图2.39所示的界面。图2.39 设置数据库名称和字符集在图2.39中,输入数据库名称(imti),同时要选择数据库中的字符集(utf8),在整理下拉列表中选择utf8_general_
32、ci,这一点需要注意,一般与安装MySQL服务器端字符集相对应,否则汉字会出现乱码。在图2.39中,配置完成后,单击“确定”按钮,进入下如图2.40所示的界面。图2.40 数据库管理界面在图2.40中,点击左边的树结构中的数据库“imti”,然后在单击“imti”下的“表”,在“表”上点击鼠标右键,如下图2.41所示的界面。图2.41 创建表在图2.41中,选择“创建表”,在图2.42中创建表中的字段(包括字段名称、类型、长度、是否允许为空、主键等信息),这里需要注意的是,当字段类型为字符串类型时,要选择字符集与当初安装数据库的字符集一致(utf8),整理下拉列表中选择对应的信息,如图2.42
33、所示。图2.42 创建表结构创建表结构完成后,点击“保存”按钮,弹出保存窗口,如图2.43所示。图2.43 输入表名称在图2.43中,输入数据表名称之后,点击“确定”按钮,这样就创建表结构完成。关于怎样修改表结构、删除表结构,这里就不作详细介绍了。第3章 关系数据库标准语言SQLSQL是结构化查询语言Structured Query Language的缩写。查询是SQL语言的重要组成部分,但不是全部,SQL还包括数据定义、数据操纵和数据控制功能等部分。SQL已经成为关系数据库的标准数据语言。SQL(Structured Query Language)语言是1974年由Boyce和Chamber
34、lin提出的。19751979年,IBM公司的San Jose Research Laboratory研制了著名的关系数据库管理系统原型System R,并实现了这种语言。经过各公司的不断修改、扩充和完善,1987年,SQL语言最终成为关系数据库的标准语言。1986年美国颁布了SQL语言的美国标准,1987年国际标准化组织将其采纳为国际标准。SQL由于其使用方便、功能丰富、语言简洁易学等特点,很快得到推广和应用。SQL语言集数据定义(data definition)、数据操作(data manipulation)和数据控制(data control)功能于一体,充分体现了关系数据库语言的特点和
35、优点。本章目标:完成本章内容后我们将能够: 掌握SQL简史及功能特性 了解SQL语句的结构 掌握常量的使用 掌握SQL的数据类型 掌握表达式和运算符的使用 了解控制语句的分类和规则3.1 SQL概述SQL语言简单易学、风格统一,利用简单的几个英语单词的组合就可以完成所有的功能。它不仅包含数据查询功能,还包括插入、删除、更新和数据定义功能。SQL的用户可以是应用程序,也可以是终端用户。3.1.1 SQL和SQL标准简史SQL语言是IBM公司在20世纪70年代开发的关系数据库原型SYSTEM R的一部分。在20世纪70年代初,Dr.E.F.Codd首先提出了关系模型。70年代中期,IBM公司在研制
36、SYSTEM R关系数据库管理系统中研制了SQL语言。1986年美国国家标准协会和国际标准化组织发布的ANSI/ISO标准正式确认SQL的标准地位。1989年。美国ANSI采纳在ANSI X3.135-1989报告中定义的关系数据库管理系统的SQL标准语言,称为ANSI SQL 89。SQL语言主要包括数据定义、数据控制、数据操纵和数据查询等功能,其中最重要的是数据查询功能。SQL是一种非过程化语言。不过,大多数数据库系统对SQL进行了有针对性的扩展使它们成为了过程化语言。现在SQL广泛地被采用,它使全部用户,包括应用程序员、DBA管理员和终端用户受益匪浅,其优点主要有以下几点:非过程化语言:
37、非关系数据模型的数据操纵语言是面向过程的,若要完成某项请求,必须指定存取路径,而SQL是一个非过程化的语言,它让数据库系统负责决定怎样处理数据的查询问题。当进行数据操作时,只要指出要做什么,而无需指出怎么做,因此用户无需了解存取路径,存取路径的选择以及SQL语句的操作过程由系统自动完成,这样提高了数据的独立性。综合统一:非关系模型的数据语言分为模式定义语言和数据操纵语言,其缺点是,当要修改模式时,必须停止现有数据库的运行,转储数据,修改模式并编译后再重装数据库,因此很麻烦。SQL集数据定义、数据操纵和数据控制功能于一体,语言风格统一,可独立完成数据库生命周期的所有活动,包括定义关系模式、查询、
38、更新、建立数据库、数据库安全性控制等一系列操作的要求,这就为数据库应用系统开发提供了良好的环境。可移植性:由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS转到另一个,所以用SQL编写的程序都是可以移植的。两种使用方式:第一个方式,用户可以在终端键盘上键入SQL命令,对数据库进行操作,称之为自含式语言。第二种方式,将SQL语言嵌入到高级语言程序中,此为嵌入语言。在这两种不同的使用方式下,SQL语言的语法结构基本上是一致的,它以统一的语法结构提供两种不同的使用方法,为用户提供了极大的灵活性与方便性。语言简洁,易学易用:SQL语言功能极强,但由于设计巧妙,语
39、言十分简洁,而且SQL语言语法简单。完成数据定义、数据操纵、数据控制的核心功能只用了9个动词:CREATE、DROP、ALTER、SELECT、INSERT、UPDATE、DELETE、GRANT、REVOKE等,因此易于学习,容易使用。3.1.2 SQL的功能和特性SQL是应用程序与DBMS进行通信的一种语言和工具,将DBMS的组件联系在一起,可以为用户提供强大的功能,使用户可以方便地进行数据库的管理、数据的操作。通过SQL命令,程序员或数据库管理员(DBA)可以完成以下功能。数据定义:SQL能让用户自己定义所存储数据的结构,以及所存储数据各项之间的关系。数据更新:SQL为用户和应用程序提供
40、了添加、删除、修改等数据更新操作,使用户或应用程序可以向数据库中增加新的数据、删除旧的数据以及修改已有数据,有效地支持了数据库数据的更新。数据查询:SOL使用户或应用程序可以从数据库中按照自己的需要查询数据并组织使用它们,SQL不仅支持简单条件的检索操作,而且支持子查询、查询的嵌套、视图等复杂的查询。保护数据安全:SQL能对用户和应用程序访问数据、添加数据等操作的权限进行限制,以防止未经授权的访问,有效地保护数据库的安全。维持数据完整性:SQL使用户可以定义约束规则,定义的规则将存在于数据库内部,可以防止因数据库更新过程中的意外或系统错误而导致的数据库崩溃。修改数据库结构:SQL使用户或应用程
41、序可以修改数据库的结构。SQL是一种易于理解的语言,同时又是综合管理数据的工具。作为现在数据库市场普通应用的语言,它具有以下一些特性。确定的标准:美国国家标准协会(ANSI)和国际标准化组织(ISO)在1986年制订了SQL的标准,并在1989年、1992年与1999年三次进行了扩展,使得所有厂商都可以按照统一标准实现对SQL的支持,SQL语言在数据库厂家之间具有广泛的适用性。虽然在不同厂家之间SQL语言的实现方式存在某些差异,但是通常情况下无论选择何种数据库平台,SQL语言都保持相同。 软件提供商的独立性:所有主流的DBMS软件提供商均提供对SQL的支持,SQL标准的确立使不同的厂商可以独立
42、地进行DBMS软件的设计,查询、报表生成器等数据库工具能在许多不同类型的SQL数据库中使用。 各大公司的支持:SQL由IBM研究人员发明,然后得到了Microsoft公司、Oracle公司等数据库市场各大软件公司的支持,保证了SQL今后的发展。数据的多视化:可以通过使用SQL产生不同的报表和视图,将数据库中数据从用户所需的角度显示出来供用户使用,具有很大的灵活性。同时,SQL的视图功能也能提高数据库的安全性,并且能满足特定用户的需要。程序化数据库访问:SQL语句既能用于交互式访问也能用于程序化访问,这样应用程序就具有很大的灵活性,可以将这两种方式结合起来设计更好的程序。可移植性:基于SQL的数
43、据库产品能在不同计算机上运行,也支持在不同的操作系统上运行,还可以通过网络进行访问和管理。应用程序的支持:在数据库发展的初期,SQL支持基于主机的应用程序;随着计算机技术的发展,客户机/服务器体系结构出现,SQL使每个系统处于最佳工作状态;而Internet和WWW的迅速发展,建立了以SQL作为应用程序和数据库连接的标准;Java的出现也引入了SQL,SQL在最新的编程语言中有了有效的应用。可扩展性和对象:面向对象编程技术的兴起,使数据库市场也面临对象技术的引入,各个SQL数据库厂商正在扩展和提高SQL对对象的支持。3.1.3 SQL语句的结构所有的SQL语句均有自己的格式,每条SQL语句由一个谓词开始,谓词描述该语句要产生的动作。因此,SQL语句可以被划分为3个部分:SQL操作、目标和条件。SQL操作和目标