第 11 章解答                                        PHP 6 與 MySQL 基礎學習教室




1.mysql 終端機登入方式有哪幾種?

解答:
 登入的方式有兩種,第一種是輸入「mysql –u 帳號 –p 密碼」若不希望密碼
顯示,請改用「mysql –u 帳號 -p」,當您按下 enter 後才可輸入密碼。

2.以終端機方式登入系統後如何顯示現有資料庫名稱及建立資料庫?

解答:
使用「show databases;」瞭解系統目前有幾個資料庫。建立一個資料庫的語法為
「create database 資料庫名稱;」。

3.請說明欄位的 auto_increment 屬性特性。

解答:
1. 這個屬性在「Not Null」 Primary Key」 「Unique」
                  、
                  「            或        這三種屬性至少具備一種
   的時候才能使用。(「Primary Key」及「Unique」將在 11-3-1 節及 14-4 節介
   紹)
2. 一個資料表只能有一個 auto_increment 屬性。
3. 只有在新增紀錄時,在沒有明確指定數值及沒有指定 Null 值情況下才會自
   動產生新編號。您可以手動為新紀錄指定數值,只要您指定的數值沒有被
   用掉就可以。


4.請建立一個資料表,名稱為「list」,內有三個欄位,分別為
欄位名稱      欄位型態        欄位長度     預設值
username  char        10       NULL
email     char        80       NULL
sex       char        4        NULL

解答:
create table list (
username char(10) default null ,
email char(80) default null ,
sex char(4) default null
) engine = myisam default charset=utf8;




                                          第1頁
第 11 章解答                                             PHP 6 與 MySQL 基礎學習教室



5.請列舉四種帳號權限。

解答:
create   建立資料庫及資料表的權限
delete   刪除資料表中資料的權限
insert   新增資料至資料表的權限
select   查詢資料表中資料的權限


6.請新增一個使用者帳號為  「test1」,由 localhost 登入,擁有「phptest」資料庫上所
  有的權限,密碼為 「testphp1」


解答:
grant all privileges on phptest.* to test1@localhost identified by
'testphp1' ;

7.請新增一個使用者帳號為「test2」,由 localhost 登入,在所有資料庫上只有
  delete 權限,密碼為 「testphp2」

解答:
grant delete on *.* to test2@localhost identified by 'testphp2';

8.請限制「test1」這個帳號每一個小時只能執行 5 次(由 localhost 登入,密碼為
「testphp1」)


解答:
grant all privileges on *.* to test1@localhost identified by 'testphp1' with
max_queries_per_hour 5;

9.請移除「test1」帳號 select 權限。

解答:
revoke select on *.* from test1@localhost;




                                    第2頁
第 11 章解答                               PHP 6 與 MySQL 基礎學習教室



10.請刪除「test2」帳號。

解答:
 Step 1 以 MySQL 管理者 root 身份登入 MySQL,若 root 密碼為 phpmysql,請
以「mysql –uroot -pphpmysql」方式登入。
 Step 2 執行「use mysql」指令使用 mysql 資料庫。
 Step 3 執行「delete from user where user='test2';」刪除使用者資料。
 Step 4 執行「flush privileges;」指令使系統重新整理。
 Step 5 執行「exit」指令離開系統。




                           第3頁

第十一章解答

  • 1.
    第 11 章解答 PHP 6 與 MySQL 基礎學習教室 1.mysql 終端機登入方式有哪幾種? 解答: 登入的方式有兩種,第一種是輸入「mysql –u 帳號 –p 密碼」若不希望密碼 顯示,請改用「mysql –u 帳號 -p」,當您按下 enter 後才可輸入密碼。 2.以終端機方式登入系統後如何顯示現有資料庫名稱及建立資料庫? 解答: 使用「show databases;」瞭解系統目前有幾個資料庫。建立一個資料庫的語法為 「create database 資料庫名稱;」。 3.請說明欄位的 auto_increment 屬性特性。 解答: 1. 這個屬性在「Not Null」 Primary Key」 「Unique」 、 「 或 這三種屬性至少具備一種 的時候才能使用。(「Primary Key」及「Unique」將在 11-3-1 節及 14-4 節介 紹) 2. 一個資料表只能有一個 auto_increment 屬性。 3. 只有在新增紀錄時,在沒有明確指定數值及沒有指定 Null 值情況下才會自 動產生新編號。您可以手動為新紀錄指定數值,只要您指定的數值沒有被 用掉就可以。 4.請建立一個資料表,名稱為「list」,內有三個欄位,分別為 欄位名稱 欄位型態 欄位長度 預設值 username char 10 NULL email char 80 NULL sex char 4 NULL 解答: create table list ( username char(10) default null , email char(80) default null , sex char(4) default null ) engine = myisam default charset=utf8; 第1頁
  • 2.
    第 11 章解答 PHP 6 與 MySQL 基礎學習教室 5.請列舉四種帳號權限。 解答: create 建立資料庫及資料表的權限 delete 刪除資料表中資料的權限 insert 新增資料至資料表的權限 select 查詢資料表中資料的權限 6.請新增一個使用者帳號為 「test1」,由 localhost 登入,擁有「phptest」資料庫上所 有的權限,密碼為 「testphp1」 解答: grant all privileges on phptest.* to test1@localhost identified by 'testphp1' ; 7.請新增一個使用者帳號為「test2」,由 localhost 登入,在所有資料庫上只有 delete 權限,密碼為 「testphp2」 解答: grant delete on *.* to test2@localhost identified by 'testphp2'; 8.請限制「test1」這個帳號每一個小時只能執行 5 次(由 localhost 登入,密碼為 「testphp1」) 解答: grant all privileges on *.* to test1@localhost identified by 'testphp1' with max_queries_per_hour 5; 9.請移除「test1」帳號 select 權限。 解答: revoke select on *.* from test1@localhost; 第2頁
  • 3.
    第 11 章解答 PHP 6 與 MySQL 基礎學習教室 10.請刪除「test2」帳號。 解答: Step 1 以 MySQL 管理者 root 身份登入 MySQL,若 root 密碼為 phpmysql,請 以「mysql –uroot -pphpmysql」方式登入。 Step 2 執行「use mysql」指令使用 mysql 資料庫。 Step 3 執行「delete from user where user='test2';」刪除使用者資料。 Step 4 執行「flush privileges;」指令使系統重新整理。 Step 5 執行「exit」指令離開系統。 第3頁