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

深入理解MySQL?varchar(50)

 更新時間:2024年01月10日 10:21:27   作者:YYAugenstern  
日常開發(fā)中,數(shù)據(jù)庫建表是必不可少的一個環(huán)節(jié),建表的時候通常會看到設(shè)定某個字段的長度為varchar(50),那么你知道是什么意思嗎,感興趣的可以了解一下

一、理解MySQL varchar(50)

1.1、概述

日常開發(fā)中,數(shù)據(jù)庫建表是必不可少的一個環(huán)節(jié),建表的時候通常會看到設(shè)定某個字段的長度為varchar(50),例如如下建表語句:

 那么怎么理解varchar(50)?這個分情況的,MySQL的版本不同,存儲的字符長度也不同,具體來講如下:

(1)4.0版本以下,varchar(50),指的是50字節(jié),如果存放UTF8漢字時,只能存16個(每個漢字3字節(jié));

(2)5.0版本以上,varchar(50),指的是50字符,無論存放的是數(shù)字、字母還是UTF8漢字(每個漢字3字節(jié)),都可以存放50個;

其實最好的辦法是在自己數(shù)據(jù)庫中建個表試試可以放多少漢字,現(xiàn)在公司開發(fā)中MySQL的版本至少都為5.xx版本及以上版本了,所以說varchar(50)是可以存50個漢字的;

1.2、驗證 

1.2.1、當(dāng)前MySQL的版本

1.2.2、數(shù)據(jù)庫驗證

(一)初始化表

DROP TABLE IF EXISTS `account`;
CREATE TABLE `account`  (
     `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主鍵',
     `is_deleted` int NOT NULL DEFAULT 0 COMMENT '刪除標(biāo)識 0:未刪除、1:已刪除',
     `create_time` datetime NOT NULL COMMENT '創(chuàng)建時間',
     `update_time` datetime NULL DEFAULT NULL COMMENT '修改時間',
     `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '姓名',
     `money` decimal(10,0) NULL DEFAULT NULL COMMENT '賬戶余額',
     `email` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '郵箱',
     PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '賬戶表' ROW_FORMAT = DYNAMIC;

insert into `account` values
(null,0,now(),now(),'張三','1000000','zhangsan@qq.com'),
(null,0,now(),now(),'尼古拉斯趙四','3000000','zhaosi@qq.com');

(二)查詢name占用幾個字符

select `name`,char_length(`name`) from account;

1.3、題外話 

MySQL中的length VS char_length:

length():mysql里面的length()函數(shù)是一個用來獲取字符串長度的內(nèi)置函數(shù);

char_length():在mysql內(nèi)置函數(shù)里面查看字符串長度的還有一個函數(shù)是char_length();

區(qū)別:

length(): 單位是字節(jié),utf8編碼下,一個漢字三個字節(jié),一個數(shù)字或字母一個字節(jié)。gbk編碼下,一個漢字兩個字節(jié),一個數(shù)字或字母一個字節(jié);

char_length():單位為字符,不管漢字還是數(shù)字或者是字母都算是一個字符;

MySQL 中 varchar 與 char 的區(qū)別?varchar(30) 中的 30 代表的涵義? 

在MySQL中,varchar和char都是用于存儲可變長度字符串的數(shù)據(jù)類型,但它們之間存在一些關(guān)鍵的區(qū)別。

  • 存儲空間:varchar存儲的是實際存儲在其中的字符數(shù),而char存儲的是指定的固定長度的字符數(shù)。這意味著如果一個字符串的實際長度小于varchar類型指定的長度,那么存儲空間會得到更有效的利用。相反,如果一個字符串的實際長度超過char類型指定的長度,那么多余的字符會被忽略。
  • 性能:由于varchar根據(jù)實際存儲的數(shù)據(jù)量分配空間,所以它通常比char更快,特別是在處理大量數(shù)據(jù)時。
  • 可變長度:varchar允許字符串的長度改變,這意味著它可以存儲不同長度的字符串。另一方面,char在創(chuàng)建時就已經(jīng)確定了長度,所以它不能動態(tài)地改變大小。

現(xiàn)在來看一下varchar(30)中的數(shù)字30:

varchar(30)表示一個可以存儲最多30個字符的可變長度字符串。這里的數(shù)字30是一個最大值,實際存儲的字符數(shù)可能會少于這個數(shù)字,具體取決于實際存儲的字符串長度。

總的來說,選擇使用varchar還是char主要取決于你的具體需求。如果你知道你的數(shù)據(jù)可能會包含不同長度的字符串,那么使用varchar可能是一個更好的選擇。如果你知道你的字符串將始終具有相同的長度,那么使用char可能更為合適。

到此這篇關(guān)于深入理解MySQL varchar(50)的文章就介紹到這了,更多相關(guān)MySQL varchar(50)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 免安轉(zhuǎn)MySQL服務(wù)的啟動與停止方法

    免安轉(zhuǎn)MySQL服務(wù)的啟動與停止方法

    免安轉(zhuǎn)MySQL服務(wù)的啟動與停止方法,可以不用安裝解壓以后即可執(zhí)行,對于老手推薦,新手建議用安裝版本。
    2011-03-03
  • MySQL索引介紹及優(yōu)化方式

    MySQL索引介紹及優(yōu)化方式

    這篇文章主要介紹了MySQL索引介紹及優(yōu)化方式,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • MySQL數(shù)據(jù)庫:?高并發(fā)電商場景下的架構(gòu)設(shè)計與優(yōu)化

    MySQL數(shù)據(jù)庫:?高并發(fā)電商場景下的架構(gòu)設(shè)計與優(yōu)化

    企業(yè)使用典型主從復(fù)制模式的數(shù)據(jù)庫架構(gòu),但在面對極端高并發(fā)場景時,該架構(gòu)存在高可用性和網(wǎng)絡(luò)帶寬壓力等問題,文章隨后詳細分析了這些問題的原因,并提出了解決方案,包括使用分布式鎖、消息隊列削峰、備份策略重構(gòu)和高可用組件升級等,以提升系統(tǒng)的穩(wěn)定性與容災(zāi)能力
    2025-10-10
  • mysql中使用date_add()函數(shù)講解

    mysql中使用date_add()函數(shù)講解

    這篇文章主要介紹了mysql中使用date_add()函數(shù)講解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 理解Mysql prepare預(yù)處理語句

    理解Mysql prepare預(yù)處理語句

    這篇文章主要幫助大家學(xué)習(xí)理解Mysql prepare預(yù)處理語句,對prepare預(yù)處理語句感興趣的小伙伴們可以參考一下
    2016-03-03
  • MySQL如何更改數(shù)據(jù)庫數(shù)據(jù)存儲目錄詳解

    MySQL如何更改數(shù)據(jù)庫數(shù)據(jù)存儲目錄詳解

    這篇文章主要給大家介紹了關(guān)于MySQL如何更改數(shù)據(jù)庫數(shù)據(jù)存儲目錄的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • mysql字符集和校對規(guī)則(Mysql校對集)

    mysql字符集和校對規(guī)則(Mysql校對集)

    字符集的概念大家都清楚,校對規(guī)則很多人不了解,一般數(shù)據(jù)庫開發(fā)中也用不到這個概念,mysql在這方便貌似很先進,大概介紹一下
    2012-07-07
  • Mysql 用戶權(quán)限管理實現(xiàn)

    Mysql 用戶權(quán)限管理實現(xiàn)

    MySQL 是一個多用戶數(shù)據(jù)庫,具有功能強大的訪問控制系統(tǒng),可以為不同用戶指定不同權(quán)限。本文就來介紹一下Mysql 用戶權(quán)限管理實現(xiàn),感興趣的可以了解一下
    2021-05-05
  • MySQL需要根據(jù)特定順序排序的實現(xiàn)方法

    MySQL需要根據(jù)特定順序排序的實現(xiàn)方法

    在MySQL中,我們可以通過指定順序排序來在查詢結(jié)果中控制數(shù)據(jù)的排列順序,這種排序方式是非常有用的,本文就來介紹一下,感興趣的可以了解一下
    2023-11-11
  • MySQL設(shè)置密碼復(fù)雜度策略的完整步驟(附代碼示例)

    MySQL設(shè)置密碼復(fù)雜度策略的完整步驟(附代碼示例)

    MySQL密碼策略還可能包括密碼復(fù)雜度的檢查,如是否要求密碼包含大寫字母、小寫字母、數(shù)字和特殊字符等,這篇文章主要介紹了MySQL設(shè)置密碼復(fù)雜度策略的完整步驟,需要的朋友可以參考下
    2025-08-08

最新評論

宣恩县| 嘉善县| 德阳市| 彩票| 珠海市| 洛扎县| 册亨县| 温州市| 苍梧县| 安康市| 秀山| 合山市| 健康| 龙山县| 安化县| 阳泉市| 兴隆县| 富蕴县| 兴安盟| 乌拉特中旗| 丹棱县| 潜江市| 定安县| 萨迦县| 通海县| 年辖:市辖区| 庆元县| 家居| 拉萨市| 清水县| 万载县| 华池县| 简阳市| 托克托县| 勐海县| 石阡县| 泽普县| 盐源县| 桐庐县| 上饶市| 兴仁县|