SQL

SQL语句

play

SqlCel可向数据库提交任何SQL语句,同时它还将SQL语句的语法进行了扩展,使SQL语句变得更加强大。

点击DBOPT表的E1单元格会弹出以下对话框:

sqllanguage

该对话框可缩放。文本框中默认会显示上次执行的SQL语句。

如果提交的是普通的SQL语句,则该语句将提交给当前连接的数据库,如果有执行结果,则该结果会展现在Excel中。

以下重点讲解SQL语法的扩展。该扩展亦体现了资源整合的精神,它主要是为了实现以下三个功能:

  1. 可在SQL语句中指定查询的数据源
  2. 可将查询结果存放在指定的单元格
  3. 可将Excel单元格的值作为变量传递给SQL语句 语法格式如下:
数据源!连接名  -> SQL语句 -> 工作表名称!单元格地址

举例:

sqlexample

以上四个SQL语句分别提交给Mysql、SqlServer、Oracle和文件夹,查询结果存放到表名为“Test”的工作表的指定单元格中。

其中SQL语句中的部分字符可用工作表中的单元格作为变量代替,举例如下:

Mysql!FirstMysqlConn -> SELECT Province,COUNT(Province) FROM [DBOPT!A31] group by province ->Test!B1;

该SQL语句中[DBOPT!A31]引用的是表名为DBOPT的A31单元格的值。

注意事项:

  1. 数据源仅可使用以下四个字符串(不区分大小写):
    • Mysql:表示数据源来自Mysql
    • Sql:表示数据源来自SqlServer
    • Oracle:表示数据源来自Oracle
    • Folder:表示数据源来自文件夹,其后不需要指定连接名
  2. 数据源与连接名可省略,如省略表示数据源来自当前连接的数据库,如下:
  SELECT Province,COUNT(Province) FROM repziyankadunusers180304 group by province -> TableName!B1;

该SQL语句将被提交给当前连接的数据库,执行结果从“TableName”表的B1单元格黏贴。 3. 不同的SQL语句之间用分号分开。

SQL查询

play

SQL查询和SQL语句的语法格式基本相同,不同的是SQL查询更偏向于对当前选中表的查询操作,其提交的SQL语句中需包含当前查询的表名或用THISTABLE替代这个表名。

选中一个待查询的表,在其后的G列对应的单元格输入查询语句,然后点击该SQL语句左边的“SQL查询”或G1单元格的“查询当前表”,则将该SQL语句提交给对应数据库。如下所示:

sqlquery

如果提交的是SELECT、SHOW等有执行结果的SQL语句,则将该结果展现在一个新的工作表中。否则会提示“n行受影响”。如果SQL语句中对查询结果指定了具体的存放位置, 则会将执行结果存放在指定的位置。