Como o banco de dados MySQL consulta dados em uma tabela?Instrução de consulta/comando/sintaxe

banco de dados MySQLComo consultar os dados na tabela?Instrução de consulta/comando/sintaxe

MySQL Consultar dados

Os bancos de dados MySQL usam instruções SQL SELECT para consultar dados.

Você pode consultar dados no banco de dados por meio da janela do prompt de comando mysql> ou por meio de um script PHP.

gramática

A seguir está a sintaxe SELECT geral para consultar dados em um banco de dados MySQL:

SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[OFFSET M ][LIMIT N]
  • Na instrução de consulta, você pode usar uma ou mais tabelas, separar as tabelas com vírgulas (,) e usar a instrução WHERE para definir as condições de consulta.
  • O comando SELECT pode ler um ou mais registros.
  • Você pode usar um asterisco (*) para substituir outros campos, a instrução SELECT retornará todos os dados de campo da tabela
  • Você pode usar a instrução WHERE para incluir qualquer condição.
  • Você pode especificar o deslocamento de dados no qual a instrução SELECT inicia a consulta com OFFSET.Por padrão, o deslocamento é 0.
  • Você pode usar a propriedade LIMIT para definir o número de registros retornados.

Obter dados via prompt de comando

No exemplo a seguir, usaremos o comando SQL SELECT para obter os dados da tabela de dados MySQL chenweiliang_tbl:

Instância

O exemplo a seguir retornará todos os registros da tabela de dados chenweiliang_tbl:

Leia a ficha técnica:

select * from chenweiliang_tbl;

Use script PHP para obter dados

usando funções PHP mysqli_query() E SELEÇÃO SQL comando para obter os dados.

Esta função é usada para executar comandos SQL e depois passar funções PHP mysqli_fetch_array() para usar ou gerar dados para todas as consultas.

mysqli_fetch_array() A função busca uma linha do conjunto de resultados como um array associativo, ou um array de números, ou ambos. Retorna um array gerado a partir das linhas buscadas no conjunto de resultados, ou false se não houver mais linhas.

O exemplo a seguir lê todos os registros da tabela de dados chenweiliang_tbl.

Instância

Tente o exemplo a seguir para exibir todos os registros da tabela de dados chenweiliang_tbl.

Use o parâmetro mysqli_fetch_array MYSQL_ASSOC para buscar dados:

<?
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);
?>

 

No exemplo acima, cada linha de registros lidos é atribuída à variável $row e, em seguida, cada valor é impresso.

Nota:Lembre-se que se você precisar usar uma variável em uma string, coloque a variável entre chaves.

No exemplo acima, o segundo parâmetro da função PHP mysqli_fetch_array() é MYSQL_ASSOC, defina este parâmetro para consultar o resultado para retornar uma matriz associativa, você pode usar o nome do campo como o índice da matriz.

PHP fornece outra função mysqli_fetch_assoc(), a função recebe uma linha do conjunto de resultados como uma matriz associativa.Retorna uma matriz associativa gerada a partir das linhas retiradas do conjunto de resultados ou false se não houver mais linhas.

Instância

Tente o exemplo a seguir, que usa mysqli_fetch_assoc() função para gerar todos os registros da tabela de dados chenweiliang_tbl:

Use mysqli_fetch_assoc para buscar dados:

<?
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);
?>

Você também pode usar a constante MYSQL_NUM como o segundo parâmetro da função PHP mysqli_fetch_array(), que retorna um array de números.

Instância

Os exemplos a seguir usam MYSQL_NUM O parâmetro exibe todos os registros da tabela de dados chenweiliang_tbl:

Use o parâmetro mysqli_fetch_array MYSQL_NUM para buscar dados:

<?
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);
?>

Os resultados de saída dos três exemplos acima são os mesmos.


liberação de memória

É uma boa prática liberar a memória do cursor depois de executar uma instrução SELECT.

A memória pode ser liberada através da função PHP mysqli_free_result().

O exemplo a seguir demonstra o uso dessa função.

Instância

Tente os seguintes exemplos:

Memória livre com 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);
?>
 

Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) compartilhado "Como o banco de dados MySQL consulta os dados na tabela?Query Statement/Command/Syntax" para ajudá-lo.

Bem-vindo a compartilhar o link deste artigo:https://www.chenweiliang.com/cwl-461.html

Bem-vindo ao canal Telegram do blog de Chen Weiliang para receber as últimas atualizações!

🔔 Seja o primeiro a obter o valioso "Guia de uso da ferramenta de IA de marketing de conteúdo ChatGPT" no diretório superior do canal! 🌟
📚 Este guia contém um valor enorme, 🌟Esta é uma oportunidade rara, não perca! ⏰⌛💨
Compartilhe e curta se gostar!
Seus compartilhamentos e curtidas são nossa motivação contínua!

 

发表 评论

Seu endereço de e-mail não será publicado. 必填 项 已 用 * 标注

滚动 到 顶部