首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 程式設計 6 大實用技巧:分號結尾、關聯陣列、資料型別、無緩衝查詢、通配符、NULL 處理

     編輯:MySQL 綜合教學

1. 每行指令以分號結尾

MySQL 原生指令需以 ; 結束。但嵌入 PHP 程式碼時建議省略分號,避免 PHP 解析器混淆:

mysql_query("INSERT INTO tablename(first_name,last_name) VALUES('$first_name','$last_name')");

2. 採用關聯陣列存取查詢結果

while ($row = mysql_fetch_array($result)) {
    echo "ID: {$row['cust_id']}\n";
    echo "Surname: {$row['surname']}\n";
    echo "First name: {$row['firstname']}\n\n";
}

mysql_fetch_array() 同時支援數字索引與關聯索引,關聯索引可讀性遠優於數字索引。

多表連查同名欄位用別名

SELECT winery.name AS wname, region.name AS rname
FROM winery, region WHERE winery.region_id = region.region_id;
// 存取:$row['wname'], $row['rname']

指定表名.欄位名時直接用欄位名

SELECT winery.region_id FROM winery;
// 存取:$row['region_id']

聚合函數直接用函數名作鍵

SELECT COUNT(*) FROM customer;
// 存取:$row['COUNT(*)']

3. TEXT、DATE、SET 資料型別補充

  • TEXT 非獨立型別,實為 LONG VARCHAR 或 MEDIUMTEXT
  • DATE 格式 YYYY-MM-DD,PHP 取值 date("Y-m-d"),支援相減得天數:$age = $current_date - $birthdate
  • SET 可存多值(類 ENUM 但可多選),最多 64 個預定值;ENUM 最多 65,535 個但只能單選。超過 64 個值需定義多個 SET

4. 用 mysql_unbuffered_query() 開發高效能腳本

查詢後立即回傳,不等待、不鎖表。但無法用 mysql_num_rows() 檢查行數(結果集大小未知)。

5. 通配符使用規則

通配符用途搭配
*匹配欄位名SELECT * FROM ...
%匹配欄位值WHERE col LIKE '%'
_匹配任意單一字元WHERE col LIKE '_'

注意:% 必須搭配 LIKE 使用。

6. NOT NULL 與空記錄的區別

  • 未填資料送出:若欄位定義 NOT NULL,MySQL 不存 NULL 也不存空值,直接跳過該欄位
  • ENUM 設 NOT NULL 時,預設插入枚舉集第一個值
  • NULL 值 ≠ 空字串:% 匹配空字串但不匹配 NULL;查 NULL 必須用 IS NULL
  • 建議所有欄位定義 NOT NULL,避免查詢邏輯錯誤
  • 既有表新增欄位時,舊記錄新欄位值可能是 NULL 或空值(MySQL 行為不一),查詢需特別小心
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved