首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 選擇數據庫與 PHP 腳本操作:USE 命令、mysql_select_db 及數據類型全覽

     編輯:MySQL 資料庫相關知識

選擇數據庫:命令行與 PHP

命令行 USE 命令

mysql -u root -p
USE testdb;
-- Database changed
-- 後續所有操作針對 testdb

注意:數據庫/表/列名在 Linux 下區分大小寫(受文件系統影響),Windows 下不區分。最佳實踐:統一小寫,避免跨平台遷移問題。

PHP mysql_select_db (舊擴展) / mysqli_select_db (新)

<?php
// mysqli 面向對象 (推薦)
$mysqli = new mysqli('localhost', 'root', 'pass');
$mysqli->select_db('testdb');

// mysqli 過程式
$link = mysqli_connect('localhost', 'root', 'pass');
mysqli_select_db($link, 'testdb');

// PDO (通用)
$pdo = new PDO('mysql:host=localhost;dbname=testdb', 'root', 'pass');
?>

棄用警告:mysql_* 函數自 PHP 5.5 棄用,7.0 移除。請使用 mysqli 或 PDO。

MySQL 數據類型完整分類

1. 數值類型

類型存儲(字節)範圍(有符號)範圍(無符號)用途
TINYINT1-128 ~ 1270 ~ 255布爾、狀態碼、極小整數
SMALLINT2-32768 ~ 327670 ~ 65535小範圍計數、年份
MEDIUMINT3-8388608 ~ 83886070 ~ 16777215中等整數、IP 地址存儲
INT / INTEGER4-2147483648 ~ 21474836470 ~ 4294967295標準主鍵、計數器
BIGINT8-9e18 ~ 9e180 ~ 1.8e19大數據主鍵、時間戳毫秒
FLOAT4±3.4e38 (約7位精度)-單精度浮點、科學計算
DOUBLE8±1.7e308 (約15位精度)-雙精度浮點、經緯度
DECIMAL(M,D)M+2精確定點數,M 總位數 D 小數位-金額、價格、精確計算
BIT(N)(N+7)/8位字段-權限掩碼、標誌位集合

最佳實踐:整數優先 UNSIGNED,金額必用 DECIMAL(10,2),避免浮點誤差。

2. 日期時間類型

類型存儲範圍零值特性
DATE31000-01-01 ~ 9999-12-310000-00-00純日期
TIME3-838:59:59 ~ 838:59:5900:00:00純時間/間隔
DATETIME81000-01-01 00:00:00 ~ 9999-12-31 23:59:590000-00-00 00:00:00無時區,靜態時間點
TIMESTAMP41970-01-01 00:00:01 UTC ~ 2038-01-19 03:14:07 UTC0000-00-00 00:00:00時區感知,自動轉換,DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
YEAR11901 ~ 21550000僅年份

選擇建議:業務時間用 DATETIME,記錄修改時間用 TIMESTAMP,5.6.5+ 支持 DATETIME(3) 毫秒精度。

3. 字符串類型

類型最大長度存儲特性
CHAR(N)255 字符N 字符 (定長填充空格)固定長度,極快,尾部空格截斷
VARCHAR(N)65535 字符 (共享 64KB 行上限)實際長度 + 1-2 字節長度前綴變長,節省空間,尾部空格保留
TINYTEXT255 字符L + 1無 DEFAULT,不支持全文索引(舊版)
TEXT65535 字符L + 2同上
MEDIUMTEXT16777215 字符L + 3同上
LONGTEXT4GB 字符L + 4同上
BINARY/VARBINARY同 CHAR/VARCHAR同二進制字節串,無字符集,按字節比較
BLOB 系列同 TEXT 系列同二進制大對象,存圖片/文件(不推薦)
ENUM65535 枚舉值1-2 字節單選,內部存數字索引,插入需匹配定義值
SET64 成員1-8 字節多選,位掩碼存儲,FIND_IN_SET 查詢

字符集選擇策略

  • 通用業務:utf8mb4 + utf8mb4_unicode_ci
  • 純 ASCII (英文/數字/下劃線):latin1 或 ascii,索引體積減半、比較更快
  • 大小寫敏感:utf8mb4_bin 或 latin1_bin
  • 中文拼音排序:utf8mb4_unicode_ci (UCA) 或 gbk_chinese_ci

連接字符集設置 (JDBC/PHP/PDO)

# JDBC
jdbc:mysql://host:3306/db?useUnicode=true&characterEncoding=utf8mb4&serverTimezone=Asia/Shanghai

# PHP mysqli
$mysqli->set_charset('utf8mb4');

# PDO
$pdo = new PDO('mysql:host=localhost;dbname=test;charset=utf8mb4', 'user', 'pass');
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved