MariaDB - Chọn truy vấn
Trong chương này, chúng ta sẽ học cách chọn dữ liệu từ một bảng.
Câu lệnh SELECT truy xuất các hàng đã chọn. Chúng có thể bao gồm các câu lệnh UNION, một mệnh đề thứ tự, một mệnh đề LIMIT, một mệnh đề WHERE, một mệnh đề GROUP BY ... HAVING và các truy vấn con.
Xem lại cú pháp chung sau đây -
SELECT field, field2,... FROM table_name, table_name2,... WHERE...
Câu lệnh SELECT cung cấp nhiều tùy chọn để chỉ định bảng được sử dụng -
database_name.table_name
table_name.column_name
database_name.table_name.column_name
Tất cả các câu lệnh chọn phải chứa một hoặc nhiều select expressions. Chọn biểu thức bao gồm một trong các tùy chọn sau:
Tên cột.
Một biểu thức sử dụng các toán tử và hàm.
Đặc tả “tên_bảng. *” Để chọn tất cả các cột trong bảng nhất định.
Ký tự “*” để chọn tất cả các cột từ tất cả các bảng được chỉ định trong mệnh đề FROM.
Dấu nhắc lệnh hoặc một tập lệnh PHP có thể được sử dụng để thực hiện một câu lệnh select.
Dấu nhắc lệnh
Tại dấu nhắc lệnh, thực hiện các câu lệnh như sau:
root@host# mysql -u root -p password;
Enter password:*******
mysql> use PRODUCTS;
Database changed
mysql> SELECT * from products_tbl
+-------------+---------------+
| ID_number | Nomenclature |
+-------------+---------------+
| 12345 | Orbitron 4000 |
+-------------+---------------+
PHP Select Script
Sử dụng cùng (các) câu lệnh SELECT trong một hàm PHP để thực hiện thao tác. Bạn sẽ sử dụngmysql_query()hoạt động một lần nữa. Xem lại một ví dụ dưới đây -
<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
$sql = 'SELECT product_id, product_name,product_manufacturer, ship_date FROM products_tbl';
mysql_select_db('PRODUCTS');
$retval = mysql_query( $sql, $conn );
if(! $retval ) {
die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) {
echo "Product ID :{$row['product_id']} <br> ".
"Name: {$row['product_name']} <br> ".
"Manufacturer: {$row['product_manufacturer']} <br> ".
"Ship Date : {$row['ship_date']} <br>".
"--------------------------------<br>";
}
echo "Fetched data successfully\n";
mysql_close($conn);
?>
Khi truy xuất dữ liệu thành công, bạn sẽ thấy kết quả sau:
Product ID: 12345
Nomenclature: Orbitron 4000
Manufacturer: XYZ Corp
Ship Date: 01/01/17
----------------------------------------------
Product ID: 12346
Nomenclature: Orbitron 3000
Manufacturer: XYZ Corp
Ship Date: 01/02/17
----------------------------------------------
mysql> Fetched data successfully
Các phương pháp hay nhất đề xuất giải phóng bộ nhớ con trỏ sau mỗi câu lệnh SELECT. PHP cung cấpmysql_free_result()chức năng cho mục đích này. Xem lại công dụng của nó như hình dưới đây -
<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
$sql = 'SELECT product_id, product_name, product_manufacturer, ship_date FROM products_tbl';
mysql_select_db('PRODUCTS');
$retval = mysql_query( $sql, $conn );
if(! $retval ) {
die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_array($retval, MYSQL_NUM)) {
echo "Product ID :{$row[0]} <br> ".
"Name: {$row[1]} <br> ".
"Manufacturer: {$row[2]} <br> ".
"Ship Date : {$row[3]} <br> ".
"--------------------------------<br>";
}
mysql_free_result($retval);
echo "Fetched data successfully\n";
mysql_close($conn);
?>