国外开源代码网站,系统开发需要的技术,可以申请域名的网站,网站维护源码如上一节所述#xff0c;确保您已连接到服务器。这样做本身不会选择任何要使用的数据库#xff0c;但没关系。在这一点上#xff0c;了解一下如何发出查询比直接创建表、加载数据和从中检索数据更重要。本节介绍输入查询的基本原则#xff0c;使用几个查询#xff0c;您可…如上一节所述确保您已连接到服务器。这样做本身不会选择任何要使用的数据库但没关系。在这一点上了解一下如何发出查询比直接创建表、加载数据和从中检索数据更重要。本节介绍输入查询的基本原则使用几个查询您可以尝试熟悉mysql的工作原理。
这是一个简单的查询要求服务器告诉您它的版本号和当前日期。在mysql提示符下输入它然后按Enter
mysql SELECT VERSION(), CURRENT_DATE;
-------------------------
| VERSION() | CURRENT_DATE |
-------------------------
| 8.4.0-tr | 2024-01-25 |
-------------------------
1 row in set (0.00 sec)mysql
这个查询说明了关于mysql的一些事情 查询通常由一个SQL语句后跟一个分号组成。也有一些例外情况可以省略分号。前面提到的QUIT就是其中之一。我们稍后会讨论其他问题。 当您发出查询时mysql将其发送到服务器执行并显示结果然后打印另一个mysql提示以指示它已准备好进行另一个查询。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), (41)*5;
---------------------------
| SIN(PI()/4) | (41)*5 |
---------------------------
| 0.70710678118655 | 25 |
---------------------------
1 row in set (0.02 sec)
到目前为止显示的查询都是相对较短的单行语句。您甚至可以在一行中输入多个语句。只需用分号结束每个语句
mysql SELECT VERSION(); SELECT NOW();
-----------
| VERSION() |
-----------
| 8.4.0-tr |
-----------
1 row in set (0.00 sec)---------------------
| NOW() |
---------------------
| 2024-01-25 18:33:04 |
---------------------
1 row in set (0.00 sec)
一个查询不需要在一行给出全部所以需要几行的冗长查询不是问题。mysql通过查找终止分号来确定语句的结尾而不是查找输入行的结尾。换句话说mysql接受自由格式的输入它收集输入行但在看到分号之前不会执行它们。
这是一个简单的多行语句
mysql SELECT- USER()- ,- CURRENT_DATE;
-----------------------------
| USER() | CURRENT_DATE |
-----------------------------
| jonlocalhost | 2018-08-24 |
-----------------------------
在这个例子中注意在你输入多行查询的第一行后提示是如何从mysql变为-的。这就是mysql如何表示它还没有看到一个完整的语句正在等待其余的。提示是你的朋友因为它提供了有价值的反馈。如果你使用那个反馈你可以随时意识到mysql在等待什么。
如果您决定不执行正在输入的查询请键入\c取消它
mysql SELECT- USER()- \c
mysql
这里也注意到提示。在您键入\c后它会切换回mysql提供反馈以指示mysql已准备好进行新查询。下表显示了您可能看到的每个提示并总结了它们对mysql所处状态的含义。
提示含义mysql准备好新查询-等待多行查询的下一行等待下一行等待完成以单引号开头的字符串等待下一行等待完成以双引号开头的字符串等待下一行等待完成以反引号开头的标识符/*等待下一行等待完成以/*
当您打算对单行发出查询但忘记了终止分号时多行语句通常会意外出现。在这种情况下mysql会等待更多输入
mysql SELECT USER()-
如果这种情况发生在你身上你认为你输入了一个语句但唯一的响应是-提示符很可能mysql正在等待分号。如果你没有注意到提示符告诉你什么你可能会在那里坐一会儿才意识到你需要做什么。输入一个分号来完成语句mysql执行它
mysql SELECT USER()- ;
---------------
| USER() |
---------------
| jonlocalhost |
--------------- 字符串收集过程中会出现和提示符表示MySQL正在等待字符串完成的另一种方式。MySQL您可以编写由或字符包围的字符串例如hello或goodbyemysql允许您输入跨越多行的字符串。当您看到或提示符时表示您输入了包含以或
mysql SELECT * FROM my_table WHERE name Smith AND age 30; 如果您输入这个SELECT语句然后按Enter并等待结果什么也不会发生。与其想知道为什么这个查询需要这么长时间不如注意提示符提供的线索。它告诉你mysql期望看到一个未终止字符串的其余部分。你看到语句中的错误了吗字符串Smith缺少第二个单引号。
在这一点上你会怎么做最简单的事情是取消查询。但是在这种情况下您不能只键入\c因为mysql将其解释为它正在收集的字符串的一部分。相反输入结束引号字符这样mysql就知道您已经完成了字符串然后键入\c
mysql SELECT * FROM my_table WHERE name Smith AND age 30; \c
mysql 提示变回mysql表示mysql已准备好进行新的查询。
提示符类似于和提示符但表示您已经开始但尚未完成反引号标识符。
了解、和提示的含义非常重要因为如果您错误地输入了未终止的字符串您键入的任何其他行似乎都会被mysql忽略——包括包含QUIT的行。这可能非常令人困惑尤其是如果您不知道在取消当前查询之前需要提供终止引号。
从这一点开始多行语句在没有辅助-或其他提示的情况下编写以便更轻松地复制和粘贴语句以供自己尝试。