Как база данных MySQL запрашивает данные в таблице?Оператор запроса/команда/синтаксис

База данных MySQLКак запросить данные в таблице?Оператор запроса/команда/синтаксис

MySQL Данные запроса

Базы данных MySQL используют операторы SQL SELECT для запроса данных.

Вы можете запрашивать данные в базе данных через окно командной строки mysql> или через PHP-скрипт.

грамматика

Ниже приведен общий синтаксис SELECT для запроса данных в базе данных MySQL:

SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[OFFSET M ][LIMIT N]
  • В операторе запроса вы можете использовать одну или несколько таблиц, разделять таблицы запятыми (,) и использовать оператор WHERE для установки условий запроса.
  • Команда SELECT может прочитать одну или несколько записей.
  • Вы можете использовать звездочку (*) для замены других полей, оператор SELECT вернет данные всех полей таблицы.
  • Вы можете использовать оператор WHERE для включения любого условия.
  • Вы можете указать смещение данных, при котором оператор SELECT запускает запрос со смещением.По умолчанию смещение равно 0.
  • Вы можете использовать свойство LIMIT, чтобы задать количество возвращаемых записей.

Получить данные через командную строку

В следующем примере мы будем использовать команду SQL SELECT для получения данных таблицы данных MySQL chenweiliang_tbl:

Пример

Следующий пример вернет все записи таблицы данных chenweiliang_tbl:

Прочитайте техническое описание:

select * from chenweiliang_tbl;

Используйте PHP-скрипт для получения данных

использование PHP-функций mysqli_query () И SQL SELECT команда для получения данных.

Эта функция используется для выполнения команд SQL и последующей передачи функций PHP. mysqli_fetch_array () использовать или выводить данные для всех запросов.

mysqli_fetch_array () Функция извлекает строку из набора результатов в виде ассоциативного массива, или массива чисел, или того и другого.Возвращает массив, сгенерированный из строк, выбранных из набора результатов, или false, если строк больше нет.

В следующем примере считываются все записи из таблицы данных chenweiliang_tbl.

Пример

Попробуйте следующий пример, чтобы отобразить все записи таблицы данных chenweiliang_tbl.

Используйте параметр mysqli_fetch_array MYSQL_ASSOC для выборки данных:

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

 

В приведенном выше примере каждая строка прочитанных записей присваивается переменной $row, а затем каждое значение выводится на печать.

Примечание:Помните, что если вам нужно использовать переменную в строке, поместите переменную в фигурные скобки.

В приведенном выше примере вторым параметром функции PHP mysqli_fetch_array() является MYSQL_ASSOC, установите этот параметр, чтобы запросить результат для возврата ассоциативного массива, вы можете использовать имя поля в качестве индекса массива.

PHP предоставляет другую функцию mysqli_fetch_assoc (), функция берет строку из результирующего набора в виде ассоциативного массива.Возвращает ассоциативный массив, сгенерированный из строк, взятых из результирующего набора, или false, если строк больше нет.

Пример

Попробуйте следующий пример, в котором используется mysqli_fetch_assoc () функция для вывода всех записей таблицы данных chenweiliang_tbl:

Используйте mysqli_fetch_assoc для получения данных:

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

Вы также можете использовать константу MYSQL_NUM в качестве второго параметра функции PHP mysqli_fetch_array(), которая возвращает массив чисел.

Пример

В следующих примерах используется MYSQL_NUM Параметр отображает все записи таблицы данных chenweiliang_tbl:

Используйте параметр mysqli_fetch_array MYSQL_NUM для выборки данных:

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

Выходные результаты трех приведенных выше примеров одинаковы.


освобождение памяти

Хорошей практикой является освобождение памяти курсора после выполнения оператора SELECT.

Память можно освободить с помощью PHP-функции mysqli_free_result().

Следующий пример демонстрирует использование этой функции.

Пример

Попробуйте следующие примеры:

Свободная память с 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);
?>
 

Блог Хоуп Чен Вейлян ( https://www.chenweiliang.com/ ) поделился "Как база данных MySQL запрашивает данные в таблице?Оператор запроса/команда/синтаксис», чтобы помочь вам.

Добро пожаловать, чтобы поделиться ссылкой на эту статью:https://www.chenweiliang.com/cwl-461.html

Добро пожаловать на Telegram-канал блога Chen Weiliang, чтобы быть в курсе последних обновлений!

🔔 Будьте первым, кто получит ценное «Руководство по использованию инструмента искусственного интеллекта для контент-маркетинга ChatGPT» в верхнем каталоге канала! 🌟
📚 Это руководство содержит огромную ценность. 🌟Это редкая возможность, не упустите ее! ⏰⌛💨
Делитесь и ставьте лайк, если хотите!
Ваш обмен и лайки - наша постоянная мотивация!

 

发表 评论

Ваш электронный адрес не будет опубликован. 必填 项 已 用 * 标注

滚动 到 顶部