20100805 PHP-MySQL 上課小記 - CLASS 6
資料庫
以網頁的方式管理 MySQL
http://localhost
帳號: root
密碼: phpmysql ( 當初安裝時設定 )
Q: 如何登入MySQL?
A:
以指令方式 登入 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 指令:
**補充 在windows 下 MySQL 密碼忘記的處理方式**
Lab: 資料庫設計
( 先建立 pcschool 的資料庫 )
以指令方式 登入 mysql
開啟 命令提示字元
開始 --> 執行 --> cmd
以下在命令提示底下操作
mysql -u root -p
輸入密碼
建立 pcschooldb 資料庫
create database pcschool;
利用 網頁的方式建立 gbook 資料表
http://localhost
使用 root 密碼 phpmysql 登入
選取 pcschool 資料庫, 輸入 gbook --> 輸入欄位數目 6 --> 點選執行
依照以下需求建立資料表
例如我現在想要在「pcschool」內建立一個「gbook」資料表,這個資料表內所需要的欄位如下:
根據需求資料表 輸入指定的欄位名稱 及 型態 以及長度 --> 點選 儲存
*char vs varchar
Notes:
索引 (index):
主鍵(Primary):
Unique:
索引視窗內 ”組別”, 代表目前有幾組紀錄符合這個索引設計
Lab: 匯入資料表
利用 phpmyadmin 將 student_create_table.sql 匯入
點選瀏覽, 選取要匯入的資料庫 --> 執行
MySQL 資料匯出與匯入
資料庫
- 能以快速及正確的進行資料新增, 刪除, 更新與查詢
- 分成 server 型及 檔案型
- MySQL, MS SQL, Oracle 是 Server 型
- Access, Foxpro 是檔案型
- Access 限制: 最多允許 20 個連線
- MS SQL express 版限制: 資料庫不能大於 4G, 且只能使用 1 個 CPU
- MySQL 有一個最大權限帳號: root
- root 與 Linux 的 root不同
- root 具有帳號管理權限, 密碼勿外流
- Appserv 要求 MySQL root 要有密碼, Linux 還能 root 不設定密碼
- 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 指令:
- 不分大小寫
- 每一行結束要加上 ;
- 可使用 上下游標控制按鍵瀏覽指令歷史
**補充 在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」資料表,這個資料表內所需要的欄位如下:
欄位名稱 | 欄位大小與類型 | 預設值 | 屬性 |
yourname | varchar(20) | not null | |
youremail | varchar(25) | not null | |
Ip | char(15) | not null | |
ctime | datetime | not null | |
boardtitle | varchar(20) | not null | |
content | text | not null |
根據需求資料表 輸入指定的欄位名稱 及 型態 以及長度 --> 點選 儲存
*char vs varchar
- char 是固定欄位大小
- varchar 是可變動欄位大小
- 兩種型式均是針對小於 255 個字的資料進行欄位設計的型式.
Notes:
- 建立資料表時需確定欄位數目
- 當資料刪除後, phpmyadmin 的資料表, 可以檢視 ”結構” 標籤下方的 ”已使用空間” 會多出了一個多餘
- 請經常執行 ” 最佳化資料表 ” 降低資料庫變慢或損壞風險
索引 (index):
- 如同書本內加入書籤, 可加快搜尋速度, 但不是每一個欄位均要加上索引.
主鍵(Primary):
- 資料不可以重覆
- 內容不可以空白
- 一個資料表只能有一個
- 作為資料辨識身分之用
- 規劃資料表時就做規劃, 勿等已有資料才設計主鍵
Unique:
- 若多個欄位的內容不可在另外一筆紀錄出現, 可作此索引規劃
索引視窗內 ”組別”, 代表目前有幾組紀錄符合這個索引設計
Lab: 匯入資料表
利用 phpmyadmin 將 student_create_table.sql 匯入
點選瀏覽, 選取要匯入的資料庫 --> 執行
MySQL 資料匯出與匯入
- 以 php 與 mysql 管理者來說, sql 檔案操作較方便
- phpadmin 內可匯出為 CSV 檔案, 但 excel 2007 (含) 之前版本無法開啟 utf-8 碼 CSV 檔案
- 若要將 SQL 檔案匯入至 UTF-8 編碼的資料表, SQL 檔案本身必須為 UTF-8 編碼, 不然會有亂碼的問題
- CSV 檔案可以先使用 Notepad++ 轉換至 ANSI 編碼, 讓 excel 可以開啟( 但是 UTF-8 轉 ANSI 可能會漏字)
沒有留言:
張貼留言