SQL SELECT Perintah ini digunakan untuk mengambil data dari database MySQL. Anda dapat menggunakan perintah ini di prompt mysql> maupun di script seperti PHP.
sintaks:
Berikut ini adalah sintaks SQL generik perintah SELECT untuk mengambil data dari tabel MySQL:
SELECT field1, field2,...fieldN table_name1, table_name2... [WHERE Clause] [OFFSET M ][LIMIT N] - Anda dapat menggunakan satu atau lebih tabel dipisahkan dengan koma untuk memasukkan berbagai kondisi dengan menggunakan klausa WHERE. Tapi klausa WHERE merupakan bagian opsional perintah SELECT. - Anda dapat mengambil satu atau lebih bidang dalam perintah SELECT tunggal. - Anda dapat menentukan bintang (*) di tempat bidang. Dalam kasus ini SELECT akan mengembalikan semua bidang - Anda dapat menentukan kondisi menggunakan klausa WHERE. Mengambil Data dari Command Prompt: Hal ini akan menggunakan perintah SQL SELECT untuk mengambil data dari MySQL tabel tutorials_tbl
contoh: Contoh berikut akan mengembalikan semua catatan dari meja tutorials_tbl:
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 PHP Script: Anda dapat menggunakan perintah SQL SELECT yang sama dalam fungsi PHP mysql_query (). Fungsi ini digunakan untuk mengeksekusi perintah SQL dan kemudian fungsi PHP yang lain mysql_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. Di bawah ini adalah contoh sederhana untuk mengambil catatan dari meja tutorials_tbl. contoh: Coba contoh berikut untuk menampilkan semua catatan dari meja 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 dari baris ditugaskan ke baris $ variabel dan nilai-nilai dalam baris yang kemudian dicetak. CATATAN: Selalu ingat untuk menempatkan kurung kurawal bila Anda ingin memasukkan nilai array langsung ke string. Dalam contoh di atas MYSQL_ASSOC konstan digunakan sebagai argumen kedua untuk fungsi PHP mysql_fetch_array (), sehingga mengembalikan baris sebagai array asosiatif. Dengan array asosiatif Anda dapat mengakses lapangan dengan menggunakan nama mereka daripada menggunakan indeks. PHP menyediakan fungsi lain yang disebut mysql_fetch_assoc () yang juga mengembalikan baris sebagai array asosiatf. Contoh: Coba contoh berikut untuk menampilkan semua record dari tabel menggunakan mysql_fetch_assoc tutorial_tbl () fungsi.
<?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 dapat menggunakan MYSQL_NUM konstan, sebagai argumen kedua untuk fungsi PHP mysql_fetch_array (). Hal ini akan menyebabkan fungsi untuk mengembalikan sebuah array dengan indeks numerik. contoh: Coba contoh berikut untuk menampilkan semua catatan dari meja 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); ?> Semua di atas tiga contoh akan menghasilkan hasil yang sama. Melepaskan Memori: Praktek yang baik untuk melepaskan memori kursor pada akhir setiap pernyataan SELECT. Hal ini dapat dilakukan dengan menggunakan Fungsi PHP mysql_free_result (). Di bawah ini adalah contoh untuk menunjukkan bagaimana 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); ?>