char(10)和VARCHAR(10)主要的區別是什麼? 什麼時或用VARCHAR?
char(10)和VARCHAR(10)主要的區別是什麼? 什麼時或用VARCHAR?
首先明確的是,char的長度是不可變的,而varchar的長度是可變的
定義一個char[10]和varchar[10],如果存進去的是‘abcd’,那麼char所佔的長度依然為10,除了字元‘abcd’外,後面跟六個空格,而varchar就立馬把長度變為4了,取資料的時候,char型別的要用trim()去掉多餘的空格,而varchar是不需要的,
char的存取數度還是要比varchar要快得多,因為其長度固定,方便程式的儲存與查詢;但是char也為此付出的是空間的代價,因為其長度固定,所以難免會有多餘的空格佔位符佔據空間,可謂是以空間換取時間效率,而varchar是以空間效率為首位的。
char的儲存方式是,對英文字元(ASCII)佔用1個位元組,對一個漢字佔用兩個位元組;而varchar的儲存方式是,對每個英文字元佔用2個位元組,漢字也佔用2個位元組,兩者的儲存資料都非unicode的字元資料。
相關推薦
char(10)和VARCHAR(10)主要的區別是什麼? 什麼時或用VARCHAR?
char(10)和VARCHAR(10)主要的區別是什麼? 什麼時或用VARCHAR? 首先明確的是,char的長度是不可變的,而varchar的長度是可變的 定義一個char[10]和varchar[10],如果存進去的是‘abcd’,那麼char所佔的長度依然為10,除了字元
char(10)和nchar(10)的區別
char支援的是本地預設編碼,一般只支援中文和英文還有少部分日語和韓語等。nchar是unicode編碼,是相容世界上幾乎所有語言的,當然也支援中文。 nchar佔用空間比char大。比如char格式下一個字母只佔用一個位元組,漢字佔用兩個,nchar所有字元都佔用兩個位元
MySQL中int(10)和int(11)的區別+示例
我們都知道MySQL中的int(10)和int(11)在寬度上是不一樣的,但是其實區別真不大,因為都是佔用4個位元組,所以範圍都是一樣的,那麼主要的區別在哪兒呢? 今天忽然想到這個問題,因此做了一下測試: 1、建立一個測試用的表test,裡面只有兩個欄位,一個int10,一個int11 2、往表中插
CHR(10)和CHR(13)的區別
今天在學習oracle中遇到了一個疑惑,chr(10)表示換行 chr(13)表示回車,一直以為兩者是一樣的,所以特地百度了一下。 以下是百度得到的答案 : chr(10)表示換行 chr(13)表示回車,一直以為這兩個的作用是一樣的,為什麼連在一起用呢?有
微軟同步發行Windows 10和Windows 10 Mobile系統更新
系統更新 桌面 視覺 音樂播放 enter 右鍵 功能 顏色 邊框 微軟今天同步公布了新的 Windows 10 Redstone PC 和 Windows 10 Mobile 預覽版。PC 版本是 Build 14271。Mobile 版本是 Build 14267.
Python 2 和 Python 3 主要區別有哪些(一)
哲學 因此 cti print語句 程序調試 ssi print 很多 efault Guido(Python之父,仁慈的獨裁者)在設計 Python3 的過程中,受一篇文章 “Python warts” 的影響,決定不向後兼容,否則無法修復大多數缺陷。---摘錄自《流暢的
堆和棧的主要區別由以下幾點:
C/C++1、管理方式不同;2、空間大小不同;3、能否產生碎片不同;4、生長方向不同;5、分配方式不同;6、分配效率不同;管理方式:對於棧來講,是由編譯器自動管理,無需我們手工控制;對於堆來說,釋放工作由程序員控制,容易產生memory leak(內存泄漏)。空間大小:一般來講在32位系統下,堆內存可以達到4
MyISAM和InnoDB的主要區別和應用場景
事務安全 形式 acid sam 小型 inno type update 情況下 主要區別: 1).MyISAM是非事務安全型的,而InnoDB是事務安全型的。 2).MyISAM鎖的粒度是表級,而InnoDB支持行級鎖定。 3).MyISAM支持全文類型索引,而Inno
public int/char get和public String get 區別
通過一個程式的反覆除錯,更深刻理解了get的運用 get前面關於資料型別的寫法: 1,如果是單個的則寫當前的資料型別 2,如果要不同的資料型別放在一起則用String,而且需要return相合並如return.this.**+return.this.** 1,單個int或者char輸出場景 c
python的輸入輸出——python2和python3的主要區別
一、python的輸入輸出: 程式的輸入輸出流程: 輸入(鍵盤) ————程式碼(java/python/c)————輸出(螢幕) 變數的定義: 在python中。每個變數在使用之前都必須賦值,變數賦值後該變數才會被建立。 等號(=)就算用來給變數賦值的。
學習:JS中null 和 undefined 的主要區別
注意在 JScript 中 null 和 undefined 的主要區別是 null 的操作象數字 0,而 undefined 的操作象特殊值NaN (不是一個數字)。對 null 值和 undefined 值作比較總是相等的。 var a; var b=null; var
Python 2 和 Python 3 主要區別有哪些(一)?
Guido(Python之父,仁慈的獨裁者)在設計 Python3 的過程中,受一篇文章 “Python warts” 的影響,決定不向後相容,否則無法修復大多數缺陷。---摘錄自《流暢的Python》 你可能從來沒有聽說過學 Java 的糾結是學 JDK6 還是 JDK7,也沒聽說學
list,tuple,dict和set的主要區別
1 .list list是一個使用方括號括起來的有序元素集合; List 可以作為以 0 下標開始的陣列,任何一個非空 list 的第一個元素總是 L[0],負數索引從 list 的尾部開始向前計數來存取元素。任何一個非空的 list 最後一個元素總是 L[-1]; 有
MFC筆記——GetSafeHwnd()和GetSafeHandle()的主要區別
GetSafeHwnd()和GetSafeHandle()的主要區別: 1.使用者不同: (1)窗體使用: GetSafeHwnd()用於獲取窗體的安全控制代碼(即HWND),有了HWND我們就可以方便的對HWND指向的窗體進行所需的操作了; (2)GDI物件使用:
java基礎之ArrayList和Vector的主要區別;
List介面下一共實現了三個類:ArrayList,Vector,LinkedList。 LinkedList主要保持資料的插入順序的時候使用,採用連結串列結構。 ArrayList,Vector主要區別為以下幾點: (1):Vector是執行緒安
python2和python3的主要區別
作為一個py3土著,並不是很關心這個稀碎的問題,但是總有人隔三差五問這個問題,還是捋了一下。 這裡列出幾個主要區別: 1、最常見的人盡皆知的print()函式 在py2中,print是一個語句,不帶括號,也可以帶括號。 在py3中,print是一個函式,必須帶括號呼叫。 2、除法 # Python
String和StringBuffer的主要區別
首先,String和StringBuffer主要有2個區別: (1)String類物件為不可變物件,一旦你修改了String物件的值,隱性重新建立了一個新的物件,釋放原String物件,StringBuffer類物件為可修改物件,可以通過append()方法來修改值
Python2.x和3.x主要區別總結(入門Python必備)
Python2.x與3.x版本區別(推薦邊看邊用編輯器嘗試)Python的3.0版本,常被稱為Python 3000,或簡稱Py3k。相對於Python的早期版本,這是一個較大的升級。為了不帶入過多的累贅,Python 3.0在設計的時候沒有考慮向下相容。許多針對早期
程序和程式的主要區別
程序的定義:“程序”是作業系統的最基本、最重要的概念之一。但迄今為止對這一概念還沒有一個確切的統一的描述。下面給出幾種對程序的定義描述。 程序是程式的一次執行。程序是可以並行執行的計算。程序是一個程式與其使用的資料在處理機上順序執行時發生的活動。
update和upgrade的主要區別
update和upgrade的區別不是很大,側重點不同而已。 update側重更新的意思,主要是為原有的東西增加新功能,或者對已有的部分做出更改等。比如,資料庫更新資料,那麼就是update,而不能用upgrade。 upgrade側重升級的意思,是指從較低階版本升級到高