国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【MySQL】——數(shù)據(jù)類型及字符集

這篇具有很好參考價值的文章主要介紹了【MySQL】——數(shù)據(jù)類型及字符集。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

??個人專欄:

?? 算法設(shè)計與分析:算法設(shè)計與分析_IT閆的博客-CSDN博客

??Java基礎(chǔ):Java基礎(chǔ)_IT閆的博客-CSDN博客

??c語言:c語言_IT閆的博客-CSDN博客

??MySQL:數(shù)據(jù)結(jié)構(gòu)_IT閆的博客-CSDN博客

??數(shù)據(jù)結(jié)構(gòu):??????數(shù)據(jù)結(jié)構(gòu)_IT閆的博客-CSDN博客

??C++:C++_IT閆的博客-CSDN博客

??C51單片機(jī):C51單片機(jī)(STC89C516)_IT閆的博客-CSDN博客

??基于HTML5的網(wǎng)頁設(shè)計及應(yīng)用:基于HTML5的網(wǎng)頁設(shè)計及應(yīng)用_IT閆的博客-CSDN博客??????

??python:python_IT閆的博客-CSDN博客

??離散數(shù)學(xué):離散數(shù)學(xué)_IT閆的博客-CSDN博客

歡迎收看,希望對大家有用!

目錄

??概述:

??數(shù)值型

??整數(shù)型

??小數(shù)類型

???浮點(diǎn)數(shù)

??日期時間型

??字符串類型

??mysql字符集問題


??概述:

MySQL數(shù)據(jù)類型(列類型)可歸納為數(shù)值型、時間日期型和字符型。

數(shù)值型:

整形:tinyint/smallint/mediumint/int/bigint

小數(shù)型:Float(D,M),decimal(D,M)

字符串型:

Char(M)

Varchar(M)

Text 文本類型

日期/ 時間型:

Date 日期

Time 時間

Datetime 日期時間型

TIMESTAMP??? 時間戳類型

Year 年類型

??數(shù)值型

??整數(shù)型

tinyint(1), smallint(2), mediumint(3),int(4), bigint(8)。括號中表示該類型所占空間的長度(字節(jié)數(shù))

類型

大小

范圍(有符號)

范圍(無符號)

用途

TINYINT

1 字節(jié)

(-128,127)

(0,255)

小整數(shù)值

SMALLINT

2 字節(jié)

(-32 768,32 767)

(0,65 535)

大整數(shù)值

MEDIUMINT

3 字節(jié)

(-8388 608,8388 607)

(0,16777215)

大整數(shù)值

INTINTEGER

4 字節(jié)

(-2147483648,2147483647)

(0,4294967295)

大整數(shù)值

BIGINT

8字節(jié)

(-9,223,372,036,854,775,808,9223372036854775807)

(0,18446744073709551615)

極大整數(shù)值

整形系統(tǒng)的可選參數(shù): XXint(M) unsigned zerofill

例: age tinyint(4) unsigned 或者 stunum smallint(6) zerofill

Unsigned: 代表此列為無符號類型,會影響到列的存儲范圍(范圍從0 開始)

(不加unsigned, 則代表該列默認(rèn)是有符號類型,范圍從負(fù)數(shù)開始)

列可以聲明默認(rèn)值,而且推薦聲明默認(rèn)值

Not null default 0;

Zerofill :代表0 填充,即:如果該數(shù)字不足參數(shù)M位,則自動補(bǔ)0,補(bǔ)夠M位。

1. 如果沒有zerofill 屬性,單獨(dú)的參數(shù)M,沒有任何意義

2. 如果設(shè)置某列為zerofill, 則該列已經(jīng)默認(rèn)為unsigned, 無符號類型,M代表該列的顯示寬度。

??小數(shù)類型

???浮點(diǎn)數(shù)

小數(shù)型: float(M,D),decimal(M,D)

float(M,D): 浮點(diǎn)小數(shù),代表可存儲一共M位(不含小數(shù)點(diǎn)),其中,小數(shù)點(diǎn)后D位

decimal(M,D) :定點(diǎn)小樹, M,D的意義同上.

區(qū)別: decimal 比float 精度更高,適合存儲貨幣等要求精確的數(shù)字.

見下例:

【MySQL】——數(shù)據(jù)類型及字符集,MySQL,mysql,數(shù)據(jù)庫

??日期時間型

mysql 時間類型有,date,time,datetime,timestamp,year五種。

date類型: 支持的范圍為’1000-01-01’到’9999-12-31’

time類型: 支持的范圍是’-838:59:59’到’838:59:59’

datetime類型:支持的范圍是’1000-01-01 00:00:00’到’9999-12-31 23:59:59’

timestamp類型:時間戳,就是表示“當(dāng)前時刻”, 用int 來存儲,是1970-01-01 00:00:00 到當(dāng)前的秒數(shù),類似函數(shù)now()獲得的值,用于INSERT或UPDATE操作時自動獲得當(dāng)前時間。

一般存注冊時間,商品發(fā)布時間等,并不是用datetime 存儲,而是用時間戳。因此datetime 雖然直觀,但計算不便。

year類型: 四位字符串,范圍為’1901’到’2155’;四位數(shù)字,范圍為1901到2155;兩位字符串,范圍為’00’到’99’;兩位整數(shù),范圍為1到99

在mysql中除了timestamp 類型允許有默認(rèn)值外,其他時間類型都不能有默認(rèn)值,不然會報錯。

mysql常用時間日期函數(shù)

獲取當(dāng)前日期和時間: now();

獲取當(dāng)前日期: curdate();

獲取當(dāng)前時間:curtime();

將具體時間轉(zhuǎn)換為時間戳:unix_timestamp();

將時間戳轉(zhuǎn)換為時間:from_unixtime();

??字符串類型

mysql提供的有CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。

Char 定長類型

Char(M),M 代表寬度,( 即:可容納的字符數(shù)),0<=255 之間

例: char(10), 則能輸入10 個字符.

Varchar 變長類型

varchar(M),M 代表寬度,( 即:可容納的字符數(shù)),0<=M<=65535(以ascii 字符為例, utf8 22000左右)

定長二進(jìn)制字符串binary:類似char,應(yīng)該設(shè)定長度值,只是按“二進(jìn)制字節(jié)”保存存字符數(shù)據(jù),最大255個字節(jié),無編碼問題

變長二進(jìn)制字符串varbinary:類似varchar,需要設(shè)定長度值,只是按“二進(jìn)制字節(jié)”存字符數(shù)據(jù),最大65532個字節(jié),無編碼問題

文本列類型text:用于存儲普通文本,不受行的最大長度的限制,同類還有:tinytext, mediuntext, longtext

二進(jìn)制列類型blob:用于存儲二進(jìn)制字節(jié)內(nèi)容,不受行的最大長度的限制,同類的還有:tinyblob, mediumblob, longblob

枚舉類型enum: 類似單選項(xiàng)應(yīng)用中的多個選項(xiàng)值,最大65535個選項(xiàng)值;使用形式:enum(‘value1’, ‘value2’, … );存儲數(shù)據(jù)的時候其實(shí)存的是一個對應(yīng)的數(shù)字序號(從1開始)

set類型:類似多選項(xiàng)應(yīng)用中的多個選項(xiàng),最多64個選項(xiàng),使用形式:set(‘value1’, ‘value2’, …); 內(nèi)部存儲的也是數(shù)字(依次為1,2,4,8, ….),但可以是多個值,比如5就表示2個值(1,4),14就表示3個值(2,4,8)

【MySQL】——數(shù)據(jù)類型及字符集,MySQL,mysql,數(shù)據(jù)庫

Char(M) 如何占據(jù)M個字符寬度?

答:如果實(shí)際存儲內(nèi)容不足M個,則后面加空格補(bǔ)齊

取出來的時候,再把后表面的空格去掉. (所以如果內(nèi)容最后有空格,將會被清除)速度上:定長速度快些。

Char 與varchar 相關(guān)實(shí)驗(yàn)

【MySQL】——數(shù)據(jù)類型及字符集,MySQL,mysql,數(shù)據(jù)庫

Concat 連接的意思

SET 和 enum

create table seTest(

id int auto_increment,

hobby set('籃球','足球','羽毛球','乒乓球','棒球'),

gender enum('male','female','not know'),

primary key(id)

)engine = myisam default charset = utf8;

insert into seTest(hobby,gender) values('籃球','male'),('籃球,足球,棒球','not know');

insert into seTest(hobby,gender) values('籃球','male,female');

insert into seTest(hobby,gender) values('籃球','male female');

insert into seTest(hobby,gender) values('排球','male female');

mysql> show warnings;

【MySQL】——數(shù)據(jù)類型及字符集,MySQL,mysql,數(shù)據(jù)庫

mysql> select * from setest;

【MySQL】——數(shù)據(jù)類型及字符集,MySQL,mysql,數(shù)據(jù)庫

可以看到,當(dāng)插入的值跟set 、enum 字段值要求不符時,會插入空值。

常用字符串函數(shù)

concat(column|str1,column | str2,….)將多個字符串首尾相連后返回。

concat_ws(separator,str1,str2,….)將多個字符串指定連接符separator的首尾相連后返回

substr(str,pos[,len]) 從字符串中的指定位置pos開始取一個字串返回

repeat(str,count) 將字符串str重復(fù)count次后返回

reverse(str) 將字符串str反轉(zhuǎn)后返回

??mysql字符集問題

Mysql 的字符集設(shè)置非常靈活

可以設(shè)置服務(wù)器默認(rèn)字符集

數(shù)據(jù)庫默認(rèn)字符集

表默認(rèn)字符集

列字符集

(如果某一個級別沒有指定字符集,則繼承上一級)

set names gbk

set names utf8

執(zhí)行show variables like 'character%',獲取字符集配置為:

由于CMD命令行只支持系統(tǒng)當(dāng)前編碼,所以一般需要將CMDMYSQL服務(wù)器的交互編碼設(shè)置為gbk才能正常顯示utf8的數(shù)據(jù)。

character_set_client、character_set_connectioncharacter_set_results變成了utf8,可以看出set names就是設(shè)置這三個參數(shù)的值。一個select執(zhí)行的過程應(yīng)該是:client——>connection——>server/database——>results——>connection——>client,任何一個環(huán)節(jié)的字符集不兼容都會出現(xiàn)亂碼。

1、用戶通過mysql.exe來操作mysqld.exe

2、真正的SQL執(zhí)行是mysqld.exe來執(zhí)行

3、mysql.exe將數(shù)據(jù)傳入mysqld.exe的時候,沒有告知其對應(yīng)的符號規(guī)則(字符集),而mysqld也沒有能力自己判斷,就會使用自己默認(rèn)的(字符集);

解決方案:

mysql.exe如果告知mysqld.exe對應(yīng)的字符集類型為GBK

深層原理:

客戶端、服務(wù)器、連接層

客戶端傳入數(shù)據(jù)給服務(wù)器:client

服務(wù)器返回數(shù)據(jù)給客戶端:server

客戶端與服務(wù)器端之間的連接:connection

【MySQL】——數(shù)據(jù)類型及字符集,MySQL,mysql,數(shù)據(jù)庫文章來源地址http://www.zghlxwxcb.cn/news/detail-769632.html

到了這里,關(guān)于【MySQL】——數(shù)據(jù)類型及字符集的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Mysql 創(chuàng)建數(shù)據(jù)庫字符集與排序規(guī)則

    新版本數(shù)據(jù)庫默認(rèn)編碼格式是? utf8mb4 , utf8mb4 ?比? utf8 ?多了? emoji ?編碼支持,建議普通表使用? utf8 ?如果這個表需要支持? emoji ?就使用? utf8mb4 ,也可以全部用? utf8mb4 , utf8mb4 完全向下兼容 utf8 。 字符集 當(dāng)數(shù)據(jù)庫需要適應(yīng)不同的語言就需要有不同的字符集,如果不指

    2024年02月07日
    瀏覽(22)
  • (三) MySQL字符集

    (三) MySQL字符集

    MySQL字符集包括 基字符集 (CHARACTER)與 校對規(guī)則 (COLLATION)這兩個概念: latin1支持西歐字符、希臘字符等 gbk支持中文簡體字符 big5支持中文繁體字符 utf8幾乎支持世界所有國家的字符 utf8mb4是真正意義上的utf-8 查看當(dāng)前數(shù)據(jù)庫默認(rèn)的字符集: SHOW VARIABLES like \\\'character%\\\'; MySQL在

    2024年01月24日
    瀏覽(22)
  • MySQL 字符集概念與原理及如何配置字符集 - 超詳細(xì)圖文詳解

    MySQL 字符集概念與原理及如何配置字符集 - 超詳細(xì)圖文詳解

    目錄 一、字符集概念 1、字符(Character) 2、字符編碼 3、字符集(Character set) 二、字符集原理 1、ASCII字符集 2、GB2312 3、GBK 4、GB18030 5、BIG5 6、Unicode 編碼 三、字符序 四、MySQL字符集 字符序 1、mysql 字符集 2、mysql 字符序 3、字符集與字符序的關(guān)系 五、MySQL 數(shù)據(jù)存儲字符集

    2024年02月04日
    瀏覽(26)
  • MySQL——命令行客戶端的字符集問題

    MySQL——命令行客戶端的字符集問題

    ? 原因:服務(wù)器端認(rèn)為你的客戶端的字符集是 utf-8 ,而實(shí)際上你的客戶端的字符集是 GBK 。 ? ? 查看所有字符集: SHOW VARIABLES LIKE \\\'character_set_%\\\'; ? 解決方案,設(shè)置當(dāng)前連接的客戶端字符集 “SET NAMES GBK;”

    2024年02月09日
    瀏覽(24)
  • 第3章 【MySQL】字符集和比較規(guī)則

    第3章 【MySQL】字符集和比較規(guī)則

    如何存儲字符串?需要建立字符與二進(jìn)制數(shù)據(jù)的映射關(guān)系。建立這個關(guān)系需要: 1.把哪些字符映射成二進(jìn)制數(shù)據(jù)? 2.怎么映射? 將一個字符映射成一個二進(jìn)制數(shù)據(jù)的過程也叫做 編碼 ,將一個二進(jìn)制數(shù)據(jù)映射到一個字符的過程叫做 解碼 。 人們抽象出一個 字符集 的概念來描

    2024年02月09日
    瀏覽(19)
  • mysql 字符集、比較規(guī)則, 比較規(guī)則底層邏輯

    mysql 字符集、比較規(guī)則, 比較規(guī)則底層邏輯

    字符集的級別 show variables like ‘%charecter%’; character_set_server 服務(wù)器級別 一般在 5.7: C:ProgramDataMySQLMySQL Server 5.7my.ini 8.0: C:ProgramDataMySQLMySQL Server 5.7my.ini Linux 系列 vim /etc/my.cnf character_set_server=xxx # 設(shè)定默認(rèn)字符集 collation_server=xxx_chinese_ci # 對應(yīng)的默認(rèn)的比較規(guī)則 charac

    2024年02月11日
    瀏覽(27)
  • mysql進(jìn)階-修改linux服務(wù)器中MySQL的字符集

    mysql進(jìn)階-修改linux服務(wù)器中MySQL的字符集

    linux 中 mysql8 默認(rèn)的字符集是 latin1 ,在插入中文時會報錯,所以一般在配置好mysql時需要修改字符集為 utf8 【又叫utfmb3,一般開發(fā)夠用,一個字符用3個字節(jié)表示】或者 utfmb4 【一個字符用4個字節(jié)表示,如果存儲emoji表情,必須用utfmb4】 1366 - Incorrect string value: xE4 xBA xBA(xE7 x94 x

    2024年02月14日
    瀏覽(20)
  • 達(dá)夢數(shù)據(jù)庫如何查看字符集

    ?0 表示 GB18030,1 表示 UTF-8,2 表示 EUC-KR select SF_GET_UNICODE_FLAG(); select ?UNICODE (); 字符集在安裝初始化庫的時候指定,設(shè)定后不可更改,請在安裝時按照需求設(shè)置好 后期如果想修改就只能重新初始庫! 注意中文字符的長度問題:數(shù)據(jù)庫初始化參數(shù)? LENGTH_IN_CHAR=0 ?時,unicode 編

    2023年04月09日
    瀏覽(24)
  • 修改mysql默認(rèn)字符集的兩種方法

    修改mysql默認(rèn)字符集的兩種方法

    下面微點(diǎn)閱讀小編就為大家介紹兩種修改mysql默認(rèn)字符集的方法。需要的朋友可以過來參考下 (1) 最簡單的修改方法,就是修改mysql的my.ini文件中的字符集鍵值 , 如 default-character-set = utf8 ?? character_set_server = utf8 修改完后,重啟mysql的服務(wù),service mysql restart 使用 mysql SHOW VARI

    2024年02月06日
    瀏覽(17)
  • MySQL 字符集概念、原理及如何配置 — 圖文詳解

    MySQL 字符集概念、原理及如何配置 — 圖文詳解

    目錄 一、字符集概念 1、字符(Character) 2、字符編碼 3、字符集(Character set) 二、字符集原理 1、ASCII字符集 2、GB2312 3、GBK 4、GB18030 5、BIG5 6、Unicode 編碼 三、字符序 四、MySQL字符集 字符序 1、mysql 字符集 2、mysql 字符序 3、字符集與字符序的關(guān)系 五、MySQL 數(shù)據(jù)存儲字符集

    2024年02月12日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包