
- MariaDB 教程
- MariaDB - 首頁
- MariaDB - 簡介
- MariaDB - 安裝
- MariaDB - 管理
- MariaDB - PHP 語法
- MariaDB - 連線
- MariaDB - 建立資料庫
- MariaDB - 刪除資料庫
- MariaDB - 選擇資料庫
- MariaDB - 資料型別
- MariaDB - 建立表
- MariaDB - 刪除表
- MariaDB - 插入查詢
- MariaDB - 選擇查詢
- MariaDB - WHERE 子句
- MariaDB - 更新查詢
- MariaDB - 刪除查詢
- MariaDB - LIKE 子句
- MariaDB - ORDER BY 子句
- MariaDB - JOIN
- MariaDB - NULL 值
- MariaDB - 正則表示式
- MariaDB - 事務
- MariaDB - ALTER 命令
- 索引和統計表
- MariaDB - 臨時表
- MariaDB - 表克隆
- MariaDB - 序列
- MariaDB - 管理重複資料
- MariaDB - SQL 注入防護
- MariaDB - 備份方法
- MariaDB - 備份載入方法
- MariaDB - 常用函式
- MariaDB 常用資源
- MariaDB - 快速指南
- MariaDB - 常用資源
- MariaDB - 討論
MariaDB - 選擇查詢
本章我們將學習如何從表中選擇資料。
SELECT 語句檢索選定的行。它們可以包含 UNION 語句、排序子句、LIMIT 子句、WHERE 子句、GROUP BY...HAVING 子句和子查詢。
檢視以下通用語法:
SELECT field, field2,... FROM table_name, table_name2,... WHERE...
SELECT 語句提供了多種指定所用表的選項:
資料庫名稱.表名稱
表名稱.列名稱
資料庫名稱.表名稱.列名稱
所有 SELECT 語句都必須包含一個或多個選擇表示式。選擇表示式包含以下選項之一:
列名稱。
使用運算子和函式的表示式。
規範“表名稱.*”以選擇給定表中的所有列。
字元“*”以從 FROM 子句中指定的所有表中選擇所有列。
可以使用命令提示符或 PHP 指令碼執行 SELECT 語句。
命令提示符
在命令提示符下,按如下方式執行語句:
root@host# mysql -u root -p password; Enter password:******* mysql> use PRODUCTS; Database changed mysql> SELECT * from products_tbl +-------------+---------------+ | ID_number | Nomenclature | +-------------+---------------+ | 12345 | Orbitron 4000 | +-------------+---------------+
PHP 選擇指令碼
在 PHP 函式中使用相同的 SELECT 語句來執行操作。你將再次使用mysql_query()函式。檢視下面給出的示例:
<?php $dbhost = 'localhost:3036'; $dbuser = 'root'; $dbpass = 'rootpassword'; $conn = mysql_connect($dbhost, $dbuser, $dbpass); if(! $conn ) { die('Could not connect: ' . mysql_error()); } $sql = 'SELECT product_id, product_name,product_manufacturer, ship_date FROM products_tbl'; mysql_select_db('PRODUCTS'); $retval = mysql_query( $sql, $conn ); if(! $retval ) { die('Could not get data: ' . mysql_error()); } while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) { echo "Product ID :{$row['product_id']} <br> ". "Name: {$row['product_name']} <br> ". "Manufacturer: {$row['product_manufacturer']} <br> ". "Ship Date : {$row['ship_date']} <br>". "--------------------------------<br>"; } echo "Fetched data successfully\n"; mysql_close($conn); ?>
成功檢索資料後,你將看到以下輸出:
Product ID: 12345 Nomenclature: Orbitron 4000 Manufacturer: XYZ Corp Ship Date: 01/01/17 ---------------------------------------------- Product ID: 12346 Nomenclature: Orbitron 3000 Manufacturer: XYZ Corp Ship Date: 01/02/17 ---------------------------------------------- mysql> Fetched data successfully
最佳實踐建議在每個 SELECT 語句後釋放遊標記憶體。PHP 提供了mysql_free_result()函式來實現此目的。檢視其用法如下:
<?php $dbhost = 'localhost:3036'; $dbuser = 'root'; $dbpass = 'rootpassword'; $conn = mysql_connect($dbhost, $dbuser, $dbpass); if(! $conn ) { die('Could not connect: ' . mysql_error()); } $sql = 'SELECT product_id, product_name, product_manufacturer, ship_date FROM products_tbl'; mysql_select_db('PRODUCTS'); $retval = mysql_query( $sql, $conn ); if(! $retval ) { die('Could not get data: ' . mysql_error()); } while($row = mysql_fetch_array($retval, MYSQL_NUM)) { echo "Product ID :{$row[0]} <br> ". "Name: {$row[1]} <br> ". "Manufacturer: {$row[2]} <br> ". "Ship Date : {$row[3]} <br> ". "--------------------------------<br>"; } mysql_free_result($retval); echo "Fetched data successfully\n"; mysql_close($conn); ?>
廣告