📜  MySQL-选择查询

📅  最后修改于: 2020-11-27 06:34:13             🧑  作者: Mango


SQL SELECT命令用于从MySQL数据库获取数据。您可以在mysql>提示符以及任何脚本(如PHP)中使用此命令。

句法

这是SELECT命令的通用SQL语法,用于从MySQL表中获取数据-

SELECT field1, field2,...fieldN 
FROM table_name1, table_name2...
[WHERE Clause]
[OFFSET M ][LIMIT N]
  • 您可以使用WHERE子句来使用一个或多个用逗号分隔的表来包含各种条件,但是WHERE子句是SELECT命令的可选部分。

  • 您可以在单个SELECT命令中获取一个或多个字段。

  • 您可以指定星号(*)代替字段。在这种情况下,SELECT将返回所有字段。

  • 您可以使用WHERE子句指定任何条件。

  • 您可以使用OFFSET指定偏移量,SELECT将从该偏移量开始返回记录。默认情况下,偏移量从零开始。

  • 您可以使用LIMIT属性限制退货数量。

从命令提示符中获取数据

这将使用SQL SELECT命令从MySQL表tutorials_tbl中获取数据。

以下示例将返回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脚本获取数据

您可以在PHP函数mysql_query()中使用相同的SQL SELECT命令。该函数用于执行SQL命令,然后可以使用另一个PHP函数mysql_fetch_array()来获取所有选定数据。此函数以关联数组,数字数组或两者兼有的形式返回该行。如果没有更多行,此函数将返回FALSE。

下面的程序是一个简单的示例,它将显示如何从tutorials_tbl表中获取/显示记录。

下面的代码块将显示tutorials_tbl表中的所有记录。

 ".
         "Title: {$row['tutorial_title']} 
". "Author: {$row['tutorial_author']}
". "Submission Date : {$row['submission_date']}
". "--------------------------------
"; } echo "Fetched data successfully\n"; mysql_close($conn); ?>

将行的内容分配给变量$ row,然后打印该行中的值。

注意-当您想将数组值直接插入字符串时,请始终记住使用大括号。

在上面的示例中,常量MYSQL_ASSOC用作PHP函数mysql_fetch_array()的第二个参数,因此它将行作为关联数组返回。使用关联数组,您可以使用字段名称而不是使用索引来访问该字段。

PHP提供了另一个名为mysql_fetch_assoc()的函数,该函数还以关联数组的形式返回该行。

下面的示例使用mysql_fetch_assoc()函数显示tutorial_tbl表中的所有记录。

 ".
         "Title: {$row['tutorial_title']} 
". "Author: {$row['tutorial_author']}
". "Submission Date : {$row['submission_date']}
". "--------------------------------
"; } echo "Fetched data successfully\n"; mysql_close($conn); ?>

您还可以将常量MYSQL_NUM用作PHP函数mysql_fetch_array()的第二个参数。这将导致函数返回带有数字索引的数组。

尝试以下示例使用MYSQL_NUM参数显示tutorials_tbl表中的所有记录。

 ".
         "Title: {$row[1]} 
". "Author: {$row[2]}
". "Submission Date : {$row[3]}
". "--------------------------------
"; } echo "Fetched data successfully\n"; mysql_close($conn); ?>

以上三个示例都将产生相同的结果。

释放内存

在每个SELECT语句的末尾释放游标内存是一个好习惯。这可以通过使用PHP函数mysql_free_result()来完成。下面的程序是显示应如何使用的示例。

尝试以下示例-

 ".
         "Title: {$row[1]} 
". "Author: {$row[2]}
". "Submission Date : {$row[3]}
". "--------------------------------
"; } mysql_free_result($retval); echo "Fetched data successfully\n"; mysql_close($conn); ?>

在获取数据时,您可以根据需要编写复杂的代码,但是该过程将保持与上述相同。