实验二 网络数据库实验
一、实验目的
·进一步熟悉数据库基础知识。·熟悉数据库操作语言SQL。
·了解网络数据库架构及应用。
二、实验性质
操作、验证实验。
三、实验课时
3课时。
四、实验器材和设备
·软件:MySQL,数据库系统、Apache Web Server、phpMyAdmin数据库管理平台、网络浏览器、文字处理软件(如Microsoft office word/金山WPS系统)。
五、预备知识
MySQL数据库系统简要说明
数据库是按一定的结构和规则组织起来的相关数据的集合,是综合各用户数据形成的,它是存放数据的仓库。网络的作用就是信息的传递与资源共享,随着信息化的发展计算机管理与网络通信结合的越来越紧密,“数据”和“信息资源共享”,这两种技术的结合已成为目前广泛采用的数据库技术。具有一定网络信息管理能力的数据库常称为网络数据库;同样,具有一定网络信息管理方式的数据库管理系统可把它称为网络数据库管理系统。
目前,大型商业数据库如ORACLE、INFORMIX、SYBASE等,都提供强大的网络信息服务和管理功能。这里我们选择开源数据库MySQL来进行实验。MySQL是一个关系型数据库管理系统,开发者为瑞典MySQL AB公司,在2008年1月16日被Sun公司收购。MySQL体积小、速度快,另外它具有开放源码的特点,许多网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。目前MySQL被广泛地应用在Internet上的中小型网站中。MySQL的官方网站的网址是:http://www.mysql.com/(MySQL软件在Windows环境下的安装在附录一中作了简要说明)。
MySQL具有如下特性:
·使用C和C++语言编写,并使用了多种编译器进行测试,保证源代码的可移植性。
·支持IBM AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统。
·为多种编程语言提供了API。这些编程语言包括C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。
·支持多线程,充分利用CPU资源。
·既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入其他软件中以提供多语言支持。常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。
·提供TCP/IP、ODBC和JDBC等多种数据库连接途径。
·提供用于管理、检查、优化数据库操作的管理工具。
·可以处理拥有上千万条记录的大型数据库。
在管理方面,MySQL可以使用命令形工具管理MySQL数据库(命令mysql和Mysqladmin),也可以从MySQL的网站下载图形管理工具MySQL Administrator和MySQL Query Browser,另外还有phpMyAdmin管理工具等。
phpMyAdmin管理工具是由php写成的MySQL资料库系统管理程式,让管理者可用Web界面管理MySQL资料库。phpMyBackupPro管理工具也是由PHP写成的,可以透过Web界面创建和管理数据库,也可以用来自动地在某个时间或周期备份MySQL数据库。
还有其他的GUI管理工具,例如早先的mysql-front以及ems mysql manager、navicat等。
MySQL对数据表的操作基本遵循SQL语言标准(见附录二),可以通过网络进行远程维护。Mysql命令行基本指令如下:
·创建数据库
mysql>create database数据库名称
·创建表
mysql>create table表名(
列的名字(id)类型(int(4))primary key(定义主键)auto_increment(描述自增),
……,
);
·查看所有数据库
mysql>show databases数据库名称;
·使用某个数据库
mysql>use database数据库名称;
·查看所使用数据库下所有的表
mysql>show tables;
·显示表的属性结构
mysql>desc表名;
·选择表中数据的显示
*代表选择所有列,
mysql>select*from表名where id=?[and name=?][or name=?];
mysql>select id,name from表名order by某一列的名称desc(降序,asc为升序)
·删除表中的数据
mysql>delete fromtable where id=?[or name=?(and name=?)];
·——删除表
mysql>drop table;
·——删除数据库
mysql>drop database;
在本次实验中还将利用Web界面直接操作管理数据库,其中将应用ApacheWeb Server forWindows提供基本WWW(http)服务。
Apache是世界使用排名第一的Web服务器软件,它可以运行在几乎所有的计算机平台上。它源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。Apache取自“a patchy server”的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。
世界上很多著名的网站如Amazon.com、Yahoo!、W3 Consortium、Financial Times等都是Apache的产物,它的成功之处主要在于它的源代码开放,有一支开放的开发队伍,支持跨平台的应用(可以运行在几乎所有的Unix、Windows、Linux系统平台上)以及它的可移植性等方面。可以访问www.apache.org网址,以下载和了解详细信息。
为了更高效地处理后台信息以及更快速与用户交流,Web服务器需要实现动态页面功能。ApacheWeb服务器后台支持各类动态脚本语言,其中包括PHP。PHP是英文超级文本预处理语言(Hypertext Preprocessor)的缩写,是一种HTML内嵌式的语言。PHP与微软的ASP颇有几分相似,都是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格类似于C语言,现在被很多的网站编程人员广泛的运用。PHP独特的语法混合了C、Java、Perl以及PHP自创新的语法。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多,能够比CGI或者Perl更快速地执行动态网页。与同样是嵌入HTML文档的脚本语言JavaScript相比,PHP在服务器端执行,充分利用了服务器的性能;PHP执行引擎还会将用户经常访问的PHP程序驻留在内存中,其他用户再一次访问这个程序时就不需要重新编译程序了,只要直接执行内存中的代码就可以了,这也是PHP高效率的体现之一。同时,PHP具有非常强大的功能,所有的CGI或者JavaScript的功能PHP都能实现,而且支持几乎所有流行的数据库以及操作系统。PHP的特性包括:
·开放的源代码:所有的PHP源代码事实上都可以得到。
·PHP是免费的。
·PHP的便捷性:PHP十分便捷,学习简单。
·基于服务器端:由于PHP是运行在服务器端的脚本,可以运行在UNIX、LINUX、WINDOWS下。
·嵌入HTML:因为PHP可以嵌入HTML语言,所以学习起来并不困难。
·简单的语言:PHP坚持脚本语言为主,与Java和C++不同。
·效率高:PHP消耗相当少的系统资源。
·图像处理:可以用PHP动态创建图像。
·面向对象:在PHP4、PHP5中,面向对象方面都有了很大的改进,现在PHP完全可以用来开发大型商业程序。
·PHP相对于其他语言,编辑简单,实用性强,更适合初学者。
·数据库方面:PHP在数据库方面的丰富支持,也是它迅速走红的原因
之一,它支持下列的数据库或是数据文件:
·Adabas D
·DBA
·dBase
·dbm
·filePro
·Informix
·InterBase
·mSQL
·Microsoft SQL Server
·MySQL
·Solid
·Sybase
·ODBC
·Oracle 8
·Oracle
·PostgreSQL
有了Web Server以及对PHP脚本语言的支持,我们可以使用phpMyAdmin Web管理工具进行远程数据库维护。通过网络访问http://www.phpmyadmin.net/进一步了解该管理工具。它也是一个自由软件,用PHP脚本语言写成,用来在World WideWeb(WWW)平台下管理MySQL数据库系统。它支持各类型的mysql数据库管理操作,管理数据库、表、字段、索引、连接、用户、权限以及对数据表的SQL语言直接操作等。
本次实验将使用ApacheWeb Server配合phpMyAdmin完成网络数据维护实验。
六、实验内容
·熟悉mysql数据库基本操作指令。
·通过命令建立“学生信息”数据库以及以下信息表:
student:
·通过Web界面完成以下信息表:
Records:
Course:
·在Web数据库管理界面中完成信息输入、修改、删除操作。
·提交实验报告。
七、实验步骤
1.熟悉MySQL数据库基本操作
通过SQL练习建库、见表、查询、视图等基本操作。
(1)连接进入MySQL数据库(见图2-20)。
命令格式:mysql、-h、主机地址、-u、用户名、-p、用户密码。
首先在打开命令窗口,在Windows开始菜单中点击命令窗口或运行“cmd”弹出命令窗口。在命令窗口中输入mysql命令:mysql、-u、root、-p。
回车后提示你输密码,如果刚安装好MySQL,超级用户root是没有密码的,故直接回车即可进入到MySQL中了,MySQL的提示符是:mysql>。
连接到远程主机上的MySQL。假设远程主机的IP为:192.168.3.2,用户名为root,密码为abcd123。则键入以下命令:mysql、-h、192.168.3.2、-u、root、-p、abcd123。
退出MYSQL命令:exit(回车)。
图2-20
(2)执行下列MySQL命令:
·显示数据库列表
连接进入MySQL,输入:
show databases;
新安装的数据库刚开始时仅两个数据库:mysql和test。mysql库很重要,它里面拥有MySQL的系统信息,MySQL的运行和维护,实际上就是对这个数据库进行操作。
·显示库中的数据表
use mysql;//打开库,学过FOXBASE的一定不会陌生吧。
show tables;
·显示数据表的结构
describe db;//describe表名。
·建库
create database test1;//建立库名为test1的数据库;
观察返回信息。
·建表
use test1;//打开库名为test1的数据库;
create table test(f1 int(10),f2 varchar(20),f3 text);
//建立名为”test”的数据表,括号内为字段设定列表;
show tables;//显示存在数据表“test”;
·向数据表中输入记录
insert into test values(12345,“This is a test”,“ok”);
或insert into test(f1,f2,f3)values(12345,“This is a test”,“ok”);
//使用insert语句,向数据表中添加记录。
·显示表中的记录(见图2-21)
select*fromtest;//表名为“test”,显示表中全部信息。
图2-21
·将表中记录清空
delete fromtest//删除“test”数据表中全部记录。
·删库和删表
drop table test;//表“test”将被删除;
drop database test1//库“test1”将被删除。
2.通过命令窗口建立学生信息库,输入学生信息表
(1)通过命令窗口,连接进入MySQL数据库(见图2-22)。
输入mysql、-u、用户、-p、密码。
图2-22
(2)建立学生信息数据库(见表2-23)。
输入命令:create、database、学生信息库(回车)或create、database、student_info(回车)。
*MySQL数据库支持多种字符集,对中文支持良好。为操作方便本例中数据库名、表名、字段名均转换为ACSCII(英文)字符。
(3)建立学生信息表。
在mysql>提示符下,输入建表命令:
create table student(
stu_no char(10)not null primary key,
stu_name varchar(50),
stu_sex varchar(2),
stu_birthdate date,
stu_native_place varchar(50),
图2-23
stu_address varchar(50),
stu_postalcode varchar(6),
stu_policital_status varchar(8),
stu_admission_time date
);(回车)
屏幕显示:
Query OK,0 rows affected(0.01 sec)(见图2-24)
(4)输入学生信息。
在mysql>命令提示符下,输入:
insert into student(
stu_no,stu_name,
stu_sex,stu_birthdate,
stu_native_place,stu_address,
stu_postalcode,stu_policital_status,
图2-24
stu_admission_time
)values(
'2004001026','王亮',
'男','1986/08/23',
'湖北宜昌','湖北武汉武汉大学',
'430072','团员',
'2004/09/15'
);
屏幕提示:
Query OK,1 rows affected(0.00 sec)(见图2-25)
(5)显示表中记录。
在mysql>命令提示符下,输入:
Select*fromstudent;(回车)
Select stu_no,stu_name,stu_sex,stu_address fromstudent;(回车)
屏幕显示如图2-26所示。
图2-25
图2-26
观察不同命令的结果有什么不同?
3.利用“PhpMysqladmin”数据库管理工具维护学生信息库
(1)打开浏览器访问phpMyAdmin管理工具,如果实验用数据库及Web服务平台安装在本地实验用机上,通常在浏览器地址栏输入地址:http:// localhost/phpmyadmin/(回车),然后可以看到如图2-27所示页面。
图2-27
(2)通过phpMyAdmin,快速了解学生信息库。用鼠标选择“student_info”数据库,进入如图2-28所示画面,显示“student_info”库中数据表信息。
(3)建立课程表、成绩表。在图2-28中,我们能看到页面右边student_info数据库中数据表下方有“在student_info数据库中创建一新表”栏目。
·在表“名字”中输入course。
·在“Number of fields”(字段数)任务栏空白处填数字3。
·点击“执行”,观察信息提交返回页面信息(见图2-29)。
然后,phpMyAdmin管理平台返回管理页面,按要求输入:
·在字段栏分别输入:course_id、course_name、course_desc。
·在字段类型栏目对应选择:char、varchar、text。
·输入字段长度:6、30、null。
·由于“课程说明”字段属于“文本”(备注等)类型,允许为空,需要选择null项目。
图2-28
图2-29
·选择course_id字段作为主索引。
·检查无误后,点击“保存”。
·观察屏幕返回信息(见图2-30)。
由图2-31中可以看见phpMyAdmin将屏幕图形操作转化为MySQL语言支持的SQL语言,在屏幕上显示并可直接修改该SQL语句。
按照上面方法完成成绩表的创建(records表见图2-32)
·创建表名:records。
·字段数:4。
·字段:stu_no、char、10。 //学号,定长字符,10位
·字段:course_id、char、6。 //课程代码,定长字符,6位
图2-30
图2-31
·字段:semester、varchar、20。 //学期,变长字符,20位
·字段:record、fload、4、1。 //数字,4位,1位小数
图2-32
(4)在图形界面中练习使用SQL语言。例如:
·在浏览器操作界面中选取“SQL”栏目。
·在SQL语言查询栏目中输入:select*fromstudent。
·点击“执行”。
·观察屏幕返回信息(见图2-33)。
图2-33
操作完成后,屏幕显示学生表(student表)全部信息(见图2-34)。
最后,还可以变化SQL语句加以练习。
图2-34
八、思考题
·什么是SQL语言?它有什么优势?
·通过网络浏览器访问和管理数据库有什么优势和问题?
九、实验报告要求
·每位同学独立提交实验报告。
·实验报告主要内容:网络数据库设计、操作步骤及运行结果。
·实验报告小结:包含对本次实验的体会和对实验中所存在问题的思考和建议。
·以.doc文档格式提交实验报告。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。