标题:
mysql查询命令
[打印本页]
作者:
fangzhen
时间:
2008-12-28 21:19
标题:
mysql查询命令
确保你连接上了服务器,如在先前的章节讨论的。连接上服务器并布代表选择了任何数据库,但这样就可以了。知道关于如何查询的基本知识,比马上跳至创建表、给他们装载数据并且从他们检索数据更重要。本节描述输入命令的基本原则,使用几个查询,你能尝试了解
mysql
是如何工作的。
这是一个简单的命令,要求服务器告诉它的版本号和当前日期。在mysql>提示输入如下命令并按回车键:
mysql>
SELECT VERSION(), CURRENT_DATE;
+-----------------+--------------+| VERSION() | CURRENT_DATE |+-----------------+--------------+| 5.1.2-alpha-log | 2005-10-11 |+-----------------+--------------+1 row in set (0.01 sec)mysql>这询问说明
mysql
的几个方面:
?
一个命令通常由SQL语句组成,随后跟着一个分号。(有一些例外不需要分号。早先提到的QUIT是一个例子。后面我们将看到其它的例子。)
?
当发出一个命令时,
mysql
将它发送给服务器并显示执行结果,然后显示另一个mysql>显示它准备好接受其它命令。
?
mysql
用表格(行和列)方式显示查询输出。第一行包含列的标签,随后的行是查询结果。通常,列标签是你取自数据库表的列的名字。如果你正在检索一个表达式而非表列的值(如刚才的例子),
mysql
用表达式本身标记列。
?
mysql
显示返回了多少行,以及查询花了多长时间,它给你提供服务器性能的一个大致概念。因为他们表示时钟时间(不是 CPU 或机器时间),并且因为他们受到诸如服务器负载和网络延时的影响,因此这些值是不精确的。(为了简洁,在本章其它例子中不再显示“集合中的行”。)
能够以大小写输入关键词。下列查询是等价的:
mysql>
SELECT VERSION(), CURRENT_DATE;
mysql>
select version(), current_date;
mysql>
SeLeCt vErSiOn(), current_DATE;
这是另外一个查询,它说明你能将
mysql
用作一个简单的计算器:
mysql>
SELECT SIN(PI()/4), (4+1)*5;
+------------------+---------+| SIN(PI()/4) | (4+1)*5 |+------------------+---------+| 0.70710678118655 | 25 |+------------------+---------+1 row in set (0.02 sec)至此显示的命令是相当短的单行语句。你可以在一行上输入多条语句,只需要以一个分号间隔开各语句:
mysql>
SELECT VERSION(); SELECT NOW();
+-----------------+| VERSION() |+-----------------+| 5.1.2-alpha-log |+-----------------+1 row in set (0.00 sec)
+---------------------+| NOW() |+---------------------+| 2005-10-11 15:15:00 |+---------------------+1 row in set (0.00 sec)不必全在一个行内给出一个命令,较长命令可以输入到多个行中。
mysql
通过寻找终止分号而不是输入行的结束来决定语句在哪儿结束。(换句话说,
mysql
接受自由格式的输入:它收集输入行但直到看见分号才执行。)
这里是一个简单的多行语句的例子:
mysql>
SELECT
->
USER()
->
,
->
CURRENT_DATE;
+---------------+--------------+| USER() | CURRENT_DATE |+---------------+--------------+| jon@localhost | 2005-10-11 |+---------------+--------------+在这个例子中,在输入多行查询的第一行后,要注意提示符如何从mysql>变为->,这正是
mysql
如何指出它没见到完整的语句并且正在等待剩余的部分。提示符是你的朋友,因为它提供有价值的反馈,如果使用该反馈,将总是知道
mysql
正在等待什么。
如果你决定不想执行正在输入过程中的一个命令,输入\c取消它:
mysql>
SELECT
->
USER()
->
\c
mysql>这里也要注意提示符,在你输入\c以后,它切换回到mysql>,提供反馈以表明
mysql
准备接受一个新命令。
下表显示出可以看见的各个提示符并简述它们所表示的
mysql
的状态:
提示符
含义
mysql>
准备好接受新命令。
->
等待多行命令的下一行。
'>
等待下一行,等待以单引号(“'”)开始的字符串的结束。
">
等待下一行,等待以双引号(“"”)开始的字符串的结束。
`>
等待下一行,等待以反斜点(‘`’)开始的识别符的结束。
/*>
等待下一行,等待以/*开始的注释的结束。
当你打算在一个单行上发出一个命令时,通常会“偶然”出现多行语句,但是没有终止分号。在这种情况中,
mysql
等待进一步输入:
mysql>
SELECT USER()
->如果出现这种情况(你认为输完了语句,但是只有一个->提示符响应),很可能
mysql
正在等待分号。如果你没有注意到提示符的提示,在意识到你需要做什么之前,你可能会呆坐一会儿。输入一个分号完成语句,
mysql
将执行:
mysql>
SELECT USER()
->
;
+---------------+| USER() |+---------------+| jon@localhost |+---------------+在字符串收集期间将出现 '> 和 "> 提示符(提示MySQL正等待字符串的结束)。在MySQL中,可以写由‘'’或‘"’字符括起来的字符串 (例如,'hello'或"goodbye"),并且
mysql
允许输入跨越多行的字符串。当看到一个 '> 或 "> 提示符时,这意味着已经输入了包含以‘'’或‘"’括号字符开始的字符串的一行,但是还没有输入终止字符串的匹配引号。这显示你粗心地省掉了一个引号字符。例如:
mysql>
SELECT * FROM my_table WHERE name = 'Smith AND age < 30;
'>如果你输入SELECT语句,然后按
Enter(
回车)
键并等待结果,什么都没有出现。不要惊讶,“为什么该查询这么长呢?”,注意">提示符提供的线索。它告诉你
mysql
期望见到一个未终止字符串的余下部分。(你看见语句中的错误吗?字符串"Smith丢掉了第二个引号。)
走到这一步,你该做什么?最简单的是取消命令。然而,在这种情况下,你不能只是输入\c,因为
mysql
作为它正在收集的字符串的一部分来解释它!相反,应输入关闭的引号字符(这样
mysql
知道你完成了字符串),然后输入\c:
mysql>
SELECT * FROM my_table WHERE name = 'Smith AND age < 30;
'>
'\c
mysql>提示符回到mysql>,显示
mysql
准备好接受一个新命令了。
`>
提示符类似于 '>
和">
提示符,但表示你已经开始但没有结束以`> 开始的识别符。
知道'>和">提示符的含义很重要,因为如果你错误地输入一个未终止的字符串,任何后面输入的行将要被
mysql
忽略--包括包含QUIT的行!这可能令人相当困惑,特别是如果取消当前命令前还不知道你需要提供终止引号。
作者:
hao871814
时间:
2009-3-13 00:43
标题:
.
提示:
作者被禁止或删除 内容自动屏蔽
作者:
尉迟浜虎
时间:
2009-3-19 16:57
标题:
支持咯
提示:
作者被禁止或删除 内容自动屏蔽
欢迎光临 PHP开发笔记 (http://phpvi.com/)
Powered by Discuz! 6.1.0