MySQL ma'lumotlar bazasi jadvalidagi ma'lumotlarni qanday so'raydi?So'rov bayonoti/Buyruq/Sintaksis

MySQL ma'lumotlar bazasiJadvaldagi ma'lumotlarni qanday so'rash mumkin?So'rov bayonoti/Buyruq/Sintaksis

MySQL So'rov ma'lumotlari

MySQL ma'lumotlar bazalari ma'lumotlarni so'rash uchun SQL SELECT iboralaridan foydalanadi.

Ma'lumotlar bazasidagi ma'lumotlarni mysql> buyruq satri oynasi yoki PHP skripti orqali so'rashingiz mumkin.

grammatika

Quyida MySQL ma'lumotlar bazasida ma'lumotlarni so'rash uchun umumiy SELECT sintaksisi keltirilgan:

SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[OFFSET M ][LIMIT N]
  • So'rovlar bayonotida siz bir yoki bir nechta jadvallardan foydalanishingiz, jadvallarni vergul (,) bilan ajratishingiz va so'rov shartlarini o'rnatish uchun WHERE operatoridan foydalanishingiz mumkin.
  • SELECT buyrug'i bir yoki bir nechta yozuvlarni o'qiy oladi.
  • Boshqa maydonlarni almashtirish uchun yulduzcha (*) dan foydalanishingiz mumkin, SELECT iborasi jadvalning barcha maydon ma'lumotlarini qaytaradi.
  • Har qanday shartni kiritish uchun WHERE iborasidan foydalanishingiz mumkin.
  • SELECT iborasi so'rovni OFFSET bilan boshlaydigan ma'lumotlar ofsetini belgilashingiz mumkin.Sukut bo'yicha ofset 0 ga teng.
  • Qaytarilgan yozuvlar sonini belgilash uchun LIMIT xususiyatidan foydalanishingiz mumkin.

Ma'lumotni buyruq satri orqali oling

Quyidagi misolda biz chenweiliang_tbl MySQL ma'lumotlar jadvalining ma'lumotlarini olish uchun SQL SELECT buyrug'idan foydalanamiz:

Misol

Quyidagi misol chenweiliang_tbl ma'lumotlar jadvalining barcha yozuvlarini qaytaradi:

Ma'lumotlar jadvalini o'qing:

select * from chenweiliang_tbl;

Ma'lumotlarni olish uchun PHP skriptidan foydalaning

PHP funksiyalaridan foydalanish mysqli_query() va SQL SELECT ma'lumotlarni olish uchun buyruq.

Bu funksiya SQL buyruqlarini bajarish va keyin PHP funksiyalarini uzatish uchun ishlatiladi mysqli_fetch_array() barcha so'rovlar uchun ma'lumotlarni ishlatish yoki chiqarish.

mysqli_fetch_array() Funktsiya natijalar to'plamidan qatorni assotsiativ massiv yoki raqamlar massivi yoki ikkalasi sifatida oladi. Natijalar to'plamidan olingan qatorlardan hosil qilingan massivni qaytaradi yoki boshqa qatorlar bo'lmasa, noto'g'ri qaytaradi.

Quyidagi misol chenweiliang_tbl ma'lumotlar jadvalidagi barcha yozuvlarni o'qiydi.

Misol

chenweiliang_tbl ma'lumotlar jadvalining barcha yozuvlarini ko'rsatish uchun quyidagi misolni sinab ko'ring.

Ma'lumotlarni olish uchun mysqli_fetch_array MYSQL_ASSOC parametridan foydalaning:

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

 

Yuqoridagi misolda o'qilgan yozuvlarning har bir qatori $row o'zgaruvchisiga tayinlanadi va keyin har bir qiymat chop etiladi.

Eslatma:Esda tutingki, agar siz satrda o'zgaruvchini ishlatishingiz kerak bo'lsa, o'zgaruvchini jingalak qavslar ichiga qo'ying.

Yuqoridagi misolda PHP mysqli_fetch_array() funksiyasining ikkinchi parametri: MYSQL_ASSOC, assotsiativ massivni qaytarish uchun natijani so'rash uchun ushbu parametrni o'rnating, siz maydon nomini massiv indeksi sifatida ishlatishingiz mumkin.

PHP boshqa funktsiyani taqdim etadi mysqli_fetch_assoc(), funktsiya assotsiativ massiv sifatida natijalar to'plamidan qator oladi.Natijalar to'plamidan olingan qatorlardan hosil qilingan assotsiativ massivni qaytaradi yoki boshqa qatorlar bo'lmasa, noto'g'ri.

Misol

Quyidagi misolni ishlatib ko'ring mysqli_fetch_assoc() chenweiliang_tbl ma'lumotlar jadvalining barcha yozuvlarini chiqarish funktsiyasi:

Ma'lumotlarni olish uchun mysqli_fetch_assoc dan foydalaning:

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

PHP mysqli_fetch_array() funksiyasining ikkinchi parametri sifatida MYSQL_NUM doimiysidan ham foydalanishingiz mumkin, bu raqamlar massivini qaytaradi.

Misol

Quyidagi misollar qo'llaniladi MYSQL_NUM Parametr chenweiliang_tbl ma'lumotlar jadvalining barcha yozuvlarini ko'rsatadi:

Ma'lumotlarni olish uchun mysqli_fetch_array MYSQL_NUM parametridan foydalaning:

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

Yuqoridagi uchta misolning chiqish natijalari bir xil.


xotirani chiqarish

SELECT iborasini bajarganimizdan so'ng kursor xotirasini bo'shatish yaxshi amaliyotdir.

Xotirani PHP funksiyasi mysqli_free_result() orqali chiqarish mumkin.

Quyidagi misol ushbu funktsiyadan foydalanishni ko'rsatadi.

Misol

Quyidagi misollarni sinab ko'ring:

mysqli_free_result bilan bo'sh xotira:

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

Umid qilamanki, Chen Veyliang blogi ( https://www.chenweiliang.com/ ) "MySQL ma'lumotlar bazasi jadvaldagi ma'lumotlarni qanday so'raydi?Sizga yordam berish uchun so'rov bayonoti/buyruq/sintaksisi".

Ushbu maqolaning havolasini baham ko'rish uchun xush kelibsiz:https://www.chenweiliang.com/cwl-461.html

Eng so'nggi yangiliklardan xabardor bo'lish uchun Chen Veyliang blogining Telegram kanaliga xush kelibsiz!

🔔 Birinchi bo'lib kanalning yuqori katalogida qimmatli "ChatGPT Content Marketing AI vositasidan foydalanish bo'yicha qo'llanma"ni qo'lga kiriting! 🌟
📚 Ushbu qo'llanmada katta ahamiyatga ega, 🌟Bu kamdan-kam imkoniyat, uni qo'ldan boy bermang! ⏰⌛💨
Baham ko'ring va yoqsa like!
Sizning baham ko'rish va yoqtirishlaringiz bizning doimiy motivatsiyamizdir!

 

发表 评论

Sizning elektron pochta manzilingiz e'lon qilinmaydi. 必填 项 已 用 * Yorliq

tepaga aylantiring