mysql查询脚本SELECT_MySQL Select查询

SQL SELECT命令用于从MySQL数据库获取数据。可以在MySQL>提示符使用这个命令,以及任何像PHP的脚本和语言等。

语法

下面是通用的SQL的SELECT命令语法,从MySQL表获取数据:

SELECT field1, field2,...fieldN table_name1, table_name2...

[WHERE Clause]

[OFFSET M ][LIMIT N]

可以使用分隔的一个或多个逗号从多个表,以及使用WHERE子句包括各种条件,但WHERE子句是SELECT命令的可选部分

可以在一个SELECT命令指定读取一个或多个字段

可以指定星号(*)代替选择的字段。在这种情况下,将返回所有字段

可以指定任意的条件在 WHERE 子句后面

可以使用OFFSET指定一个偏移量,SELECT从那里开始返回记录。默认情况下 offset 的值是 0

可以使用LIMIT属性限制返回的数量

1、从命令提示符读取数据

这将使用SQL SELECT命令从MySQL 表 tutorials_tbl 读取数据

示例

下面的例子将从 tutorials_tbl 表返回所有记录:

root@host# mysql -u root -p password;

Enter password:

mysql> use test;

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>

2、使用PHP脚本提取数据

可以使用相同的SQL SELECT命令,在PHP中的mysql_query()函数.此函数用于执行SQL命令,另一个更高版本PHP mysql_fetch_array()函数可用于获取所有选定的数据. 这个函数返回一行作为关联数组,数字数组,或两者兼而有。如果没有更多的行这个函数返回 FALSE。

下面是一个简单的例子来从tutorials_tbl表中提取记录。

示例

试试下面的例子来显示tutorials_tbl表中的所有记录。

$dbhost = 'localhost';

$dbuser = 'root';

$dbpass = '';

$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('test');

$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']}
".

"Title: {$row['tutorial_title']}
".

"Author: {$row['tutorial_author']}
".

"Submission Date : {$row['submission_date']}
".

"--------------------------------
";

}

echo "Fetched data successfully\n";

mysql_close($conn);

?>

数据库的行内容被分配到变量$row,并且行中的值将被打印出来。

注意:当想直接插入数组值转换成字符串,一定记得使用花括号。

在上面的例子中,常量 MYSQL_ASSOC作为PHP函数 mysql_fetch_array() 的第二个参数, 因此,它返回该行作为关联数组。关联数组我们可以使用它的名称,而不是使用索引来访问该字段。

PHP提供了另一个函数 mysql_fetch_assoc(),也返回该行作为关联数组。

示例

试试下面的例子用来显示 tutorial_tbl 表所有的记录,使用 mysql_fetch_assoc() 函数例子如下:

$dbhost = 'localhost';

$dbuser = 'root';

$dbpass = '';

$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('test');

$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']}
".

"Title: {$row['tutorial_title']}
".

"Author: {$row['tutorial_author']}
".

"Submission Date : {$row['submission_date']}
".

"--------------------------------
";

}

echo "Fetched data successfully\n";

mysql_close($conn);

?>

也可以使用常量MYSQL_NUM作为PHP mysql_fetch_array()函数的第二个参数。这会使该函数返回数字索引的数组。

示例

试试下面的例子来使用MYSQL_NUM 参数显示 tutorials_tbl 表的所有记录。

$dbhost = 'localhost';

$dbuser = 'root';

$dbpass = '';

$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('test');

$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]}
".

"Title: {$row[1]}
".

"Author: {$row[2]}
".

"Submission Date : {$row[3]}
".

"--------------------------------
";

}

echo "Fetched data successfully\n";

mysql_close($conn);

?>

所有上述三个例子将产生相同的结果。

释放内存:

这是一个很好的做法,以释放内存光标在每个SELECT语句的结束。这可以通过使用PHP函数了mysql_free_result()来完成。下面是该例子,以显示它如何被使用。

示例

试试下面的例子

$dbhost = 'localhost';

$dbuser = 'root';

$dbpass = '';

$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('test');

$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]}
".

"Title: {$row[1]}
".

"Author: {$row[2]}
".

"Submission Date : {$row[3]}
".

"--------------------------------
";

}

mysql_free_result($retval);

echo "Fetched data successfully\n";

mysql_close($conn);

?>

在读取数据时,可以根据需要编写复杂的SQL。如上所述过程将保持不变。

¥ 我要打赏

纠错/补充

收藏

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值