Rumah >pembangunan bahagian belakang >masalah PHP >Fokus pada pernyataan pertanyaan pangkalan data PHP

Fokus pada pernyataan pertanyaan pangkalan data PHP

PHPz
PHPzasal
2023-04-06 08:52:23778semak imbas

PHP, sebagai bahasa skrip sebelah pelayan yang popular, boleh menyatukan pelbagai jenis data dan pangkalan data. Terutamanya dalam pembangunan aplikasi web, selalunya diperlukan untuk mengakses pangkalan data untuk mendapatkan dan memanipulasi data. Artikel ini akan menumpukan pada pernyataan pertanyaan pangkalan data PHP.

1. Apakah itu pernyataan pertanyaan pangkalan data

Dalam proses mengendalikan pangkalan data, kita selalunya perlu mendapatkan data daripada pangkalan data. Pada masa ini, kita perlu menggunakan pernyataan pertanyaan. Pertanyaan pangkalan data (SQL Query) ialah satu set arahan untuk mendapatkan semula data daripada pangkalan data. SQL ialah singkatan dari Structured Query Language, iaitu bahasa yang digunakan secara meluas dalam sistem pengurusan data hubungan (RDBMS) untuk mengakses dan mengendalikan pangkalan data.

Dalam PHP, kita boleh menggunakan kemudahan yang berbeza untuk mengakses pelbagai jenis pangkalan data. PHP menyokong MySQL, PostgreSQL, Oracle dan pangkalan data lain Setiap pangkalan data mempunyai pernyataan pertanyaan yang sedikit berbeza, tetapi ia pada dasarnya dilaksanakan menggunakan bahasa SQL.

2. Struktur pernyataan pertanyaan

Pernyataan pertanyaan mudah biasanya mengandungi tiga bahagian: SELECT, FROM dan WHERE. Dalam SELECT, tentukan lajur untuk diambil dalam FROM, nyatakan nama jadual dalam klausa WHERE, nyatakan syarat carian.

Berikut ialah struktur pernyataan pertanyaan asas:

PILIH lajur1, lajur2, ...
DARI jadual
Keadaan DI MANA;

lajur menunjukkan perkara yang diperlukan untuk diambil semula Nama lajur, pisahkan berbilang nama lajur dengan koma. Biasanya * (asterisk) digunakan dan bukannya nama lajur untuk menunjukkan pemilihan semua lajur.

jadual menunjukkan nama jadual yang akan dikendalikan.

syarat ialah pilihan pilihan, yang menentukan syarat dan sekatan untuk mendapatkan semula rekod, menggunakan operator logik (seperti DAN, ATAU, dll.) untuk menyambung.

Sebagai contoh, contoh berikut mendapatkan semula rekod dalam jadual "pengguna" di mana nama pengguna dan medan e-mel ialah "admin" dan medan kata laluan ialah "123":

PILIH nama pengguna, e-mel, kata laluan
DARI pengguna
WHERE nama pengguna = 'admin' DAN kata laluan = '123';

Walau bagaimanapun, untuk beberapa keperluan pertanyaan yang lebih kompleks, hanya menggunakan SELECT, FROM dan WHERE mungkin tidak dapat memenuhi keperluan Dalam kes ini, anda perlu Gunakan pernyataan pertanyaan lanjutan seperti JOIN pernyataan dan subquery. Ini akan dibincangkan dalam bab-bab seterusnya.

3. Memproses hasil pertanyaan

Hasil yang dikembalikan oleh pernyataan pertanyaan biasanya merupakan jadual yang mengandungi berbilang baris, setiap baris mewakili rekod yang sepadan. Untuk pembangun aplikasi PHP, entri jadual ialah tatasusunan, dan kandungan setiap sel ialah elemen dalam tatasusunan. Pemprosesan keputusan pertanyaan merangkumi tiga bahagian:

  1. Laksanakan pertanyaan pangkalan data dan dapatkan set hasil.

Gunakan mysqli_query dan PDO::query dalam PHP untuk melaksanakan pernyataan pertanyaan dan mengembalikan set hasil. Contohnya:

$query = "PILIH nama pengguna, e-mel, kata laluan DARI pengguna WHERE nama pengguna = 'admin' DAN kata laluan = '123'";
$result = mysqli_query($connection, $query);

  1. Proses set hasil.

Gunakan mysqli_fetch_assoc, PDO::fetch dan fungsi lain untuk mengekstrak data daripada set hasil. Contohnya:

while ($row = mysqli_fetch_assoc($result)) {

echo "username: " . $row["username"] . " email: " . $row["email"] . " password: " . $row["password"];

}

  1. Lepaskan set keputusan.

Dalam PHP, apabila anda selesai menggunakan set hasil, anda harus menggunakan mysqli_free_result atau fungsi PDOStatement::closeCursor untuk mengeluarkan set hasil untuk mengelakkan pembaziran sumber. Contohnya:

mysqli_free_result($result);

4 Teknologi pertanyaan lanjutan

  1. SERTAI

Pernyataan JOIN boleh menggabungkan dua. Atau berbilang jadual dicantumkan untuk menghasilkan jadual baru yang besar. Pernyataan JOIN biasa termasuk cantuman dalam, cantuman luar (cantuman kiri dan cantuman kanan), cantuman sendiri, dsb.

INNER JOIN: Hanya rekod yang memenuhi syarat dalam dua jadual dikembalikan iaitu apabila menyambung dua jadual, hanya nilai yang sama yang wujud dalam kedua-dua jadual akan diambil.

Contohnya:

PILIH pesanan.OrderID, pelanggan.Nama Pelanggan, pesanan.TarikhPesan
DARI pesanan
INNER JOIN pelanggan
PADA pesanan.CustomerID=customerID;.CustomerID

Pertanyaan ini akan mengembalikan semua pesanan dalam jadual pesanan (pesanan) yang dikaitkan dengan jadual pelanggan (pelanggan) Simbol untuk gabungan dalaman ialah JOIN atau INNER JOIN, dan kata kunci ON menentukan kunci utama /kunci luar yang digunakan untuk pautan.

  1. Subquery

Subquery merujuk kepada membenamkan pertanyaan SQL dalam pernyataan SQL yang lain. Biasanya, subkueri digunakan untuk mengehadkan set hasil pertanyaan utama. Subkueri boleh bersarang dalam berbilang pertanyaan, yang dipanggil pertanyaan bersarang.

Contohnya:

PILIH AVG(Harga DISTINCT) DARIPADA Produk
WHERE ProductName IN (SELECT ProductName FROM Orders WHERE CustomerID=1);

Pertanyaan ini akan kembali ID Harga purata semua produk yang dipesan oleh pelanggan 1 sebenarnya untuk menggunakan senarai subkueri untuk menanyakan semua produk yang dibeli oleh pelanggan 1, dan kemudian meletakkan fungsi AVG di luar untuk mengira purata.

  1. UNION

Pernyataan UNION menggabungkan set hasil dua atau lebih pernyataan SELECT (hasilnya mesti mempunyai medan yang sama, jadi kadangkala alias digunakan untuk mengisytiharkannya) , alih keluar baris pendua daripada set hasil. Format pernyataan UNION adalah seperti berikut:

PILIH nama_lajur DARI jadual1
UNION
PILIH nama_lajur DARI jadual2;

Contohnya:

SELECT ProductName FROM Products
UNION
SELECT ProductName FROM Suppliers
ORDER BY ProductName;

Pertanyaan ini akan mengembalikan semua nama produk, termasuk daripada Pembekal dan Produk ) hasil pertanyaan, alih keluar pendua dan susun mengikut nama.

Ringkasan

Artikel ini bertujuan untuk memperkenalkan pernyataan pertanyaan pangkalan data PHP, memfokuskan pada struktur pernyataan pertanyaan dan kaedah pemprosesan hasil pertanyaan, serta teknologi pertanyaan lanjutan yang biasa digunakan, termasuk JOIN, subquery dan kenyataan UNION. Penggunaan yang betul bagi teknologi pertanyaan lanjutan ini boleh mendapatkan data yang diperlukan daripada pangkalan data dengan lebih cekap.

Atas ialah kandungan terperinci Fokus pada pernyataan pertanyaan pangkalan data PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn