用PHP和MySQL構建一個資料庫驅動的網站三_PHP教程

來源:互聯網
上載者:User
摘要   在這一章,我們將集中學習如何使用結構化查詢語言 (SQL)(SQL)在MySQL資料庫中工作。 (2002-08-29 14:11:10) -------------------------------------------------------------------------------- By Wing, 出處:Linuxaid 第二章: MySQL入門   歡迎回到這個教程!在上一章,我們學習了安裝和配置PHP和MySQL這兩個軟體。在這一章,我們將集中學習如果使用結構化查詢語言 (SQL)(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   SQL資料庫的標準介面是串連到MySQL服務軟體(在第一章內安裝)並同時輸入命令。要串連上伺服器,我們需要使用MySQL用戶端程式。如果你自己安裝了MySQL服務軟體,不管你是在Windows下安裝的,還是在一些Unix的版本下安裝的,你應該已經在安裝服務程式的同一地點安裝了這個用戶端程式。在Linux,這個程式被稱之為mysql,其位置預設是/usr/local/mysql/bin 目錄。在Windows下,這個程式被稱之為mysql.exe,其位置預設是C:mysqlin目錄。   是自己安裝的MySQL伺服器(例如,你是在你的Web主機供應商的MySQL伺服器上工作),那麼有兩個方法串連到MySQL伺服器,第一個方法是使用telnet登入到你的Web主機的伺服器上,然後在那兒運行mysql。第二種方法是從http://www.mysql.com/(for Windows和for Linux的都可以免費獲得) 下載並安裝MySQL用戶端程式。這兩種方法都可以很好地工作,你的Web主機可能支援其中的一種,或者兩種都支援(你需要去問清楚)。   擇了哪種方法,不管你使用的是哪種系統,你最終都應該在一個命令列執行MySQL用戶端程式去串連你的MySQL伺服器,你需要輸入下面的命令: mysql -h -u -p   換成你的MySQL伺服器正在其上啟動並執行電腦的主機名稱或IP地址。如果你在運行服務的同一台電腦上運行用戶端程式,你可以不使用-h 而且直接使用-h localhost。應該是你的MySQL使用者名稱。如果你是自己安裝的MySQL伺服器,這應該就是root。如果你是使用的你的Web主機供應商的MySQL服務,這應該是他們為你指定的MySQL使用者。   參數告訴程式提示你輸入你的口令,這將在你輸入上面的命令後立即顯示。如果你是自己安裝的MySQL,你的口令就是你在第一章內選擇的root的口令。如果你是使用的你的Web主機供應商的MySQL服務,這應該是他們給你的MySQL口令。   切都輸入好了,MySQL用戶端程式會串連上MySQL伺服器並返回給你一個MySQL的命令列: mysql>   ySQL伺服器實際上是串連了好幾個資料庫(這使得一個Web主機可以為幾個使用者佈建同一個MySQL伺服器)。所以你的下一步應該是選擇一個工作的資料庫。首先,獲得當前伺服器上的資料庫列表。輸入下面的命令(不要忘了分號!),然後打斷行符號。 mysql> SHOW DATABASES;   L會顯示給你伺服器上的資料庫列表。如果這是一個新安裝的伺服器(也就是說,這是你在第一章裡自己安裝的)。這個列表將會是這樣: +----------+ | Database | +----------+ | mysql | | test | +----------+ 2 rows in set (0.11 sec)   L伺服器使用第一個被稱之為mysql的資料庫來系統管理使用者及其口令和許可權。現在我們暫時不會關心這個資料庫,在以後的章節中,我們會討論它。第二個叫test是一個資料模組。你可以刪除這個資料庫,在我們的教程中不會使用到它(我們會自己建立一些資料庫)。刪除什麼東西在MySQL中被稱之為“dropping”,要刪除test資料庫,其正確的命令應該是: mysql> DROP DATABASE test;   入了這個命令,並打了斷行符號,MySQL會刪除這個資料庫,並返回Query OK。注意,並不會提示你諸如“這是否確定”這樣的資訊。所以你在MySQL輸入命令必須十分小心。就象我們在這兒看到的,你可以完全刪除資料庫--包含它其中的所有資訊--僅僅只用一個命令!   入下一步之前,讓我們先來看看MySQL命令列的串連。正如我們已經注意到的,在MySQL中的所有命令都必須以分號(;)結束。如果你忘記了這個分號,MySQL會認為你還沒有結束輸入你的命令,並會讓你這下一行中繼續錄入: mysql> SHOW -> DATABASES;   L在等待你輸入命令中的剩餘部分時,提示符會從mysql>改變為->。對於一個長命令,這是很有用的,你可以將你的命令分幾行輸入。   途發現你的命令出錯了,你可以完全取消當前的命令(譯者註:是指尚未執行的命令)並從頭來過。要完成這個工作,你只需要輸入c並按斷行符號: mysql> DROP DATABASEcmysql>   L會完全忽略你剛才輸入的命令,並返回到提示符等待你的下一個命令。   你要退出MySQL用戶端程式時,你只需要輸入quit或者exit (這兩個命令是完全一樣的)。這是唯一不用以分號結尾就可以執行的命令。 mysql> quitBye 什麼是SQL?   程中我們用來告訴MySQL去做什麼的命令其實是一個叫結構化查詢語言 (SQL)(SQL)的規範的一部分。SQL中的命令也被稱之為查詢(在這篇教程中,我們會交替地採用這兩種稱呼)。   實現與絕大多數的資料庫的互動的標準語言,所以即使你將來不再使用MySQL,轉而使用Microsoft SQL Server,你會發現絕大多數命令是相同的。你必須理解SQL和MySQL的區別。MySQL是你正在使用的資料庫服務軟體。SQL是你用來實現和資料庫的互動的語言。 建立一個資料庫   Web主機供應商已經為你分配了一個用來工作的資料庫。你先耐心地等待一下,等一下我們會和你繼續討論下面的問題。如果你是在自己安裝的MySQL伺服器上工作。執行下面的命令,很容易地你就可以建立一個資料庫了: mysql> CREATE DATABASE jokes;   庫的名字是jokes,這是為了與我們工作的例子一致。其實你可以給你的資料庫起任何你自己喜歡的名字。不過,如果你是在Web主機供應商的MySQL伺服器上工作,它們可能已經為你建立了一個資料庫,你就沒法選擇資料庫的名字了。   已經有了一個資料庫,我們需要告訴MySQL我們想要使用這個資料庫。下面這個命令應該也不太難記: mysql> USE jokes;   以開始使用你的資料庫了。在你在其中添加資料表之前,這個資料庫將是空的,我們的第一步工作應該是建立一個資料表來儲存我們的笑話。 建立一個資料表   遇到的SQL命令都是非常簡單的,但是因為資料表是比較靈活的,相應地建立它們的命令就要複雜得多了。建立資料表的基本格式是這樣的: mysql> CREATE TABLE ( -> , -> , -> ... -> );   現在回到我們的例子“Jokes”表。這個表有三個資料列:ID(一個數字)、JokeText(笑話的本文)和JokeDate(加入的日期)。建立這個表的命令應該是這樣的: mysql> CREATE TABLE Jokes ( -> ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, -> JokeText TEXT, -> JokeDate DATE NOT NULL -> );   看上去很複雜,是吧?讓我們將它分解一下:   第一行是比較簡單的;它說明我們想要建立一個新的名為Jokes的資料表。   第二行說明我們需要一個資料列叫ID,這個列的類型應該是一個整數(INT)。這一行還定義了這個資料列的其他一些資訊。首先,這一行不允許為空白(NOT NULL)。第二,如果你沒有為一列指定一個值,MySQL會選擇使用一個比當前最大值大的值(AUTO_INCREMENT)。最後,這個資料列還是這資料表的唯一的標識符,所以這個資料列中的所有值都應該是不重複的(PRIMARY KEY)。   第三行是非常簡單的;這說明我們需要一個資料列叫JokeText,這個列的類型應該是一個文本(TEXT)。   第四行定義了我們的最後一列,列名是JokeDate,這個列的類型是日期型(DATE)這個列也不可為空(NOT NULL)。   請注意,我們在輸入SQL命令時,大小寫是完全自由的,但是在一個Unix-based系統下啟動並執行MySQL服務,因為我們必須與MySQL資料目錄下的目錄和檔案一致,當遇到資料庫名和表名時,我們必須區分大小寫。否則,MySQL是完全對大小寫不敏感的,只有一種情況例外,在同一命令中多次出現的表名、列名以及其他名字必須在拼字上完全一致

http://www.bkjia.com/PHPjc/532244.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/532244.htmlTechArticle摘要 在這一章,我們將集中學習如何使用結構化查詢語言 (SQL)(SQL)在MySQL資料庫中工作。 (2002-08-29 14:11:10) -------------------------------------------...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.