输入查询,确保已经连接到服务器。这样做本身并不选择要使用的任何数据库。
看一个简单的查询。要求服务器告诉您其版本号和当前日期。
mysql> select version(), current_date;
+---------------------------+--------------+
| version() | current_date |
+---------------------------+--------------+
| 10.3.27-MariaDB-0+deb10u1 | 2021-03-09 |
+---------------------------+--------------+
1 row in set (0.000 sec)
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)
也可以一行输入多个语句,只要用分号来结束就行。
select version();select now();
+---------------------------+
| version() |
+---------------------------+
| 10.3.27-MariaDB-0+deb10u1 |
+---------------------------+
1 row in set (0.000 sec)
+---------------------+
| now() |
+---------------------+
| 2021-03-09 16:31:44 |
+---------------------+
1 row in set (0.000 sec)
或者也可以写多行语句,最后分号结束就行。
select
-> user()
-> ,
-> current_date;
+----------------+--------------+
| user() | current_date |
+----------------+--------------+
| root@localhost | 2021-03-09 |
+----------------+--------------+
1 row in set (0.000 sec)
提示从 mysql>变为的方式->。这就是 mysql表示尚未看到完整语句并正在等待其余语句的方式。说明可以在下一行接着写没写完的语句。
如果不想执行输入过程中的查询,那么可以使用 ctrl+c 来取消
mysql> SELECT
-> USER()
-> \c
mysql>
mysql>键入后\c,它会切换回 ,提供反馈以指示mysql已准备好进行新查询。
一些 mysql 所处状态的含义。
提示 | 意义 |
---|---|
mysql> | 准备进行新查询 |
-> | 等待多行查询的下一行 |
'> | 等待下一行,等待以单引号(’)开头的字符串的完成 |
"> | 等待下一行,等待以双引号(")开头的字符串的完成 |
`> | 等待下一行,等待以反引号开头的标识符的完成 |
/*> | 等待下一行,等待以开头的注释的完成 /* |
我们平时写代码的时候总是会忘记分号,然后就会有提示 -> ,
mysql> SELECT USER()
->
这个时候只需要加一个分号即可。
mysql> SELECT USER()
-> ;
+----------------+
| user() |
+----------------+
| root@localhost |
+----------------+
您看到’>或 ">提示时,表示您已经输入了包含以’ 或"引号字符开头的字符串的行,但尚未输入终止该字符串的匹配引号。这通常表明您无意中省略了引号字符。例如:
mysql> SELECT * FROM my_table WHERE name = 'Smith AND age < 30;
'>
最简单的解决办法是取消查询。但是,\c在这种情况下,您不能仅输入内容,因为mysql会将其解释为所收集字符串的一部分。而是输入右引号(因此mysql知道您已经完成了字符串),然后键入\c:
mysql> SELECT * FROM my_table WHERE name = 'Smith AND age < 30;
'> '\c
mysql>