女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當(dāng)前位置:首頁 > > 充電吧
[導(dǎo)讀]?一下內(nèi)容為參考了好多網(wǎng)上的blog和百度文庫終結(jié)出來的。這里先總結(jié)數(shù)據(jù)類型。MySQL中的數(shù)據(jù)類型大的方面來分,可以分為:日期和時間、數(shù)值,以及字符串。下面就分開來進(jìn)行總結(jié)。?日期和時間數(shù)據(jù)類型My

?一下內(nèi)容為參考了好多網(wǎng)上的blog和百度文庫終結(jié)出來的。

這里先總結(jié)數(shù)據(jù)類型。MySQL中的數(shù)據(jù)類型大的方面來分,可以分為:日期和時間、數(shù)值,以及字符串。下面就分開來進(jìn)行總結(jié)。

?

日期和時間數(shù)據(jù)類型


MySQL數(shù)據(jù)類型 含義 date 3字節(jié),日期,格式:2014-09-18 time 3字節(jié),時間,格式:08:42:30 datetime 8字節(jié),日期時間,格式:2014-09-18 08:42:30 timestamp 4字節(jié),自動存儲記錄修改的時間 year 1字節(jié),年份



數(shù)值數(shù)據(jù)類型


整型

MySQL數(shù)據(jù)類型 含義(有符號) tinyint 1字節(jié),范圍(-128~127) smallint 2字節(jié),范圍(-32768~32767) mediumint 3字節(jié),范圍(-8388608~8388607) int 4字節(jié),范圍(-2147483648~2147483647) bigint 8字節(jié),范圍(+-9.22*10的18次方)


上面定義的都是有符號的,當(dāng)然了,也可以加上unsigned關(guān)鍵字,定義成無符號的類型,那么對應(yīng)的取值范圍就要翻翻了,比如:

tinyint unsigned的取值范圍為0~255。

?

浮點型

MySQL數(shù)據(jù)類型 含義 float(m, d) 4字節(jié),單精度浮點型,m總個數(shù),d小數(shù)位 double(m, d) 8字節(jié),雙精度浮點型,m總個數(shù),d小數(shù)位 decimal(m, d) decimal是存儲為字符串的浮點數(shù)


我在MySQL中建立了一個表,有一列為float(5, 3);做了以下試驗:

1.插入123.45678,最后查詢得到的結(jié)果為99.999;
2.插入123.456,最后查詢結(jié)果為99.999;
3.插入12.34567,最后查詢結(jié)果為12.346;

所以,在使用浮點型的時候,還是要注意陷阱的,要以插入數(shù)據(jù)庫中的實際結(jié)果為準(zhǔn)。

?

字符串?dāng)?shù)據(jù)類型

MySQL數(shù)據(jù)類型 含義 char(n) 固定長度,最多255個字符 varchar(n) 可變長度,最多65535個字符 tinytext 可變長度,最多255個字符 text 可變長度,最多65535個字符 mediumtext 可變長度,最多2的24次方-1個字符 longtext 可變長度,最多2的32次方-1個字符

1.char(n)和varchar(n)中括號中n代表字符的個數(shù),并不代表字節(jié)個數(shù),所以當(dāng)使用了中文的時候(UTF8)意味著可以插入m個中文,但是實際會占用m*3個字節(jié)。
2.同時char和varchar最大的區(qū)別就在于char不管實際value都會占用n個字符的空間,而varchar只會占用實際字符應(yīng)該占用的空間+1,并且實際空間+1<=n。
3.超過char和varchar的n設(shè)置后,字符串會被截斷。
4.char的上限為255字節(jié),varchar的上限65535字節(jié),text的上限為65535。
5.char在存儲的時候會截斷尾部的空格,varchar和text不會。
6.varchar會使用1-3個字節(jié)來存儲長度,text不會。

?

其它類型

1.enum(“member1″, “member2″, … “member65535″)
enum數(shù)據(jù)類型就是定義了一種枚舉,最多包含65535個不同的成員。當(dāng)定義了一個enum的列時,該列的值限制為列定義中聲明的值。如果列聲明包含NULL屬性,則NULL將被認(rèn)為是一個有效值,并且是默認(rèn)值。如果聲明了NOT NULL,則列表的第一個成員是默認(rèn)值。

2.set(“member”, “member2″, … “member64″)
set數(shù)據(jù)類型為指定一組預(yù)定義值中的零個或多個值提供了一種方法,這組值最多包括64個成員。值的選擇限制為列定義中聲明的值。

?

?

數(shù)據(jù)類型屬性

上面大概總結(jié)了MySQL中的數(shù)據(jù)類型,當(dāng)然了,上面的總結(jié)肯定是不全面的,如果要非常全面的總結(jié)這些內(nèi)容,好幾篇文章都不夠的。下面就再來總結(jié)一些常用的屬性。

1.auto_increment

auto_increment能為新插入的行賦一個唯一的整數(shù)標(biāo)識符。為列賦此屬性將為每個新插入的行賦值為上一次插入的ID+1。

MySQL要求將auto_increment屬性用于作為主鍵的列。此外,每個表只允許有一個auto_increment列。例如:

?代碼如下:
id smallint not null auto_increment primary key




2.binary

binary屬性只用于char和varchar值。當(dāng)為列指定了該屬性時,將以區(qū)分大小寫的方式排序。與之相反,忽略binary屬性時,將使用不區(qū)分大小寫的方式排序。例如:

?代碼如下:
hostname char(25) binary not null




3.default

default屬性確保在沒有任何值可用的情況下,賦予某個常量值,這個值必須是常量,因為MySQL不允許插入函數(shù)或表達(dá)式值。此外,此屬性無法用于BLOB或TEXT列。如果已經(jīng)為此列指定了NULL屬性,沒有指定默認(rèn)值時默認(rèn)值將為NULL,否則默認(rèn)值將依賴于字段的數(shù)據(jù)類型。例如:

?代碼如下:
subscribed enum('0', '1') not null default '0'




4.index

如果所有其他因素都相同,要加速數(shù)據(jù)庫查詢,使用索引通常是最重要的一個步驟。索引一個列會為該列創(chuàng)建一個有序的鍵數(shù)組,每個鍵指向其相應(yīng)的表行。以后針對輸入條件可以搜索這個有序的鍵數(shù)組,與搜索整個未索引的表相比,這將在性能方面得到極大的提升。

?代碼如下:
create table employees
(
id varchar(9) not null,
firstname varchar(15) not null,
lastname varchar(25) not null,
email varchar(45) not null,
phone varchar(10) not null,
index lastname(lastname),
primary key(id)
);

我們也可以利用MySQL的create index命令在創(chuàng)建表之后增加索引:
?代碼如下:
create index lastname on employees (lastname(7));




這一次只索引了名字的前7個字符,因為可能不需要其它字母來區(qū)分不同的名字。因為使用較小的索引時性能更好,所以應(yīng)當(dāng)在實踐中盡量使用小的索引。

5.not null

如果將一個列定義為not null,將不允許向該列插入null值。建議在重要情況下始終使用not null屬性,因為它提供了一個基本驗證,確保已經(jīng)向查詢傳遞了所有必要的值。

6.null

為列指定null屬性時,該列可以保持為空,而不論行中其它列是否已經(jīng)被填充。記住,null精確的說法是“無”,而不是空字符串或0。

7.primary key

primary key屬性用于確保指定行的唯一性。指定為主鍵的列中,值不能重復(fù),也不能為空。為指定為主鍵的列賦予auto_increment屬性是很常見的,因為此列不必與行數(shù)據(jù)有任何關(guān)系,而只是作為一個唯一標(biāo)識符。主鍵又分為以下兩種:

(1)單字段主鍵

如果輸入到數(shù)據(jù)庫中的每行都已經(jīng)有不可修改的唯一標(biāo)識符,一般會使用單字段主鍵。注意,此主鍵一旦設(shè)置就不能再修改。

(2)多字段主鍵

如果記錄中任何一個字段都不可能保證唯一性,就可以使用多字段主鍵。這時,多個字段聯(lián)合起來確保唯一性。如果出現(xiàn)這種情況,指定一個auto_increment整數(shù)作為主鍵是更好的辦法。

8.unique

被賦予unique屬性的列將確保所有值都有不同的值,只是null值可以重復(fù)。一般會指定一個列為unique,以確保該列的所有值都不同。例如:

代碼如下:


email varchar(45) unique



9.zerofill

zerofill屬性可用于任何數(shù)值類型,用0填充所有剩余字段空間。例如,無符號int的默認(rèn)寬度是10;因此,當(dāng)“零填充”的int值為4時,將表示它為0000000004。例如:

?代碼如下:
orderid int unsigned zerofill not null


?

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

關(guān)于gorm框架的簡單運用

關(guān)鍵字: gorm mysql

在數(shù)字電路設(shè)計和驗證領(lǐng)域,Verilog作為一種廣泛使用的硬件描述語言(HDL),其數(shù)據(jù)類型系統(tǒng)豐富多樣,為設(shè)計者提供了強(qiáng)大的表達(dá)能力和靈活性。掌握Verilog的數(shù)據(jù)類型,對于編寫高效、可維護(hù)的硬件描述代碼至關(guān)重要。本...

關(guān)鍵字: Verilog 數(shù)據(jù)類型 數(shù)字電路

單片機(jī)內(nèi)部有很多的特殊功能寄存器,每個寄存器在單片機(jī)內(nèi)部都分配有唯一的地址,一般我們會根據(jù)寄存器功能的不同給寄存器賦予各自的名稱,當(dāng)我們需要在程序中操作這些特殊功能寄存器時,必須要在程序的最前面將這些名稱加以聲明,聲明的...

關(guān)鍵字: C51 數(shù)據(jù)類型 擴(kuò)充定義

數(shù)據(jù)元(Data Element),也稱為數(shù)據(jù)元素,是用一組屬性描述其定義、標(biāo)識、表示和允許值的數(shù)據(jù)單元,在一定語境下,通常用于構(gòu)建一個語義正確、獨立且無歧義的特定概念語義的信息單元。數(shù)據(jù)元可以理解為數(shù)據(jù)的基本單元,將若...

關(guān)鍵字: C51 數(shù)據(jù)類型

Perl是一種弱類型語言,所以變量不需要指定類型,Perl解釋器會根據(jù)上下文自動選擇匹配類型。Perl有三個基本的數(shù)據(jù)類型:標(biāo)量、數(shù)組、哈希。以下是這三種數(shù)據(jù)類型的說明:序號類型和描述1標(biāo)量標(biāo)量是Perl語言中最簡單的一...

關(guān)鍵字: 數(shù)據(jù)類型

來源:https://juejin.cn/post/6860252224930070536|?背景日志是?mysql?數(shù)據(jù)庫的重要組成部分,記錄著數(shù)據(jù)庫運行期間各種狀態(tài)信息。mysql日志主要包括錯誤日志、查詢?nèi)罩?、慢?..

關(guān)鍵字: mysql

mysql的一行記錄,最終肯定是存儲在磁盤上,也就是肉眼可見的文件上,今天我們的目標(biāo)很簡單,就是看看它到底是怎么存的。當(dāng)然還有一個更重要的目標(biāo),就是以這個為引子,帶大家完全通過一手資料,來揭秘這個問題的答案。所以大家閱讀...

關(guān)鍵字: mysql

跟著官方文檔 源碼 源文件三件套自己探索

關(guān)鍵字: mysql 存儲

什么Mysql的事務(wù)?事務(wù)的四大特性?事務(wù)帶來的什么問題?你詳細(xì)了解過MVCC嗎?它是怎么工作的?

關(guān)鍵字: mysql 嵌入式

想進(jìn)大廠,mysql不會那可不行,來接受mysql面試挑戰(zhàn)吧,看看你能堅持到哪里?

關(guān)鍵字: mysql 嵌入式
關(guān)閉