Mysql shell 控制台---mysqlsh

原创 2016-07-12 杜亦舒 性能与架构

以前登录Mysql的控制台后,使用SQL语言来操作数据库,如

mysql> select * from tablename;

Mysql 5.7.12 之后有了比较大的变化,支持了JSON文档的操作,同时也提供了全新的数据库操作方式,现在可以不需要SQL的知识,以非常自然的代码方式操作数据库,例如

db.news.insert("create_date", "title")

.values("2016-04-10", "hello");

可以登录 shell 控制台使用,也有新版本的驱动,可以在代码中使用

shell 控制台有 Javascript版本,下面就体验一下新的操作方式

登录 shell控制台

mysqlsh -u root world_x

world_x 是数据库名称,是官方提供的一个测试库

mysql-js>

这个提示说明当前的交互语言是 Javascript

因为Mysql支持了JSON文档,所以操作的对象除了传统的关系数据表外,增加了文档集合

先看下传统表操作有什么变化

查询

mysql-js> db.City.select(["Name", "CountryCode"])

.where("Name like ‘Z%‘")

select 中的 ["Name", "CountryCode"] 表示只返回这两列的信息,where 中是查询条件

可以对查询条件进行参数绑定

mysql-js> db.City.select(["Name", "CountryCode"])

.where("Name like :name")

.bind("name", "Z%")

排序和限定结果数量

mysql-js> db.Country.select(["Code", "Name"])

.orderBy(["Name desc"]).limit(3)

插入

mysql-js> db.City.insert("ID", "Name", "CountryCode")

.values(1, "Little Falls", "USA")

.values(2, "Happy Valley", "USA")

可以定义多个 value 来插入多条记录

修改

mysql-js> db.City.update( )

.set("Name", "Beijing")

.where("Name = ‘Peking‘")

删除

mysql-js> db.City.delete( )

.where("Name = ‘Olympia‘")

可以看到,使用了函数链的方式,很容易理解,对于不熟悉SQL的开发人员也很友好

操作集合

添加文档

执行 CountryInfo 集合的 add 方法,参数是新文档的 JSON 数据

查询

使用 find 方法执行查询操作,由于查询结果太长,下面的示例就不显示结果信息了

(1)列出所有文档

mysql-js> db.CountryInfo.find( )

(2)条件查询

mysql-js> db.CountryInfo.find("_id = ‘888‘")

mysql-js> db.CountryInfo.find("GNP > 50 and demographics.Population < 100")

(3)参数绑定

mysql-js> db.CountryInfo.find("Name = :country")

.bind("country", "Italy")

(4)limit 与 sort

mysql-js> db.CountryInfo.find( )

.sort(["IndepYear desc"])

.limit(8).skip(1)

修改文档

使用集合的 modify 与 set 的方法链来修改文档,modify 参数指明目标文档的查找条件,set 参数中给出修改方案

可以与 modify 配合的不只是 set,还有 unset、arrayAppend、arrayInsert、arrayDelete 等方法

删除文档

(1)删除符合条件的文档

mysql-js> db.CountryInfo.remove("_id = ‘SEA‘")

(2)先对结果集排序,然后删除第一个

mysql-js> db.CountryInfo.remove( )

.sort(["Name desc"]).limit(1)

这个全新的操作方式降低了开发难度,例如一个开发者熟悉 MongoDB,但不熟悉SQL,那么现在也可以轻松的使用Mysql

时间: 2024-08-28 23:38:05

Mysql shell 控制台---mysqlsh的相关文章

MySQL 5.7.12新增MySQL Shell命令行功能

在最新发布的MySQL 5.7.12中有许多令人兴奋的新功能,对于MySQL开发者来说,最令人兴奋的莫不是新增的MySQL Shell了,其下载地址: http://dev.mysql.com/downloads/shell/ 有了MySQL Shell,我们可以将MySQL作为一个文档数据库来使用,也可以通过该工具调用Java.Python. 我们可以用mysqlsh --help来查看其帮助信息: 使用MySQL Shell的几个必要条件: 1.MySQL版本:5.7.12及以上 2.安装m

创建Web数据库,用XAMPP的MySQL shell引入 .sql 文件

Chapter 08 : Creating  Your Web DatabaseDestination : set uo a MySQL database for use on a Web siteContents : [1] Creating a database (创建数据库)[2] Users and Privileges (用户和权限)[3] Introduction to the privilege system (权限系统的介绍)[4] Creating database table

erlang 接入远程shell控制台

erlang shell是用户与 erlang 运行时系统交互的界面程序.事实上,erlang VM的运行不依赖任何shell,只要在启动的时候添加参数detached就可以脱离终端. -detached Starts the Erlang runtime system detached from the system console. Useful for running daemons and backgrounds processes. Implies -noinput. 实际上,deta

mysql shell脚本

mysql shell连接脚本 本地连接及远程链接 #!/bin/bash #连接MySQL数据库 Host=127.0.0.1 User=username PASSWORD=password PORT=3306 DBNAME="test_db_test" TABLENAME="test_table_test" CREATE_DB_SQL="SELECT * FROM ${DBNAME}.${TABLENAME}" #本地连接 mysql -u$

转 MySQL shell脚本执行错误 $&#39;\r&#39;:command not found

问题描述 前几天编写的shell小脚本,测试自动安装MySQL的,今天测试运行,然后出现如下错误$’\r’:command not found, 问题分析 检查脚本,没有问题,只是有空行.提示这个错误也不是代码本身错误,怀疑可能是编码格式等错误,:脚本是Linux下编辑完成测试.后期我又做了简单修改,是在在window下修改后完成,然后上传到Linux服务器的.注意到:win下的换行是回车符+换行符,也就是\r\n,而unix下是换行符\n. linux下不识别\r为回车符,如果脚本有\r回车符

自动化运维—tomcat服务起停(mysql+shell+django+bootstrap+jquery)

项目简介: 项目介绍:自动化运维是未来的趋势,最近学了不少东西,正好通过这个小项目把这些学的东西串起来,练练手. 基础架构: 服务器端:web框架-Django 前端:html css jQuery bootstrap 脚本:shell 适用系统:redhat5.8/redhat6.6 平台已实现功能: 中间件和数据库软件的启停和状态检查 (tomcat,nginx,apache,oracle,mysql) 完整功能设计图: 效果图: 架构图(简要): 项目源码:https://github.c

Linux mysql shell脚本 变量和环境变量 位置参数 预定义变量 运算符 判断 流程控制 for循环 与用户交互 函数

mysql 1. 卸载旧版本 rpm -qa | grep mysql 检查是否有旧版本 查询结果:mysql-libs-5.1.73-7.el6.x86_64 rpm -e mysql-libs 删除旧版本 rpm -e --nodeps mysql-libs 强行删除 2. 安装mysql 2.1 安装源码需要编译 下载c的编译工具 yum -y install make gcc-c++ cmake bison-devel ncurses-devel 2.2 xftp连接上传 xftp连接上

解决mysql shell执行中文表名报command not found错误

mysql -h 192.168.22.201 -uusername -ppassword --default-character-set=utf8 rom3 -e "DELETE FROM 3_包信息汇总表" 我知道表当然不能用中文,但是有许多历史遗留问题,没有问题,只能先这样用了

Mysql通过控制台CURD

1.mysql登录: mysql -u root -p 或者mysql -uroot -p****** password: 2.展示当前所有的db: show databases; 3.创建DB: create database mydb1; 4.对表进行操作,要先选中DB: use mydb1; 5.展示所有的表: show tables; 6.创建表: create table tb_student(number char(11),name varchar(50),age int,gende