MySQL 查询数据

MySQL 数据库使用 SELECT 语句来查询数据。你可以通过 mysql> 命令提示窗口中在数据库中查询数据,或者通过 PHP 脚本来查询数据。

语法:

以下为在 MySQL 数据库中查询数据通用的 SELECT 语法:

```sql

SELECT column1, column2, ... FROM table_name [WHERE condition] [ORDER BY column_name [ASC | DESC]] [LIMIT number];

```

参数说明:

- `column1`、`column2`:要查询的列名。

- `*`:表示查询所有列。

- `table_name`:要查询的数据表名。

- `WHERE condition`:可选,用于过滤查询结果的条件。

- `ORDER BY column_name [ASC | DESC]`:可选,用于对查询结果进行排序。

- `LIMIT number`:可选,用于限制返回的行数。

MySQL SELECT 语句简单的应用实例:

SELECT 语句可以是灵活的,我们可以根据实际需求组合和使用这些子句,比如同时使用 WHERE 和 ORDER BY 子句,或者使用 LIMIT 控制返回的行数。

WHERE=<><=>!=ANDORNOT%

以下是一些进阶的 SELECT 语句实例:

通过命令提示符获取数据:

以下实例我们将通过 SQL SELECT 命令来获取 MySQL 数据表 runoob_tbl 的数据:

```sql

SELECT * FROM runoob_tbl;

```

以上实例将返回数据表 runoob_tbl 的所有记录。

使用 PHP 脚本来获取数据:

使用 PHP 函数的 mysqli_query() 及 SQL SELECT 命令来获取数据。该函数用于执行 SQL 命令,然后通过 PHP 函数 mysqli_fetch_array() 来使用或输出所有查询的数据。mysqli_fetch_array() 函数从结果集中取得一行作为关联数组,或数字数组,或二者兼有。返回根据从结果集取得的行生成的数组,如果没有更多行则返回 false。

以下实例为从数据表 runoob_tbl 中读取所有记录。

```php

$conn = mysqli_connect("localhost", "username", "password", "database");

$sql = "SELECT * FROM runoob_tbl";

$result = mysqli_query($conn, $sql);

while ($row = mysqli_fetch_array($result)) {

echo "id: " . $row["id"]. " - Name: " . $row["name"]. "
";

}

mysqli_close($conn);

?>

```

以下是重构后的代码:

```php

// 设置该参数查询结果返回关联数组,你可以使用字段名称来作为数组的索引。

// PHP 提供了另外一个函数 mysqli_fetch_assoc(),该函数从结果集中取得一行作为关联数组。

// 返回根据从结果集取得的行生成的关联数组,如果没有更多行,则返回 false。

function fetchAssoc($conn, $sql) {

$result = mysqli_query($conn, $sql);

if (!$result) {

return false;

}

return mysqli_fetch_assoc($result);

}

// 实例1:使用mysqli_fetch_assoc()函数输出数据表runoob_tbl的所有记录

$conn = mysqli_connect("localhost", "username", "password", "database");

$sql = "SELECT * FROM runoob_tbl";

$data = fetchAssoc($conn, $sql);

while ($row = mysqli_fetch_assoc($data)) {

print_r($row);

}

mysqli_free_result($data); // 释放内存

?>

```