zoukankan      html  css  js  c++  java
  • 3.2输入查询

     

    如上一节所述,确保您已连接到服务器。这样做本身并不选择要使用的任何数据库,但是可以。在这一点上,了解有关如何发出查询的知识比直接跳转到创建表,将数据加载到表中以及从表中检索数据更重要。本节介绍输入查询的基本原理,您可以尝试使用几种查询来熟悉mysql的 工作方式。

    这是一个简单的查询,要求服务器告诉您其版本号和当前日期。按照mysql>提示在此处输入内容,然后按Enter:

    mysql> SELECT VERSION(), CURRENT_DATE;
    +-----------+--------------+
    | VERSION() | CURRENT_DATE |
    +-----------+--------------+
    | 5.8.0-m17 | 2015-12-21   |
    +-----------+--------------+
    1 row in set (0.02 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), (4+1)*5;
    +------------------+---------+
    | SIN(PI()/4)      | (4+1)*5 |
    +------------------+---------+
    | 0.70710678118655 |      25 |
    +------------------+---------+
    1 row in set (0.02 sec)

    到目前为止显示的查询是相对简短的单行语句。您甚至可以在一行上输入多个语句。只需以分号结束每个人:

    mysql> SELECT VERSION(); SELECT NOW();
    +-----------+
    | VERSION() |
    +-----------+
    | 8.0.13    |
    +-----------+
    1 row in set (0.00 sec)
    
    +---------------------+
    | NOW()               |
    +---------------------+
    | 2018-08-24 00:56:40 |
    +---------------------+
    1 row in set (0.00 sec)

    一个查询不必全都给出,因此需要几行的冗长查询就不成问题。 mysql通过查找终止分号(而不是通过输入行的末尾)来确定语句的结尾。(换句话说,mysql 接受自由格式的输入:它收集输入行,但直到看到分号时才执行它们。)

    这是一个简单的多行语句:

    mysql> SELECT
        -> USER()
        -> ,
        -> CURRENT_DATE;
    +---------------+--------------+
    | USER()        | CURRENT_DATE |
    +---------------+--------------+
    | jon@localhost | 2018-08-24   |
    +---------------+--------------+

    在此示例中,请注意输入多行查询的第一行后,提示从 mysql>变为的方式->这就是 mysql表示尚未看到完整的语句并正在等待其余语句的方式。该提示是您的朋友,因为它提供了宝贵的反馈。如果使用该反馈,则始终可以知道mysql 正在等待什么

    如果您决定不想执行正在输入的查询,请输入以下命令来取消它 c

    mysql> SELECT
        -> USER()
        -> c
    mysql>

    在这里,也请注意提示。mysql>键入后c它会切换回 ,提供反馈以指示mysql已准备好进行新查询。

    下表显示了您可能会看到的每个提示,并总结了它们对mysql所处状态的含义 

    提示含义
    mysql> 准备进行新查询
    -> 等待多行查询的下一行
    '> 等待下一行,等待以单引号('开头的字符串的完成
    "> 等待下一行,等待以双引号("开头的字符串的完成
    `> 等待下一行,等待以反引号(`开头的标识符的完成
    /*> 等待下一行,等待以开头的注释的完成 /*

    当您打算在单行上发出查询时,多行语句通常是偶然发生的,但是会忘记终止的分号。在这种情况下,mysql 等待更多输入:

    mysql> SELECT USER()
        ->

    如果这发生在您身上(您认为您已经输入了一条语句,但唯一的回答是->提示),则很可能mysql正在等待分号。如果您没有注意到提示所告诉的内容,则可以在这里坐一会儿,然后再意识到需要做的事情。输入分号以完成该语句,然后mysql 执行该语句

    mysql> SELECT USER()
        -> ;
    +---------------+
    | USER()        |
    +---------------+
    | jon@localhost |
    +---------------+

    '>">字符串集合(说,MySQL是在等待一个字符串完成的另一种方式)中的提示信息出现。在MySQL中,您可以编写用'或 "字符包围的字符串(例如 'hello'"goodbye"),而 mysql则允许您输入跨越多行的字符串。当您看到'>或 ">提示时,表示您输入的行包含以' 或"引号字符开头的字符串,但尚未输入匹配的引号来终止该字符串。这通常表明您无意中省略了引号字符。例如:

    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这可能会造成混乱,尤其是在您不知道需要提供终止报价才能取消当前查询之前。

    注意

    此后的多行语句在编写时没有辅助(->或其他)提示,从而使复制和粘贴语句更容易进行尝试。

  • 相关阅读:
    分布式架构高可用架构篇_activemq高可用集群(zookeeper+leveldb)安装、配置、高可用测试
    @interface [SpringMVC+redis]自定义aop注解实现控制器访问次数限制
    ActiveMQ安装与持久化消息
    activemq 5.13.2 jdbc 数据库持久化 异常 找不到驱动程序
    java通过Comparable接口实现字符串比较大小排序的简单实例
    微信小程序--火车票查询
    【调试】如何使用javascript的debugger命令进行调试(重要)
    【调试】js调试console.log使用总结图解(重要)
    ajax提交表单
    一个项目的404错误处理页面
  • 原文地址:https://www.cnblogs.com/owlin/p/13730482.html
Copyright © 2011-2022 走看看