第7章MySQL数据库基础7.1数据库基础7.2MySQL数据库简介7.3MySQL基础知识7.4数据库和表的建立与管理7.5表数据操作7.6查询数据7.7视图7.8过程式数据库对象7.9使用界面工具操作MySQL7.1数据库基础7.1.1数据库与数据库管理系统1.数据库数据库(DB)是存放数据的仓库,只不过这些数据存在一定的关联,并按一定的格式存放在计算机上。从广义上讲,数据不仅包含数字,还包括了文本、图像、音频、视频等。例如,把学校的学生、课程、学生成绩等数据有序地组织并存放在计算机内,就可以构成一个数据库。因此,数据库由一些持久的相互关联的数据集合组成,并以一定的组织形式存放在计算机的存储介质中。7.1.1数据库与数据库管理系统2.数据库管理系统数据库管理系统(DBMS)是管理数据库的系统,它按一定的数据模型组织数据。DBMS应提供如下功能:●数据定义功能可定义数据库中的数据对象。●数据操纵功能可对数据库表进行基本操作,如插入、删除、修改、查询。●数据的完整性检查功能保证用户输入的数据满足相应的约束条件。●数据库的安全保护功能保证只有赋予权限的用户才能访问数据库中的数据。●数据库的并发控制功能使多个应用程序可在同一时刻并发地访问数据库的数据。●数据库的故障恢复功能使数据库运行出现故障时进行数据库恢复,以保证数据库可靠运行。●在网络环境下访问数据库的功能。●方便、有效地存取数据库信息的接口和工具。编程人员通过程序开发工具与数据库的接口编写数据库应用程序。数据库管理员(DBA,DataBaseAdminitrator)通过提供的工具对数据库进行管理。7.1.1数据库与数据库管理系统数据、数据库、数据库管理系统与操作数据库的应用程序,加上支撑它们的硬件平台、软件平台及与数据库有关的人员,构成了一个完整的数据库系统。图7.1描述了数据库系统的构成。图7.1数据库系统的构成7.1.2关系型数据库管理系统层次模型以树型层次结构组织数据。网状模型中,每个数据用一个节点表示,每个节点与其他节点都有联系,这样数据库中的所有数据节点就构成了一个复杂的网络。而关系模型是以二维表格(关系表)的形式组织数据库中的数据。例如:学生成绩管理系统涉及学生、课程和成绩三个表。“学生”表涉及的主要信息有:学号、姓名、性别、出生时间、专业、总学分、备注。“课程”表涉及的主要信息有:课程号、课程名、开课学期、学时和学分。“成绩”表涉及的主要信息有:学号、课程号和成绩。表7.1、表7.2和表7.3分别描述了学生成绩管理系统中学生、课程和成绩三个表的数据(注:本书将使用学生管理系统的这三个表作为例表)。表格中的一行称为一个记录,一列称为一个字段,每列的标题称为字段名。如果给每个关系表取一个名字,则有n个字段的关系表的结构可表示为:关系表名(字段名1,……,字段名n),通常把关系表的结构称为关系模式。在关系表中,如果一个字段或几个字段组合的值可唯一标志其对应记录,则称该字段或字段组合为码。例如:表7.1的“学号”可唯一标志每个学生,表7.2的“课程号”可唯一标志每门课。表7.3的“学号”和“课程号”可唯一标志每个学生每门课程的成绩。7.1.2关系型数据库管理系统有时一个表可能有多个码,如表7.1中,姓名不允许重名,则“学号”、“姓名”均是学生表的码。对于每个关系表通常可指定一个码为“主码”,在关系模式中,一般用下画线标出主码。设表7.1的名字为XSB,关系模式可表示为:XSB(学号,姓名,性别,出生时间,专业,总学分,备注)。设表7.2的名字为KCB,关系模式可表示为:KCB(课程号,课程名,开课学期,学时,学分)。设表7.3的名字为CJB,关系模式可表示为:CJB(学号,课程号,成绩)。7.1.3关系型数据库语言关系型数据库的标准语言是SQL(StructuredQueryLanguage,结构化查询语言)。SQL语言是用于关系型数据库查询的结构化语言,最早由Boyce和Chambedin在1974年提出,称为SEQUEL语言。1976年,IBM公司的SanJose研究所在研制关系型数据库管理系统SystemR时修改为SEQUEL2,即目前的SQL语言。1976年,SQL开始在商品化关系型数据库管理系统中应用。1982年美国国家标准化组织ANSI确认SQL为数据库系统的工业标准。SQL是一种介于关系代数和关系演算之间的语言,具有丰富的查询功能,同时具有数据定义和数据控制功能,是集数据定义、数据查询和数据控制于一体的关系数据语言。目前,许多关系型数据库管理系统都支持SQL语言,如MySQL、SQLServer、Oracle、Access、DB2、Sybase等。SQL语言的功能包括数据查询、数据操纵、数据定义和数据控制4部分。SQL语言简洁、方便实用,为完成其核心功能只用了6个词:SELECT、CREATE、INSERT、UPDATE、DELETE、GRANT(REVOKE)。目前已成为应用最广的关系型数据库语言。7.2MySQL数据库简介7.2.1MySQL数据库的介绍MySQL数据库的特点主要有以下几个方面:●使用核心线程的完全多线程服务,这意味着可以采用多CPU体系结构。●可运行在不同平台。●使用C和C++语言编写,并使用多种编译器进行测试,保证了源代码的可移植性。●支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统。●为多种编程语言提供了API。这些编程语言包括C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。●支持多线程,充分利用CPU资源。●优化的SQL查询算法,可有效地提高查询速度。●既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库嵌入其他的软件中。提供多语言支持,常见的编码如中文的GB2312、BIG5,日文的Shift_JIS等,都可以用做数据表名和数据列名。●提供TCP/IP、ODBC和JDBC等多种数据库连接途径。●提供可用于管理、检查、优化数据库操作的管理工具。●可以处理拥有上千万条记录的大型数据库。7.2.2MySQL服务器的安装与配置MySQL服务器的安装:(1)下载Windows版的MySQL,双击下载文件进入安装向导。有3种安装方式可供选择:Typical(典型安装)、Complete(完全安装)和Custom(定制安装),如图7.2所示。对于大多数用户,选择Typical就可以了。单击【Next】按钮进入下一步。图7.2MySQL安装模式选择7.2.2MySQL服务器的安装与配置(2)进入如图7.3所示的安装界面。在MySQL5.1中,数据库主目录和文件目录是分开的。其中,“DestinationFolder”为MySQL所在的主目录,默认为C:\ProgramFiles\MySQL\MySQLServer5.1。“DataFolder”为MySQL数据库文件和表文件所在的目录,默认为C:\DocumentsandSettings\AllUsers\ApplicationData\MySQL\MySQLServer5.1\data,其中ApplicationData是隐藏文件夹。确认后单击【Install】按钮开始安装。(3)等待一段时间后安装完成,在弹出的窗口中单击【Next】按钮完成安装。安装目录数据目录图7.3MySQL确认安装界面7.2.2MySQL服务器的安装与配置MySQL服务器的配置:(1)安装完毕后选择“ConfiguretheMySQLservernow”复选框,单击【Finish】按钮进入配置向导。单击【Next】按钮进入选择配置类型对话框,配置类型有2种:DetailedConfiguration(详细配置)和StandardConfiguration(标准配置)。标准配置选项适合想要快速启动MySQL而不必考虑服务器配置的新用户。详细配置选项适合想要更加细粒度控制服务器配置的高级用户。本书选择DetailedConfiguration选项。(2)单击【Next】按钮进行服务器类型选择,分为3种:DeveloperMachine(开发机器)、ServerMachine(服务器)和DedicatedMySQLServerMachine(专用MySQL服务器)。本书选择DeveloperMachine选项。(3)单击【Next】按钮进入数据库使用情况对话框,有3个选项:MultifunctionalDatabase(多功能数据库)、TransactionalDatabaseOnly(只是事务处理数据库)和Non-TransactionalDatabaseOnly(只是非事务处理数据库)。其中多功能数据库对InnoDB和MyISAM表都适用,所以本书选择MultifunctionalDatabase选项。7.2.2MySQL服务器的安装与配置(4)单击【Next】按钮进入InnoDB表空间对话框,这里可以修改InnoDB表空间文件的位置,如图7.4所示。默认位置是MySQL服务器数据目录,这里不做修改。图7.4表空间对话框7.2.2MySQL服务器的安装与配置(5)进入并发连接选择对话框。DecisionSupport(DSS)/OLAP(决策支持):如果服务器不需要大量的并行连接可以选择该选项;OnlineTransactionProcessing(OLTP,联机事务处理):如果服务器需要大量的并行连接则选择该选项;ManualSetting(人工设置):选择该选项可以手动设置服务器并行连接的最大数目。本书选择DecisionSupport(DSS)/OLAP选项。(6)进入联网选项对话框,如图7.5所示。默认情况是启用TCP/IP网络,默认端口为3306。这里不做修改。端口图7.5联网选项对话框7.2.2MySQL服务器的安装与配置(7)进入字符集选择对话框,前面的选项一直是按默认设置进行的,这里要做一些修改。选中“ManualSelectedDefaultCharacterSet/Collation”选项,在“CharacterSet”选框中将latin1修改为gb2312,如图7.6所示。修改字符集为gb2312图7.6设置字符集7.2.2MySQL服务器的安装与配置(8)单击【Next】按钮进入服务选项对话框,服务名为MySQL,这里不做修改。(9)单击【Next】按钮进入安全选项对话框,如图7.7所示,在密码输入框中输入root用户的密码,为了便于演示,此处密码设为“123456”。在实际应用时密码不可过于简单。要想创建一个匿名用户账户,选中“CreateAnAnonymousAccount”(创建匿名账户)选项旁边的框。由于安全原因,不建议选择该项。图7.7安全选项对话框设置root用户密码(10)设置完毕后,最后一步是提交配置,单击【Execute】按钮即可完成。注意:对不同的操作系统和不同版本的MySQL,安装过程可能有所不同,这里只举MySQL5.1的安装例子。7.2.3MySQL的环境1.MySQL命令行客户端MySQL安装和配置完后,打开“开始”→“程序”→“MySQL”→“MySQLServer5.1”→“MySQLCommandLineClient”菜单项,进入MySQL客户端,在客户端输入密码,就以root用户身份登录到MySQL服务器,在窗口中出现如图7.8所示的命令行,在命令行中输入SQL语句就可以操作MySQL数据库。以root用户身份登录可以对数据库进行所有的操作。图7.8MySQL命令行此处输入SQL语句7.2.3MySQL的环境2.重新配置服务器如果要对服务器重新配置,可以打开“开始”→“程序”→“MySQL”→“MySQLServer5.1”→“MySQLServerInstanceConfigureWizard”菜单项,在出现的配置向导中重新配