首页 > 数据库 >MySQL Shell 调用外部脚本

MySQL Shell 调用外部脚本

时间:2024-05-31 09:12:18浏览次数:13  
标签:Shell firstName lastName 调用 score MySQL avg

使用 CLI 工具时,打错命令很容易纠正。不过,在 MySQl Shell 中工作时,命令可能会更长、更复杂。以下是运行 MySQL Document Store 的一个例子。

db.scores.find("year(date) = 2023").fields(['lastName', 'firstName', 'round(avg(score), 2) as avg', 'count(score) as numberOfRounds']).groupBy(['lastName', 'firstName']).sort(['lastName', 'firstName'])

很难在随意换行的非格式化文本中找到错别字。

这里就引发了要讨论的第一个隐藏优点: MySQL Shell 从外部文件执行命令的能力。这让我们可以在集成开发环境或其他编辑器中编辑文件,然后在MySQL Shell中运行命令。

 

MySQL Shell支持JavaScript、Python和SQL格式的外部脚本。在本篇文章中,将演示如何使用外部 JavaScript 文件。

 

假设有个名叫demo1.js的文件,包含如下内容:

db.scores.find("year(date) = 2023").fields(['lastName', 'firstName', 'round(avg(score), 2) as avg', 'count(score) as numberOfRounds']).groupBy(['lastName', 'firstName']).sort(['lastName', 'firstName'])

要在 MySQL Shell 中运行此脚本,要使用 \source (或 \.)命令并传递文件路径。

如下所示:

\. ~/projects/shell_scripts/demo1.js

在这种格式中也会遇到了一些同样的问题,因为这个命令很长,而且都在一行中。为了便于阅读和编辑,添加了一些换行符。将以下内容保存为 demo2.js。

db.scores.
find("year(date) = 2023")
.fields([
    'lastName',
    'firstName',
    'round(avg(score), 2) as avg',
    'count(score) as numberOfRounds'
])
.groupBy([
    'lastName',
    'firstName'
])
.sort([
    'lastName',
    'firstName'
])

 

这种格式更容易阅读。可以在单独的一行中调用数组中的其他方法和元素。如下图所示,还可以从集成开发环境中获得了语法高亮的额外好处。

注意前两行,特别要注意的是find() 方法之前的 .在上面一行。如果把它移到与 find() 相同的一行,MySQl Shell 就会出错。

 

然后调用脚本:

\. ~/projects/shell_scripts/demo2.js

将这样的脚本放在外部文件中的另一个好处是,它们可以添加到源代码控制中,方便其他开发人员使用。

标签:Shell,firstName,lastName,调用,score,MySQL,avg
From: https://www.cnblogs.com/abclife/p/18210009

相关文章

  • 【docker】docker 下 MySQL偶然无法访问
    1.概述我有一个环境遇到了docker下MySQL偶然无法访问,具体情况如下可以被看到可以telnet通畅,这个jar是我自己研发的,主要这台机器是别人的没有装telnet但是任务还是报错所在机器telnet通但是无法登录,同事说遇到过比如网络卡或者不稳定,需要重启一下mysql我先去......
  • Windows PowerShell
    WindowsPowerShell是微软发布的一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用.NETFramework的强大功能。引入了许多非常有用的新概念,从而进一步扩展了在Windows命令提示符和WindowsScriptHost环境中获得的知识和创建的脚本。=========================......
  • JS-08函数的4中调用方式详解
    目录1函数调用方式 2方法调用方式例1:声明一个对象,调用对象原型里的方法例2:直接调用对象里的方法例3:声明一个值为函数的变量clear,在一个对象tom里的某个属性c赋值为该变量clear,然后通过该对象tom调用这个变量c3构造函数调用方式例1:有一个函数,用new来赋值,则是赋值的......
  • MySQL 数据库中简单的创表语句以及增删改查语句
    假设我们有一个学生表students,包含以下列:id(学生编号)、name(学生姓名)、age(学生年龄),以下是创建这个表的SQL语句:CREATETABLEstudents(  idINTPRIMARYKEY,  nameVARCHAR(50),  ageINT);在这个创建语句中:•CREATETABLE:用于创建新表。•students:表......
  • MySQL数据库中的分组函数ROLLUP
    ROLLUP是GROUPBY子句的扩展。ROLLUP选项允许包含表示小计的额外行,通常称为超级聚合行,以及总计行。通过使用ROLLUP选项,可以使用单个查询生成多个分组集。MySQL中的ROLLUP是用于 产生汇总输出的修饰符,包括表示超级汇总(较高级别)汇总操作的额外行。它使我们能够使用单个查询在......
  • MySQL全文索引实现简单版搜索引擎
    1前言只有Innodb和myisam存储引擎能用全文索引(innodb支持全文索引是从mysql5.6开始的)char、varchar、text类型字段能创建全文索引(fulltextindextype)全文索引的基于关键词的,如何区分不同的关键词了,就要用到分词(stopword)英文单词用空格,逗号进行分词;中文分词不方便(一个句......
  • 深入浅出CPU眼中的函数调用&栈溢出攻击
    深入浅出CPU眼中的函数调用——栈溢出攻击原理解读函数调用,大家再耳熟能详了,我们先看一个最简单的函数:#include<stdio.h>#include<stdlib.h>intfunc1(inta,intb){ intc=a+b;returnc;}intmain(){intres=func1();printf("%d",res);}函......
  • 【scau数据库实验一】mysql_navicat_数据库定义实验、基本命令
    实验一开始之前,如果还有不会使用navicat建议花五分钟补课哦~补课地址:【scau数据库实验先导】mysql_navicat_数据库新建、navicat的使用-CSDN博客实验目的:理解和掌握数据库DDL语言,能够熟练地使用SQL DDL语句创建、修改和删除数据库、模式和基本表。实验报告要求:实验报......
  • Shell脚本---条件判断
    1.条件判断语法结构思考:何为真(True)?何为(False)?格式1:test条件表达式格式2:[条件表达式]格式3:[[条件表达式]]支持正则=~特别说明:1)[中括号两边都有空格]2)[[中括号两边都有空格]]3)更多判断,mantest去查看,很多的参数都用来进行条件判断2.条件判断相关参......
  • 图片去水印工具(低调用哦)
    一、简介1、它是一款专业的图像编辑工具,旨在帮助用户轻松去除照片中不需要的元素或修复照片中的缺陷。无论是修复旧照片、消除拍摄时的不良构图,还是删除照片中的杂乱元素,都能帮助用户快速实现这些目标。其功能强大且操作简单,使得使用者可以轻松实现图像编辑的各种需求。使用......