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

MySQL 5.0 官方手冊第三章「快速入門」中文翻譯與實戰指南

     編輯:MySQL 綜合教學

MySQL 5.0 官方手冊第三章「快速入門」中文翻譯與實戰指南

本文為 MySQL 5.0 官方參考手冊第三章「快速入門」的中文翻譯版,旨在幫助開發者快速掌握 MySQL 客戶端工具的核心操作,從連接服務器到數據庫對象的創建與管理,提供完整的入門教程。

章節概覽

  • 3.1 連接與斷開服務器
  • 3.2 輸入查詢語句
  • 3.3 創建和使用數據庫(含表創建、數據載入、數據提取)
  • 3.4 獲取數據庫與表信息
  • 3.5 批處理模式使用 mysql
  • 3.6 常用查詢示例
  • 3.7 雙胞胎項目數據查詢實戰
  • 3.8 Apache 中使用 MySQL

核心工具:mysql 客戶端程序

mysql(又稱「終端監視器」或「監視器」)是一個交互式程序,允許連接 MySQL Server、運行查詢並查看結果。它也支持批處理模式:預先將查詢寫入文件,再由 mysql 執行文件內容。本章將詳細講解這兩種使用方式。

3.1 連接與斷開服務器

連接參數

通常需要提供 MySQL 用戶名、密碼;若服務器在遠程主機,還需指定主機名。標準連接命令:

shell> mysql -h host -u user -p
Enter password: ********

host 為服務器主機名,user 為賬戶名,******** 為密碼(輸入時不顯示)。

連接成功標識

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 25338 to server version: 5.0.19-standard
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>

出現 mysql> 提示符表示已就緒可輸入命令。

本地連接簡化

若在運行 MySQL 服務器的機器上登錄,可省略主機名:

shell> mysql -u user -p

常見連接錯誤

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 表示 MySQL 服務器守護進程(Unix)或服務(Windows)未運行,需聯系管理員或查閱安裝章節解決。

匿名登錄與斷開連接

部分安裝允許本機匿名登錄:shell> mysql。斷開連接可用 QUIT 或 \q,Unix 系統也可用 Control-D。

3.2 輸入查詢語句

基本原則

  • 命令通常由 SQL 語句加分號組成(特殊命令如 QUIT 可省略分號)。
  • mysql 將命令發送服務器執行並顯示結果,隨後提示下一條命令。
  • 結果以表格形式顯示:首行列標題,後續行為數據。列標題默認為列名,表達式結果則用表達式作標題。
  • 顯示返回行數與執行時間(時鐘時間,受負載和網絡延遲影響)。
  • 關鍵字不區分大小寫。

mysql 作計算器

mysql> SELECT SIN(PI()/4), (4+1)*5;
+------------------+---------+
| SIN(PI()/4) | (4+1)*5 |
+------------------+---------+
| 0.70710678118655 | 25 |
+------------------+---------+

多語句與多行輸入

  • 同一行多語句用分號分隔:SELECT VERSION(); SELECT NOW();
  • 單語句可跨多行輸入,mysql 以分號為結束標誌而非換行。提示符會從 mysql> 變為 -> 表示繼續輸入。
  • 取消當前輸入:輸入 \c,提示符恢復為 mysql>。

提示符完整含義表

提示符含義
mysql>準備接受新命令
->等待多行命令的下一行
'>等待單引號字符串的下一行
">等待雙引號字符串的下一行
`>等待反引號標識符的下一行
/*>等待註釋的下一行(MySQL 5.0.6+)

常見陷阱處理

  • 忘記分號: 輸入分號即可執行。
  • 未閉合字符串: 出現 '> 或 "> 提示符。解決:先輸入閉合引號,再輸入 \c 取消。
  • 未閉合標識符: 出现 `> 提示符,同理處理。

掌握提示符含義至關重要,否則可能誤以為系統無響應。

3.3 創建和使用數據庫

3.3.1 創建與選擇數據庫

查看現有數據庫:SHOW DATABASES;。通常包含 mysql(權限數據)和 test(測試工作區)庫。

切換到 test 庫:USE test(無需分號)。

創建專屬數據庫(需管理員授權):

mysql> GRANT ALL ON menagerie.* TO 'your_mysql_name'@'your_client_host';

創建數據庫:

mysql> CREATE DATABASE menagerie;

注意: Unix 系統數據庫名區分大小寫,建議統一使用創建時的大小寫。創建後需顯式選擇:USE menagerie;。也可啟動時指定:shell> mysql -h host -u user -p menagerie(密碼勿放命令行避免洩露)。

3.3.2 創建表

使用 CREATE TABLE 定義結構。以寵物數據為例:

mysql> CREATE TABLE pet (
    name VARCHAR(20), owner VARCHAR(20),
    species VARCHAR(20), sex CHAR(1),
    birth DATE, death DATE
);
  • VARCHAR 適合變長字符串(名字、主人、種類)。
  • CHAR(1) 存儲性別('m'/'f')。
  • DATE 存儲出生/死亡日期。為何存生日而非年齡? 年齡隨時間變化需頻繁更新;生日固定,可動態計算年齡,還能實現生日提醒、按相對日期計算年齡等業務價值。

驗證表結構:DESCRIBE pet; 顯示字段、類型、是否可空、鍵、默認值等信息。

3.3.3 向表中載入數據

使用 LOAD DATA 和 INSERT 語句。

批量載入 (LOAD DATA): 將數據保存為文本文件(如 pet.txt),每行一條記錄,字段按建表順序用制表符分隔,缺失值用 \N 表示。

mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet;

Windows 文件換行符為 \r\n 時:

mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet
    -> LINES TERMINATED BY '\r\n';

macOS 可能需 LINES TERMINATED BY '\r'。

單條插入 (INSERT):

mysql> INSERT INTO pet
    -> VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL);

字符串和日期需加引號,NULL 直接表示缺失值(區別於 LOAD DATA 的 \N)。

對比: 批量載入用 LOAD DATA 效率高;少量數據用 INSERT 靈活。

3.3.4 從表中提取數據

基礎查詢:SELECT * FROM pet;。條件查詢:SELECT * FROM pet WHERE species='dog';。選擇特定列:SELECT name, birth FROM pet;。排序:SELECT * FROM pet ORDER BY birth;。多表關聯查詢將在後續章節講解。

3.4 獲取數據庫與表信息

  • SHOW DATABASES; - 列出所有數據庫
  • SHOW TABLES; - 列出當前庫所有表
  • DESCRIBE 表名; 或 SHOW COLUMNS FROM 表名; - 顯示表結構
  • SHOW CREATE TABLE 表名; - 顯示建表語句
  • SHOW INDEX FROM 表名; - 顯示索引信息
  • SHOW TABLE STATUS; - 顯示表狀態統計

3.5 批處理模式使用 mysql

將 SQL 語句保存文件(如 commands.sql),執行:

shell> mysql < commands.sql

或指定數據庫:

shell> mysql -h host -u user -p menagerie < commands.sql

輸出重定向到文件:mysql < commands.sql > output.txt。批處理模式下輸出格式為制表符分隔,非交互式表格。

3.6 常用查詢示例精選

本節提供豐富實戰案例:

  • 3.6.1 查詢列最大值
  • 3.6.2 查詢最大值所在行完整數據
  • 3.6.3 查詢每組最大值(分組聚合)
  • 3.6.4 查詢每組最大值所在行數據
  • 3.6.5 使用用戶定義變量
  • 3.6.6 使用外鍵關聯
  • 3.6.7 根據兩個鍵查詢
  • 3.6.8 計算每日訪問量
  • 3.6.9 使用自動增量列

每個示例均包含建表、插數據、查詢語句及結果分析,極具參考價值。

3.7 雙胞胎項目實戰查詢

  • 3.7.1 尋找所有未分開的雙胞胎
  • 3.7.2 顯示每對雙胞胎狀態的表

展示複雜業務場景下的 SQL 組織技巧。

3.8 Apache 中使用 MySQL

簡要介紹 Web 應用中通過 Apache 連接 MySQL 的基本架構,為後續開發章節鋪墊。

學習建議

  1. 動手實踐: 每個示例務必在實際環境運行,觀察提示符變化、結果格式。
  2. 善用幫助: mysql --help 查看選項;help 或 \h 獲取命令幫助。
  3. 關注細節: 分號、引號、提示符變化、大小寫敏感性等細節決定成敗。
  4. 舉一反三: 以寵物數據庫為模板,嘗試設計自己的業務數據模型。

本章作為教程,省略了許多細節。如需深入理解,請查閱手冊相關專章。掌握本章內容,您將具備獨立操作 MySQL 完成基礎數據庫開發任務的能力。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved