文档库 最新最全的文档下载
当前位置:文档库 › PHP、MySQL教程

PHP、MySQL教程

PHP、MySQL教程

https://www.wendangku.net/doc/7f498797.html,/reports/phpmysql_1219.html

PHP是一个服务器端的脚本语言。你可以将其理解成“插件”,

通过这个“插件”,你的Web服务器可以在接到浏览器的请求后不再

仅仅发出一个文本的Web页面。安装了PHP后,你的Web服务器可以

阅读一种新的类型的文件(PHP脚本),通过这种文件,服务器可以

在响应浏览器的请求之前从数据库中读取实时的信息并将其加入到

Web页面中去。要从一个数据库中获取信息,你首先需要拥有一个数

据库,这时我们就得提到MySQL了。MySQL是一个精巧的SQL数据库管理系统,虽然它不是开放源代码的产品,但在某些情况下你可以自由使用。由于它的强大功能、灵活性、丰富的应用编程接口(API)以及精巧的系统结构,受到了广大自由软件爱好者甚至是商业软件用户的青睐,特别是与Apache和PHP/PERL结合,为建立基于数据库的动态网站提供了强大动力。

第一节:PHP、MySQL安装篇

第二节:MySQL入门篇

第三节:PHP入门篇

第四节:PHP访问MySQL篇

第五节:关系型数据库设计

第六节:内容管理系统

第七节:内容的格式和提交篇

第八节:MySQL管理

PHP、MySQL教程:安装篇

2001年12月03日 来源:赛迪网 Kevin Yank

前言

首先,感谢你阅读这个教程!下面我会带着你实现从客户端设计的HTML 和JavaScript的世界中的超越。目前文本驱动的网站是如此的成功,而我们在这里所要学的是如果解决维护这个难题。

在我们开始前,我们有必要先了解一下我们的工作所需要的两个工具。在第一章内,我们会学习下载并安装我们将会用到的两个软件包:PHP和

MySQL。

PHP是一个服务器端的脚本语言。你可以将其理解成“插件”,通过这个“插件”,你的Web服务器可以在接到浏览器的请求后不再仅仅发出一个文本的Web页面。安装了PHP后,你的Web服务器可以阅读一种新的类型的文件(PHP脚本),通过这种文件,服务器可以在响应浏览器的请求之前从数据库中读取实时的信息并将其加入到Web页面中去。PHP是完全免费的,你可以自由地下载和使用。

要从一个数据库中获取信息,你首先需要拥有一个数据库,这时我们就得提到MySQL了。MySQL是一个关系型数据库管理系统(RDBMS)。它到底扮演了一个什么样的角色以及它是如果工作的,我们将在下面进行具体地讲解。基本上,它是一个软件包,这个软件包可以很好地组织和管理大量的数据。MySQL也使得我们可以很容易地通过象PHP这样的服务器端脚本语言来获取信息。MySQL的for

Unix-based平台(例如Linux)的非商业应用是免费的。

如果你足够幸运的话,你的Web主机可能已经为你安装了MySQL和PHP。如果是这种情况,有一些章节对你来说就没有作用了,你可以直接跳到如果你的Web主机提供PHP和MySQL。

我们在本教程中所讨论的大多数内容都适用于Windows-based或者

Unix-based的服务器。但是根据你使用的服务器类型的不同,安装过程会不一样下一节讲解如何在Windows-based的Web 服务器上安装。再下面的一节讲解如何在Linux(以及其他Unix-based的平台)下安装。如果你不是特别对安装过程感兴趣,你只需要选择阅读适合你的那一节。

在Windows下的安装

你可以到https://www.wendangku.net/doc/7f498797.html,(或者在https://www.wendangku.net/doc/7f498797.html,/mirrors.html列出的镜像站点之一)并选择Downloads

for Windows MySQL related software->Downloads->Register and download shareware version of MySQL-Win32,下载完文件后,将其解压并运行其中的setup.exe。

当你安装好之后,MySQL已经可以使用了(不包括我们不久将要执行的一些配置)。象你的Web服务一样,MySQL也是一个可以在后台运行的服务,所以它可以在任何时候响应对信息的请求。这个服务程序,你可以在你安装MySQL目录下的bin子目录下找到。如果你使用的是一个共享的版本,这个服务被称之为mysqld-shareware.exe。在执行前,将其改名为

mysqld.exe。在MS-DOS提示符下,通过如下命令开启这个服务:

C:mysql in> mysqld

要确保在Windows启动时就开启这个服务,你需要建立一个快捷方式,并将其加入到启动程序组中。此外,你还可以通过这个命令作为Windows NT/2000的一个服务安装:

C:mysql in> mysqld-nt --install

如果你在Windows NT/2000下运行共享版本有问题,你可以试试用单机模式运行这个服务:

C:mysql in> mysqld --standalone

下一步是安装PHP。在写这本教程的时候,PHP 4.0已经基本上成熟了。我自己就试过PHP 4.0-RC2,并没有遇到任何问题。估计最终的稳定版很快将会发布(可能到时候我们这个教程还没写完),我建议你安装最新的版本,这样当正式版出来时你将不需要做任何变动。

PHP可以从https://www.wendangku.net/doc/7f498797.html,(或者在https://www.wendangku.net/doc/7f498797.html,/mirrors.php列出的镜像站点之一)免费地下载。你需要“binaries for Win32”软件包。你可以从以下地址获得一个很好的PHP 3.0 for Windows的安装指南:

https://www.wendangku.net/doc/7f498797.html,/php/win32install.html。当PHP 4.0发布最终版时,你可能需要升级,但是4.0的安装基本上与3.0一样。你不会因为所选择的版本不同而遇到什么麻烦。

MySQL和PHP安装好之后,你可以进入安装配置了。

在Linux下的安装

这一节所讲述的是在RedHat Linux下安装PHP和MySQL的过程。如果你使用的是Linux的不同版本,或者是使用的是其它Unix-based的操作系统,这些步骤也是非常相似的,即使不是完全相同的。

作为RedHat Linux的用户,你可能会对下载和安装PHP和MySQL的RPM 发布感兴趣。RPM的确是优秀的,预打包的软件的安装非常容易。不幸的是,它们也会限制你选择怎么配置软件。因为这个原因,我认为使用PHP和MySQL 的RPM版本所带来的麻烦要比其实际价值来得更多。

因为有些RedHat Linux的默认配置会自动替你安装PHP,所以第一步就是从你的系统删除旧版本的PHP和MySQL。你需要以超级用户的身份登录来执行下面的命令。注意在下面的命令中,“%”表示shell的提示符,是不需要你输入的。

如果这两个命令或其中一个显示程序没安装,不要担心。如果第二个命令成功执行(也就是说,不显示任何信息),那就证明的确安装了老版本的PHP,你必须完全删除它。用你所习惯的文本编辑器打开Apache的配置文件(通常是/etc/httpd/conf/httpd.conf),寻找下面的这两行内容。这两行通常是分在文件的不同地方,所以如果这两行不在一起,那实在没什么好担心的。

LoadModule php3_module modules/libphp3.so

AddModule mod_php3.c

这两行是用来告诉Apache将PHP作为plug-in模块装入的。当你卸载了这个模块,你还需要删除这两行以保证Apache正常工作。你也可以在这两行的开头加(#)使其成为注释。

为了确保Apache还在正常工作,你现在必须在没有PHP插件的情况下重启它:

一切安排妥当后,你可以准备下载安装MySQL和PHP了。

在Linux下安装MySQL

MySQL for Linux的版本是免费的,你可以从https://www.wendangku.net/doc/7f498797.html,(或https://www.wendangku.net/doc/7f498797.html,/downloads/mirrors.html中列出的镜像站点之一)下载最后的稳定版(列在下载页的“recommended”中)。你应该获取“tarball source download”的版本,其文件名是mysql-version.tar.gz。

下载完文件后,你必须确保以超级用户的身份登录进行安装,除非你只想在你自己的home目录下安装MySQL。开始解开下载的文件并进入刚建立的目录中:

下面你需要配置MySQL的安装。除非你有绝对的把握,否则你需要指定安装的目录。我推荐使用 /usr/local/mysql:

在对显示器和显示器配置进行过检测之后,你最终将返回到命令提示符下。现在你可以编译MySQL了:

在编译后,你会重新返回到命令提示符下。现在你可以安装你新编译的程序了:

现在MySQL已经安装好了,但是在使用前,你还得安装它的数据库文件。在你的开始安装的目录下,输入下面命令:

一切都做好后,你可以删除你正在其中工作的目录了,在这个目录中仅仅包括了源程序和安装的临时文件。如果你可能还需要重新安装,你只需要重新解开mysql-version.tar.gz 文件。

当MySQL安装完成并且可以存储数据后,剩下的工作就是在你的计算机中运行这个服务了。你可以用超级用户或者你自己的用户(如果你是将这个服务安装在你自己的home目录下),但是,最好的方法是设置一个特殊的用户,这个用户只能启动MySQL服务。这会防止有人通过MySQL服务侵占你的系统。你可以使用以下命令建立一个特殊的MySQL用户:

在默认情况下,MySQL的所有数据库信息都存储在你安装的目录的var

子目录下。我们想设置这个目录只有我们的新的MySQL用户能访问。下面的这个命令能完成这个工作(我假定你将MySQL安装到/usr/local/mysql目录):

现在一切都安排好了。在MySQL目录下,输入以下命令:

现在MySQL服务已经被MySQL用户开启,除非你关闭你的计算机,这个服务将一直运行下去(就象Web和FTP服务一样)。要测试这个服务是不是正常运行,输入以下命令:

现在应该会显示MySQL服务的一些简单的统计信息。如果你看到的是一个错误信息,那就是出错了。你可以试一下重新安装。

如果你想让你的MySQL服务在你的系统启动时自动运行(就象你的Web 服务那样),你需要作相应设置。在MySQL目录的share/mysql子目录下,你会发现一个叫mysql.server的脚本,将它添加到你的系统的启动事务中就行了。

如果你已经设定了一个特殊的MySQL用户来启动MySQL服务,你需要编辑mysql.server脚本。用你熟悉的文本编辑器打开它并改变

mysql_daemon_user设定,使其指向你上面创建的用户:

将这个脚本添加到启动事务中是个比较复杂的任务。如果你使用的不是RedHat Linux而且你没有把握做这件事,你最好请教一下了解的人。在RedHat Linux中,执行以下命令(在MySQL目录下)会完成这个工作:

现在一切都做好了!要测试这个工作,你可以重启你的系统并对这个服务作出请求,看看它是不是正常工作了。在Linux下安装PHP

正如我们前面提到的,PHP并不是一个独立运行的程序。它实际上是你的Web服务(可能是Apache)的一个插件。实际上你有三种方法在Apache

中安装PHP插件:

作为一个CGI程序,Apache每次需要处理PHP页面时运行它。

作为一个模块编译到Apache程序中。

在Apache每次启动时作为一个模块载入。

第一种方法的安装和配置最简单,但是这需要Apache每次接收到PHP页面的请求时就将PHP作为一个程序调用。这肯定会降低你的Web服务器的响应时间,特别是同时接收到不止一个的请求时更是这样。

第二种方法和第三种方法在性能方面同样的优秀,但是很可能你已经安装好了Apache,你大概不想再去下载一次,并重新编译和重新安装。因此,我们使用第三种方法。

首先,我们从https://www.wendangku.net/doc/7f498797.html,(或者在https://www.wendangku.net/doc/7f498797.html,/mirrors.php中列出的镜像站点之一)下载PHP的软件包。当我们在写这个教程的时候,PHP 4.0已经基本上成熟了。我自己就试过PHP 4.0-RC2,并没有遇到任何问题。估计最终的稳定版很快将会发布(可能到时候我们这个教程还没写完),我建议你安装最新的版本,这样当正式版出来时你将不需要做任何变动。在这里,我们安装的是3.0,我会注意指出3.0和4.0在安装时可能会有的差别。

你所下载的文件的文件名将是php-version.tar.gz。我们的第一步是解开这个文件:

要将PHP作为Apache可载入的模块安装,你需要Apache的apxs程序。在个程序在绝大多数的Apache的版本中应该都已包括,但是如果你使用的是通过RedHat

Linux安装的拷贝,你需要安装Apache高级RPM软件包来获得它。你可以从你的RedHat光盘上找到这个软件包,你也可以从https://www.wendangku.net/doc/7f498797.html,下载。在默认的情况下,RedHat会将这个程序安装到/usr/sbin/apxs。如果你看到了这个文件,这证明它已经被安装了。

在这个安装过程中,你必须以超级用户的身份登录,因为其中包括了一些对Apache配置文件的变动。

下一步是配置PHP安装程序,以使它知道选择哪些选项,并在哪儿寻找它所需要的程序(例如Apache和MySQL)。除非你很有把握,否则你只需输入下面的命令(在同一行中):

如果你已经安装了PHP 3.0(不是4.0或更迟的版本),你也需要通过以下附加的参数告诉它在你的系统中从哪儿寻找MySQL:

当经过几屏对显示器的测试后,你会回到命令提示符下。下面两个命令会编译和安装PHP:

PHP现在已经被安装在/usr/local/php(除非你通过上面./configure的--prefix参数指定了不同的目录),你应该能在同一目录下(除非你通过上面./configure的--with-config-file-path参数指定了不同的目录)找到名为php.ini的配置文件, PHP提供了一个php.ini的模块文件,其文件名是php.ini-optimized (在PHP3.0中是php.ini-dist)。将这个文件拷贝到相应的目录:

对于PHP 3.0:

% cp php.ini-dist /usr/local/php/php.ini

你暂时不要担心php.ini的优化调整。现在,我们需要确保Apache知道从哪儿找PHP,这样它才能在启动时装载它。使用你熟悉的文本编辑器打开你的Apache httpd.conf 配置文件(在RedHat Linux中,在

/etc/httpd/conf/httpd.conf)。寻找象下面这样的一行:

LoadModule php4_module lib/apache/libphp4.so

如果你安装的是PHP 3.0,这一行中的php4换成php3。你所寻找的应该是一个新的未注释的行(不是以#开头的行),而不是你之前注释掉的那一行。一般情况下,它会和文件中其他LoadModule行显示在一起。当你找到它后,你需要改变路径以使它能够匹配文件中所有其他的LoadModule行。在RedHat Linux下,这意味着将这一行改变为:

LoadModule php4_module modules/libphp4.so

然后,寻找以DirectoryIndex开始的行。这一行告诉Apache对于一个给定的目录寻找默认页时所使用的文件名。通常,你会看到index.html和其他一些文件名,你需要将index.php和index.php3添加到这一行:

DirectoryIndex index.html index.cgi ... index.php index.php3

最后,到这个文件的最后并添加一个新行来告诉Apache哪些文件的扩展名被看成PHP文件:

AddType application/x-httpd-php .phtml .php .php3

一切都做好后,保存改变并重启你的Apache服务。Apache启动时不应该有任何出错信息。

安装后的设置

当PHP和MySQL都安装好之后,不管你是在Windows下、Linux下或其他操作系统下,第一件事都是为MySQL设置一个“root口令”。MySQL仅仅允许经授权的用户访问并操作它的数据库中所存储的信息,所以你必须让MySQL清楚谁是经授权的,谁是未经授权的。当MySQL第一次被安装时,它会生成一个叫“root”的用户,该用户可以不用口令访问所有的东西。你的第一个任务就是为root用户设置口令,这样才能保证不会任何人都可以搞乱你的数据库。

你必须认识到MySQL的重要性,正如Web服务和FTP服务一样,在同一个网络上的任何机器都可以访问它。如果你在一个连接到Internet的计算机上工作,这就意味着这个世界上的任何人都可以试图连接你的MySQL服务器!你必须立即选择一个很难猜的口令!

要设置MySQL中的root口令,在你安装MySQL的目录的bin子目录下输入下面的命令(包括引号):

mysqladmin -u root password "your new password"

要确保MySQL接受这个改变,你必须告诉它重新载入经论证的用户和口令的列表:

mysqladmin -u root reload

如果这个命令显示一个错误信息告诉你无法访问,不要担心,这仅仅证明口令已经生效了。

要测试你的新密码,你可以请求MySQL服务器告诉你有关它的当前的状态:

mysqladmin -u root -p status

当有提示时,输入密码。你会看到一些简单的信息,这些信息包含了服

务的当前状态。-u root参数告诉程序你想要以“root”用户登入。-p参数告诉程序在连接之前提示你输入你的口令。status参数告诉程序你想要看看系统状态。

如果你需要关闭MySQL服务器,你可以使用下面的命令。注意这里的-u root和-p参数的含义和上面提到的一样:

mysqladmin -u root -p shutdown

现在你的MySQL数据库系统已经安全运行了,现在剩下的工作就是配置PHP了。PHP是使用一个叫php.ini的文本文件配置的。如果你是在Windows 下安装PHP的,你应该已经拷贝了php.ini到你的Windows目录。如果你是使用上面的说明在Linux安装PHP的,你应该已经拷贝了php.ini到PHP安装目录下(/usr/local/php)。

用你熟悉的文本编辑器打开php.ini 并大致浏览一下。绝大多数的设置已经被很好地说明,而且绝大多数的默认设置也可以适应你的要求。只要检查并确认你的配置与下面匹配:

如果你运行的是PHP 4.0,你还需要检查下面这一行:

如果你是在Windows下运行PHP 3.0,去除开头的“;”来取消下面这一行的注释(4.0不需要):

extension=php_mysql.dll

保存php.ini的变动,然后重启你的Web服务器。在Linux下,如果你是以超级用户登录的,你可以重启Apache:

/etc/rc.d/init.d/httpd restart

现在万事俱备!现在唯一剩下的就是测试并确认是不是一切OK了(参看你的第一个PHP脚本)。

如果你的Web主机提供PHP和MySQL

如果为你提供Web空间的主机已经为你安装并设置了MySQL和PHP,你只希望学会如何使用它们,你需要做的事实在不多。现在你应该和你的主机

提供商取得联系,以获取如何访问这些服务的信息。

特别重要的,你需要获得为你设置的访问MySQL服务的用户名和口令。他们可能已经为你设置了一个空数据库(这会防止你和同一MySQL服务器上的其他用户在数据库上发生混乱),你这时还需要知道这个数据库的名字。

有两个方法访问MySQL服务。第一种方法是使用telnet登入主机并使用安装MySQL客户端程序(mysql、mysqladmin、mysqldump等)来直接实现和MySQL服务实现互动。第二种方法是在你自己的计算机上安装那些客户端程序并连接上MySQL服务器。你的Web主机可能会支持其中的一种或两种方法,所以你得先问清楚。

如果他们支持通过telnet登入进行你的工作,你还需要一个通过telnet 登入的用户名和口令(这个用户名和口令可能和你访问MySQL服务的不一样)。你得把这两个设置信息都问清楚。

如果他们支持远程访问MySQL服务,你需要下载一个程序去连接并实现与服务器的互动。这个教程会假设你已经从https://www.wendangku.net/doc/7f498797.html,下载了一套MySQL 客户端程序。这个软件包既可以在Window下运行,也可以在Unix下运行,而且是免费的。包含在软件包中的安装说明非常简单。如果你更喜欢一些图形化界面的,你可以下载类似MySQLWinAdmin

for Windows(也可以从https://www.wendangku.net/doc/7f498797.html,获得)。我推荐你首先学会使用基本的客户端程序,尽管,在这些程序中使用的命令会与在PHP脚本中访问MySQL 数据库的脚本很相像。

你的第一个PHP脚本

为你讲了那么多安装的事,却还一直没有让你尝试PHP驱动的Web页面的滋味,对我来说实在是不公平的,所以在这里为你安排了一道开胃的小菜。

打开你所熟悉的文本或HTML编辑器并建立一个叫today.php的新文件。在文件中输入下面的内容:

将它保存下来并按通常你放置HTML文件的那样将其放置在你的Web站点上,现在你再通过你的浏览器看看这一页。

很棒,不是吗?如果你通过你的浏览器显示源文件,你所看到将是规范的HTML文件。在发送到你的浏览器之前,PHP代码(上面的程序中所有在之间的代码)都已经被Web服务器解释并转换成通常的文本。PHP(以及其他服务器端的脚本语言)的一个优点就是网站浏览者不会知道脚本语言自身。

不要太多地在意我在这个程序中使用的代码。不久你就会对它很熟悉了。

结语

现在所有工作都如期做完了,你应该已经在你的Web服务器上安装好MySQL和PHP了。如果这个小例子不能正常工作(例如,它显示了未加处理的PHP源代码),那肯定是安装中出了什么问题。

在下一章内,我们会学习关系型数据库的基本知识,并开始使用MySQL 来工作。如果你之前没有接触过数据库,我肯定你会大开眼界!

PHP、MySQL教程:MySQL入门篇

2001年12月04日 来源:赛迪网 原著:Kevin Yank 翻译:处处

欢迎回到这个教程!在上一章,我们学习了安装和配置PHP和MySQL这两个软件。在这一章,我们将集中学习如果使用结构化查询语言(SQL)在MySQL数据库中工作。

数据库入门

正如我在上一章简要说明的那样,PHP是一个服务器端的脚本语言,通过这个语言你可以在你的Web页面中添加指令,这样你的Web服务软件(可能是Apache,Personal Web Server或其他任何软件)会在向发出请求的浏览器发送这些页面前首先执行它。在那个简单的例子中,我展示了如何每次在接受请求的Web页面中插入当前的日期。

现在一切都很清楚了,但是如果在其中添加一个数据库会真正引起我们的兴趣。一个数据库服务器(我们这里是MySQL)是一个使用一定格式存储大量信息的程序,通过这个程序你可以很简单地使用象PHP这样的脚本语言

来访问数据。例如,你可以使用PHP在数据库中获得一个笑话的列表并将其显示到你的Web站点。

在这个例子中,笑话被完全存储在数据库中。这样做有两个好处。首先,你不再需要为你的每个笑话写一个HTML文件,你只需要写一个PHP文件来从数据库中引出任何的笑话并显示它;其次,要添加笑话到你的Web站点中,也仅仅是添加笑话到数据库中。PHP代码在新笑话包含在列表中时可以自动显示新的笑话。

现在让我们通过这个例子来看看数据是如何在数据库中存储的。一个数据库包含一个或几个数据表(table),每一个数据表包含了一个事物的列表。对于我们的笑话数据库来说,我们一开始可能需要一个名为“jokes”的数据表,这个数据表包含了一个笑话列表。数据库中每个数据表包含一个或几个数据列(column)或数据域(field)。回到我们的例子中来,我们的“jokes”数据表可能有这样的两列:笑话的正文以及笑话添加到数据库中的日期。每个存储在数据表中的笑话我们称之为一行。要了解这儿提到的所有术语,你可以看下面这张图:

请注意,在笑话正文(“JokeText”)和添加日期(“JokeDate”)这两个数据列之外,我还增加了一个叫做“ID”的数据列。这个数据列的作用是给每个笑话分配一个唯一的号码,这样我们可以很容易地查阅并区分这些笑话。

现在再复习一下,上面的数据表中有三个数据列、两行。每一行包含了一个笑话的ID、它的正文以及它的添加日期。掌握了这些基本术语后,我们将开始使用MySQL。

登录MySQL

操作MySQL数据库的标准界面是连接到MySQL服务软件(在第一章内安装)并同时输入命令。要连接上服务器,我们需要使用MySQL客户端程序。如果你自己安装了MySQL服务软件,不管你是在Windows下安装的,还是在一些Unix的版本下安装的,你应该已经在安装服务程序的同一地点安装了这

个客户端程序。在Linux,这个程序被称之为mysql,其位置默认是

目录。在Windows下,这个程序被称之为mysql.exe,其位置默认是

C:mysql in目录。

如果你不是自己安装的MySQL服务器(例如,你是在你的Web主机提供商的MySQL服务器上工作),那么有两个方法连接到MySQL服务器,第一个方法是使用telnet登录到你的Web主机的服务器上,然后在那儿运行mysql。第二种方法是从https://www.wendangku.net/doc/7f498797.html,(for Windows和for Linux的都可以免费获得)下载并安装MySQL客户端程序。这两种方法都可以很好地工作,你的Web主机可能支持其中的一种,或者两种都支持(你需要去问清楚)。

不管你选择了哪种方法,不管你使用的是哪种系统,你最终都应该在一个命令行执行MySQL客户端程序去连接你的MySQL服务器,你需要输入下面的命令:

你需要将换成你的MySQL服务器正在其上运行的计算机的主机名或IP地址。如果你在运行服务的同一台计算机上运行客户端程序,你可以不使用-h 而且直接使用-h localhost。应该是你的MySQL用户名。如果你是自己安装的MySQL服务器,这应该就是root。如果你是使用的你的Web主机提供商的MySQL服务,这应该是他们为你指定的MySQL用户。

“-p”参数告诉程序提示你输入你的口令,这将在你输入上面的命令后立即显示。如果你是自己安装的MySQL,你的口令就是你在第一章内选择的root的口令。如果你是使用的你的Web主机提供商的MySQL服务,这应该是他们给你的MySQL口令。

如果你一切都输入好了,MySQL客户端程序会连接上MySQL服务器并返回给你一个MySQL的命令行:

现在,MySQL服务器实际上是连接了好几个数据库(这使得一个Web主机可以为几个用户设置同一个MySQL服务器)。所以你的下一步应该是选择一个工作的数据库。首先,获得当前服务器上的数据库列表。输入下面的命令(不要忘了分号!),然后打回车。

MySQL会显示给你服务器上的数据库列表。如果这是一个新安装的服务器(也就是说,这是你在第一章里自己安装的)。这个列表将会是这样:

+----------+

| Database |

+----------+

| mysql |

| test |

+----------+

2 rows in set (0.11 sec)

MySQL服务器使用第一个被称之为mysql的数据库来管理用户及其口令和权限。现在我们暂时不会关心这个数据库,在以后的章节中,我们会讨论它。第二个叫test是一个数据模块。你可以删除这个数据库,在我们的教程中不会使用到它(我们会自己建立一些数据库)。删除什么东西在MySQL中被称之为“dropping”,要删除test数据库,其正确的命令应该是:

如果你输入了这个命令,并打了回车,MySQL会删除这个数据库,并返回Query OK。注意,并不会提示你诸如“这是否确定”这样的信息。所以你在MySQL输入命令必须十分小心。就象我们在这儿看到的,你可以完全删除数据库--包含它其中的所有信息--仅仅只用一个命令!

在我们进入下一步之前,让我们先来看看MySQL命令行的连接。正如我们已经注意到的,在MySQL中的所有命令都必须以分号(;)结束。如果你忘记了这个分号,MySQL会认为你还没有结束输入你的命令,并会让你这下一行中继续录入:

MySQL在等待你输入命令中的剩余部分时,提示符会从mysql>改变为->。对于一个长命令,这是很有用的,你可以将你的命令分几行输入。

如果你中途发现你的命令出错了,你可以完全取消当前的命令(译者注:是指尚未执行的命令)并从头来过。要完成这个工作,你只需要输入c并按回车:

MySQL会完全忽略你刚才输入的命令,并返回到提示符等待你的下一个命令。

最后,当你要退出MySQL客户端程序时,你只需要输入quit或者exit (这两个命令是完全一样的)。这是唯一不用以分号结尾就可以执行的命令。

什么是SQL?

在这篇教程中我们用来告诉MySQL去做什么的命令其实是一个叫结构化查询语言(SQL)的规范的一部分。SQL中的命令也被称之为查询(在这篇教程中,我们会交替地采用这两种称呼)。

SQL是实现与绝大多数的数据库的交互的标准语言,所以即使你将来不再使用MySQL,转而使用Microsoft SQL Server,你会发现绝大多数命令是相同的。你必须理解SQL和MySQL的区别。MySQL是你正在使用的数据库服务软件。SQL是你用来实现和数据库的交互的语言。

建立一个数据库

如果你的Web主机提供商已经为你分配了一个用来工作的数据库。你先耐心地等待一下,等一下我们会和你继续讨论下面的问题。如果你是在自己安装的MySQL服务器上工作。执行下面的命令,很容易地你就可以建立一个数据库了:

我的数据库的名字是jokes,这是为了与我们工作的例子一致。其实你可以给你的数据库起任何你自己喜欢的名字。不过,如果你是在Web主机提供商的MySQL服务器上工作,它们可能已经为你建立了一个数据库,你就没法选择数据库的名字了。

现在我们已经有了一个数据库,我们需要告诉MySQL我们想要使用这个数据库。下面这个命令应该也不太难记:

现在你可以开始使用你的数据库了。在你在其中添加数据表之前,这个数据库将是空的,我们的第一步工作应该是建立一个数据表来保存我们的笑话。

建立一个数据表

我们之前遇到的SQL命令都是非常简单的,但是因为数据表是比较灵活的,相应地建立它们的命令就要复杂得多了。建立数据表的基本格式是这样的:

现在回到我们的例子“Jokes”表。这个表有三个数据列:ID(一个数字)、JokeText(笑话的正文)和JokeDate(加入的日期)。建立这个表的命令应该是这样的:

看上去很复杂,是吧?让我们将它分解一下:

第一行是比较简单的;它说明我们想要建立一个新的名为Jokes的数据表。

第二行说明我们需要一个数据列叫ID,这个列的类型应该是一个整数(INT)。这一行还定义了这个数据列的其他一些信息。首先,这一行不允许为空(NOT NULL)。第二,如果你没有为一列指定一个值,MySQL会选择使用一个比当前最大值大的值(AUTO_INCREMENT)。最后,这个数据列还是这数据表的唯一的标识符,所以这个数据列中的所有值都应该是不重复的(PRIMARY

KEY)。

第三行是非常简单的;这说明我们需要一个数据列叫JokeText,这个列的类型应该是一个文本(TEXT)。

第四行定义了我们的最后一列,列名是JokeDate,这个列的类型是日期型(DATE)这个列也不能为空(NOT NULL)。

请注意,我们在输入SQL命令时,大小写是完全自由的,但是在一个Unix-based系统下运行的MySQL服务,因为我们必须与MySQL数据目录下的

目录和文件一致,当遇到数据库名和表名时,我们必须区分大小写。否则,MySQL是完全对大小写不敏感的,只有一种情况例外,在同一命令中多次出现的表名、列名以及其他名字必须在拼写上完全一致。

我们还应该注意到,我们为我们建立的每一列指定了一个指定的类型。ID是一个整型,JokeText是一个文本型,JokeDate是一个日期型。MySQL允许我们为每一个列定义一个类型。这不仅仅可以帮助你组织数据,而且你可以利用它对数据进行比较(我们在下面会看到)。要想得到一个关于MySQL 支持的数据类型的完整的列表,你可以参看MySQL用户手册。

总之,如果你正确输入了上面的命令,MySQL会返回 Query OK并会为你建立你的第一个数据表。如果你在输入中出了什么错误,MySQL会告诉你输入的语名有问题,而且会给你一些提示,说明什么地方它不能理解。

对于这样一个复杂的命令,最终只出现Query OK是相当单调的。让我们看看你的新数据表是不是正常地建立了。输入下面的命令:

mysql> SHOW TABLES;

响应应该是这样的:

+-----------------+

| Tables in jokes |

+-----------------+

| Jokes |

+-----------------+

1 row in set

这是一个关于我们的数据库(我们在前面将其命名为jokes)中的所有表的列表。这个列表仅仅包含了一个数据表:Jokes,这个表是我们刚刚建立的。看来一切都好了,让我们再来近看一下这个Jokes表:

mysql> DESCRIBE Jokes;

+----------+---------+------+-----+------------+- -

| Field | Type | Null | Key | Default | ...

+----------+---------+------+-----+------------+- -

| ID | int(11) | | PRI | 0 | ...

| JokeText | text | YES | | NULL |

| JokeDate | date | | | 0000-00-00 |

+----------+---------+------+-----+------------+- -

3 rows in set

这儿提供了一个数据列的列表。正如我们看到的,这个表中有三个列,在返回的结果表中这被表示为三行。详细资料比较难以看懂,但是你认真看一下,应该还是能了解其大致的含义的。不要为这件事过于担心。我们还会继续学习,我们还会在这个表中添加一些笑话。

我们还需要知道一些其他的事,例如删除一个表。这和删除一个数据库一样的简单,简单得令人恐怖。命令也几乎一样:

mysql> DROP TABLE ;

向数据库中添加数据

我们的数据库和数据表都已经建立好了,现在我们该向我们的数据库中添加笑话了。向数据库中添加数据的命令被称之为INSERT。这个命令有两种基本格式:

所以要向我们的数据表中添加笑话,我们可以在下面的两个命令中选择一个:

请注意在INSERT命令的第二种格式中,你给出的列的顺序必须与你给出的数据的顺序一致。

现在你知道如何向表中添加了,下面让我们来看看如何显示表的内容。

显示存储的数据

显示你的数据库中表的存储数据的命令,被称之为SELECT,这个命令无疑是SQL语言中最复杂的命令。说它复杂,是因为数据库的最主要的优点就是可以机动地给出数据。而机动性就是通过这个命令实现的。

下面的命令会列出存储在表Jokes中的所有数据:

mysql> SELECT * FROM Jokes;

这个命令意味着“从Jokes中挑选所有的东西”。如果你试着输入这个命令,你会看到这样的显示:

+----+---------------------------------------

------------------------+------------+

| ID | JokeText

| JokeDate |

+----+---------------------------------------

------------------------+------------+

| 1 | Why did the chicken cross the road? To

get to the other side! | 2000-04-01 |

+----+---------------------------------------

------------------------+------------+

1 row in set (0.05 sec)

这看上去有点混乱,这是因为JokeText列实在是太长了。因为这个原因,我们可能想要告诉MySQL省去JokeText列,这个命令会实现这个功能:

mysql> SELECT ID, JokeDate FROM Jokes;

这一次我们不再告诉它“挑选所有的东西”了,我们告诉它我们对显示哪些列感兴趣。结果应该是这样的:

+----+------------+

| ID | JokeDate |

+----+------------+

| 1 | 2000-04-01 |

+----+------------+

1 row in set (0.00 sec)

但是我们是不是可以多少显示一点笑话正文的内容呢?作为对我们所想显示的列的补充,我们可用“函数”来更改我们所要显示的列。有一个叫做LEFT的函数,可以让我们告诉MySQL当我们显示一个数据列时最多显示几个字符。例如,如果我们只想显示JokeText列的前20个字符:

相关文档