国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL Select查詢

2024-07-24 12:32:39
字體:
來源:轉載
供稿:網友
        SQL SELECT命令用于從MySQL數據庫獲取數據。可以在MySQL>提示符使用這個命令,以及任何像PHP的腳本和語言等。
 
語法
      下面是通用的SQL的SELECT命令語法,從MySQL表獲取數據:
 
SELECT field1, field2,...fieldN table_name1, table_name2...
[WHERE Clause]
[OFFSET M ][LIMIT N]
     可以使用分隔的一個或多個逗號從多個表,以及使用WHERE子句包括各種條件,但WHERE子句是SELECT命令的可選部分
 
      可以在一個SELECT命令指定讀取一個或多個字段
 
可以指定星號(*)代替選擇的字段。在這種情況下,將返回所有字段
 
可以指定任意的條件在 WHERE 子句后面
 
可以使用OFFSET指定一個偏移量,SELECT從那里開始返回記錄。默認情況下 offset 的值是 0
 
可以使用LIMIT屬性限制返回的數量
 
1、從命令提示符讀取數據
這將使用SQL SELECT命令從MySQL 表 tutorials_tbl 讀取數據
 
示例
下面的例子將從 tutorials_tbl 表返回所有記錄:
 
root@host# mysql -u root -p password;
Enter password:
mysql> use test;
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>
2、使用PHP腳本提取數據
可以使用相同的SQL SELECT命令,在PHP中的mysql_query()函數.此函數用于執行SQL命令,另一個更高版本PHP mysql_fetch_array()函數可用于獲取所有選定的數據. 這個函數返回一行作為關聯數組,數字數組,或兩者兼而有。如果沒有更多的行這個函數返回 FALSE。
 
下面是一個簡單的例子來從tutorials_tbl表中提取記錄。
 
示例
試試下面的例子來顯示tutorials_tbl表中的所有記錄。
 
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$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('test');
$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);
?>
數據庫的行內容被分配到變量$row,并且行中的值將被打印出來。
 
注意: 當想直接插入數組值轉換成字符串,一定記得使用花括號。
 
在上面的例子中,常量 MYSQL_ASSOC作為PHP函數 mysql_fetch_array() 的第二個參數, 因此,它返回該行作為關聯數組。關聯數組我們可以使用它的名稱,而不是使用索引來訪問該字段。
 
PHP提供了另一個函數 mysql_fetch_assoc(),也返回該行作為關聯數組。
 
示例
試試下面的例子用來顯示 tutorial_tbl 表所有的記錄,使用 mysql_fetch_assoc() 函數例子如下:
 
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$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('test');
$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作為PHP mysql_fetch_array()函數的第二個參數。這會使該函數返回數字索引的數組。
 
示例
試試下面的例子來使用MYSQL_NUM 參數顯示 tutorials_tbl 表的所有記錄。
 
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$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('test');
$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);
?>
所有上述三個例子將產生相同的結果。
 
釋放內存:
這是一個很好的做法,以釋放內存光標在每個SELECT語句的結束。這可以通過使用PHP函數了mysql_free_result()來完成。下面是該例子,以顯示它如何被使用。
 
示例
試試下面的例子
 
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$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('test');
$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);
?>
在讀取數據時,可以根據需要編寫復雜的SQL。如上所述過程將保持不變。

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 建始县| 西丰县| 阿克苏市| 合江县| 道孚县| 尉氏县| 和平区| 呼玛县| 宜宾县| 布尔津县| 离岛区| 新昌县| 稻城县| 嘉兴市| 梨树县| 文安县| 西吉县| 大名县| 堆龙德庆县| 平定县| 奉新县| 开江县| 阿克苏市| 玉林市| 靖边县| 乌审旗| 寿宁县| 通化县| 体育| 金塔县| 岳普湖县| 泗水县| 汾西县| 张家界市| 德江县| 舟曲县| 福贡县| 巴楚县| 陆良县| 米脂县| 光山县|