===字符串類型測試:CHAR、VARCHAR

一、LAB1:(字符、變長字符)

作用:用于存儲(chǔ)用戶的姓名、愛好、發(fā)布的文章等

主要:

1、CHAR? ? ? ? 列的長度固定為創(chuàng)建表時(shí)聲明的長度: 0 ~ 255

2、VARCHAR? 列中的值為可變長字符串,長度: 0 ~ 65535

例如:

CHAR的長度是固定的

VARCHAR長度是可以變化的

固定與可變是針對存儲(chǔ)介質(zhì)(硬盤)來說的

假如:

CHAR和VARCHAR的默認(rèn)長度都設(shè)為10,兩個(gè)字段都分別寫入“abc”

CHAR? ? ? 損耗了硬盤10字節(jié) = “abc”長度 + 7個(gè)空字符

VARCHAR損耗了硬盤 3字節(jié) = “abc”長度

設(shè)定默認(rèn)值n(假如是 10 ) 則該字段內(nèi)能寫入的字符串長度最大只能為 10

3、在檢索的時(shí)候,CHAR列刪除了尾部的空格,而VARCHAR則保留這些空格

1、創(chuàng)建表

示例:

mysql> create table vc (

v varchar(4),

c char(4)

);

Query OK, 0 rows affected (0.03 sec)

2、查看表結(jié)構(gòu)

示例:

mysql> desc vc;

+-------+------------+------+-----+---------+-------+

| Field | Type? ? ? | Null | Key | Default | Extra |

+-------+------------+------+-----+---------+-------+

| v? ? | varchar(4) | YES? |? ? | NULL? ? |? ? ? |

| c? ? | char(4)? ? | YES? |? ? | NULL? ? |? ? ? |

+-------+------------+------+-----+---------+-------+

2 rows in set (0.00 sec)

3、插入數(shù)據(jù)

示例:

1)mysql> insert into vc values('a','a');

Query OK, 1 row affected, 1 warning (0.00 sec)

2)mysql> insert into vc values('ab? ','ab? ');

Query OK, 1 row affected, 1 warning (0.00 sec)

4、查詢表內(nèi)容

示例:mysql> select * from vc;

+------+------+

| v? ? | c? ? |

+------+------+

| a? | a? |

| ab? | ab? |

+------+------+

1 row in set (0.00 sec)

(看不出來區(qū)別)

5、調(diào)動(dòng)函數(shù)

1)mysql> select length(v),length(c) from vc;

+-----------+-----------+

| length(v) | length(c) |

+-----------+-----------+

|? ? ? ? 1 |? ? ? ? 1|

|? ? ? ? 4 |? ? ? ? 2 |

+-----------+-----------+

1 row in set (0.00 sec)

( length(v) 統(tǒng)計(jì)長度的函數(shù))

2)mysql> select concat(v,'='), concat(c,'=') from vc; //在后面加字符'=',看的更清楚

+---------------+---------------+

| concat(v,'=') | concat(c,'=') |

+---------------+---------------+

| a=? ? ? ? | a=? ? ? ? ? |

| ab? =? ? ? ? | ab=? ? ? ? ? |

+---------------+---------------+

1 row in set (0.00 sec)

( concat(v,'=') 拼接函數(shù))

二、LAB2:(了解)(二進(jìn)制字符)

{(前言)二進(jìn)制字符串 類型包括:binary、varbinary、blob,主要是處理圖像、視頻、音頻等文件,與字符集無關(guān)。

這類文件一般是放在服務(wù)器硬盤里,而不是數(shù)據(jù)庫里,如果要放在數(shù)據(jù)庫,就一定不能指定字符集類型,否則會(huì)把二進(jìn)制字段轉(zhuǎn)換成相應(yīng)的非二進(jìn)制字符,圖像和視頻就不能正常顯示了。

(關(guān)于非二進(jìn)制字符串)非二進(jìn)制字符串類型:包括:char、varchar、text,主要用于處理文本格式的文件。

字符集就是一堆字符的集合,字符集的編碼格式主要有以下幾種:

1、utf-8:基于unicode編碼(萬國碼),國際標(biāo)準(zhǔn)化組織制定的一套包含了世界上所有編碼類型的字符,如果一個(gè)網(wǎng)頁上想同時(shí)顯示簡體、繁體以及其他地區(qū)的一些字符,就可以使用utf8編碼。每個(gè)字符的長度是1-3個(gè)字節(jié),比如說【a】是一個(gè)字節(jié),【盾】是3個(gè)字節(jié)。

2、gb2312:簡體字,包含6700多個(gè)漢字,每個(gè)漢字相當(dāng)于2個(gè)字節(jié),每個(gè)英文單詞相當(dāng)于1個(gè)字節(jié)。

3、gbk:簡體字和繁體字,包含21000多個(gè)漢字,由中國內(nèi)地編寫的編碼庫,每個(gè)漢字相當(dāng)于2個(gè)字節(jié),每個(gè)英文單詞相當(dāng)于1個(gè)字節(jié)。

4、big5:繁體字,包含13000多個(gè)漢字,也叫大五碼,每個(gè)漢字相當(dāng)于2個(gè)字節(jié),每個(gè)英文單詞相當(dāng)于1個(gè)字節(jié)。

1、字符串類型測試:BINARY、VARBINARY

BINARY 和 VARBINARY類似于CHAR 和 VARCHAR,

不同的是它們包含二進(jìn)制字符,而不包含非二進(jìn)制字符串

mysql> create table binary_t (c binary(3));

Query OK, 0 rows affected (0.03 sec)

mysql> desc? ? ? binary_t;

+-------+-----------+------+-----+---------+-------+

| Field | Type? ? ? | Null | Key | Default | Extra |

+-------+-----------+------+-----+---------+-------+

| c? ? | binary(3) | YES? |? ? | NULL? ? |? ? ? |

+-------+-----------+------+-----+---------+-------+

1 row in set (0.00 sec)

mysql> insert into binary_t set c='aaa';

Query OK, 1 row affected (0.00 sec)

mysql> select *,hex(c) from binary_t;

+------+--------+

| c? ? | hex(c) |

+------+--------+

| aaa? | 616161 |

+------+--------+

1 row in set (0.00 sec)

set解釋:

1)在標(biāo)準(zhǔn)的SQL語句中,一次插入一條記錄的INSERT語句只有一種形式。

INSERT INTO tablename(列名…) VALUES(列值);

而在MySQL中還有另外一種形式。

INSERT INTO tablename SET column_name1 = value1, column_name2 = value2,…;

2)

第一種方法將列名和列值分開了,在使用時(shí),列名必須和列值的數(shù)一致。如下面的語句向users表中插入了一條記錄:

INSERT INTO users(id, name, age) VALUES(123, '姚明', 25);

第二種方法允許列名和列值成對出現(xiàn)和使用,如下面的語句將產(chǎn)生中樣的效果。

INSERT INTO users SET id = 123, name = '姚明', age = 25;

616161解釋:

a是字符的話,對應(yīng)ascII碼是97,則二進(jìn)制為01100001,轉(zhuǎn)成16進(jìn)制為61

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、數(shù)據(jù)庫簡介 1.數(shù)據(jù)庫系統(tǒng) 1.1數(shù)據(jù)庫 DataBase【DB】,指的是長期保存到計(jì)算機(jī)上的數(shù)據(jù),按照一定順...
    鄭元吉閱讀 684評論 0 6
  • show charcater set; show variables like '%character%'; 1....
    SkTj閱讀 1,795評論 0 2
  • 什么是數(shù)據(jù)庫? 數(shù)據(jù)庫是存儲(chǔ)數(shù)據(jù)的集合的單獨(dú)的應(yīng)用程序。每個(gè)數(shù)據(jù)庫具有一個(gè)或多個(gè)不同的API,用于創(chuàng)建,訪問,管理...
    chen_000閱讀 4,144評論 0 19
  • 1.A simple master-to-slave replication is currently being...
    Kevin關(guān)大大閱讀 6,254評論 0 3
  • 今天是圣誕平安夜,中午跑去家附近新開的星巴克體驗(yàn)了一下,喝杯咖啡,聽聽音樂,在一方安靜的角落坐下,打開電腦,放慢心...
    彼岸花開半閱讀 674評論 5 5

友情鏈接更多精彩內(nèi)容