在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ 數(shù)據(jù)庫/ MySQL 選擇查詢
MySQL 復(fù)制表
MySQL ALTER 命令
MySQL 安裝
MySQL 日期與時間方面的函數(shù)
MySQL SQL Injection
MySQL 排序結(jié)果
MySQL 臨時表
MySQL 介紹
MySQL 數(shù)據(jù)導(dǎo)出
MySQL 索引
MySQL 數(shù)值函數(shù)
MySQL 更新查詢
MySQL UNION 關(guān)鍵字
MySQL RAND 函數(shù)
創(chuàng)建 MySQL 數(shù)據(jù)庫
MySQL AVG 函數(shù)
MySQL Using Join
MySQL Handling Duplicates
MySQL SUM 函數(shù)
MySQL 數(shù)據(jù)類型
MySQL 插入查詢
MySQL 字符串函數(shù)
MySQL Using Sequences
MySQL 管理
MySQL 數(shù)據(jù)導(dǎo)入
MySQL BETWEEN 子句
MySQL MIN 函數(shù)
創(chuàng)建 MySQL 表
MySQL Group By 子句
MySQL COUNT 函數(shù)
MySQL 匯報
MySQL 選擇數(shù)據(jù)庫
MySQL Where Clause
MySQL 選擇查詢
MySQL Like Clause
MySQL 正則表達式
一些非常有用的學(xué)習(xí)資源
MySQL NULL Values
MySQL 刪除查詢
MySQL 數(shù)據(jù)庫信息
一些有用的 MySQL 函數(shù)與子句
MySQL 刪除表
MySQL MAX 函數(shù)
MySQL SQRT 函數(shù)
MySQL 終止數(shù)據(jù)庫
連接 MySQL 服務(wù)器
MySQL IN 子句
MySQL CONCAT 函數(shù)
MySQL PHP語法

MySQL 選擇查詢

SQL 的 SELECT 命令用于從 MySQL 數(shù)據(jù)庫中獲取數(shù)據(jù)??梢栽趍ysql> 提示符中使用這一命令,也可以利用 PHP 等腳本來完成。

語法格式

利用 SELECT 命令從 MySQL 表中獲取數(shù)據(jù)的一般語法格式如下:

SELECT field1, field2,...fieldN table_name1, table_name2...  
[WHERE Clause]  
[OFFSET M ][LIMIT N]  
  • 可以通過逗號分隔一個或多個表,利用 WHERE 子句包含進多種條件,但 WHERE 子句并不是 SELECT 命令的可選部分。
  • 可以在一個 SELECT 命令中獲取一個或多個字段。
  • 可以用星型符號(*)代替字段。這時,SELECT 將返回所有字段。
  • 可以使用 WHERE 子句指定任何條件。
  • 在 SELECT 將要返回記錄的位置處,使用 OFFSET 可以指定一個偏移。默認(rèn)偏移為0。
  • 可以使用 LIMIT 屬性來限制返回記錄的數(shù)量。

利用命令行方式獲取數(shù)據(jù)

使用 SELECT 命令從表 tutorials_tbl 中獲取數(shù)據(jù)。

范例

下面這個范例將返回表 tutorials_tbl 中的所有記錄。

root@host# mysql -u root -p password;
Enter password:*******
mysql> use TUTORIALS;
Database changed
mysql> SELECT * from tutorials_tbl 
+-------------+----------------+-----------------+-----------------+
| tutorial_id | tutorial_title | tutorial_author | submission_date |
+-------------+----------------+-----------------+-----------------+
|           1 | Learn PHP      | John Poul       | 2007-05-21      |
|           2 | Learn MySQL    | Abdul S         | 2007-05-21      |
|           3 | JAVA Tutorial  | Sanjay          | 2007-05-21      |
+-------------+----------------+-----------------+-----------------+
3 rows in set (0.01 sec)

mysql>

使用 PHP 腳本獲取數(shù)據(jù)

同樣,也可以在 mysql_query() 函數(shù)中使用 SQL 命令 SELECT。該函數(shù)用于執(zhí)行 SQL 命令。隨后另一個 PHP 函數(shù) mysql_fetch_array() 會獲取所有選定的數(shù)據(jù),該函數(shù)會將行以關(guān)聯(lián)數(shù)組或數(shù)值數(shù)組返回,或者還可能同時返回以上兩種形式。如果再也沒有行,則該函數(shù)返回 FALSE。

下面通過一個簡單的范例來了解如何獲取 tutorials_tbl 表中的記錄。

范例

下面這個范例會獲取表 tutorials_tbl 中的所有記錄。

<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
  die('Could not connect: ' . mysql_error());
}
$sql = 'SELECT tutorial_id, tutorial_title, 
               tutorial_author, submission_date
        FROM tutorials_tbl';

mysql_select_db('TUTORIALS');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
  die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
{
    echo "Tutorial ID :{$row['tutorial_id']}  <br> ".
         "Title: {$row['tutorial_title']} <br> ".
         "Author: {$row['tutorial_author']} <br> ".
         "Submission Date : {$row['submission_date']} <br> ".
         "--------------------------------<br>";
} 
echo "Fetched data successfully\n";
mysql_close($conn);
?>

行的內(nèi)容被賦給變量 $row,隨后輸出行內(nèi)所包含的值。

注意:一定要記住,在把一個數(shù)組值直接插入到字符串中時,一定要加花括號({})。

在上面的例子中,常量 MYSQL_ASSOC 被用作 PHP 函數(shù) mysql_fetch_array() 的第二個參數(shù),因此才會將行按照關(guān)聯(lián)數(shù)組的形式返回。利用關(guān)聯(lián)數(shù)組,我們可以使用字段的名字來訪問字段,而不需要用到索引。

PHP 還提供了另一個叫做 mysql_fetch_assoc() 的函數(shù),也會將行以關(guān)聯(lián)數(shù)組的形式返回。

范例

在下面的范例中,利用 mysql_fetch_assoc() 函數(shù)來顯示 tutorials_tbl 表中的所有記錄。

<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
  die('Could not connect: ' . mysql_error());
}
$sql = 'SELECT tutorial_id, tutorial_title, 
               tutorial_author, submission_date
        FROM tutorials_tbl';

mysql_select_db('TUTORIALS');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
  die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_assoc($retval))
{
    echo "Tutorial ID :{$row['tutorial_id']}  <br> ".
         "Title: {$row['tutorial_title']} <br> ".
         "Author: {$row['tutorial_author']} <br> ".
         "Submission Date : {$row['submission_date']} <br> ".
         "--------------------------------<br>";
} 
echo "Fetched data successfully\n";
mysql_close($conn);
?>

你可以使用常量 MYSQL_NUM 作為 mysql_fetch_array() 函數(shù)的第二個參數(shù)。這能讓函數(shù)返回一個帶有數(shù)字索引的數(shù)組。

范例

在下面的范例中,使用參數(shù) MYSQL_NUM 來顯示表 tutorials_tbl 中的所有記錄。

<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
  die('Could not connect: ' . mysql_error());
}
$sql = 'SELECT tutorial_id, tutorial_title, 
               tutorial_author, submission_date
        FROM tutorials_tbl';

mysql_select_db('TUTORIALS');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
  die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_array($retval, MYSQL_NUM))
{
    echo "Tutorial ID :{$row[0]}  <br> ".
         "Title: {$row[1]} <br> ".
         "Author: {$row[2]} <br> ".
         "Submission Date : {$row[3]} <br> ".
         "--------------------------------<br>";
}
echo "Fetched data successfully\n";
mysql_close($conn);
?>

以上三個范例都會產(chǎn)生同樣的結(jié)果。

釋放內(nèi)存

在每個 SELECT 語句末尾釋放游標(biāo)內(nèi)存是一個非常好的做法。使用 PHP 函數(shù) mysql_free_result() 就可以實現(xiàn)這一點,如下例所示。

范例

<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
  die('Could not connect: ' . mysql_error());
}
$sql = 'SELECT tutorial_id, tutorial_title, 
               tutorial_author, submission_date
        FROM tutorials_tbl';

mysql_select_db('TUTORIALS');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
  die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_array($retval, MYSQL_NUM))
{
    echo "Tutorial ID :{$row[0]}  <br> ".
         "Title: {$row[1]} <br> ".
         "Author: {$row[2]} <br> ".
         "Submission Date : {$row[3]} <br> ".
         "--------------------------------<br>";
}
mysql_free_result($retval);
echo "Fetched data successfully\n";
mysql_close($conn);
?>

在獲取數(shù)據(jù)時,還可以用更復(fù)雜的SQL語句。步驟和上面介紹的一樣。