MySQL查詢表結構以及varchar和char的區(qū)別與說明
MySQL 查看設計時的表結構
desc 表名稱 ; show create table 表名稱 ;
MySQL查詢當前字段,所有列的長度
SELECT LENGTH(title) FROM nx_blog title是某一列 nx_blog是表名
CHAR和VARCHAR`類型相似,但它們被存儲和檢索的方式不同
VARCHAR值存儲為1字節(jié)或2字節(jié)長度前綴加數(shù)據(jù)。長度前綴表示值中的字節(jié)數(shù)。
如果值不超過255個字節(jié),則列使用一個長度字節(jié);如果值可能需要超過255個字節(jié),則列使用兩個長度字節(jié)
| 值 | CHAR(4) | 需要存儲 | VARCHAR(4) | 需要存儲 |
|---|---|---|---|---|
| '' | ' ' | 4字節(jié) | '' | 1個字節(jié) |
| 'ab' | 'ab ' | 4字節(jié) | 'ab' | 3個字節(jié) |
| 'abcd' | 'abcd' | 4字節(jié) | 'abcd' | 5個字節(jié) |
| 'abcdefgh' | 'abcd' | 4字節(jié) | 'abcd' | 5個字節(jié) |
MySQL字節(jié)
其實MySQL無論是char還是varchar指定的長度都是字符的長度,也就是能存儲多少個字符
字符是什么?
擴展,但是沒必要記住,我們只要知道上面utf-8的就行了,因為一般設計MySQL數(shù)據(jù)庫表都是utf-8
- ①ASCII碼中,一個英文字母(不分大小寫)占一個字節(jié)的空間,一個中文漢字占兩個字節(jié)的空間。一個二進制數(shù)字序列,在計算機中作為一個數(shù)字單元,一般為8位二進制數(shù),換算為十進制。最小值0,最大值255。
- ②UTF-8編碼中,一個英文字符等于一個字節(jié),一個中文(含繁體)等于三個字節(jié)。
- ③Unicode編碼中,一個英文等于兩個字節(jié),一個中文(含繁體)等于兩個字節(jié)。
符號:英文標點占一個字節(jié),中文標點占兩個字節(jié)。舉例:英文句號“.”占1個字節(jié)的大小,中文句號“。”占2個字節(jié)的大小。
- ④UTF-16編碼中,一個英文字母字符或一個漢字字符存儲都需要2個字節(jié)(Unicode擴展區(qū)的一些漢字存儲需要4個字節(jié))。
- ⑤UTF-32編碼中,世界上任何字符的存儲都需要4個字節(jié)
字節(jié)是什么?
比特是什么?
- 計算機存儲信息的最小單位,稱之為位(bit)
- 也就是二進制的一個0或者1叫一位?
上面說完了MySQL,但是Java里面的默認編碼方式是什么呢?
java采用unicode,2個字節(jié)(16位)來表示一個字符
String.getBytes(encoding)方法是獲取指定編碼的byte數(shù)組表示
通常一個漢字在gbk/gb2312是2個字節(jié),utf-8是3個字節(jié)。
如果不指定encoding則取系統(tǒng)默認的encoding。但是可以更改?
public static void main(String[] args) throws UnsupportedEncodingException {
String str = "琬";
System.out.println("str:"+str.length());
System.out.println("unicode:"+str.getBytes("unicode").length);
System.out.println("utf-8:"+str.getBytes("utf-8").length);
//其實每頁所謂的系統(tǒng)默認不默認,編碼方式都可以改的
//你網(wǎng)上搜索IDEA更改默認編碼方式,一大堆,所以這里默認的是IDEA默認的,不是Java默認的
System.out.println("系統(tǒng)默認:"+str.getBytes().length);
}
輸出結果:
str:1
unicode:4
utf-8:3
系統(tǒng)默認:3
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Mysql 日期時間 DATE_FORMAT(date,format)
Mysql 日期時間 DATE_FORMAT(date,format) ,需要的朋友可以參考下。2010-12-12
MySQL修改數(shù)據(jù)表存儲引擎的3種方法介紹
這篇文章主要介紹了MySQL修改數(shù)據(jù)表存儲引擎的3種方法介紹,分別是直接修改、導出導入、創(chuàng)建插入3種方法,需要的朋友可以參考下2014-07-07
MySQL的常見存儲引擎介紹與參數(shù)設置調(diào)優(yōu)
這篇文章主要介紹了MySQL的常見存儲引擎介紹與參數(shù)設置調(diào)優(yōu),需要的朋友可以參考下2018-03-03

