查询
在确保数据库正常连接之后,开始进入MySQL查询的一些基本原理
一个简单的例子查询当前MySQL的版本号和当前日期。在MySQL命令提示符中如下操作:
mysql> SELECT VERSION(), CURRENT_DATE;
+--------------+--------------+
| VERSION() | CURRENT_DATE |
+--------------+--------------+
| 5.7.1-m4-log | 2012-12-25 |
+--------------+--------------+
1 row in set (0.01 sec)
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.7.10-ndb-7.5.1 |
+------------------+
1 row in set (0.00 sec)
+---------------------+
| NOW() |
+---------------------+
| 2016-01-29 18:02:55 |
+---------------------+
1 row in set (0.00 sec)
一个查询不需要吧所有的都放一行,如此厂的查询,需要放在多行,MySQL决定你的语句是否结束是查找分号,而不是查找输入行的结尾。(换言之,MySQL接受自行格式输入:他可以一直接受输入,知道看到分号)
以下是一个简单的多行语句:
mysql> SELECT
-> USER()
-> ,
-> CURRENT_DATE;
+---------------+--------------+
| USER() | CURRENT_DATE |
+---------------+--------------+
| jon@localhost | 2010-08-06 |
+---------------+--------------+
这个例子中,注意到在 你输入多行的第一行然后回车后,提示符是如何从mysql> 改编成->的,这告诉你,MySQL还没看到一个完整的语句,正在等待剩下的。提示符是你的朋友,因为他提供了有价值的反馈。如果你使用这个反馈,你可以一直感知到mysql正在等待。
如果你打算取消正在输入的查询,你可以输入\c,如下:
mysql> SELECT
-> USER()
-> \c
mysql>
在这,你可以注意到,在你输入\c之后,提示符切换回了mysql>。一次提供一个反馈,暗示已经成为新的查询做好了准备。
以下表格显示了每一个提示符所表示的含义: