MySQL 是一套快速、功能強大的資料庫管理系統。所謂資料庫管理系統 (Database Management System, 簡稱為 DBMS ),它是透過一組程式模組來組織、管理、儲存和讀取資料庫的資料,任何使用者在操作資料庫時,都需要透過資料庫管理系統來處理。 目前MySQL已經成為最流行的開源資料庫,因此被廣泛地應用在 Internet 上的中小型網站中。隨著 MySQL 的不斷成熟,它也逐漸用於更多大規模網站和應用,例如 Google 和 Facebook 等網站。
二、MySQL資料型態
主要分為三類:Numeric、Date and Time、String Type。
類型 | bytes | 範圍 | 選項 | |
---|---|---|---|---|
數字類型 | 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個選項 |
三、MySQL管理工具
四、MySQL新增、更新、查詢、刪除
insert into `資料表`(`欄位1`,`欄位2`,`欄位3`) values ('{$v1}','{$v2}','{$v3}');
update `資料表` set `欄位1` = '值1',`欄位2` = '值2',`欄位3` = '值3' where `sn` = '{$sn}';
select * from `資料表` ;
delete from `資料表` where `sn` = '{$sn}';
五、讓PHP連上MYSQL
<?php if($_SERVER["SERVER_NAME"] == "localhost" or $_SERVER["SERVER_NAME"] == "127.0.0.1"){ #判斷主機為UniServerZ #MYSQL #資料庫伺服器 $db_host = "localhost"; #資料庫使用者帳號 $db_user = "root"; #資料庫使用者密碼 $db_password = "111111"; #資料庫名稱 $db_name = "ugm_make"; }else{ #MYSQL #資料庫伺服器 $db_host = "localhost"; #資料庫使用者帳號 $db_user = "xxx"; #資料庫使用者密碼 $db_password = "xxx"; #資料庫名稱 $db_name = "xxx"; } #PHP 5.2.9以後 $db = new mysqli($db_host, $db_user, $db_password, $db_name); if ($db->connect_error) { die('無法連上資料庫 (' . $db->connect_errno . ') ' . $db->connect_error); } #設定資料庫語系 $db->set_charset("utf8");
六、常和SELECT一起用的PHP的函數
#執行SQL指令 $db->query($sql) #傳回影嚮筆數 $db->affected_row #傳回insert 指令所產生之流水號 $db->insert_id #select結果讀取 #select後回傳一個mysqli_result物件 $result = $db->query($sql); $row=$result->fetch_row(); //陣列形態,可用$row[$n]存取,會用 list()來接變數 $row=$result->fetch_array(); //關聯陣列,用$row[$n]或$row[$colname]存取,名稱區分大小寫 $row=$result->fetch_assoc(); //關聯陣列,只能用$row[$colname]存取 $row=$result->fetch_abject(); //以物件方式存取,$row->colname ##每次呼叫都會傳回下一筆,直到最後傳回FALSE $result->data_seek($row_number)跳到指定欄位 #查詢總筆數 $result->num_rows #select結果之相關資訊 $inf=$result->fetch_fields();傳回相關物件資訊 $inf[$n]->name //欄位名稱 $inf[$n]->table //欄位所屬資料表 $inf[$n]->max_length //最長資料長度 $inf[$n]->type //資料形態