1.2 初识 mysql 查询

本节描述了查询的基本原则,您可以尝试熟悉 mysql 的工作原理。

下面演示了一个简单的查询,查询当前 MySQL 服务的版本和当前的日期。在 mysql>提示行中输入以下内容,并按下 Enter:

mysql> SELECT VERSION(), CURRENT_DATE;
+-----------+--------------+
| VERSION() | CURRENT_DATE |
+-----------+--------------+
| 5.7.19    | 2017-12-18   |
+-----------+--------------+
1 row in set (0.00 sec)

mysql>

从上面的示例中,我们可以看出:

  • 查询通常由一个 SQL 语句后跟一个分号(;)组成;但有一些例外情况,分号可以省略,例如:mysql> quitmysql> \qmysql> use test
  • 客户端发送查询语句到 MySQL 服务器,服务器执行语句后,并返回结果;同时显示 mysql> 提示符,等待下一个查询操作。
  • mysql 以行、列的表格形式,打印输出;第一行表示列名,除第一行外,均表示结果行。通常情况下,第一行列名是数据表的列名,但如果语句中的表达式不是数据表列表名,则显示表达式本身。
  • mysql 返回了查询结果的总行数以及查询执行的时间;执行时间可以粗略判断 MySQL 服务器的性能,但是这里显示的时间并不是一个准确的值,它仅仅表示的是wall clock time,即我们所说的时钟时间或墙上时钟时间,而非CPU time,它会受到诸如服务器负载和网络延迟等因素的影响。
Note

wall clock time也叫wall time,它是人们实际感觉到的从任务(进程)开始到完成的一段时间,即花费的实际物理时间。当执行一个任务(进程)时,wall time是从开始到结束真实时间的一个度量,这个时间也包括了程序延迟(如sleep)或等待资源(I/O),具体说wall time包括了CPU time、I/O time和信道延迟。

查询语句不区分大小写

以下的查询都是等同的;

mysql> SELECT VERSION(), CURRENT_DATE;
mysql> select version(), current_date;
mysql> SeLeCt vErSiOn(), current_DATE;

使用查询,进行简单的数学运算

mysql> SELECT SIN(PI()/4), (4+1)*5;
+--------------------+---------+
| SIN(PI()/4)        | (4+1)*5 |
+--------------------+---------+
| 0.7071067811865475 |      25 |
+--------------------+---------+
1 row in set (0.00 sec)

同一行中执行多个查询语句,每个语句以分号结束

mysql> SELECT VERSION(); SELECT NOW();
+-----------+
| VERSION() |
+-----------+
| 5.7.19    |
+-----------+
1 row in set (0.00 sec)

+---------------------+
| NOW()               |
+---------------------+
| 2017-12-18 01:52:45 |
+---------------------+
1 row in set (0.00 sec)

多行语句

当查询语句过长,可以在多行中输入查询语句;MySQL 通过查找终止分号来确定语句的结束,而不是输入行的结尾。换句话说,MySQL 接受自由格式的输入,它收集输入行,但在看到分号之前不执行她们。

mysql> SELECT user()
    -> ,
    -> version()
    -> ;
+----------------+-----------+
| user()         | version() |
+----------------+-----------+
| root@localhost | 5.7.19    |
+----------------+-----------+
1 row in set (0.00 sec)

在这个示例中,请注意在输入多行查询的第一行之后,提示符如何从 mysql> 变为>。这表示 MySQL 没有看到完整的语句,并等待其他语句的输入,直到遇见终止分号,开始执行查询。

如果在多行查询中,您想中断或退出多行查询,可以敲入\c,并按下 Enter,退出多行查询;

mysql> SELECT user() ,
    -> version()
    -> \c

mysql 命令行中的提示符

提示符 描述
mysql> 等待新查询;
-> 等待多行查询中的新行;
'> 等待以'开始的新行;
"> 等待以"开始的新行;
`> 等待以`开始的新行;
/*> 等待以/*开始的新行;

在上述的提示符 中,'>">`>/*> 出现在敲入的 SQL 语句缺少相对应的结束符。通常情况下采用敲入\c 来终止查询语句。

mysql> SELECT * FROM my_table WHERE name = 'Smith AND age < 30;
    '> '\c
mysql>

results matching ""

    No results matching ""