3-mySQL-输入查询

输入查询,确保已经连接到服务器。这样做本身并不选择要使用的任何数据库。

看一个简单的查询。要求服务器告诉您其版本号和当前日期。

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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值