1 mysql 資料庫的使用 網頁資料庫的基礎 網頁資料庫的基礎 下載與安裝 mysql...
Post on 20-Dec-2015
267 views
TRANSCRIPT
1
MySQLMySQL資料庫的使用資料庫的使用 網頁資料庫的基礎網頁資料庫的基礎 下載與安裝下載與安裝 MySQLMySQL 啟動啟動 MySQLMySQL 伺服器伺服器 WebWeb 介面的介面的 MySQLMySQL 管理程式管理程式 MySQLMySQL 建立資料庫建立資料庫在在 MySQLMySQL 匯入資料表匯入資料表
2
資料庫系統資料庫系統 -- 說明說明 在電腦計算機科學的應用領域,「資料庫」在電腦計算機科學的應用領域,「資料庫」(( DatabaseDatabase )才是公司行號或家庭電腦化的推)才是公司行號或家庭電腦化的推手,眾多的出勤管理系統、倉庫管理系統、進銷存手,眾多的出勤管理系統、倉庫管理系統、進銷存系統或小至錄影帶店管理系統,這些應用程式系統系統或小至錄影帶店管理系統,這些應用程式系統都屬於不同應用的資料庫系統。都屬於不同應用的資料庫系統。
資料庫系統本身是一套應用程式,例如:資料庫系統本身是一套應用程式,例如: AccessAccess、、MySQLMySQL、、 SQL ServerSQL Server和和 OracleOracle 等,資料庫使等,資料庫使用者可以使用資料庫語言用者可以使用資料庫語言 SQLSQL 來儲存和管理所需來儲存和管理所需的資料,事實上,只有複雜的應用系統,程式開發的資料,事實上,只有複雜的應用系統,程式開發者才會替客戶量身定作所需的資料庫系統。者才會替客戶量身定作所需的資料庫系統。
3
資料庫系統資料庫系統 -- 資料庫系統資料庫系統 開發資料庫系統主要是在建立資料庫使用介面和決開發資料庫系統主要是在建立資料庫使用介面和決
策架構,針對不同的使用者需求來存取資料庫的記策架構,針對不同的使用者需求來存取資料庫的記錄,至於資料庫系統本身,只是負責管理和存取資錄,至於資料庫系統本身,只是負責管理和存取資料,作為應用系統的資料來源。料,作為應用系統的資料來源。
資料庫主要的目的是儲存資料,資料是儲存在資料資料庫主要的目的是儲存資料,資料是儲存在資料庫的「資料表」(庫的「資料表」( TablesTables ),每一個資料表使用),每一個資料表使用「欄位」(「欄位」( FieldsFields )分類成很多群組,每一個群)分類成很多群組,每一個群組是一筆「記錄」(組是一筆「記錄」( RecordsRecords ))。。
4
資料庫系統資料庫系統 -- 資料表範例資料表範例 通訊錄資料表的記錄,如下表所示:通訊錄資料表的記錄,如下表所示:
表格資料是一個資料表的記錄資料,表格的每一列表格資料是一個資料表的記錄資料,表格的每一列是一筆記錄的群組,這個群組分成欄位:編號、姓是一筆記錄的群組,這個群組分成欄位:編號、姓名、地址、電話和電子郵件地址,在一個資料庫可名、地址、電話和電子郵件地址,在一個資料庫可以同時擁有多個資料表。以同時擁有多個資料表。
5
資料庫系統資料庫系統 -- 索引索引 我們使用資料庫儲存資料的目的是為了快速我們使用資料庫儲存資料的目的是為了快速
排序和查詢,資料表可以使用「索引」排序和查詢,資料表可以使用「索引」(( IndexIndex )將資料系統化的整理,以便在)將資料系統化的整理,以便在大量資料中快速找到所需的資料或進行排序。大量資料中快速找到所需的資料或進行排序。
例如:在例如:在【【通訊錄通訊錄】】資料表中選擇資料表中選擇【【編號編號】】欄位建立主索引,或稱為「主鍵」欄位建立主索引,或稱為「主鍵」(( Primary KeyPrimary Key ),如此透過編號就可以),如此透過編號就可以加速資料表記錄的搜尋和排序。加速資料表記錄的搜尋和排序。
6
PHPPHP 與資料庫與資料庫 PHPPHP 提供眾多的內建函數可以配合不同的資料庫提供眾多的內建函數可以配合不同的資料庫
系統建立網頁資料庫,換句話說,系統建立網頁資料庫,換句話說, PHPPHP 程式如同程式如同檔案讀寫一般,可以在伺服端存取資料庫的記錄資檔案讀寫一般,可以在伺服端存取資料庫的記錄資料,其架構如下圖所示:料,其架構如下圖所示:
7
下載與安裝下載與安裝 MySQLMySQL
MySQLMySQL 是一套「是一套「 Open SourceOpen Source 」(開放原始」(開放原始碼)由碼)由 MySQL ABMySQL AB 公司開發與支援的資料庫系統,公司開發與支援的資料庫系統,這是一套支援這是一套支援 SQLSQL 語言的資料庫系統,其官方網語言的資料庫系統,其官方網址為:址為: http://www.mysql.comhttp://www.mysql.com 。。
MySQLMySQL 資料庫系統使用資料庫系統使用 C/C++C/C++ 語言開發,支援語言開發,支援多種不同的平台,不但可以在多種不同的平台,不但可以在 LinuxLinux 作業系統安作業系統安裝,更提供裝,更提供 WindowsWindows 作業系統的版本,在作業系統的版本,在WindowsWindows 環境一樣可以使用環境一樣可以使用 MySQLMySQL 資料庫系統。資料庫系統。
8
在在 LinuxLinux 安裝安裝 MySQLMySQL 目前目前 LinuxLinux 作業系統大都預設安裝作業系統大都預設安裝 MySQLMySQL 伺服器,伺服器,
在這一節的主要目的是說明如何在在這一節的主要目的是說明如何在 LinuxLinux 安裝最新安裝最新版本的版本的 MySQLMySQL 。。
在本書的在本書的 LinuxLinux 相關軟體都是從原始程式碼開始安相關軟體都是從原始程式碼開始安裝。不過裝。不過 MySQLMySQL 除了提供原始程式碼外,還提供除了提供原始程式碼外,還提供「「 RPMRPM 」(」( Redhat Package ManagerRedhat Package Manager )檔案,)檔案,這是一種已經編譯的檔案,可以在這是一種已經編譯的檔案,可以在 LinuxLinux 作業系統作業系統直接進行安裝的套件。直接進行安裝的套件。
9
在在 WindowsWindows 安裝安裝 MySQLMySQL
在在WindowsWindows 作業系統的作業系統的 MySQLMySQL 安裝程式檔案是安裝程式檔案是一個一個 ZIPZIP 格式的壓縮檔,只需解壓縮後就可以進格式的壓縮檔,只需解壓縮後就可以進行安裝,其步驟如下所示:行安裝,其步驟如下所示:
請下載或使用書附光碟的請下載或使用書附光碟的 MySQLMySQL 安裝程式檔案安裝程式檔案【【mysql-5.0.??-win.zipmysql-5.0.??-win.zip 】】,在解壓縮後,按二,在解壓縮後,按二下下【【 Setup.exeSetup.exe 】】安裝安裝 MySQLMySQL 。。
10
在在 LinuxLinux 啟動啟動 MySQL-MySQL- 手動啟動手動啟動MySQLMySQL
請在請在 LinuxLinux 的終端機輸入的終端機輸入【【 cd cd /usr/share/mysql/usr/share/mysql 】】命令,將現行目錄切換到命令,將現行目錄切換到MySQLMySQL 伺服器的目錄。伺服器的目錄。
輸入輸入【【 ./mysql.server start./mysql.server start 】】命令啟動命令啟動 MySQLMySQL伺服器,可以看到伺服器,可以看到 Starting mysqld daemon Starting mysqld daemon with database from /var/lib/mysqlwith database from /var/lib/mysql 訊息文字,訊息文字,表示表示 MySQLMySQL 伺服器已經正常啟動。伺服器已經正常啟動。
在在 LinuxLinux 作業系統只需編輯作業系統只需編輯【【 rc.localrc.local 】】檔案,就可以在啟動作業系統後,自動啟動檔案,就可以在啟動作業系統後,自動啟動MySQLMySQL 伺服器,如下所示:伺服器,如下所示:/usr/share/mysql/mysql.server start/usr/share/mysql/mysql.server start
11
在在 LinuxLinux 啟動啟動 MySQL-MySQL- 更改管理更改管理者密碼者密碼
在在 LinuxLinux 終端機輸入終端機輸入 mysqladminmysqladmin 命令更命令更改管理者密碼,如下所示:改管理者密碼,如下所示:
mysqladmin -u root -h linux.colins.idv.tw password mysqladmin -u root -h linux.colins.idv.tw password ‘123456’‘123456’
上述命令列相關參數的說明,如下:上述命令列相關參數的說明,如下:•-u-u :表示使用者帳號,:表示使用者帳號, rootroot為為 MySQLMySQL 預設的預設的
管理者帳號。管理者帳號。•-h-h :表示:表示 MySQLMySQL 主機所在的網域名稱,也可主機所在的網域名稱,也可
以使用以使用 IPIP 位址。位址。•passwordpassword :表示使用者帳號的密碼,因為是字:表示使用者帳號的密碼,因為是字串,請使用單引號將密碼括起來。串,請使用單引號將密碼括起來。
12
在在 WindowsWindows 啟動啟動 MySQL-MySQL- 說明說明在在WindowsWindows 作業系統安裝好作業系統安裝好 MySQLMySQL後,不同於後,不同於
LinuxLinux 會自動啟動會自動啟動 MySQLMySQL ,我們需要使用,我們需要使用MySQLMySQL 管理工具將管理工具將 MySQLMySQL 設為設為 WindowsWindows 的系的系統服務(不適用統服務(不適用 Windows 98/MEWindows 98/ME ),並且更改),並且更改管理者密碼。管理者密碼。
13
在在 WindowsWindows 啟動啟動 MySQL-MySQL- 啟動啟動MySQLMySQL
在在WindowsWindows 作業系統的作業系統的 MySQLMySQL 提供提供 MySQL MySQL AdministratorAdministrator 視窗介面管理工具,可以啟動視窗介面管理工具,可以啟動MySQLMySQL 和指定管理工具預設的帳號和密碼。和指定管理工具預設的帳號和密碼。
14
在在 WindowsWindows 啟動啟動 MySQL-MySQL- 更改更改管理者密碼管理者密碼
在「命令提示字元」視窗執行在「命令提示字元」視窗執行 cdcd 命令切換命令切換到「到「 C:\mysql\binC:\mysql\bin 」資料夾,執行」資料夾,執行mysqladminmysqladmin 命令更改管理者密碼:命令更改管理者密碼:mysqladmin -u root password "123456"mysqladmin -u root password "123456"
上述命令列參數的說明,如下所示:上述命令列參數的說明,如下所示:•-u-u :表示使用者帳號,:表示使用者帳號, rootroot為為 MySQLMySQL 預設的預設的
管理者帳號。管理者帳號。•passwordpassword :表示使用者帳號的密碼,因為是字:表示使用者帳號的密碼,因為是字串,請使用雙引號將密碼括起來。串,請使用雙引號將密碼括起來。
15
WebWeb 介面的介面的 MySQLMySQL 管理程式管理程式 phpMyAdminphpMyAdmin 是免費是免費 PHPPHP 原始程式碼的原始程式碼的 WebWeb 網網站,可以用來管理整個站,可以用來管理整個 MySQLMySQL 伺服器,這是一套伺服器,這是一套WebWeb 介面的介面的 MySQLMySQL 管理程式,支援中文的使用管理程式,支援中文的使用介面。介面。
phpMyAdminphpMyAdmin 只需透過瀏覽程式就可以管理只需透過瀏覽程式就可以管理MySQLMySQL 伺服器,換句話說,不論伺服器,換句話說,不論 MySQLMySQL 是安裝是安裝在在 LinuxLinux或或WindowsWindows 作業系統,都可以使用相作業系統,都可以使用相同步驟在同步驟在 MySQLMySQL 建立資料庫、資料表和編輯記錄。建立資料庫、資料表和編輯記錄。
phpMyAdminphpMyAdmin 是一套免費軟體,在官方網是一套免費軟體,在官方網站可以免費下載其最新版本,其網址如下所站可以免費下載其最新版本,其網址如下所示:示: http://http://www.phpmyadmin.netwww.phpmyadmin.net
16
設定與啟動設定與啟動 phpMyAdminphpMyAdmin 管理程管理程式式 -- 設定設定
phpMyAdminphpMyAdmin 管理程式的設定是更改管理程式的設定是更改config.inc.phpconfig.inc.php 檔案,如下所示:檔案,如下所示:
$cfg['PmaAbsoluteUri'] =$cfg['PmaAbsoluteUri'] =
'http://192.168.0.1/phpMyAdmin-2.5.1/';'http://192.168.0.1/phpMyAdmin-2.5.1/';
$cfg['Servers'][$i]['host'] = $cfg['Servers'][$i]['host'] =
'192.168.0.1';'192.168.0.1';
$cfg['Servers'][$i]['user'] = 'root';$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '123456';$cfg['Servers'][$i]['password'] = '123456';
17
設定與啟動設定與啟動 phpMyAdminphpMyAdmin 管理程管理程式式 -- 啟動啟動
請啟動請啟動 Internet ExplorerInternet Explorer在在【【網址網址】】欄輸入下列欄輸入下列網址,如下所示:網址,如下所示:http://192.168.0.1/phpMyAdmin-2.5.1/http://192.168.0.1/phpMyAdmin-2.5.1/
index.phpindex.php
18
MySQLMySQL 欄位的資料型態欄位的資料型態資料類型 說明TINYINT 最小的整數,有符號整數-128~127,無符號是 0~255SMALLINT 短整數,有符號整數-32768~32767,無符號是 0~65535MEDIUMINT 中型整數,有符號整數-8388608~8388607,無符號是 0~16777215INT或 INTEGER 整數,有符號整數-2147483648~2147483647,無符號是 0~4294967295BIGINT 長整數,有符號整數-922337203685475808~922337203685475807,
無符號是 0~188446744073709550615FLOAT 單精浮點數,精確度小於等於 24FLOAT(M,D) 單精浮點數,M為最大長度,D是小數點數DOUBLE(M,D) 雙精浮點數,M為最大長度,D是小數點數DECIMAL(M,D) 數值,M為最大長度,D是小數點數CHAR(M) 固定長度字串,M為最大長度 1~255位元組,表示其佔用的空間VARCHAR(M) 變動長度字串,M為最大長度 1~255位元組,依實際長度儲存,但
是不超過MTINETEXT 字串,最大長度 255位元組TEXT 字串,最大長度 65535位元組LONGTEXT 長字串,最大長度 4294967295位元組DATE 日期資料,其範圍 1000-01-01~9999-12-31DATETIME 日期/時間資料,其範圍 1000-01-0100:00:00~9999-12-3123:59:59TIMESTAMP 時間刻記,其範圍 1970-01-0100:00:00~2037-12-3123:59:59TIME 時間資料
19
新增資料庫新增資料庫 使用使用 phpMyAdminphpMyAdmin 管理程式,在管理程式,在 MySQLMySQL 新增資新增資
料庫,例如:資料庫料庫,例如:資料庫【【 studentdatasstudentdatas 】】,如下,如下所示:所示:
20
新增資料表新增資料表繼續上一節建立的繼續上一節建立的 studentdatasstudentdatas 資料庫,新增資料庫,新增【【 studentsstudents 】】資料表,資料表各欄位的說明,如資料表,資料表各欄位的說明,如下表所示:下表所示:
欄位名稱 資料類型 長度 說明stdno VARCHAR 5 學號name VARCHAR 12 姓名address VARCHAR 50 地址birthday DATE 生日totalcredit INT 學生修的總學分
21
新增測試的記錄新增測試的記錄
stdno name address birthday totalcredit92002 陳峰棋 台北縣永和市 1970-01-02 1892001 陳會安 台北縣新莊市 1967-10-15 2292003 賴乾鑫 台北市松山區 1972-05-01 1592004 張智慧 台北市大安區 1969-07-22 1292005 林映帆 台北縣樹林市 1965-03-01 9
22
在在 MySQLMySQL 匯入資料表匯入資料表 -- 說明說明 phpMyAdminphpMyAdmin 管理程式可以新增管理程式可以新增 MySQLMySQL
資料表和輸入記錄資料,不過為了方便讀者資料表和輸入記錄資料,不過為了方便讀者建立本書的測試資料,筆者已經輸出各資料建立本書的測試資料,筆者已經輸出各資料表的表的 SQLSQL 指令檔案(內含建立資料表和插指令檔案(內含建立資料表和插入記錄資料的入記錄資料的 SQLSQL 指令),在指令),在 MySQLMySQL 只只需匯入需匯入 SQLSQL 檔案就可以建立資料表的測試檔案就可以建立資料表的測試資料。資料。
23
在在 MySQLMySQL 匯入資料表匯入資料表 在「命令提示字元」視窗執執行在「命令提示字元」視窗執執行 mysqlmysql命令匯入資命令匯入資
料表,如下所示:料表,如下所示:mysql -uname -p password studentdatas < D:\PHP5\mysql -uname -p password studentdatas < D:\PHP5\
Ch11\classes.sqlCh11\classes.sql命令列的第命令列的第 11 個參數是資料庫名稱,「個參數是資料庫名稱,「 << 」管道命」管道命令將之後令將之後 SQLSQL指令檔案匯入之前的資料庫,執行後指令檔案匯入之前的資料庫,執行後的的 MySQLMySQL 資料庫資料庫 studentdatasstudentdatas 就擁有就擁有 classesclasses和和studentsstudents 一共一共 22 個資料表。個資料表。
另一方法為登入另一方法為登入 MySQLMySQL 系統,輸入下列指令系統,輸入下列指令 ::
> \.> \. classes.sqlclasses.sql