Comment la base de données MySQL interroge-t-elle les données d'une table ?Requête Instruction/Commande/Syntaxe

Base de données MySQLComment interroger les données de la table ?Requête Instruction/Commande/Syntaxe

MySQL Interroger les données

Les bases de données MySQL utilisent des instructions SQL SELECT pour interroger les données.

Vous pouvez interroger les données de la base de données via la fenêtre d'invite de commande mysql> ou via un script PHP.

grammaire

Voici la syntaxe SELECT générale pour interroger des données dans une base de données MySQL :

SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[OFFSET M ][LIMIT N]
  • Dans l'instruction de requête, vous pouvez utiliser une ou plusieurs tables, séparer les tables par des virgules (,) et utiliser l'instruction WHERE pour définir les conditions de requête.
  • La commande SELECT peut lire un ou plusieurs enregistrements.
  • Vous pouvez utiliser un astérisque (*) pour remplacer d'autres champs, l'instruction SELECT renverra toutes les données de champ de la table
  • Vous pouvez utiliser l'instruction WHERE pour inclure n'importe quelle condition.
  • Vous pouvez spécifier le décalage de données auquel l'instruction SELECT démarre la requête avec OFFSET.Par défaut, le décalage est de 0.
  • Vous pouvez utiliser la propriété LIMIT pour définir le nombre d'enregistrements renvoyés.

Obtenir des données via l'invite de commande

Dans l'exemple suivant, nous allons utiliser la commande SQL SELECT pour obtenir les données de la table de données MySQL chenweiliang_tbl :

Exemple

L'exemple suivant renverra tous les enregistrements de la table de données chenweiliang_tbl :

Lire la fiche technique :

select * from chenweiliang_tbl;

Utiliser le script PHP pour obtenir des données

utiliser les fonctions PHP mysqli_query() 及 SQL SELECT commande pour obtenir les données.

Cette fonction est utilisée pour exécuter des commandes SQL puis passer des fonctions PHP mysqli_fetch_array() pour utiliser ou générer des données pour toutes les requêtes.

mysqli_fetch_array() La fonction extrait une ligne du jeu de résultats sous la forme d'un tableau associatif, ou d'un tableau de nombres, ou les deux. Renvoie un tableau généré à partir des lignes extraites du jeu de résultats, ou false s'il n'y a plus de lignes.

L'exemple suivant lit tous les enregistrements de la table de données chenweiliang_tbl.

Exemple

Essayez l'exemple suivant pour afficher tous les enregistrements de la table de données chenweiliang_tbl.

Utilisez le paramètre mysqli_fetch_array MYSQL_ASSOC pour récupérer les données :

<?
php
$dbhost = 'localhost:3306'; // mysql服务器主机地址
$dbuser = 'root'; // mysql用户名
$dbpass = '123456'; // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
 die('连接失败: ' . mysqli_error($conn));
}
// 设置编码,防止中文乱码
mysqli_query($conn , "set names utf8");
 
$sql = 'SELECT chenweiliang_id, chenweiliang_title, 
 chenweiliang_author, submission_date
 FROM chenweiliang_tbl';
 
mysqli_select_db( $conn, 'chenweiliang' );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
 die('无法读取数据: ' . mysqli_error($conn));
}
echo '<h2>陈沩亮博客 mysqli_fetch_array 测试<h2>';
echo '<table border="1"><tr><td>教程 ID</td><td>标题</td><td>作者</td><td>提交日期</td></tr>';
while($row = mysqli_fetch_array($retval, MYSQL_ASSOC))
{
 echo "<tr><td> {$row['chenweiliang_id']}</td> ".
 "<td>{$row['chenweiliang_title']} </td> ".
 "<td>{$row['chenweiliang_author']} </td> ".
 "<td>{$row['submission_date']} </td> ".
 "</tr>";
}
echo '</table>';
mysqli_close($conn);
?>

 

Dans l'exemple ci-dessus, chaque ligne d'enregistrements lus est affectée à la variable $row, puis chaque valeur est imprimée.

Remarque:N'oubliez pas que si vous devez utiliser une variable dans une chaîne, mettez la variable entre accolades.

Dans l'exemple ci-dessus, le deuxième paramètre de la fonction PHP mysqli_fetch_array() est MYSQL_ASSOC, définissez ce paramètre pour interroger le résultat afin de renvoyer un tableau associatif, vous pouvez utiliser le nom du champ comme index du tableau.

PHP fournit une autre fonction mysqli_fetch_assoc(), la fonction prend une ligne du jeu de résultats sous la forme d'un tableau associatif.Renvoie un tableau associatif généré à partir des lignes extraites du jeu de résultats, ou false s'il n'y a plus de lignes.

Exemple

Essayez l'exemple suivant, qui utilise mysqli_fetch_assoc() fonction pour afficher tous les enregistrements de la table de données chenweiliang_tbl :

Utilisez mysqli_fetch_assoc pour récupérer les données :

<?
php
$dbhost = 'localhost:3306'; // mysql服务器主机地址
$dbuser = 'root'; // mysql用户名
$dbpass = '123456'; // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
 die('连接失败: ' . mysqli_error($conn));
}
// 设置编码,防止中文乱码
mysqli_query($conn , "set names utf8");
 
$sql = 'SELECT chenweiliang_id, chenweiliang_title, 
 chenweiliang_author, submission_date
 FROM chenweiliang_tbl';
 
mysqli_select_db( $conn, 'chenweiliang' );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
 die('无法读取数据: ' . mysqli_error($conn));
}
echo '<h2>陈沩亮博客 mysqli_fetch_assoc 测试<h2>';
echo '<table border="1"><tr><td>教程 ID</td><td>标题</td><td>作者</td><td>提交日期</td></tr>';
while($row = mysqli_fetch_assoc($retval))
{
 echo "<tr><td> {$row['chenweiliang_id']}</td> ".
 "<td>{$row['chenweiliang_title']} </td> ".
 "<td>{$row['chenweiliang_author']} </td> ".
 "<td>{$row['submission_date']} </td> ".
 "</tr>";
}
echo '</table>';
mysqli_close($conn);
?>

Vous pouvez également utiliser la constante MYSQL_NUM comme deuxième paramètre de la fonction PHP mysqli_fetch_array(), qui renvoie un tableau de nombres.

Exemple

Les exemples suivants utilisent MYSQL_NUM Le paramètre affiche tous les enregistrements de la table de données chenweiliang_tbl :

Utilisez le paramètre mysqli_fetch_array MYSQL_NUM pour récupérer les données :

<?
php
$dbhost = 'localhost:3306'; // mysql服务器主机地址
$dbuser = 'root'; // mysql用户名
$dbpass = '123456'; // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
 die('连接失败: ' . mysqli_error($conn));
}
// 设置编码,防止中文乱码
mysqli_query($conn , "set names utf8");
 
$sql = 'SELECT chenweiliang_id, chenweiliang_title, 
 chenweiliang_author, submission_date
 FROM chenweiliang_tbl';
 
mysqli_select_db( $conn, 'chenweiliang' );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
 die('无法读取数据: ' . mysqli_error($conn));
}
echo '<h2>陈沩亮博客 mysqli_fetch_array 测试<h2>';
echo '<table border="1"><tr><td>教程 ID</td><td>标题</td><td>作者</td><td>提交日期</td></tr>';
while($row = mysqli_fetch_array($retval, MYSQL_NUM))
{
 echo "<tr><td> {$row[0]}</td> ".
 "<td>{$row[1]} </td> ".
 "<td>{$row[2]} </td> ".
 "<td>{$row[3]} </td> ".
 "</tr>";
}
echo '</table>';
mysqli_close($conn);
?>

Les résultats de sortie des trois exemples ci-dessus sont les mêmes.


libération de mémoire

C'est une bonne pratique de libérer la mémoire du curseur après avoir exécuté une instruction SELECT.

La mémoire peut être libérée via la fonction PHP mysqli_free_result().

L'exemple suivant illustre l'utilisation de cette fonction.

Exemple

Essayez les exemples suivants :

Libérez de la mémoire avec mysqli_free_result :

<?
php
$dbhost = 'localhost:3306'; // mysql服务器主机地址
$dbuser = 'root'; // mysql用户名
$dbpass = '123456'; // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
 die('连接失败: ' . mysqli_error($conn));
}
// 设置编码,防止中文乱码
mysqli_query($conn , "set names utf8");
 
$sql = 'SELECT chenweiliang_id, chenweiliang_title, 
 chenweiliang_author, submission_date
 FROM chenweiliang_tbl';
 
mysqli_select_db( $conn, 'chenweiliang' );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
 die('无法读取数据: ' . mysqli_error($conn));
}
echo '<h2>陈沩亮博客 mysqli_fetch_array 测试<h2>';
echo '<table border="1"><tr><td>教程 ID</td><td>标题</td><td>作者</td><td>提交日期</td></tr>';
while($row = mysqli_fetch_array($retval, MYSQL_NUM))
{
 echo "<tr><td> {$row[0]}</td> ".
 "<td>{$row[1]} </td> ".
 "<td>{$row[2]} </td> ".
 "<td>{$row[3]} </td> ".
 "</tr>";
}
echo '</table>';
// 释放内存
mysqli_free_result($retval);
mysqli_close($conn);
?>
 

J'espère que le blog de Chen Weiliang ( https://www.chenweiliang.com/ ) partagé "Comment la base de données MySQL interroge-t-elle les données de la table ?Instruction de requête/commande/syntaxe" pour vous aider.

Bienvenue à partager le lien de cet article :https://www.chenweiliang.com/cwl-461.html

Bienvenue sur la chaîne Telegram du blog de Chen Weiliang pour obtenir les dernières mises à jour !

🔔 Soyez le premier à obtenir le précieux « Guide d'utilisation de l'outil d'IA de marketing de contenu ChatGPT » dans le répertoire supérieur de la chaîne ! 🌟
📚 Ce guide contient une valeur énorme, 🌟C'est une opportunité rare, ne la manquez pas ! ⏰⌛💨
Partagez et likez si vous aimez !
Vos partages et likes sont notre motivation continue !

 

发表 评论

Votre adresse email ne sera pas publiée. 项 已 用 * 标注

到 顶部