730 likes | 925 Views
Delphi 实用教程. 第 7 章 数据库基本概念和操作. 7.1 数据库基本概念 7.1.1 数据和数据库. 数据是可以被计算机接受和处理的符号。根据所表示的信息特征不同,数据有不同的类别,如数字、文字、表格、图形图像、声音等等。 数据库( Database ,简称 DB ),顾名思义,就是存放数据的仓库,其特点是数据按照数据模型组织,是高度结构化的,可供多个用户共享并且具有一定的安全性。 关系数据库是按照二维表结构方式组织的数据集合,二维表由行和列组成,表的行称为元组,列称为属性,对表的操作称为关系运算,主要的关系运算有投影、选择和连接等 。.
E N D
Delphi实用教程 第7章 数据库基本概念和操作 第7章 数据库基本概念和操作
7.1 数据库基本概念7.1.1 数据和数据库 • 数据是可以被计算机接受和处理的符号。根据所表示的信息特征不同,数据有不同的类别,如数字、文字、表格、图形图像、声音等等。 • 数据库(Database,简称DB),顾名思义,就是存放数据的仓库,其特点是数据按照数据模型组织,是高度结构化的,可供多个用户共享并且具有一定的安全性。 • 关系数据库是按照二维表结构方式组织的数据集合,二维表由行和列组成,表的行称为元组,列称为属性,对表的操作称为关系运算,主要的关系运算有投影、选择和连接等。 第7章 数据库基本概念和操作
7.1.2 数据库管理系统 • 数据库管理系统即DBMS(DataBase Management System),它是位于用户应用程序和操作系统之间的数据库管理系统软件,其主要功能是组织、存储和管理数据,高效地访问和维护数据,即提供数据定义、数据操纵、数据控制和数据维护等功能。 • 数据库系统即DBS(DataBase System),是指按照数据库方式存储和维护数据,并向应用程序提供数据访问接口的系统。它有四部分组成: • 数据库 • 计算机硬件(支持DB存储和访问) • 软件(包括操作系统、DBMS、及应用开发支撑软件) • 数据库管理员(DBA,DataBase Administrator) • 数据库系统通常分为桌面型数据库系统和网络型数据库系统两大类。 第7章 数据库基本概念和操作
7.1.3 关系数据库语言SQL • 结构化查询语言SQL(Structured Query Language)是用于关系数据库操作的标准语言 • SQL虽然名为查询语言,但实际上具有数据定义、查询、更新和控制等多种功能,它使用方便、功能丰富、简洁易学等特点。 第7章 数据库基本概念和操作
7.1.4 表和视图 1. 表(Table) ●表 是用来存储和操作数据的一种逻辑结构。表 由行和列组 成,因此也称之为二维表。 ●表结构 组成表的各列的名称及数据类型 ●记录表中的一行 ●字段 构成记录的每个数据项 ●关键字表中唯一标识一条记录的某一字段或字段组 合能 ●主键 一个表有多个候选关键字,则选定其中一个 为主关键字 ●外关键字某字段或字段组合不是本表的关键字,而是 另外表关键字 第7章 数据库基本概念和操作
7.1.4 表和视图 2. 视图(View) 视图是从一个或多个表(或视图)导出的表。它是一个虚表,即视图所对应的数据不进行实际存储,数据库中只存储视图的定义,对视图的数据进行操作时,系统根据视图的定义去操作与视图相关联的基本表。 视图有下列优点: (1)为用户集中数据,简化用户的数据查询和处理。 (2)屏蔽数据库的复杂性。 (3)简化用户权限的管理。 (4)便于数据共享。 第7章 数据库基本概念和操作
7.1.5 数据库设计 • 数据库应用程序开发的目标是建立一个满足用户需求的软件产品。在开发数据库应用程序之前必须仔细了解用户需求,对数据库进行认真的规划设计,这是决定开发是否成功的关键。通常数据库所包含的大量信息是以表的形式存储,数据库中有的表是独立的,有的表之间存在一定关系,设计数据库就是将大量信息经过分析和归纳,分别存储到多个表中,确定表之间的相互关系。 第7章 数据库基本概念和操作
7.1.6 常用数据库简介 • Paradox Paradox是Delphi 7自带的一个小型桌面数据库,它是Delphi 7开发小型的桌面型数据库系统应用程序一个比较好的选择。Paradox数据库、表的建立与维护,均通过Delphi 7提供的数据库设计工具Database Desktop进行。 • Access Microsoft Access是Office套件中提供的一个桌面型数据库,它是在Windows环境下开发的一种全新的关系型数据库系统,具有某些大型数据库的基本功能,如支持事务处理、具有用户组和多用户管理功能、具有一定的安全性和完整性保护功能等。 • 大型数据库 常用的大型数据库有Interbase、Oracle、Sybase、Infomix、 DB2和Microsoft SQL Server等。 第7章 数据库基本概念和操作
7.2 数据库、表的创建与维护 本节使用的几个表的结构: 第7章 数据库基本概念和操作
7.2 数据库、表的创建与维护 第7章 数据库基本概念和操作
7.2.1 Paradox数据库、表操作 • BDE中创建数据库 • BDE是通过别名(alais)来管理数据库的,所谓别名是为数 据库指定的名称,通过Delphi 7所提供的BDE Administrator 可对别名所对应的数据库属性及驱动程序参数进行配置,配 置的参数将被保存在名为IDAPI32.CFG的配置文件中。BDE 使用别名对数据库进行管理的优点是可以使得应用程序在开 发和运行时都不必涉及所使用的后台数据库的类型。 • 如在BDE中创建别名为Student数据库,操作方法如下: (1) 建立与Student数据库对应的文件夹,设该文件夹名为d:\paradoxDB。 (2) BDE Administrator中配置Paradox数据库,使之支持中文。 第7章 数据库基本概念和操作
7.2.1 Paradox数据库、表操作 (3) 创建名为Student的数据库,方法是:选择BDE Administrator窗 口左边的Database选项卡,单击鼠标右键,在弹出的快捷 菜单上选择New,如图。再在所弹出的选择数据库驱动程序对 话框中选择STANDARD,单击OK。 第7章 数据库基本概念和操作
7.2.1 Paradox数据库、表操作 (4) 然后为所创建的数据库命名,并配置Student数据库的属 性参数, 如图。 第7章 数据库基本概念和操作
7.2.1 Paradox数据库、表操作 可设置的参数有: lDEFAULT DRIVER:默认的数据库驱动程序。 lENABLE BCD:是否支持对数字进行BCD编码。 lPATH:设置数据库对应的路径。本例设置路径为 d:\paradoxDB。 (5) 保存所创建的数据库及配置信息,选择BDE Administrator主菜单下的 ObjectApply命令项,将弹出保存数据库确认对话框,单击OK即可 保存。 第7章 数据库基本概念和操作
7.2.1 Paradox数据库、表操作 2. 创建表 在Database Desktop中创建表students,操作方法如下: (1) 运行Database Desktop,依次选择开始程序Borland Delphi 7Database Desktop,其界面如图。 第7章 数据库基本概念和操作
7.2.1 Paradox数据库、表操作 (2) 新建表,选择Database Desktop主菜单的 FileNewTable命令项,将弹出选择新建表类型的对 话框,选择PARADOX 7,单击OK。 (3) 上一步结束后,将出现创建表的窗口,该窗口分为左右 两部分,左边是字段信息输入区,共有5列,第一列是 字段序号,由系统自动生成, 其余四列分别为: lField Name(字段名):可输入最多25个字 符作为 字段名,设置Paradox支持中文后,可使用中文字 段名。 lType(数据类型):可直接输入数据类型的缩写字 母(如字符串类型输入A、数值类型输入N等等), 也可单击鼠标右键打开弹出式菜单选择数据类型。 lSize(长度):设定字段的长度。 lKey(是否为关键字):若某字段为关键字,则该 列显示*号。 第7章 数据库基本概念和操作
7.2.1 Paradox数据库、表操作 创建表的界面 字段类型 创建表的窗口 第7章 数据库基本概念和操作
7.2.1 Paradox数据库、表操作 (4) 保存新建的表,单击创建表窗口的Save As按钮,将出现“Save Table As”对话框,在其中选择表的保存路径、保存的数据库类型和表所属的数据库名,并输入表名。 第7章 数据库基本概念和操作
7.2.1 Paradox数据库、表操作 3. 修改表结构 (1)打开表,在Database Desktop中选择主菜单FileOpen ->Table…命令项,或单击工具栏上的(Open Table)按钮, 将出现“Open Table”对话框,选择需打开的数据库、表,单 击打开按钮。 第7章 数据库基本概念和操作
7.2.1 Paradox数据库、表操作 (2)在所出现的如图所示的表结构编辑窗口中选择主菜单下的 Table Restructure…命令项,或单击工具栏上的(Restructure) 按钮,将打开一个新窗口,在其中可进行修改字段各属性的操作。 工具栏上的(Restructure)按钮 第7章 数据库基本概念和操作
7.2.1 Paradox数据库、表操作 此时出现的修改表结构的窗口 第7章 数据库基本概念和操作
7.2.1 Paradox数据库、表操作 4. 向表中添加记录 向students表中添加一批记录,操作方法如下: (1)打开表,方法与修改表结构的第一步操作相同。 (2)选择主菜单的TableEdit Data命令项,进入表编辑状 态,此时就可以进行数据添加操作了。 (3)逐行输入数据。输入数据时,要注意几点:一是关键 字字段值要唯一;二是输入的数据要与字段的数据类 型相符;三是字段长度的限制;四是英文字符、数字 等与汉字所占字节数的区别。 (4)保存数据,输入完成后,选择主菜单的FileClose即 可保存表数据。 第7章 数据库基本概念和操作
7.2.1 Paradox数据库、表操作 向表中添加记录的界面窗口: Edit Data按钮 记录定位按钮 添加的记录 第7章 数据库基本概念和操作
7.2.1 Paradox数据库、表操作 说明: BDE Administrator的主要功能是以别名的方式管理数据库,由于Paradox本身并没有数据库概念,故要将相关的几个表组织在一起形成“数据库”,需借助于BDE Administrator的数据库管理功能。BDE Administrator更主要的功能是通过别名配置的方式对数据库进行引用和管理。 第7章 数据库基本概念和操作
7.2.2 SQL Server 2000数据库、表操作 • 在企业管理器中进行数据库、表操作 ●SQL Server 2000 企业管理器是Microsoft管理控制台的管理单 元组件。选择开始程序Microsof SQLServer企业管理器, 即可启动SQL Server 2000 企业管理器,其主界面如图所示。 第7章 数据库基本概念和操作
7.2.2 SQL Server 2000数据库、表操作 ●SQL Server企业管理器共享一个用于Web管理的MMC用户界面子集,它通过易于使用的图形用户界面,将所有SQL Server对象展现在一个分层结构的控制台树中,按照“数据库服务器组”“数据库服务器”“数据库”“数据库对象(表、视图等)”的层次结构组织对象并进行管理的。利用企业管理器可对数据库服务器、数据库及数据库对象(表、视图等)进行有效地管理。 第7章 数据库基本概念和操作
7.2.2 SQL Server 2000数据库、表操作 (1)创建数据库 在SQL Server 2000中,能够创建数据库的用户必须是系统 管 理员,或是被授权使用CREATE DATABASE语句的用户。 创 建数据库时,必须要确定数据库名、所有者(即创建数据 库的用户)、数据库大小(最初的大小、最大的大小、是否 允许增长及增长方式)和存储数据库的文件。 下面说明使用企业管理器创建数据库的过程。 (1)在“SQL Server Enterprise Manager”窗口中展 开Microsoft SQL Servers和SQL Server组,选择 SQL Server服务器。在选择的SQL Server服务器上点击鼠 标右键,在所出现快捷菜单上选择“新建”“数据库…”。 (2)上一步操作结束后,出现下图所示的“数据库属性” 对话框,在“常规”选项卡的“名称”文本框中输入欲创建的 数据库名。 第7章 数据库基本概念和操作
7.2.2 SQL Server 2000数据库、表操作 输入数据库名: 第7章 数据库基本概念和操作
7.2.2 SQL Server 2000数据库、表操作 (3)选择“数据文件”选项卡,在文件名为“Student_DATA”这一行 的 “初始大小”列将系统缺省大小1改为5,设置是否允许数据库增 长、增长方式以及最大文件大小,见图标注。 (4)在数据库属性对话框中选择“事务日志”选项卡,与第3步类 似, 设置日志文件的初始大小、是否增长、增长方式及最大大小。 (5)单击“确定”按钮,数据库就创建完成了。 第7章 数据库基本概念和操作
7.2.2 SQL Server 2000数据库、表操作 2)修改数据库 l 增加或删除数据文件 l 改变数据文件的大小和增长方式 l 改变日志文件的大小和增长方式 l 增加或删除日志文件 l 增加或删除文件组 在进行任何数据库修改操作以前,都要在“企业管理器”中选择需要进行修改的数据库,在该数据库名上点击鼠标右键,出现快捷菜单,选择“属性”,将弹出数据库属性对话框,如下图所示。该对话框包括六个选项卡,通过“数据文件”和“事务日志”两个选项卡可以修改这两类文件的属性,还可增加或删除文件。 第7章 数据库基本概念和操作
7.2.2 SQL Server 2000数据库、表操作 增加或删除文件组选项卡 增加或删除数据文件改变数据文件的大小和增长方式选项卡 增加或删除日志文件改变日志文件的大小和增长方式选项卡 数据库属性对话框 第7章 数据库基本概念和操作
7.2.2 SQL Server 2000数据库、表操作 3)创建表 通过“企业管理器”创建表操作步骤: (1)启动SQL Server 企业管理器,用鼠标右键单击选择数 据库Student,在所出现的快捷菜单上选择“新建 (N)”“表(T)…”,将弹出如图编辑窗口。 第7章 数据库基本概念和操作
7.2.2 SQL Server 2000数据库、表操作 (2)在编辑窗口中分别输入或选择各列的名称、数据类型、是否 允许为空值等属性,在studentid列上单击鼠标右键,选择 “设置主键”菜单项,将studentid列设置为主键。 (3)在表的各列属性均编辑完成后,单击(保存)按钮,在所出现 的“选择表名”对话框中输入students,单击“确定”, students 表就创建完成。 第7章 数据库基本概念和操作
7.2.2 SQL Server 2000数据库、表操作 4)表记录的添加、修改和删除 在创建了一个表之后,使用过程中可能对表结构、约束或其它 列的属性需要进行修改。对一个已存在的表可以进行的修改操 作包括: l更改表名 l增加列 l删除列 l修改已有列的属性(列名、数据类型、是否为空值) 第7章 数据库基本概念和操作
7.2.2 SQL Server 2000数据库、表操作 向表中添加记录操作窗口 第7章 数据库基本概念和操作
7.2.2 SQL Server 2000数据库、表操作 2. 通过T-SQL命令进行数据库、表操作 1)使用CREATE DATABASE语句创建数据库 ▲语法: CREATE DATABASE database_name // 指定数据库名 [ ON 子句 ] // 指定数据库文件和文件组属性 [ LOG ON 子句 ] // 指定日志文件属性 其中: ldatabase_name:是所创建的数据库逻辑名称,其命名须 遵循SQL Server 2000的命名规则,最大长度为128个字符。 lON子句:指出了数据库的数据文件和文件组,其格式为: ON [PRIMARY][<filespec>[,…n]] [,<filegroup>[,…n]] 其中PRIMARY用来指定主文件。若不指定主文件,则 诸数据文件中的第一个文件将成为主文件。 第7章 数据库基本概念和操作
7.2.2 SQL Server 2000数据库、表操作 数据文件的描述主要给出文件的逻辑名、存储路径、大 小及增长特性(这些特征可以与界面创建数据库时对数 据库特征的设置相联系)。其语法定义为: <filespec>::= ( NAME = ‘逻辑文件名’ , FILENAME = ‘操作系统文件名’ [,SIZE = size] [,MAXSIZE = {max_size | UNLIMITED }] [,FILEGROWTH = growth_increament] ) <filegroup>定义文件组的属性,语法格式为: <filegroup>::=FILEGROUP 文件组名 <filespec>[,…n] 文件组中各文件的描述和数据文件描述相同。 lLOG ON子句:用于指定数据库事务日志文件的属性, 其定义格式与数据文件的格式相同。 第7章 数据库基本概念和操作
7.2.2 SQL Server 2000数据库、表操作 【例】创建Student的数据库 CREATE DATABASE Student ON ( NAME = 'Student_data', FILENAME = 'e:\sql\data\MSSQL\data\Student.mdf') GO 分析: 本例创建一个名为Student的数据库,数据库只包含一个主数据 文件和 一个主日志文件,它们均采用系统默认存储路径和文件 名,大小分别为 model数据库中主数据文件和日志文件的大小。 第7章 数据库基本概念和操作
7.2.2 SQL Server 2000数据库、表操作 2)使用ALTER DATABASE修改数据库 ▲语法: ALTER DATABASE database_name { ADD FILE <filespec>[,…n][ TO FILEGROUP filegroup_name ] // 在文件组中增加数据文件 | ADD LOG FILE <filespec>[,…n] // 增加日志文件 | REMOVE FILE logical_file_name // 删除数据文件 | ADD FILEGROUP filegroup_name // 增加文件组 | REMOVE FILEGROUP filegroup_name // 删除文件组 | MODIFY FILE <filespec> // 更改文件属性 | MODIFY NAME = new_dbname // 数据库更名 } 第7章 数据库基本概念和操作
7.2.2 SQL Server 2000数据库、表操作 下面说明主要关键字和子句的构成和作用: ldatabase_name:数据库名 lADD FILE子句:向数据库添加数据文件,文件的属性由<filespec> 给出,关键字TO FILEGROUP指出了添加的数据文件所在的文件组 (filegroup_name),缺省则为主文件组。 lADD LOG FILE子句:向数据库添加日志文件,日志文件的属性由 <filespec>给出。 lREMOVE FILE子句:从数据库中删除数据文件,被删除的数据文件由 其中的参数logical_file_name给出。当删除一个数据文件时,逻辑文件 与物理文件全部被删除。 lADD FILEGROUP子句:向数据库中添加文件组,被添加的文件组名由 参数filegroup_name给出。 lREMOVE FILEGROUP子句:删除文件组,被删除的文件组名由参数 filegroup_name给出。 lMODIFY FILE子句:修改数据文件的属性,被修改文件的逻辑名由 <filespec>的NAME参数给出,可以修改的文件属性包括: FILENAME、 SIZE、MAXSIZE和FILEGROWTH,一次只能修改其中的一个属性。 lMODIFY NAME子句:更改数据库名,新的数据库名由参数 new_dbname给出。
7.2.2 SQL Server 2000数据库、表操作 【例】设已经创建了数据库Student, • 它只有一个主数据文件,其逻辑文件名为Student_Data,物理文件名e:\sql\data\MSSQL\data\Student_Data.mdf,大小为5MB,最大大小为50MB,增长方式为按10%增长; • 有一个日志文件,逻辑名为Student_LOG,物理名为e:\sql\data\MSSQL\data\Student_Log.ldf,大小为2MB,最大大小为5MB,每次增长1MB。修改数据库Student现有数据文件的属性,将主数据文件的最大大小改为不限制,增长方式改为按每次5MB增长。 分析: 因为需修改主数据文件的两个属性,而使用ALTER DATABASE语句 一次只能修改数据文件的一个属性,所以需要执行两次 ALTER DATABASE命令。 第7章 数据库基本概念和操作
7.2.2 SQL Server 2000数据库、表操作 ALTER DATABASE Student MODIFY FILE (NAME = Student_Data,MAXSIZE = UNLIMITED) GO // 这是第一次,将主数据文件的最大大小改为不限制。 ALTER DATABASE Student MODIFY FILE (NAME = Student_Data,FILEGROWTH = 5MB) GO // 这是第二次,将主数据文件的增长方式改为按5MB增长。 第7章 数据库基本概念和操作
7.2.2 SQL Server 2000数据库、表操作 删除数据库的T-SQL命令是DROP。 ▲语法: DROP DATABASE database_name[,…n] 其中database_name是要删除的数据库名。 第7章 数据库基本概念和操作
7.2.2 SQL Server 2000数据库、表操作 3)使用CAREATE TABLE命令创建表 ▲语法: CREATE TABLE table_name ( {column_name datatype |identity | NOT NULL | NULL}) 其中: ●table_name为表名,必须遵守T-SQL标识符命名规则。 ● column_name为列名 ● datatype为列的数据类型 ● identity指出该列为标识符列, ● NULL表示列可取空值, ● NOT NULL表示列不可取空值。 第7章 数据库基本概念和操作
7.2.2 SQL Server 2000数据库、表操作 【例】在Student数据库中创建表students。 USE Student CREATE TABLE students ( studentid char(6) NOT NULL, name char(20) NOT NULL, sex bit NOT NULL, birthday smalldatetime NOT NULL, departmentid int NOT NULL, totalscore tinyint NULL, ) GO 分析: 首先使用USE Student命令将数据库Student指定为当前数据 库,然后使用CREATE TABLE语句在数据库Student中创建表 students。 第7章 数据库基本概念和操作
7.2.2 SQL Server 2000数据库、表操作 4)使用ALTER TABLE修改表结构 ▲语法: ALTER TABLE table_name {[ALTER COLUMN column_name // 修改已有列的属性 { new_data_type [ (precision,[,scale])] [NULL | NOT NULL] ]} | ADD {[<colume_definition>]}[,…n]// 增加新列 | DROP {[CONSTRAINT] constraint_name| COLUMN column}[,…n] // 删除列 第7章 数据库基本概念和操作
7.2.2 SQL Server 2000数据库、表操作 其中: ltable_name为表名。 lALTER COLUMN子句:用于说明修改表中指定列的属性,要修改的列名由column_name给出,new_data_type为被修改列的新的数据类型。 lADD子句:向表中增加新列,新列的定义方法与CREATE TABLE语句中定义列的方法相同。 lDROP子句:从表中删除列或约束,COLUMN参数中指定的是被删除的列名,constraint_name是被删除的约束名。 第7章 数据库基本概念和操作
7.2.2 SQL Server 2000数据库、表操作 【例】修改表students中已有列的属性:将name列长度由原来的 20改为10;将birthday列的数据类型由原来的smalldatetime改 为datetime。 USE Student ALTER TABLE students ALTER COLUMN name char(10) ALTER COLUMN birthday datetime GO 另外,删除表的T-SQL命令是DROP TABLE。 ▲语法: DROP TABLE table_name 其中table_name是要被删除的表名。 第7章 数据库基本概念和操作
7.2.2 SQL Server 2000数据库、表操作 5)表数据添加 ▲语法: INSERT table_name VALUES ( constant1,constant2,…) 该命令的功能是向由table_name指定的表中加入由 VALUES指定各列值的行。 例如: 要向Student数据库的表students中插入如下的一行: 990206 罗亮0 "1/30/1980" 1 150 可以使用以下的T-SQL语句: USE Student INSERT INTO students VALUES('990206','罗亮', 0 ,'1/30/1980', 1, 150) GO 第7章 数据库基本概念和操作
7.2.2 SQL Server 2000数据库、表操作 6)表数据删除 ▲语法: DELETE [FROM] { table_name | view_name } [WHERE <search_condition>] 该语句的功能为从table_name指定的表或view_name所指 定的视图中删除满足<search_condition>条件的行,若省 略该条件,表示删除所有行。 第7章 数据库基本概念和操作