Mysql shell 控制台---mysqlsh


 

以前登錄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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM