星期四, 8月 05, 2010

20100805 PHP-MySQL 上課小記 - CLASS 6

20100805 PHP-MySQL 上課小記 - CLASS 6

資料庫
  1. 能以快速及正確的進行資料新增, 刪除, 更新與查詢
  2. 分成  server 型及 檔案型
    1. MySQL, MS SQL, Oracle 是 Server 型
    2. Access, Foxpro 是檔案型
  3. Access 限制: 最多允許 20 個連線
  4. MS SQL express 版限制: 資料庫不能大於 4G, 且只能使用 1 個 CPU
  5. MySQL 有一個最大權限帳號: root
    1. root 與 Linux 的 root不同
    2. root 具有帳號管理權限, 密碼勿外流
    3. Appserv 要求 MySQL root 要有密碼, Linux 還能 root 不設定密碼
    4. phpmyadmin 是一套 free  MySQL 管理系統 ( 網頁形式)(建議使用 2.6 版以後, 有連線校對功能, 舊的版本 只支援 MySQL4 )


以網頁的方式管理 MySQL
http://localhost
帳號: root
密碼: phpmysql   ( 當初安裝時設定 )

Q: 如何登入MySQL?
A:
  • mysql  -u帳號  -p密碼
    • 此種方式會顯示密碼, 所以不建議
  • mysql  -u帳號  -p
    • 會提示輸入密碼


以指令方式 登入 mysql
開啟 命令提示字元
開始 --> 執行 --> cmd

以下在命令提示底下操作
mysql  -u root  -p      
輸入密碼
(如果要一次輸入, 可以改為 mysql  -uroot  -pphpmysql 中間不能空格, 但是不建議, 因為會出現密碼)
( 如果使用  mysql  -u root  -p  phpmysql 會被認為是指定  phpmysql 這個資料庫來登入)  
在 MySQL 底下的指令必須以 ; 分號結束, 指令不分大小寫
顯示資料庫
show databases;
使用 mysql 資料庫
use  mysql;
顯示 mysql 資料庫 的 tables
show tables from mysql;
顯示 tables
show tables;
顯示 db 表格的欄位
show columns from db from mysql;
建立 pcschooldb 資料庫
create database pcschooldb;
顯示資料庫
show databases;
刪除 pcschooldb 資料庫
drop database pcschooldb;

MySQL 指令:
  1. 不分大小寫
  2. 每一行結束要加上 ;
  3. 可使用 上下游標控制按鍵瀏覽指令歷史


**補充 在windows 下 MySQL 密碼忘記的處理方式**
1.請將mysql server shutdown。若是windows,請察看工作管理員內「處理程序」是否仍有mysqld-nt程式存在。
2.開啟終端機,輸入mysqld-nt  -u  root   --skip-grant-tables &
3.請另外開啟終端機,輸入 mysql enter(因為忽略權限資料表,所以此時不需輸入帳號密碼)
4.輸入 use  mysql; (使用mysql資料庫,請記得後面的;
5.輸入update  user  set  password=password('phpmysql')  where  user='root'; (變更root密碼為phpmysql
6.輸入flush   privileges;(將立即更新,若無輸入此行,則當您重新啟動mysql才會更新)
7.輸入exit;(離開mysql畫面)
8.請將mysqld-nt關閉,若是windows,請察看工作管理員內「處理程序」是否仍有mysqld-nt程式存在。
9.重新啟動mysql server
10.測試密碼: mysql -uroot -p



Lab: 資料庫設計
( 先建立 pcschool 的資料庫 )
以指令方式 登入 mysql
開啟 命令提示字元
開始 --> 執行 --> cmd

以下在命令提示底下操作
mysql  -u root  -p      
輸入密碼

建立 pcschooldb 資料庫
create database pcschool;

利用 網頁的方式建立 gbook 資料表

http://localhost
使用 root 密碼 phpmysql 登入
選取 pcschool 資料庫, 輸入 gbook -->  輸入欄位數目 6 --> 點選執行
依照以下需求建立資料表
例如我現在想要在「pcschool」內建立一個「gbook」資料表,這個資料表內所需要的欄位如下:

欄位名稱欄位大小與類型預設值屬性
yournamevarchar(20) not null
youremailvarchar(25) not null
Ipchar(15) not null
ctimedatetime not null
boardtitlevarchar(20) not null
contenttext not null



根據需求資料表 輸入指定的欄位名稱 及 型態 以及長度 --> 點選 儲存

*char  vs  varchar
  • char 是固定欄位大小
  • varchar 是可變動欄位大小
  • 兩種型式均是針對小於 255 個字的資料進行欄位設計的型式.


Notes:
  • 建立資料表時需確定欄位數目
  • 當資料刪除後, phpmyadmin 的資料表, 可以檢視 ”結構” 標籤下方的 ”已使用空間” 會多出了一個多餘
    • 請經常執行 ” 最佳化資料表 ” 降低資料庫變慢或損壞風險


索引 (index):
  • 如同書本內加入書籤, 可加快搜尋速度, 但不是每一個欄位均要加上索引.


主鍵(Primary):
  1. 資料不可以重覆
  2. 內容不可以空白
  3. 一個資料表只能有一個
  4. 作為資料辨識身分之用
  5. 規劃資料表時就做規劃, 勿等已有資料才設計主鍵


Unique:
  • 若多個欄位的內容不可在另外一筆紀錄出現, 可作此索引規劃


索引視窗內 ”組別”, 代表目前有幾組紀錄符合這個索引設計

Lab: 匯入資料表

利用 phpmyadmin 將 student_create_table.sql 匯入
點選瀏覽, 選取要匯入的資料庫 --> 執行

MySQL 資料匯出與匯入
  1. 以 php 與 mysql 管理者來說,  sql 檔案操作較方便
  2. phpadmin 內可匯出為 CSV 檔案, 但 excel 2007 (含) 之前版本無法開啟 utf-8 碼 CSV 檔案
  3. 若要將 SQL 檔案匯入至 UTF-8 編碼的資料表, SQL 檔案本身必須為 UTF-8 編碼, 不然會有亂碼的問題
  4. CSV 檔案可以先使用 Notepad++ 轉換至 ANSI 編碼, 讓 excel 可以開啟( 但是 UTF-8 轉 ANSI 可能會漏字)
 

沒有留言: