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); // 释放内存
?>
```