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

深入理解MySQL?varchar(50)

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

一、理解MySQL varchar(50)

1.1、概述

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

 那么怎么理解varchar(50)?這個(gè)分情況的,MySQL的版本不同,存儲(chǔ)的字符長(zhǎng)度也不同,具體來(lái)講如下:

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

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

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

1.2、驗(yàn)證 

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

1.2.2、數(shù)據(jù)庫(kù)驗(yàn)證

(一)初始化表

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)識(shí) 0:未刪除、1:已刪除',
     `create_time` datetime NOT NULL COMMENT '創(chuàng)建時(shí)間',
     `update_time` datetime NULL DEFAULT NULL COMMENT '修改時(shí)間',
     `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占用幾個(gè)字符

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

1.3、題外話 

MySQL中的length VS char_length:

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

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

區(qū)別:

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

char_length():?jiǎn)挝粸樽址?,不管漢字還是數(shù)字或者是字母都算是一個(gè)字符;

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

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

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

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

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

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

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新評(píng)論

岳阳县| 黄梅县| 襄城县| 辉南县| 西峡县| 雅安市| 晴隆县| 锡林郭勒盟| 广饶县| 玉溪市| 三穗县| 庆城县| 清河县| 阿坝| 长治县| 太仆寺旗| 珲春市| 含山县| 建瓯市| 沾化县| 蒙山县| 焦作市| 瑞安市| 博客| 古蔺县| 浦县| 会同县| 东丽区| 昌宁县| 绥中县| 陆良县| 东平县| 二手房| 芜湖市| 岳普湖县| 荔浦县| 开鲁县| 武城县| 大荔县| 莱芜市| 潢川县|