MySQL中\g、\G与;三种语句结束符

摘要:MySQL的结束符区别

无论哪种数据库,人机交互中最重要的都是通过SQL进行,每个SQL在我们敲完后发给数据库,数据库执行的结果再返回给我们。
代表一个SQL写完了,可以发给数据库执行了,用的最多的就是;,比如

root@database-one 21:46:  [gftest]> show tables;
+------------------+
| Tables_in_gftest |
+------------------+
| emp              |
+------------------+
1 row in set (0.00 sec)

root@database-one 21:46:  [gftest]> select * from emp;
+--------+------------+---------+--------+
| ename  | hiredate   | sal     | deptno |
+--------+------------+---------+--------+
| 郭军   | 2019-12-08 | 8400.00 |     10 |
| 刘杰   | 2018-04-09 | 9100.00 |     10 |
| 王艳   | 2020-01-05 | 6000.00 |     20 |
+--------+------------+---------+--------+
3 rows in set (0.01 sec)

其实MySQL中还有另外两个结束符,先来看\g

root@database-one 21:47:  [gftest]> select * from emp \g
+--------+------------+---------+--------+
| ename  | hiredate   | sal     | deptno |
+--------+------------+---------+--------+
| 郭军   | 2019-12-08 | 8400.00 |     10 |
| 刘杰   | 2018-04-09 | 9100.00 |     10 |
| 王艳   | 2020-01-05 | 6000.00 |     20 |
+--------+------------+---------+--------+
3 rows in set (0.00 sec)

\g的效果和;是一样的。那再来看看\G

root@database-one 21:47:  [gftest]> select * from emp \G
*************************** 1. row ***************************
   ename: 郭军
hiredate: 2019-12-08
     sal: 8400.00
  deptno: 10
*************************** 2. row ***************************
   ename: 刘杰
hiredate: 2018-04-09
     sal: 9100.00
  deptno: 10
*************************** 3. row ***************************
   ename: 王艳
hiredate: 2020-01-05
     sal: 6000.00
  deptno: 20
3 rows in set (0.01 sec)

是不是结果很特别,虽然还是显示了emp表中的所有数据,但是在显示格式上有了变化。原来,在MySQL中,\G这个结束符,不光代表SQL敲完了,还要求返回的结果,显示的时候,每行数据,所有列均竖向打印,以便更好地显示内容较长的记录。

最后总结一下,平时使用;或者\g均可,当记录较长时,使用\G能更好的显示,方便查看。

© 2020, morinson. 版权所有. 欢迎转载,但请保留作者及出处。