MariaDB 选择查询
在本章中,我们将学习如何从表中选择数据。
SELECT语句检索选择的行。它们可以包括UNION语句、排序子句、限制子句、WHERE子句、GROUP BY…HAVING子句和子查询。
请查看以下通用语法−
SELECT field, field2,... FROM table_name, table_name2,... WHERE...
SELECT语句提供了多种指定所使用表的选项:
- database_name.table_name
-
table_name.column_name
-
database_name.table_name.column_name
所有select语句都必须包含一个或多个 select表达式 。select表达式包括以下选项之一:
- 列名。
-
使用运算符和函数的表达式。
-
“table_name.*”来选择给定表中的所有列。
-
字符“*”来选择FROM子句中指定的所有表的所有列。
可以使用命令提示符或PHP脚本执行select语句。
命令提示符
在命令提示符下,可以执行以下语句:
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选择脚本
在PHP函数中使用相同的SELECT语句来执行操作。你将再次使用 mysql_query() 函数。请查看下面的示例 –
<?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);
?>
在成功检索数据后,您将看到以下输出 –
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
最佳实践建议在每个SELECT语句之后释放游标内存。PHP提供了 mysql_free_result() 函数来实现此目的。如下所示。
<?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);
?>