MySQL - Pilih Kueri
SQL SELECTperintah digunakan untuk mengambil data dari database MySQL. Anda dapat menggunakan perintah ini di mysql> prompt serta di skrip seperti PHP.
Sintaksis
Berikut adalah sintaks SQL generik dari perintah SELECT untuk mengambil data dari tabel MySQL -
SELECT field1, field2,...fieldN
FROM table_name1, table_name2...
[WHERE Clause]
[OFFSET M ][LIMIT N]
Anda dapat menggunakan satu atau lebih tabel yang dipisahkan dengan koma untuk memasukkan berbagai kondisi menggunakan klausa WHERE, tetapi klausa WHERE adalah bagian opsional dari perintah SELECT.
Anda dapat mengambil satu atau lebih bidang dalam satu perintah PILIH.
Anda dapat menentukan bintang (*) di tempat bidang. Dalam kasus ini, PILIH akan mengembalikan semua bidang.
Anda dapat menentukan kondisi apa pun menggunakan klausa WHERE.
Anda dapat menentukan offset menggunakan OFFSETdari mana SELECT akan mulai mengembalikan record. Secara default, offset dimulai dari nol.
Anda dapat membatasi jumlah pengembalian menggunakan LIMIT atribut.
Mengambil Data dari Command Prompt
Ini akan menggunakan perintah SQL SELECT untuk mengambil data dari tabel MySQL tutorials_tbl.
Contoh
Contoh berikut akan mengembalikan semua catatan dari tutorials_tbl tabel -
root@host# mysql -u root -p password;
Enter password:*******
mysql> use TUTORIALS;
Database changed
mysql> SELECT * from tutorials_tbl
+-------------+----------------+-----------------+-----------------+
| tutorial_id | tutorial_title | tutorial_author | submission_date |
+-------------+----------------+-----------------+-----------------+
| 1 | Learn PHP | John Poul | 2007-05-21 |
| 2 | Learn MySQL | Abdul S | 2007-05-21 |
| 3 | JAVA Tutorial | Sanjay | 2007-05-21 |
+-------------+----------------+-----------------+-----------------+
3 rows in set (0.01 sec)
mysql>
Mengambil Data Menggunakan Script PHP
Anda dapat menggunakan perintah SQL SELECT yang sama ke dalam fungsi PHP mysql_query(). Fungsi ini digunakan untuk menjalankan perintah SQL dan kemudian fungsi PHP lainnyamysql_fetch_array()dapat digunakan untuk mengambil semua data yang dipilih. Fungsi ini mengembalikan baris sebagai array asosiatif, array numerik, atau keduanya. Fungsi ini mengembalikan FALSE jika tidak ada baris lagi.
Program berikut adalah contoh sederhana yang akan menunjukkan bagaimana mengambil / menampilkan catatan dari tutorials_tbl meja.
Contoh
Blok kode berikut akan menampilkan semua record dari tabel tutorials_tbl.
<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
$sql = 'SELECT tutorial_id, tutorial_title, tutorial_author, submission_date FROM tutorials_tbl';
mysql_select_db('TUTORIALS');
$retval = mysql_query( $sql, $conn );
if(! $retval ) {
die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) {
echo "Tutorial ID :{$row['tutorial_id']} <br> ".
"Title: {$row['tutorial_title']} <br> ".
"Author: {$row['tutorial_author']} <br> ".
"Submission Date : {$row['submission_date']} <br> ".
"--------------------------------<br>";
}
echo "Fetched data successfully\n";
mysql_close($conn);
?>
Isi baris ditetapkan ke variabel $ row dan nilai di baris itu kemudian dicetak.
NOTE - Selalu ingat untuk memasukkan tanda kurung kurawal saat Anda ingin memasukkan nilai array secara langsung ke dalam string.
Dalam contoh di atas, konstanta MYSQL_ASSOC digunakan sebagai argumen kedua untuk fungsi PHP mysql_fetch_array(), sehingga mengembalikan baris sebagai array asosiatif. Dengan array asosiatif, Anda dapat mengakses bidang dengan menggunakan namanya alih-alih menggunakan indeks.
PHP menyediakan fungsi lain yang disebut mysql_fetch_assoc(), yang juga mengembalikan baris sebagai array asosiatif.
Contoh
Contoh berikut untuk menampilkan semua record dari tabel tutorial_tbl menggunakan fungsi mysql_fetch_assoc ().
<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
$sql = 'SELECT tutorial_id, tutorial_title, tutorial_author, submission_date
FROM tutorials_tbl';
mysql_select_db('TUTORIALS');
$retval = mysql_query( $sql, $conn );
if(! $retval ) {
die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_assoc($retval)) {
echo "Tutorial ID :{$row['tutorial_id']} <br> ".
"Title: {$row['tutorial_title']} <br> ".
"Author: {$row['tutorial_author']} <br> ".
"Submission Date : {$row['submission_date']} <br> ".
"--------------------------------<br>";
}
echo "Fetched data successfully\n";
mysql_close($conn);
?>
Anda juga bisa menggunakan konstanta MYSQL_NUMsebagai argumen kedua untuk fungsi PHP mysql_fetch_array (). Ini akan menyebabkan fungsi mengembalikan array dengan indeks numerik.
Contoh
Coba contoh berikut untuk menampilkan semua record dari tabel tutorials_tbl menggunakan argumen MYSQL_NUM.
<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
$sql = 'SELECT tutorial_id, tutorial_title, tutorial_author, submission_date
FROM tutorials_tbl';
mysql_select_db('TUTORIALS');
$retval = mysql_query( $sql, $conn );
if(! $retval ) {
die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_array($retval, MYSQL_NUM)) {
echo "Tutorial ID :{$row[0]} <br> ".
"Title: {$row[1]} <br> ".
"Author: {$row[2]} <br> ".
"Submission Date : {$row[3]} <br> ".
"--------------------------------<br>";
}
echo "Fetched data successfully\n";
mysql_close($conn);
?>
Ketiga contoh di atas akan memberikan hasil yang sama.
Melepaskan Memori
Merupakan praktik yang baik untuk melepaskan memori kursor di akhir setiap pernyataan SELECT. Ini dapat dilakukan dengan menggunakan fungsi PHPmysql_free_result(). Program berikut ini adalah contoh untuk menunjukkan bagaimana program itu harus digunakan.
Contoh
Coba contoh berikut -
<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
$sql = 'SELECT tutorial_id, tutorial_title, tutorial_author, submission_date
FROM tutorials_tbl';
mysql_select_db('TUTORIALS');
$retval = mysql_query( $sql, $conn );
if(! $retval ) {
die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_array($retval, MYSQL_NUM)) {
echo "Tutorial ID :{$row[0]} <br> ".
"Title: {$row[1]} <br> ".
"Author: {$row[2]} <br> ".
"Submission Date : {$row[3]} <br> ".
"--------------------------------<br>";
}
mysql_free_result($retval);
echo "Fetched data successfully\n";
mysql_close($conn);
?>
Saat mengambil data, Anda dapat menulis kode serumit yang Anda suka, tetapi prosedurnya akan tetap sama seperti yang disebutkan di atas.