在 MySQL 中, 每当查询被发送到服务端时, 服务器在执行语句之前将会进行下面的检查:
用户是否有权限执行该语句?
用户是否有权限访问目标数据?
语句的语法是否正确
如果查询通过了这三个测试, 就会被传递给 查询优化器 , 它负责为查询找到最有效率的执行方式.
优化器通常会做诸如确定 from 子句后面各表的连接顺序, 或是可以使用哪些索引之类的工作, 然后选择一个执行方案, 以供服务器执行该查询.
当服务器执行完查询后, 将会向调用程序 (这里是 MySQL 工具) 返回一个结果集.
如果查询结果并没有找到任何结果, 那么 mysql 工具将会在其后显示一条提示消息, 例如:
- mysql> SELECT emp_id, fname, lname
- -> FROM employee
- -> WHERE lname = 'zifeiy';
- Empty set (0.00 sec)
如果查询返回了 1 行或多行记录, 那么 mysql 工具将会使用列名和 -,| , + 等符号组成的边框将结果鸽石斛啊输出, 例如:
- mysql> SELECT * FROM department;
- +---------+--------+
- | dept_id | name |
- +---------+--------+
| 1 | dept 1 |
| 2 | dept 2 |
| 3 | dept 3 |
- +---------+--------+
- 3 rows in set (0.00 sec)
在显示最后一行结果之后, mysql 工具会显示一条消息, 以提示一共返回了多少行.
来源: http://www.bubuko.com/infodetail-2558745.html