[1032]PHP入門
一、 關於phpMyAdmin或Adminer
五、 匯出資料表
- 要管理MySQL資料庫,需要進到MySQL ll終端機界面,並利用SQL語法,以下指令的方式來操作管理之,因此,透過人家寫好的視覺化界面來操作會更簡單。
- phpMyAdmin是一套歷史悠久的MySQL資料管理程式,安裝設定其實有點小麻煩,不過功能齊全,但相對也肥大。後起之秀Adminer(http://adminer.org),只有一個檔案,無須安裝設定即可使用,方便易用,值得推薦!需注意的是,這兩套都不是MySQL,均為一套PHP程式,用理MySQL的成世界面而已。
- 打開瀏覽器,輸入「http://163.26.52.243/phpmyadmin」可執行phpMyAdmin。
- 輸入「http://163.26.52.243/adminer.php」則可執行Adminer。
- 「資料庫」和「資料表」名稱不能以「數字」或特殊符號作為開頭。
- MySQL 4.1 以後,建立資料表時,若要使用UTF8,在「校對」選項請選擇「utf8_general_ci」。(latin1_swedish_ci是預設值,記得改掉!)
- 登入,選擇「資料庫」,點擊「建立資料表」,輸入資料表名稱,引擎選用「MyISAM」,校對選用「utf8_general_ci」。
- 基本動作:設好欄位名稱→指定資料型態(適當的資料類型讓您上天堂!)
- (1) 若是varchar則一定要設定「長度」,通常建議給到最大255;
- (2) 若是數字則「屬性」多為「unsigned」,即正整數之意;
- (3) 若是要當作流水號,則在「附加」選擇AI即「auto_increment」最後指定哪些欄位要當作索引。
- (M,D):M是資料位數,最大為255;D是小數位數。
- []中括號,表示M或D可以省略不寫,不寫的話則以內定範圍為準。
- unsigned表示正整數狀態,也就是沒有負數。
- zerofill表示位數不足補0,如int(4),存28這個數字,資料庫會將之存成0028。
- 日期部份:Y代表的是年,YY代表2位數的年,如97年,YYYY代表4位數的年,如2001年,其餘的M(月)、D(日)依此類推。
- 當年份數字在00-69之間,則會被當作2000-2069,若是在70-99之間,則當作1970-1999!
- php的時間戳記是unix timestamp是由1970/01/01 00:00累計之今的秒數。而MySQL的時間戳記則是YYYYMMDDHHMMSS,根據M值而有所不同。
- Big5中文,一個字佔2位元;UTF-8中文,一個字佔3位元。
數字類型 | TINYINT(M) 非常小整數 | 1 | -128到127,unsigned狀態則為0到255 | unsigned、zerofill |
SMALLINT(M) 較小整數 | 2 | -32768到32767,unsigned狀態則為0到65535 | unsigned、zerofill | |
MEDIUMINT(M) 中型整數 | 3 | -8388608到8388607,unsigned狀態則為0到16777215 | unsigned、zerofill | |
INT(M) 標準整數 | 4 | -2147483648到2147483647unsigned狀態則為0到4294967295 | unsigned、zerofill | |
BIGINT(M) 大整數 | 8 | -9223372036854775808到9223372036854775807unsigned狀態則為0到18446744073709551615 | unsigned、zerofill | |
FLOAT(M) 單精確度浮點數 | 4 | FLOAT(M,D)最小非零值:±1.175494351E - 38FLOAT(4)最大非零值:±3.402823466E + 38FLOAT(8)最大非零值:±1.7976931348623157E + 308 | zerofill | |
DOUBLE(M) 雙精確度浮點數 | 8 | 最小非零值:±2.2250738585072014E - 308 | zerofill | |
DECIMAL(M,D) | M | 可變;其值的範圍依賴於M和D | zerofill | |
日期類型 | DATE 日期 | 3 | 1000-01-01到9999-12-31 | |
DATETIME 日期時間 | 8 | 1000-01-01 00:00:00到9999-12-31 23:59:59 | ||
TIMESTAMP(M) 時間戳記 | 2,4,6,8,10,12,14 (左) | 1970-01-01 00:00:00到2037 | ||
TIME 時間 | 3 | -838:59:59到838:59:59 | ||
YEAR 年度 | 1 | 1901到2155 | ||
文字類型 | CHAR(M) 固定長度字串 | M | 1<=M<=255 | |
VARCHAR(M) 變動長度字串 | M+1 | 1<=M<=255 | ||
TINYTEXT非常小的文本串 | M+1 | 255個字元 | ||
TEXT小文本串 | M+2 | 65535個字元 | ||
MEDIUMTEXT中等文本串 | M+3 | 16777215個字元 | ||
LONGTEXT大文本串 | M+4 | 4294967295個字元 | ||
TINYBLOB超小型BLOB | M+1 | 255個字元 | ||
BLOB小型BLOB | M+2 | 65535個字元 | ||
MEDIUMBLOB中型BLOB | M+3 | 16777215個字元 | ||
LONGBLOB大型BLOB | M+4 | 4294967295個字元 | ||
特殊 | ENUM 單選選項 | 1或2 | 最多65535個選項 | |
SET 複選選項 | 1,2,3,4,8 | 最多64個選項 |
- 為了方便系統重建或轉移,我們可以將資料庫結構匯出,方便下一次安裝。
- 點選「匯出」,格式選用「sql」,並句選要匯出的資料表名稱。若有要匯出資料,則資料部份也需打勾(此例不用)
- 匯出後是一個xxx.sql檔,此為文字檔,可用任何編輯器開啟,日後易可以方便的進行匯入動作。
- 您可以將SQL檔打開,並將一些註解及SET刪除掉。
- 用法:int mysql_connect("主機位置","資料庫帳號"," 資料庫密碼");
- 範例:$link=mysql_connect("localhost","root","12345");
- 該函數會傳回一個int(整數),我們稱之為「連線編號」,其資料型態為:資源。
- 只要程式和資料庫都在同一台主機,「主機位置」填入「localhost」即可。
- 執行SQL語法:int mysql_query( "SQL語法" [, 連線編號]);
- 結束連線可使用:「mysql_close($link);」,不過,其實不用也沒關係。
- 讓MySQL可以順利寫入UTF8中文:mysql_query("SET NAMES 'utf8'"); 在連線之後,加入此行即可。
- 選擇資料庫:mysql_select_db("資料庫名稱");
- 寫入一筆資料到MySQL中,就要用insert或replace的語法,其用法如下: insert [into] 資料表名稱 [(欄位1,欄位2...)] values (值1,值2...)
- insert 改為 replace 則為「取代」之意,亦即若唯一索引的欄位值已存在,則用新值覆蓋舊值。若不存在,則新增。
- 可以一次新增多筆: insert [into] 資料表名稱 [(欄位1,欄位2...)] values ( 值 A1, 值 A2... ) , ( 值 B1, 值 B2...) , ( 值 C1 , C2...) , ( 值 D1 , 值 D2...) ;
- 欄位或資料表稱的前後可加「`」符號(也可不加),而值為字串時,則一定要加引號(通常為單引號)。
- 要讀出MySQL的資料,那您就要用select這指令。 SELECT 查詢內容 [FROM `資料表名稱` 篩選條件]
- 「篩選條件」有以下幾個東西!注意喔!由上到下就是其語法的先後順序喔!您可不能把LIMIT拿到WHERE的前面,那是錯誤的喔!
- (1) [where 篩選條件]
- (2) [group by 欄位名稱][having group的篩選條件]
- (3) [order by {unsigned_integer | 欄位名稱 | formula} [asc | desc] ,...]
- (4) [limit [起點,] 筆數]
- 從資料庫取得的陣列,索引值可以是數字或字串(即欄位名稱)。$row[0] 或 $row["title"] $row=mysql_fetch_array();
- 從資料庫取得的陣列,索引值只能是數字(數字索引)。$row[0],通常搭配list()來將陣列值套用到指定變數上。 $row=mysql_fetch_row();
- 從資料庫取得的陣列,索引值只能是字串(關聯索引)。$row["title"] $row=mysql_fetch_assoc();
- COUNT():計算數目
- AVG():計算GROUP的平均值
- MIN():找出最小值
- MAX():找出最大值
- SUM():總和