最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解mysql?bit/json/enum/set?的數(shù)據(jù)存儲(chǔ)

 更新時(shí)間:2023年09月04日 10:03:30   作者:教練、我想打籃球  
這篇文章主要介紹了mysql?bit/json/enum/set?的數(shù)據(jù)存儲(chǔ),探究的主要內(nèi)容為 int 類類型的存儲(chǔ), 浮點(diǎn)類類型的存儲(chǔ), char 類類型的存儲(chǔ), blob 類類型的存儲(chǔ), enum/json/set/bit 類類型的存儲(chǔ),需要的朋友可以參考下

前言

這里主要是 由于之前的一個(gè) datetime 存儲(chǔ)的時(shí)間 導(dǎo)致的問(wèn)題的衍生出來(lái)的探究 

探究的主要內(nèi)容為 int 類類型的存儲(chǔ), 浮點(diǎn)類類型的存儲(chǔ), char 類類型的存儲(chǔ), blob 類類型的存儲(chǔ), enum/json/set/bit 類類型的存儲(chǔ) 

本文主要 的相關(guān)內(nèi)容是 bit/json/enum/set 類類型的相關(guān)數(shù)據(jù)的存儲(chǔ)  

這部分?jǐn)?shù)據(jù) 客戶端 和 服務(wù)器這邊的交互 主要是以字符串的形式交互 

服務(wù)器這邊的存儲(chǔ) 相關(guān)的編碼之后的整形, json 為字符串  

 mysql 中 bit的服務(wù)器客戶端的數(shù)據(jù)交互 

測(cè)試數(shù)據(jù)表 以及數(shù)據(jù)如下

CREATE TABLE `tz_test` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `field1` bit(6) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8
INSERT INTO `test`.`tz_test`(`id`, `field1`) VALUES (1, '7');

測(cè)試腳本如下 

package com.hx.test07;
/**
 * Test06MysqlTimezone
 *
 * @author Jerry.X.He
 * @version 1.0
 * @date 2023/4/24 16:26
 */
public class Test06MysqlTimezone {
    // Test06MysqlTimezone
    public static void main(String[] args) {
        String url = "jdbc:mysql://10.60.50.16:3306/test?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&autoReconnectForPools=true&useSSL=false";
        String username = "root";
        String password = "root";
        JdbcTemplate jdbcTemplate = Test14GenExpertSql.getMysqlJdbcTemplate(url, username, password);
        String sql = " select * from tz_test; ";
        List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
        int x = 0;
    }
}

mysql 是將給定的 bit 的數(shù)據(jù)以 字符串的形式 交互給客戶端的

mysql 服務(wù)器中對(duì)應(yīng)的類型為 BIT

2cd0f3156ad64e61b44bd67a0998751b.png

bit 這邊轉(zhuǎn)換, 是直接獲取的給定的字段對(duì)應(yīng)的 字節(jié)序列

這里是 new byte[] { 0x37 }

83c5ed4a21894aae976038d7ed0982e5.png

與客戶端的交互, 取出存放的 bits 的數(shù)據(jù) 

然后 拷貝到 val_buffer 響應(yīng)給客戶端, 這里輸出了一個(gè) '7' 

017b10e165dd489d97b409af286d339c.png

mysql 服務(wù)器 bit 的存儲(chǔ)

是轉(zhuǎn)換為單字節(jié)進(jìn)行存儲(chǔ)的  

477943a6549a41a6b575314d78bdc44c.png

 mysql 中 json 的服務(wù)器客戶端的數(shù)據(jù)交互 

和上面 bit 相同 

mysql 服務(wù)器中對(duì)應(yīng)的類型為 JSON

835ce55ef51f4ce986e7d61b18e679c8.png

與客戶端的交互, 以 my_charset_bin 反序列化為字符串, 格式化為 json 

然后輸出 json 字符串到給定的 buf 

6d7d5da51d3c4596b41034d27cf47271.png

mysql 服務(wù)器 json的存儲(chǔ)

將給定的 json 的 字符串以 my_charset_bin 序列化為 二進(jìn)制, 以二進(jìn)制的形式存儲(chǔ)

以下代碼 基于 mysql-8.0.23

6a43fe7b0c6a443e8b1a3e16c7e67ac7.png

e6018e19fd5642e2ad35749a475daa20.png

 mysql 中 enum的服務(wù)器客戶端的數(shù)據(jù)交互 

和上面 bit 相同 

mysql 服務(wù)器中對(duì)應(yīng)的類型為 STRING? 為什么不是 ENUM 

b44f31187e1845188fa1bea22c801ab8.png

與客戶端的交互, 獲取當(dāng)前字段 在枚舉的索引, 然后 根據(jù)配置的選項(xiàng)列表 獲取對(duì)應(yīng)的字符串表示

45b75211e57f465d8ea6581f0b66cc80.png

mysql 服務(wù)器 enum 的存儲(chǔ)

根據(jù)輸入的 枚舉字符 獲取索引, 然后 存儲(chǔ)的是具體的索引

0d2e290afbdd4f73a96a6156ff6a6d0d.png

假設(shè)輸入的字段值 不在枚舉列表中, 則存放的是 0, 表示的空字符串

0310debc806941f8a4ac3e998e258719.png

數(shù)據(jù)的存儲(chǔ)是根據(jù)索引的值域 按不同的長(zhǎng)度進(jìn)行存儲(chǔ)

a24938127ef84ec991da044672f576d9.png

 mysql 中 set 的服務(wù)器客戶端的數(shù)據(jù)交互

和上面 bit 相同 

mysql 服務(wù)器中對(duì)應(yīng)的類型為 STRING? 為什么不是 SET 

acf9a8e7121742368676ef274b3dcfb8.png

與客戶端的交互, 從當(dāng)前字段的值中 按照權(quán)重 獲取相應(yīng)的字符串表示, 并用 分隔符 連接起來(lái)

d3ed814b700a465eb7a1700212ffcbb6.png

mysql 服務(wù)器 set 的存儲(chǔ)

可以看到 boy, girl, unknown 的索引分別為 0, 1, 2, 權(quán)重分別為 1, 2, 4

因此 這里存儲(chǔ)的 girl, unknown 為 2 + 4 = 6

數(shù)據(jù)的存儲(chǔ) 和上面 enum 一致, 根據(jù)存儲(chǔ)的值的取值區(qū)間 按不同的長(zhǎng)度進(jìn)行存儲(chǔ) 

52b6ba161199459e9d2d631e20b62de8.png

對(duì)于匹配不上的值 這里的處理是 直接過(guò)濾掉

299dcbdd87354717b7238bfb03f8ac31.png

到此這篇關(guān)于mysql bit/json/enum/set 的數(shù)據(jù)存儲(chǔ)的文章就介紹到這了,更多相關(guān)mysql 數(shù)據(jù)存儲(chǔ)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL子查詢操作實(shí)例詳解

    MySQL子查詢操作實(shí)例詳解

    這篇文章主要介紹了MySQL子查詢操作,結(jié)合實(shí)例形式較為詳細(xì)的分析了mysql表的創(chuàng)建、常見(jiàn)子查詢運(yùn)算與關(guān)鍵字使用技巧,需要的朋友可以參考下
    2018-06-06
  • 詳解使用navicat連接遠(yuǎn)程linux mysql數(shù)據(jù)庫(kù)出現(xiàn)10061未知故障

    詳解使用navicat連接遠(yuǎn)程linux mysql數(shù)據(jù)庫(kù)出現(xiàn)10061未知故障

    這篇文章主要介紹了navicat連接遠(yuǎn)程linux mysql數(shù)據(jù)庫(kù)出現(xiàn)10061未知故障,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • MySQL不能顯示中文問(wèn)題及解決

    MySQL不能顯示中文問(wèn)題及解決

    這篇文章主要介紹了MySQL不能顯示中文問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • linux采用binary方式安裝mysql

    linux采用binary方式安裝mysql

    這篇文章主要為大家詳細(xì)介紹了linux采用binary方式安裝mysql步驟,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • MYSQL關(guān)聯(lián)關(guān)系查詢方式

    MYSQL關(guān)聯(lián)關(guān)系查詢方式

    文章詳細(xì)介紹了MySQL中如何使用內(nèi)連接和左外連接進(jìn)行表的關(guān)聯(lián)查詢,并展示了如何選擇列和使用別名,文章還提供了一些關(guān)于查詢優(yōu)化的建議,并鼓勵(lì)讀者參考和支持腳本之家
    2025-02-02
  • 解決Linux下Tomcat向MySQL插入數(shù)據(jù)中文亂碼問(wèn)題

    解決Linux下Tomcat向MySQL插入數(shù)據(jù)中文亂碼問(wèn)題

    本文給大家介紹的是如何解決win平臺(tái)下開(kāi)發(fā)的項(xiàng)目移植到Linux平臺(tái)后,向MySQL插入數(shù)據(jù)時(shí)中文出現(xiàn)亂碼的問(wèn)題,非常的簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下
    2018-04-04
  • MySQL學(xué)習(xí)之日期函數(shù)的用法詳解

    MySQL學(xué)習(xí)之日期函數(shù)的用法詳解

    本文將學(xué)習(xí)MySQL的日期函數(shù),在前面章節(jié)的練習(xí)中,我們就利用過(guò)NOW()函數(shù)來(lái)獲取過(guò)當(dāng)前系統(tǒng)時(shí)間,用DATEDIFF函數(shù)來(lái)計(jì)算日期相差的天數(shù),接下來(lái)我們就系統(tǒng)的學(xué)習(xí)一下 日期函數(shù)
    2022-08-08
  • MySQL中的性別字段到底加不加索引

    MySQL中的性別字段到底加不加索引

    這篇文章主要介紹了MySQL中的性別字段到底加不加索引問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • MySQL?遷移OB?Oracle場(chǎng)景中自增主鍵實(shí)踐操作

    MySQL?遷移OB?Oracle場(chǎng)景中自增主鍵實(shí)踐操作

    這篇文章主要介紹了MySQL?遷移OB?Oracle場(chǎng)景中自增主鍵實(shí)踐操作詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • MySQL ERROR 1045 (28000): Access denied for user ''root''@''localhost'' (using password: NO) 的原因分解決辦法

    MySQL ERROR 1045 (28000): Access denied for user ''root''@''

    這篇文章主要介紹了MySQL ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) 的原因分解決辦法的相關(guān)資料,需要的朋友可以參考下
    2016-05-05

最新評(píng)論

绥江县| 龙陵县| 白玉县| 大连市| 洛南县| 伽师县| 南靖县| 怀柔区| 松江区| 武强县| 固安县| 荣成市| 濮阳市| 永川市| 新丰县| 合水县| 五峰| 鄂尔多斯市| 东阳市| 六安市| 澎湖县| 龙海市| 柯坪县| 葫芦岛市| 泰和县| 大埔区| 咸阳市| 元谋县| 信丰县| 韶山市| 东丰县| 南部县| 湖北省| 高淳县| 怀化市| 博湖县| 莒南县| 柞水县| 西藏| 永清县| 嘉荫县|