欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

深入理解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í)最好的辦法是在自己數(shù)據(jù)庫中建個表試試可以放多少漢字,現(xiàn)在公司開發(fā)中MySQL的版本至少都為5.xx版本及以上版本了,所以說varchar(50)是可以存50個漢字的;

1.2、驗(yàn)證 

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

1.2.2、數(shù)據(jù)庫驗(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)識 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í)際存儲在其中的字符數(shù),而char存儲的是指定的固定長度的字符數(shù)。這意味著如果一個字符串的實(shí)際長度小于varchar類型指定的長度,那么存儲空間會得到更有效的利用。相反,如果一個字符串的實(shí)際長度超過char類型指定的長度,那么多余的字符會被忽略。
  • 性能:由于varchar根據(jù)實(shí)際存儲的數(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ù)可能會少于這個數(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)文章

  • mysql通過INSERT IGNORE INTO插入拼音字符無效問題及解決

    mysql通過INSERT IGNORE INTO插入拼音字符無效問題及解決

    這篇文章主要介紹了mysql通過INSERT IGNORE INTO插入拼音字符無效問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 創(chuàng)建mysql表分區(qū)的方法

    創(chuàng)建mysql表分區(qū)的方法

    我來給大家介紹一下mysql表分區(qū)創(chuàng)建與使用吧,希望對各位同學(xué)會有所幫助。表分區(qū)的測試使用,主要內(nèi)容來自于其他博客文章以及mysql5.1的參考手冊。
    2013-10-10
  • MYSQL 解鎖與鎖表介紹

    MYSQL 解鎖與鎖表介紹

    相對其他數(shù)據(jù)庫而言,MySQL的鎖機(jī)制比較簡單,其最顯著的特點(diǎn)是不同的存儲引擎支持不同的鎖機(jī)制
    2017-04-04
  • MySQL系統(tǒng)及自定義變量方式

    MySQL系統(tǒng)及自定義變量方式

    這篇文章主要介紹了MySQL系統(tǒng)及自定義變量方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • MySQL中的悲觀鎖與樂觀鎖

    MySQL中的悲觀鎖與樂觀鎖

    這篇文章主要介紹了MySQL中悲觀鎖與樂觀鎖的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下
    2020-09-09
  • MySQL中join查詢的深入探究

    MySQL中join查詢的深入探究

    數(shù)據(jù)庫中的JOIN稱為連接,連接的主要作用是根據(jù)兩個或多個表中的列之間的關(guān)系,獲取存在于不同表中的數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于MySQL中join查詢的深入探究,需要的朋友可以參考下
    2022-11-11
  • MySQL 升級方法指南大全

    MySQL 升級方法指南大全

    通常,從一個發(fā)布版本升級到另一個版本時,我們建議按照順序來升級版本。例如,想要升級 MySQL 3.23 時,先升級到 MySQL 4.0,而不是直接升級到 MySQL 4.1 或 MySQL 5.0。
    2008-01-01
  • Mysql巧用join優(yōu)化sql的方法詳解

    Mysql巧用join優(yōu)化sql的方法詳解

    這篇文章主要給大家介紹了關(guān)于Mysql巧用join優(yōu)化sql的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Mysql具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • [MySQL binlog]mysql如何徹底解析Mixed日志格式的binlog

    [MySQL binlog]mysql如何徹底解析Mixed日志格式的binlog

    這篇文章主要介紹了mysql徹底解析Mixed日志格式的binlog,需要的朋友可以參考下
    2014-02-02
  • Mysql DDL常見操作匯總

    Mysql DDL常見操作匯總

    這篇文章主要介紹了Mysql DDL常見操作匯總,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09

最新評論