最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL數(shù)據(jù)類型和常用字段屬性總結

 更新時間:2014年09月30日 10:43:57   投稿:junjie  
這篇文章主要介紹了MySQL數(shù)據(jù)類型和常用字段屬性總結,本文總結了日期和時間數(shù)據(jù)類型、數(shù)值數(shù)據(jù)類型、字符串數(shù)據(jù)類型等,需要的朋友可以參考下

前言

好比C++中,定義int類型需要多少字節(jié),定義double類型需要多少字節(jié)一樣,MySQL對表每個列中的數(shù)據(jù)也會實行嚴格控制,這是數(shù)據(jù)驅動應用程序成功的關鍵。M前言

好比C++中,定義int類型需要多少字節(jié),定義double類型需要多少字節(jié)一樣,MySQL對表每個列中的數(shù)據(jù)也會實行嚴格控制,這是數(shù)據(jù)驅動應用程序成功的關鍵。MySQL提供了一組可以賦給表中各個列的數(shù)據(jù)類型,每個類型都強制數(shù)據(jù)滿足為該數(shù)據(jù)類型預先確定的一組規(guī)則,例如大小、類型及格式。

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

日期和時間數(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次方)

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

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,最后查詢得到的結果為99.999;
2.插入123.456,最后查詢結果為99.999;
3.插入12.34567,最后查詢結果為12.346;

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

字符串數(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ù),所以當使用了中文的時候(UTF8)意味著可以插入m個中文,但是實際會占用m*3個字節(jié)。
2.同時char和varchar最大的區(qū)別就在于char不管實際value都會占用n個字符的空間,而varchar只會占用實際字符應該占用的空間+1,并且實際空間+1<=n。
3.超過char和varchar的n設置后,字符串會被截斷。
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個不同的成員。當定義了一個enum的列時,該列的值限制為列定義中聲明的值。如果列聲明包含NULL屬性,則NULL將被認為是一個有效值,并且是默認值。如果聲明了NOT NULL,則列表的第一個成員是默認值。

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

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

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

1.auto_increment

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

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

復制代碼 代碼如下:

id smallint not null auto_increment primary key

2.binary

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

復制代碼 代碼如下:

hostname char(25) binary not null

3.default

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

復制代碼 代碼如下:

subscribed enum('0', '1') not null default '0'

4.index

如果所有其他因素都相同,要加速數(shù)據(jù)庫查詢,使用索引通常是最重要的一個步驟。索引一個列會為該列創(chuàng)建一個有序的鍵數(shù)組,每個鍵指向其相應的表行。以后針對輸入條件可以搜索這個有序的鍵數(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ū)分不同的名字。因為使用較小的索引時性能更好,所以應當在實踐中盡量使用小的索引。

5.not null

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

6.null

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

7.primary key

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

(1)單字段主鍵

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

(2)多字段主鍵

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

8.unique

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

復制代碼 代碼如下:

email varchar(45) unique

9.zerofill

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

復制代碼 代碼如下:

orderid int unsigned zerofill not null

總結完畢!?。?/p>

相關文章

  • MySQL設置global變量和session變量的兩種方法詳解

    MySQL設置global變量和session變量的兩種方法詳解

    這篇文章主要介紹了MySQL設置global變量和session變量的兩種方法,每種方法給大家介紹的非常詳細 ,需要的朋友可以參考下
    2018-10-10
  • MySQL中IO問題的深入分析與優(yōu)化

    MySQL中IO問題的深入分析與優(yōu)化

    據(jù)庫作為存儲系統(tǒng),所有業(yè)務訪問數(shù)據(jù)的操作都會轉化為底層數(shù)據(jù)庫系統(tǒng)的IO行為,下面這篇文章主要給大家介紹了關于MySQL中IO問題的深入分析與優(yōu)化的相關資料,需要的朋友可以參考下
    2022-04-04
  • mariadb集群搭建---Galera Cluster+ProxySQL教程

    mariadb集群搭建---Galera Cluster+ProxySQL教程

    這篇文章主要介紹了mariadb集群搭建---Galera Cluster+ProxySQL教程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • MySQL阻塞與死鎖的解決

    MySQL阻塞與死鎖的解決

    本文主要介紹了MySQL阻塞與死鎖的解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-09-09
  • SQL查詢至少連續(xù)七天下單的用戶

    SQL查詢至少連續(xù)七天下單的用戶

    這篇文章介紹了SQL查詢至少連續(xù)七天下單用戶的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-01-01
  • 通過兩種方式增加從庫——不停止mysql服務

    通過兩種方式增加從庫——不停止mysql服務

    現(xiàn)在生產(chǎn)環(huán)境MySQL數(shù)據(jù)庫是一主一從,由于業(yè)務量訪問不斷增大,故再增加一臺從庫。前提是不能影響線上業(yè)務使用,也就是說不能重啟MySQL服務,為了避免出現(xiàn)其他情況,選擇在網(wǎng)站訪問量低峰期時間段操作
    2015-11-11
  • MySQL 如何查詢當前最新事務ID

    MySQL 如何查詢當前最新事務ID

    這篇文章主要介紹了MySQL 如何查詢當前最新事務ID,幫助大家更好的理解和學習MySQL,感興趣的朋友可以了解下
    2020-08-08
  • mysql分表程序改動方法

    mysql分表程序改動方法

    在本篇文章里小編給大家分享了關于mysql分表程序改動方法以及相關知識點,需要的朋友們跟著學習下。
    2019-04-04
  • 簡單的MySQL備份與還原方法分享

    簡單的MySQL備份與還原方法分享

    這篇文章主要介紹了簡單的MySQL備份與還原方法,文中Linux與Windows的兩種情況都有介紹,需要的朋友可以參考下
    2015-08-08
  • 一文搞懂MySQL索引頁結構

    一文搞懂MySQL索引頁結構

    本文主要介紹了MySQL索引頁結構,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02

最新評論

右玉县| 云霄县| 体育| 西华县| 亚东县| 监利县| 湾仔区| 广昌县| 吴川市| 绥芬河市| 山阴县| 建平县| 修武县| 名山县| 西华县| 伊金霍洛旗| 敦煌市| 绥德县| 搜索| 阳泉市| 巴马| 棋牌| 利津县| 平阳县| 额尔古纳市| 延庆县| 平谷区| 万安县| 辽阳县| 疏勒县| 栖霞市| 眉山市| 伊春市| 类乌齐县| 荥经县| 华坪县| 石台县| 改则县| 咸阳市| 集贤县| 常德市|