Как база данных 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);
?>
 

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

Не стесняйтесь делиться ссылкой на эту статью: https://www.chenweiliang.com/cwl-461.html

Чтобы раскрыть еще больше скрытых трюков🔑, присоединяйтесь к нашему каналу в Telegram!

Поделитесь и поставьте лайк, если вам понравилось! Ваши репосты и лайки — наша постоянная мотивация!

 

发表 评论

您的邮箱地址不会被公开。必填项已用*标注

Наверх