PHP第9章MySQL数据库管理_第1页
PHP第9章MySQL数据库管理_第2页
PHP第9章MySQL数据库管理_第3页
PHP第9章MySQL数据库管理_第4页
PHP第9章MySQL数据库管理_第5页
已阅读5页,还剩130页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第9章章 本章知识点本章知识点9.1 9.1 数据库技术基础数据库技术基础 9.2 MySQL9.2 MySQL数据库管理工具数据库管理工具 9.3 9.3 创建和维护数据库创建和维护数据库9.4 9.4 表管理表管理 9.5 9.5 管理和查询数据管理和查询数据 9.6 9.6 视图管理视图管理 9.1 数据库技术基础数据库技术基础 9.1.1 9.1.1 数据库的概念数据库的概念 9.1.2 9.1.2 关系型数据库管理系统(关系型数据库管理系统(RDBMSRDBMS) 9.1.3 9.1.3 数据模型数据模型9.1.1 数据库的概念数据库的概念p1 1人工管理阶段人工管理阶段 p2 2

2、文件系统阶段文件系统阶段 p3 3数据库系统阶段数据库系统阶段 1人工管理阶段人工管理阶段 p早期的数据处理都是通过手工进行的,那时的计算机多用于科学计算。早期的数据处理都是通过手工进行的,那时的计算机多用于科学计算。每个应用程序根据需求组织数据,数据与程序一一对应,一个程序的每个应用程序根据需求组织数据,数据与程序一一对应,一个程序的数据一般不能被其他程序使用。如图数据一般不能被其他程序使用。如图9-19-1所示。所示。p此阶段没有专门的数据管理软件,程序员既要考虑数据的逻辑结构,此阶段没有专门的数据管理软件,程序员既要考虑数据的逻辑结构,还要设计存储数据的物理结构及存取方法等。还要设计存储

3、数据的物理结构及存取方法等。 2文件系统阶段文件系统阶段 p随着操作系统的诞生,文件系统也作为操作系统的一随着操作系统的诞生,文件系统也作为操作系统的一个子系统应运而生了。应用程序可以通过文件系统将个子系统应运而生了。应用程序可以通过文件系统将的数据组织成一个文件。文件系统提供对文件的访问的数据组织成一个文件。文件系统提供对文件的访问和管理接口。文件系统阶段程和数据的关系如图和管理接口。文件系统阶段程和数据的关系如图9-29-2所示。这种方式多用于早期的单机信息管理系统。所示。这种方式多用于早期的单机信息管理系统。 通过文件系统管理数据也存在一些不足,主要如下通过文件系统管理数据也存在一些不足

4、,主要如下 p 文件系统虽然提供了统一的存取方法来操作数据,文件系统虽然提供了统一的存取方法来操作数据,但保存数据的格式和结构却由应用程序自定义。从文但保存数据的格式和结构却由应用程序自定义。从文件中读取数据后,需要自行解析数据。件中读取数据后,需要自行解析数据。p 数据量比较大时检索数据的效率通常很低。数据量比较大时检索数据的效率通常很低。p 数据冗余度大,相同的数据集合中不同应用程序数据冗余度大,相同的数据集合中不同应用程序中使用,经常需要重复定义、重复存储。例如,人事中使用,经常需要重复定义、重复存储。例如,人事部的档案管理系统和财务部的工资管理系统用到的很部的档案管理系统和财务部的工资

5、管理系统用到的很多数据是重复的。它们各自使用自己的文件来存储数多数据是重复的。它们各自使用自己的文件来存储数据。据。p 数据不一致性,由于数据重复存储、单独管理,数据不一致性,由于数据重复存储、单独管理,给数据维护带来难度,容易造成数据不一致。给数据维护带来难度,容易造成数据不一致。3数据库系统阶段数据库系统阶段 p数据库系统是由计算机软件和硬件资源组成的系统,它实现了有组织地、动数据库系统是由计算机软件和硬件资源组成的系统,它实现了有组织地、动态地存储大量关联数据,便于多用户访问。数据库系统与文件系统的重要区态地存储大量关联数据,便于多用户访问。数据库系统与文件系统的重要区别是数据的充分共享

6、、交叉访问,应用程序的高度独立性。文件系统阶段程别是数据的充分共享、交叉访问,应用程序的高度独立性。文件系统阶段程和数据的关系如图和数据的关系如图9-39-3所示。所示。p数据库对数据的存储是按照同一结构进行的,不同应用程序都可以直接操作数据库对数据的存储是按照同一结构进行的,不同应用程序都可以直接操作这些数据。数据库系统对数据的完整性、唯一性和安全性都提供有效的管理这些数据。数据库系统对数据的完整性、唯一性和安全性都提供有效的管理手段。数据库系统还提供管理和控制数据的简单操作命令。手段。数据库系统还提供管理和控制数据的简单操作命令。9.1.2 关系型数据库管理系统(关系型数据库管理系统(RD

7、BMS) p数据库管理系统(数据库管理系统(DBMSDBMS)是用来管理数据的计算)是用来管理数据的计算机软件,它能使用户方便地定义和操纵数据、维机软件,它能使用户方便地定义和操纵数据、维护数据的安全性和完整性,以及进行多用户下的护数据的安全性和完整性,以及进行多用户下的并发控制和恢复数据库。并发控制和恢复数据库。p关系型数据库管理系统(关系型数据库管理系统(RDBMSRDBMS)是应用最广泛)是应用最广泛的一种数据库管理系统,关系型数据库管理系统的一种数据库管理系统,关系型数据库管理系统以表、字段和记录等结构来组织数据。表用来保以表、字段和记录等结构来组织数据。表用来保存数据,每个表由一组字

8、段来定义其结构,记录存数据,每个表由一组字段来定义其结构,记录则是表中的一条数据。本章介绍的则是表中的一条数据。本章介绍的MySQLMySQL就是一就是一款常用的关系型数据库管理系统。款常用的关系型数据库管理系统。9.1.3 数据模型数据模型 现实世界 信息世界:概念模型 机器世界:DBMS 支持的数据模型 认识、抽象 转换 实体实体-联系(联系(Entity-Relationship)模)模型型 p实体实体- -联系(联系(Entity-RelationshipEntity-Relationship)模型(简称)模型(简称E-RE-R模型)使用模型)使用E-E-R R图来描述现实世界的概念模

9、型,图来描述现实世界的概念模型,E-RE-R图提供了表示实体、属性和联图提供了表示实体、属性和联系的方法,具体如下。系的方法,具体如下。p 实体型:用矩形表示,在矩形内写明实体名。图实体型:用矩形表示,在矩形内写明实体名。图9-59-5表示为商品表示为商品实体和顾客实体。实体和顾客实体。p 属性:用椭圆形表示,并用无向边将其与实体连接起来。例如属性:用椭圆形表示,并用无向边将其与实体连接起来。例如商品实体及其属性用商品实体及其属性用E-RE-R图表示如图图表示如图9-69-6所示。所示。联系联系 p 联系:用菱形表示,在菱形框内写明联系的名称,并用无向边将联系:用菱形表示,在菱形框内写明联系的

10、名称,并用无向边将其与有关的实体连接起来,同时在无向边旁标上联系的类型。需要注其与有关的实体连接起来,同时在无向边旁标上联系的类型。需要注意的是,联系本身也是一种实体型,也可以有属性。如果一个联系具意的是,联系本身也是一种实体型,也可以有属性。如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来。例如,图有属性,则这些属性也要用无向边与该联系连接起来。例如,图9-79-7表示了顾客实体和商品实体之间的联系表示了顾客实体和商品实体之间的联系“购买购买”,每个顾客购买某一,每个顾客购买某一个商品会产生一个购买数量,因此,个商品会产生一个购买数量,因此,“购买购买”联系有一个属性联系有一个属

11、性“数数量量”,顾客和商品实体之间是多对多的联系。,顾客和商品实体之间是多对多的联系。9.1.4 SQL语言语言 p SQLSQL语言(语言(Structured Query LanguageStructured Query Language,结构化查询语言)是目,结构化查询语言)是目前使用最为广泛的关系数据库语言,它简单易学,功能丰富,深前使用最为广泛的关系数据库语言,它简单易学,功能丰富,深受广大用户的欢迎,是用户与数据库沟通交流的重要渠道之一。受广大用户的欢迎,是用户与数据库沟通交流的重要渠道之一。SQLSQL是是2020世纪世纪7070年代由年代由IBMIBM公司开发出来的;公司开发出

12、来的;19761976年,年,SQLSQL开始在商开始在商品化关系数据库系统中应用;品化关系数据库系统中应用;19861986年,美国国家标准化组织年,美国国家标准化组织(American National Standard InstitudeAmerican National Standard Institude,ANSIANSI)确认)确认SQLSQL为关为关系数据库语言的美国标准,系数据库语言的美国标准,19871987年该标准被年该标准被ISOISO采纳为国际标准,采纳为国际标准,称为称为SQL-86SQL-86;19891989年,年,ANSIANSI发布了发布了SQL-89SQL-

13、89标准,后来被标准,后来被ISOISO采纳为采纳为国际标准;国际标准;19921992年,年,ANSI/ISOANSI/ISO发布了发布了SQL-92SQL-92标准,习惯称为标准,习惯称为SQL 2SQL 2;19991999年,年,ANSI/ISOANSI/ISO发布了发布了SQL-99SQL-99标准,习惯称为标准,习惯称为SQL 3SQL 3。ANSI/ISOANSI/ISO于于20032003年年1212月又共同推出了月又共同推出了SQL 2003SQL 2003标准。尽管标准。尽管ANSIANSI和和ISOISO针对针对SQLSQL制定了一些标准,但各家厂商仍然针对其各自的数据库

14、产品进制定了一些标准,但各家厂商仍然针对其各自的数据库产品进行不同程度的扩充或修改。基本上,使用标准的行不同程度的扩充或修改。基本上,使用标准的SQLSQL语句可以访问语句可以访问各种关系数据库,因此,各种关系数据库,因此,SQLSQL语言是数据库领域的语言是数据库领域的“世界语世界语”。在。在本书介绍的本书介绍的WebWeb应用程序中,都是使用应用程序中,都是使用SQLSQL语句访问数据库的。语句访问数据库的。SQL语言可以下面几种类型语言可以下面几种类型 数据定义语言(数据定义语言(Data Definition LanguageData Definition Language,DDLDD

15、L),),包含用来定义和管理数据库及各种数据库对象的语句,包含用来定义和管理数据库及各种数据库对象的语句,如对数据库对象的创建、修改和删除语句,这些语句如对数据库对象的创建、修改和删除语句,这些语句包括包括CREATECREATE、ALTERALTER、DROPDROP等;等; 数据操纵语言(数据操纵语言(Data Manipulation LanguageData Manipulation Language,DMLDML),包含用来查询、添加、修改和删除数据库中数),包含用来查询、添加、修改和删除数据库中数据的语句,这些语句包括据的语句,这些语句包括SELECTSELECT、INSERTIN

16、SERT、UPDATEUPDATE、DELETEDELETE等;等; 数据控制语言(数据控制语言(Data Control LanguageData Control Language,DCLDCL),包),包含用来设置、更改数据库用户或角色权限的语句,这含用来设置、更改数据库用户或角色权限的语句,这些语句包括些语句包括GRANTGRANT、DENYDENY、REVOKEREVOKE等;等;9.2 MySQL数据库管理工具数据库管理工具 p本节介绍两种常用的本节介绍两种常用的MySQLMySQL数据库管理工数据库管理工具,一种是具,一种是MySQLMySQL提供的命令行管理工具,提供的命令行管理

17、工具,另一种是第另一种是第3 3方的图形界面管理工具方的图形界面管理工具phpMyAdminphpMyAdmin。9.2.1 MySQL命令行工具命令行工具 p 参照第参照第2 2章安装章安装MySQLMySQL后,在后,在“开始开始”菜单中依次选择菜单中依次选择“所有程所有程序序”“MySQL”“MySQLMySQL”“MySQL Server 5.5” “MySQL 5.5 Server 5.5” “MySQL 5.5 Command Line Client”Command Line Client”,可以打开,可以打开MySQLMySQL命令行工具。首先要求命令行工具。首先要求用户输入管理

18、员用户用户输入管理员用户rootroot的密码,输入完成后,按下回车键。的密码,输入完成后,按下回车键。p mysqlmysql 是是MySQLMySQL命令行工具的提示符,可以在它的后面命令行工具的提示符,可以在它的后面输入输入MySQLMySQL命令。命令。 通过命令通过命令打开打开MySQL命令行工具命令行工具 p 也可以在也可以在WindowsWindows的命令窗口中输入如下格式的命令打的命令窗口中输入如下格式的命令打开开MySQLMySQL命令行工具。命令行工具。mysql -h host -u user -pp mysqlmysql是扩展名为是扩展名为exeexe的可执行文件,保

19、存在的可执行文件,保存在mysqlbinbin目录下。可以将目录下。可以将mysqlbinbin添添加到系统的加到系统的pathpath环境变量中。环境变量中。p 在上面的命令中,在上面的命令中,-h-h后面后面MySQLMySQL数据库服务器,数据库服务器,-u-u后面后面用户名,用户名,-p-p用于指定用户名对应的密码。如果用于指定用户名对应的密码。如果-p-p后面后面没有输入密码,系统会提示用户输入。例如,要连接没有输入密码,系统会提示用户输入。例如,要连接本地的本地的MySQLMySQL数据库,可以使用下面的命令:数据库,可以使用下面的命令:mysql -h localhost -u

20、root -p通过命令运行通过命令运行MySQL数据库管理工具数据库管理工具 运行结果运行结果【例【例9-1】 p 练习在练习在MySQL 5.5 Command Line ClientMySQL 5.5 Command Line Client中输入一个简单的中输入一个简单的MySQLMySQL语句,查看语句,查看MySQLMySQL数据库的版本信息,代码如下:数据库的版本信息,代码如下:SELECT VERSION();p SELECTSELECT是从数据库中查询数据的标准是从数据库中查询数据的标准SQLSQL语句,本书将在语句,本书将在.4小小节对其进行详细的介绍。节对其进

21、行详细的介绍。VERSION()VERSION()是是MySQLMySQL函数,用于返回函数,用于返回MySQLMySQL数据库的版本信息。每行命令后面需要输入分号(数据库的版本信息。每行命令后面需要输入分号(; ;)后才能被执)后才能被执行。输入完成后,按下回车键,执行结果如下:行。输入完成后,按下回车键,执行结果如下:+-+| VERSION() |+-+| 5.5.25a |+-+1 row in set (0.02 sec)USE命令命令 p使用使用USEUSE命令切换命令切换SQLSQL语句作用的数据库,语句作用的数据库,语法如下:语法如下:USE 数据库名数据库名p执行执行USEU

22、SE语句后,在执行其他语句后,在执行其他SQLSQL语句默语句默认都作用于指定的数据库。认都作用于指定的数据库。1mysqlshow命令命令 p用于显示数据库的结构,其语法结构如下:用于显示数据库的结构,其语法结构如下:mysqlshow OPTIONS database table column参数说明如下:参数说明如下: OPTIONS OPTIONS,指定命令选项。常用命令选项的,指定命令选项。常用命令选项的具体情况如表具体情况如表9-19-1所示。所示。 database database,指定要查看的数据库名。,指定要查看的数据库名。 table table,指定要查看的表名。,指定

23、要查看的表名。 column column,指定要查看的列名。,指定要查看的列名。mysqlshow命令的常用命令选项命令的常用命令选项 命令选项命令选项具体描述具体描述-?, -help显示帮助信息,然后退出显示帮助信息,然后退出-count显示每个表中行的数量显示每个表中行的数量-h, -host=name指定连接的指定连接的MySQL服务器名称或地址服务器名称或地址-i, -status显示每个表的更多信息显示每个表的更多信息-u, -user=name指定连接到指定连接到MySQL数据库的用户名数据库的用户名-p, -password=name指定用户名对应的密码指定用户名对应的密码-

24、V, -version显示版本信息显示版本信息【例【例9-2】 p下面是显示下面是显示MySQLMySQL数据库版本信息的命令:数据库版本信息的命令:mysqlshow -Vp运行结果如下:运行结果如下:mysqlshow Ver 9.10 Distrib 5.5.25a, for Win32 (x86)p上面的命令也可以替换为:上面的命令也可以替换为:mysqlshow -version【例【例9-3】 p 以使用下面的命令查看本地以使用下面的命令查看本地MySQLMySQL实例中包含的数据库实例中包含的数据库信息。信息。mysqlshow -h localhost -u root -pas

25、sword=passp 其中其中passpass表示用户表示用户rootroot的密码,如果没有密码,则在的密码,如果没有密码,则在= =后面直接回车。运行结果如下:后面直接回车。运行结果如下:p +-+p | Databases |p +-+p | information_schema |p | mysql |p | performance_schema |p +-+【例【例9-4】 p可以使用下面的命令可以使用下面的命令查看数据库查看数据库mysqlmysql中中表的情况。表的情况。mysqlshow -h localhost -u root -password=pass mysql2my

26、sqladmin p执行管理操作的客户端命令,可以执行管理操作的客户端命令,可以使用它来创建和删除数据库、重载使用它来创建和删除数据库、重载授权表、将表保存到硬盘中等。授权表、将表保存到硬盘中等。mysqladminmysqladmin命令的语法结构如下:命令的语法结构如下:mysqladmin OPTIONS command command.p参数参数OPTIONSOPTIONS与与mysqlshowmysqlshow命令中命令中的参数的参数OPTIONSOPTIONS相同,请参照理解。相同,请参照理解。参数参数commandcommand表示要执行的管理操作表示要执行的管理操作 mysql

27、admin命令中的命令中的command参数参数 命令命令具体描述具体描述create 创建数据库创建数据库debug通知服务器向错误日志中写入调试信息通知服务器向错误日志中写入调试信息drop 删除数据库删除数据库extended-status显示服务器的状态变量及其值显示服务器的状态变量及其值flush-hosts刷新主机缓存中的所有信息刷新主机缓存中的所有信息flush-logs刷新所有的日志刷新所有的日志flush-privileges重新装入授权表重新装入授权表flush-status清除状态变量清除状态变量flush-tables刷新所有的表刷新所有的表flush-threads刷

28、新线程缓存刷新线程缓存kill id,id,.结束服务器进程结束服务器进程old-password new-password修改当前用户的密码为修改当前用户的密码为new-password,并以旧的哈希格式保存密码,并以旧的哈希格式保存密码password new-password修改当前用户的密码为修改当前用户的密码为new-passwordping检查服务器是否仍活动检查服务器是否仍活动processlist显示活动服务器线程的列表显示活动服务器线程的列表reload重新装入授权表重新装入授权表refresh刷新所有的表,关闭和打开日志刷新所有的表,关闭和打开日志shutdown关闭服务器

29、关闭服务器start-slave开始从服务器上的复制开始从服务器上的复制status显示服务器传送来的短消息状态显示服务器传送来的短消息状态stop-slave停止从服务器上的复制停止从服务器上的复制variables显示服务器系统变量及其值显示服务器系统变量及其值version显示服务器的版本信息显示服务器的版本信息【例【例9-5】 p使用使用mysqladminmysqladmin命令将命令将rootroot用户的密码用户的密码修改为修改为“pass”pass”命令如下:命令如下:mysqladmin -u root -p password passp当提示当提示“Enter passwo

30、rd:”Enter password:”时输入时输入rootroot用户的原密码。如果用户的原密码。如果rootroot的原密码为空。的原密码为空。则可以直接回车。则可以直接回车。 9.2.2 图形化图形化MySQL数据库管理工具数据库管理工具phpMyAdmin p 尽管尽管MySQLMySQL也提供了图形化也提供了图形化MySQLMySQL数据库管理工具数据库管理工具MySQL WorkbenchMySQL Workbench,但但MySQL WorkbenchMySQL Workbench还存在一些不足和不完善的地方,例如:还存在一些不足和不完善的地方,例如:p 目前目前MySQL Wo

31、rkbenchMySQL Workbench尚未支持中文,英文操作界面对用户尚未支持中文,英文操作界面对用户(特别是初学者)很不方便。(特别是初学者)很不方便。p MySQL Workbench MySQL Workbench是一款专为是一款专为MySQLMySQL设计的设计的ER/ER/数据库建模工具。数据库建模工具。它使用一些专业图形表现数据库对象和它们的关系,面的效果是它使用一些专业图形表现数据库对象和它们的关系,面的效果是非常专业的。不过在功能和易用性上略显不足。非常专业的。不过在功能和易用性上略显不足。p 本书推荐使用本书推荐使用phpMyAdminphpMyAdmin来管理来管理M

32、ySQLMySQL数据库。数据库。phpMyAdminphpMyAdmin是非常是非常流行的第流行的第3 3方图形化方图形化MySQLMySQL数据库管理工具,使用它可以更加直观数据库管理工具,使用它可以更加直观方便地对方便地对MySQLMySQL数据库进行管理。数据库进行管理。p 参照第参照第2 2章安装和配置章安装和配置phpMyAdminphpMyAdmin。通过下面的地址访问。通过下面的地址访问phpMyAdminphpMyAdmin:http:/localhost/phpMyAdmin/index.php登录后的登录后的phpMyAdmin主页主页 在主页面中可以查看到如下信息在主页

33、面中可以查看到如下信息 MySQL MySQL数据库服务器的基本信息,包括数据库服务器的基本信息,包括MySQLMySQL服务器版本、通信协议、服务器信服务器版本、通信协议、服务器信息、用户信息、息、用户信息、MySQLMySQL字符集等。字符集等。 MySQL MySQL数据库列表,默认有数据库列表,默认有3 3个数据库,个数据库,即即information_schemainformation_schema、mysqlmysql和和performance_schema performance_schema 。 phpMyAdminphpMyAdmin的基本信息。的基本信息。数据库管理页面数据

34、库管理页面 执行执行SQL语句语句 p单击左侧窗格上部的单击左侧窗格上部的“查询窗口查询窗口”图标(图标( ),可以弹出一个),可以弹出一个执行执行SQLSQL语句的窗口,如图语句的窗口,如图9-139-13所示。在文本框中输入所示。在文本框中输入SQLSQL语句,语句,单击单击“执行执行”按钮即可执行按钮即可执行SQLSQL语句。语句。 9.3 创建和维护数据库创建和维护数据库 p9.3.1 9.3.1 创建数据库创建数据库p9.3.2 9.3.2 删除数据库删除数据库 p9.3.3 9.3.3 备份数据库备份数据库 p9.3.4 9.3.4 恢复数据库恢复数据库 9.3.1 创建数据库创建

35、数据库 p可以在可以在phpMyAdminphpMyAdmin中通过图形界面创建数据库,中通过图形界面创建数据库,也可以使用也可以使用mysqlmysql和和mysqladminmysqladmin等命令行工具创等命令行工具创建数据库。建数据库。1在在phpMyAdmin中创建数据库中创建数据库 p在在phpMyAdminphpMyAdmin的主页中单击的主页中单击“数据库数据库”栏目,打开栏目,打开“数据库管理数据库管理”页面,如图页面,如图9-149-14所示。所示。p在在“新建数据库新建数据库”文本框中输入新数据库的名称,例如文本框中输入新数据库的名称,例如MySQLDBMySQLDB。

36、在在“整理整理”组合框中选择数据库使用的字符集,这里选择组合框中选择数据库使用的字符集,这里选择gb2312_chinese_cigb2312_chinese_ci。2使用使用CREATE DATABASE语句创建数据库语句创建数据库 p在在mysqlmysql命令行工具中可以直接输入和执行命令行工具中可以直接输入和执行SQLSQL语句。可以使用语句。可以使用CREATE DATABASECREATE DATABASE语句创建数据语句创建数据库,它的基本语法结构如下:库,它的基本语法结构如下:CREATE DATABASE IF NOT EXISTS 数据库名数据库名p如果使用如果使用IF N

37、OT EXISTSIF NOT EXISTS关键字,则当指定的关键字,则当指定的数据库名存在时,不创建数据库。如果不使用数据库名存在时,不创建数据库。如果不使用IF NOT EXISTSIF NOT EXISTS关键字,当创建的数据库名存在关键字,当创建的数据库名存在时,将产生错误。时,将产生错误。p【例【例9-69-6】 要创建数据库要创建数据库MySQLDBMySQLDB,可以使用,可以使用下面的语句。下面的语句。CREATE DATABASE IF NOT EXISTS MySQLDB;3使用使用mysqladmin工具创建数据库工具创建数据库 p 可以在可以在mysqladminmys

38、qladmin中使用中使用createcreate子句创子句创建数据库。建数据库。p 【例【例9-79-7】 要创建数据库要创建数据库MySQLDBMySQLDB,可,可以使用下面的命令:以使用下面的命令:mysqladmin -h localhost -u root -password=pass create MySQLDBp 其中其中passpass表示表示MySQLMySQL数据库数据库rootroot用户的用户的密码。密码。 9.3.2 删除数据库删除数据库 p可以在可以在phpMyAdminphpMyAdmin中通过图形界面删除中通过图形界面删除数据库,也可以使用数据库,也可以使用m

39、ysqlmysql和和mysqladminmysqladmin等命令行工具删除数据库。等命令行工具删除数据库。1在在phpMyAdmin中删除数据库中删除数据库 p在在phpMyAdminphpMyAdmin的数据库管理页面中,选中要的数据库管理页面中,选中要删除的数据库删除的数据库 确认删除数据库页面确认删除数据库页面 p单击单击“删除删除”图标,打开确认删除数据库图标,打开确认删除数据库页面。单击页面。单击“是是”按钮,可以删除数据库。按钮,可以删除数据库。 2使用使用DROP DATABASE删除数据删除数据库库 pDROP DATABASEDROP DATABASE语句的语法如下:语句

40、的语法如下:DROP DATABASE 数据库名数据库名p【例【例9-89-8】 可以在可以在MySQLMySQL命令行工具中使用下命令行工具中使用下面语句删除数据库面语句删除数据库MySQLDBMySQLDB:DROP DATABASE MySQLDB;3使用使用mysqladmin工具删除数据库工具删除数据库 p 可以在可以在mysqladminmysqladmin命令中使用命令中使用dropdrop子句删除数据库。子句删除数据库。p 【例【例9-99-9】 可以在命令窗口中使用下面的命令删除数据库可以在命令窗口中使用下面的命令删除数据库MySQLDBMySQLDB:mysqladmin

41、-h localhost -u root -password=pass drop MySQLDBp 执行此命令后,将显示如下信息,提示用户是否确定要删除数据执行此命令后,将显示如下信息,提示用户是否确定要删除数据库。库。Dropping the database is potentially a very bad thing to do.Any data stored in the database will be destroyed.Do you really want to drop the mydatabase database y/Np 输入字母输入字母y y,然后按下回车键,即可删除

42、数据库。,然后按下回车键,即可删除数据库。9.3.3 备份数据库备份数据库 p 在数据库的使用过程中,难免会由于在数据库的使用过程中,难免会由于病毒、人为失误、机器故障等原因造病毒、人为失误、机器故障等原因造成数据的丢失或损坏。数据对于数据成数据的丢失或损坏。数据对于数据库用户来说是非常重要的,一旦出现库用户来说是非常重要的,一旦出现问题,造成的损失是巨大的。为了保问题,造成的损失是巨大的。为了保证数据库的安全性,防止数据库中数证数据库的安全性,防止数据库中数据的意外丢失,应经常对数据库中的据的意外丢失,应经常对数据库中的数据进行备份,以便在数据库出故障数据进行备份,以便在数据库出故障时进行及

43、时有效的恢复。时进行及时有效的恢复。1在在phpMyAdmin中备份数据库中备份数据库 p phpMyAdminphpMyAdmin可以通过导出数据的方法实现备份数据库可以通过导出数据的方法实现备份数据库的功能。在的功能。在phpMyAdminphpMyAdmin的主页中单击的主页中单击“导出导出”栏目,栏目,打开打开“导出数据库导出数据库”页面页面 。用户可以选择导出方式和。用户可以选择导出方式和导出格式,然后单击导出格式,然后单击“执行执行”按钮开始导出并保存导按钮开始导出并保存导出文件。出文件。 2使用使用mysqldump工具备份数据库工具备份数据库 pmysqldumpmysqldu

44、mp是是MySQLMySQL提供的命令行工具,用于导出提供的命令行工具,用于导出MySQLMySQL数据库。备份指定数据数据库。备份指定数据库时,库时,mysqldumpmysqldump的用法如下:的用法如下:mysqldump OPTIONS database tablespdatabasedatabase指定要导出的数据库名,指定要导出的数据库名,tablestables指定要导出的表名,如果不指定表名,指定要导出的表名,如果不指定表名,则导出整个则导出整个1 1数据库。数据库。pOPTIONSOPTIONS是导出数据库的选项,常用的选项如下:是导出数据库的选项,常用的选项如下:p -a

45、dd-drop-table -add-drop-table,在每个,在每个createcreate语句之前增加一个语句之前增加一个drop tabledrop table关键字。关键字。p-c,-complete-insert-c,-complete-insert,使用完整的,使用完整的insertinsert语句语句( (用列名字用列名字) )。p -C, -compress -C, -compress,如果客户和服务器均支持压缩,压缩两者间所有的信息。,如果客户和服务器均支持压缩,压缩两者间所有的信息。p -delayed -delayed,用,用INSERT DELAYEDINSERT

46、DELAYED命令插入行。命令插入行。p -d, -no-data -d, -no-data,不写入表的任何行信息。如果只想得到一个表的结构的导,不写入表的任何行信息。如果只想得到一个表的结构的导出,可以使用此选项。出,可以使用此选项。p h, -host=. h, -host=.,从命名的主机上的,从命名的主机上的MySQLMySQL服务器导出数据。缺省主机是服务器导出数据。缺省主机是localhostlocalhost。p -pyour_pass, -password=your_pass-pyour_pass, -password=your_pass ,与服务器连接时使用的口令。如,与服务

47、器连接时使用的口令。如果你不指定果你不指定“=your_pass=your_pass”部分,部分,mysqldumpmysqldump需要来自终端的口令。需要来自终端的口令。p -u user_name, -user=user_name-u user_name, -user=user_name,与服务器连接时,与服务器连接时,MySQLMySQL使用的用户名。使用的用户名。缺省值是你的缺省值是你的UnixUnix登录名。登录名。p【例【例9-109-10】 可以在命令窗口中使用下面的命令备份数据库可以在命令窗口中使用下面的命令备份数据库MySQLDBMySQLDB:mysqldump -h l

48、ocalhost -u root -password=pass MySQLDB c:MySQLDB.sqlc:MySQLDB.sql为导出文件。为导出文件。9.3.4 恢复数据库恢复数据库 数据库备份后,一旦系统发生崩溃或者执行了错数据库备份后,一旦系统发生崩溃或者执行了错误的数据库操作,就可以从备份文件中恢复误的数据库操作,就可以从备份文件中恢复(还原)数据库,让数据库回到备份时的状(还原)数据库,让数据库回到备份时的状态。通常在以下情况下需要恢复数据库。态。通常在以下情况下需要恢复数据库。 媒体故障。媒体故障。 用户操作错误。用户操作错误。 服务器永久丢失。服务器永久丢失。 将数据库从一台

49、服务器复制到另一台服务器。将数据库从一台服务器复制到另一台服务器。恢复数据库之前,需要限制其他用户访问数据库。恢复数据库之前,需要限制其他用户访问数据库。1在在phpMyAdmin中恢复数据库中恢复数据库 pphpMyAdminphpMyAdmin可以通过导入数据的方法实现恢复数据可以通过导入数据的方法实现恢复数据库的功能。在库的功能。在phpMyAdminphpMyAdmin的主页中单击的主页中单击“导入导入”栏栏目,打开目,打开“导入数据库导入数据库”页面。单击页面。单击“浏览浏览”按钮按钮选择要导入的文件,然后单击选择要导入的文件,然后单击“执行执行”按钮开始导按钮开始导入。入。 2使用

50、使用mysql工具恢复数据库工具恢复数据库 p如果导入文件是如果导入文件是.sql.sql文件,那么导入存在实际上就文件,那么导入存在实际上就是执行其中的是执行其中的SQLSQL语句。可以使用语句。可以使用mysqlmysql命执行命执行.sql.sql文件,方法如下:文件,方法如下:mysql-h 数据库服务器数据库服务器 -u 用户名用户名 -password=密密码码 目标数据库目标数据库 sql文件名文件名p【例【例9-119-11】 可以在命令窗口中使用下面的命令从可以在命令窗口中使用下面的命令从D:MySQLDB.sqlD:MySQLDB.sql中恢复数据库中恢复数据库MySQLD

51、BMySQLDB:mysql -h localhost -u root -password=pass MySQLDB D:MySQLDB.sqlpc:MySQLDB.sqlc:MySQLDB.sql为导出文件。为导出文件。提示提示 p本节所介绍的恢复数据库实际上就是导本节所介绍的恢复数据库实际上就是导入数据库。因此,在执行操作之前,应入数据库。因此,在执行操作之前,应确保数据库已经存在。如果不存在,可确保数据库已经存在。如果不存在,可以参照以参照.1小节创建数据库。小节创建数据库。 9.4 表管理表管理 p表是数据库中最基本的逻辑单元,由行和表是数据库中最基本的逻辑单元,由行和

52、列组成,用户保存在数据库中的基本数据列组成,用户保存在数据库中的基本数据库都由表的形式存储。本节将介绍如何管库都由表的形式存储。本节将介绍如何管理理MySQLMySQL的表。的表。 9.4.1 表的概念表的概念 p表是数据库中最重要的逻辑对象,是存储数据的主要对象。在设计数据库结构时,表是数据库中最重要的逻辑对象,是存储数据的主要对象。在设计数据库结构时,很重要的工作就是设计表的结构。例如,在设计二手交易市场系统数据库时,可很重要的工作就是设计表的结构。例如,在设计二手交易市场系统数据库时,可以包含公告信息表、商品分类表、二手商品信息表和用户信息表等,而用户信息以包含公告信息表、商品分类表、二

53、手商品信息表和用户信息表等,而用户信息表可以包含用户名、用户密码、用户类型等列。表可以包含用户名、用户密码、用户类型等列。p关系型数据库的表由行和列组成,其逻辑结构如图关系型数据库的表由行和列组成,其逻辑结构如图9-199-19所示。所示。 9.4.2 MySQL数据类型数据类型 p要定义表的结构,需要设计表由哪些列组要定义表的结构,需要设计表由哪些列组成,指定列的名称和数据类型。成,指定列的名称和数据类型。MySQLMySQL的的数据类型包括数值类型、日期和时间类型数据类型包括数值类型、日期和时间类型和字符串类型等。和字符串类型等。1数值数据类型数值数据类型 数据类型数据类型描述描述BIT位

54、字段类型,取值范围是位字段类型,取值范围是164, 默认为默认为1TINYINT很小的整数类型。带符号的范围是很小的整数类型。带符号的范围是-128127,无符号的范围,无符号的范围是是0255BOOL,BOOLEAN布尔类型,是布尔类型,是TINYINT(1)的同义词。的同义词。zero值被视为假。非值被视为假。非zero值被视为真值被视为真SMALLINT小的整数类型,带符号的范围是小的整数类型,带符号的范围是-3276832767。无符号的范。无符号的范围是围是065535MEDIUMINT中等大小的整数类型。带符号的范围是中等大小的整数类型。带符号的范围是-83886088388607

55、,无符号的范围是无符号的范围是016777215INT普通大小的整数类型。带符号的范围是普通大小的整数类型。带符号的范围是-21474836482147483647,无符号的范围是,无符号的范围是04294967295INTEGER与与INT的含义相同的含义相同BIGINT大整数类型,带符号的范围是大整数类型,带符号的范围是-92233720368547758089223372036854775807。无符号的范围是。无符号的范围是018446744073709551615FLOAT单精度浮点类型单精度浮点类型DOUBLE双精度浮点类型双精度浮点类型DECIMAL定点数类型定点数类型2日期和时

56、间数据类型日期和时间数据类型 数据类型数据类型描述描述DATE日期类型,例如日期类型,例如2012-01-01DATETIME日期和时间类型,例如日期和时间类型,例如2012-01-01 12:00:00TIMESTAMP时间戳类型,时间戳类型,TIMESTAMP列用于列用于INSERT或或UPDATE操作时记录日期和时间操作时记录日期和时间TIME时间类型时间类型YEAR两位或四位的年份类型,默认为四位年份类型两位或四位的年份类型,默认为四位年份类型3字符串数据类型字符串数据类型 数据类型数据类型描述描述CHAR(M)固定长度字符串,固定长度字符串,M为存储长度为存储长度VARCHAR(M)

57、可变长度的字符串,可变长度的字符串,M为最大存储长度,实际为最大存储长度,实际存储存储长度长度为输入字符的为输入字符的实际长度实际长度BINARY(M)BINARY类型类似于类型类似于CHAR类型,但保存二进制字节字符串类型,但保存二进制字节字符串而不是非二进制字符串而不是非二进制字符串。M为存储长度为存储长度VARBINARY(M)VARBINARY类型类似于类型类似于VARCHAR类型,但保存二进制字节字类型,但保存二进制字节字符串而不是非二进制字符串。符串而不是非二进制字符串。M为存储长度为存储长度BLOB二进制大对象,包括二进制大对象,包括TINYBLOB、BLOB、MEDIUMBLO

58、B和和LONGBLOB 等等4种种BLOB类型类型TEXT大文本类型,包括大文本类型,包括TINYTEXT、TEXT、MEDIUMTEXT和和LONGTEXT等等4种种TEXT类型类型ENUM枚举类型枚举类型SET集合类型集合类型9.4.3 创建表创建表 p可以在可以在phpMyAdminphpMyAdmin中通过图形界面创建中通过图形界面创建表,也可以使用表,也可以使用SQLSQL语句创建表。语句创建表。1在在phpMyAdmin中创建表中创建表 p在在phpMyAdminphpMyAdmin中单击要创建表的数据库中单击要创建表的数据库名,打开管理数据库页面名,打开管理数据库页面 创建表页面

59、创建表页面 p 在在“名字名字”文本框中输入要创建的表名(假定为文本框中输入要创建的表名(假定为DepartmentsDepartments),),在在“字段数字段数”文本框中输入表中字段的数量(假定为文本框中输入表中字段的数量(假定为2 2),然后单),然后单击击“执行执行”按钮,打开创建表页面按钮,打开创建表页面 【例【例9-12】 p在数据库在数据库MySQLDBMySQLDB中创建一个部门信息表中创建一个部门信息表DepartmentsDepartments,表结构如表,表结构如表9-69-6所示。所示。 字段名字段名数据类型数据类型描述描述DepIdINT部门编号,主键,自动增加部门

60、编号,主键,自动增加DepNameVARCHAR(50)部门名称部门名称列的其他属性列列的其他属性列 p主键是表中的一列或一组列,它们的值唯一地标识表中的每一行,也就是说在表主键是表中的一列或一组列,它们的值唯一地标识表中的每一行,也就是说在表的所有行中,此列的数据是唯一的。通常情况下,可以把编号列设置为唯一标识的所有行中,此列的数据是唯一的。通常情况下,可以把编号列设置为唯一标识列,例如表列,例如表DepartmentsDepartments中的部门编号中的部门编号DepIdDepId。定义主键可以强制在指定列中不允。定义主键可以强制在指定列中不允许输入空值,如果要插入行的主键值已经存在,则

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论