日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

20141230 mysql数值类型和列属性二

發(fā)布時間:2024/1/17 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 20141230 mysql数值类型和列属性二 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
20141230 mysql數(shù)值類型和列屬性二
枚舉字符串

枚舉字符串指的是在定義之初就確定要存放的字符串有哪些,然后在數(shù)據(jù)進行存儲的時候就只能存儲已經(jīng)定義過的字符串,只能使用任意的一個字符串。(單選框)

語法:enum

字段名 enum(字符串1,字符串2,…); 枚舉采用最多2個字節(jié)保存數(shù)據(jù),最多能存65535個數(shù)據(jù)

枚舉的意義

1. 規(guī)范數(shù)據(jù):沒有進行維護的數(shù)據(jù)不能插入

2. 節(jié)省空間:實際存儲的數(shù)據(jù)是數(shù)字

雖然SQL是一種強類型語言,但是SQL能夠自動轉(zhuǎn)換數(shù)據(jù)類型(與php一樣)

select有一個特點:后面可以跟任意表達(dá)式

證明枚舉存儲的是數(shù)字

枚舉的字符串與數(shù)值的關(guān)系

因為枚舉內(nèi)部真實存儲的數(shù)值,因此枚舉可以通過數(shù)值進行數(shù)據(jù)插入。

枚舉存儲原理

枚舉的應(yīng)用

1. 固定的不變的,但是具有多個值的數(shù)據(jù)可以使用枚舉

集合字符串

集合字符串與枚舉字符串大致一致,但是集合數(shù)據(jù)指的是可以選中定義的值中間的部分?jǐn)?shù)據(jù)或者全部數(shù)據(jù)。多選

語法:set

字段名 set(字符串1,字符串2,…);

集合中的數(shù)據(jù),每一個數(shù)據(jù)都是占用一個字節(jié)中的一個位來進行表示,然后保存是數(shù)值卻是所有的位共同轉(zhuǎn)換成十進制顯示

數(shù)據(jù)在集合中占位的原理

換算的時候需要將二進制顛倒過來,然后進行換算成十進制。

set最多占用8個字節(jié)存儲數(shù)據(jù):8個字節(jié)共64位,最多集合只能存放64個元素,但是組合卻有2^64之多。

集合的意義

1. 規(guī)范了數(shù)據(jù),只能存儲定義過的數(shù)據(jù)

2. 節(jié)省了空間

雖然集合和枚舉都能夠為數(shù)據(jù)庫節(jié)省空間,并且能夠規(guī)范數(shù)據(jù),但是作為php程序員,增加了php維護數(shù)據(jù)的難度,所以php程序員基本上不使用這兩種數(shù)據(jù)類型。

時間日期類型

SQL中用來存儲時間或者日期的數(shù)據(jù)類型

類型

顯示格式

取值

存儲空間

零值

DATETIME

YYYY-MM-DD HH:MM:SS

'1000-01-01 00:00:00'到'9999-12-31 23:59:59'

8

0000-00-00 00:00:00

TIMESTAMP

YYYY-MM-DD HH:MM:SS

是‘1970-01-01 00:00:00’到2038-01-19 03:14:07

4

0000-00-00 00:00:00

DATE

YYYY-MM-DD

'1000-01-01'到'9999-12-31

3

0000-00-00

TIME

HH:MM:SS

-838:59:59'到'838:59:59'

3

00:00:00

YEAR

YYYY

1901到2155

1

0000

datetime:日期時間,8個字節(jié)存儲

timestamp:時間戳,使用標(biāo)準(zhǔn)整型存儲,不是整型數(shù)據(jù),而是與datetime格式一樣的數(shù)據(jù)

date:datetime的日期部分

time:datetime的時間部分,time表示的不是時間點,是時間段

year:年份,1個字節(jié)存儲,只能表示255年

時間格式:表示時間段

作為php程序員,基本上不適用SQL的任何時間格式,都是使用php的時間戳

在mysql中,任意一條記錄的長度不能超過65535個字節(jié)。

varchar的理論數(shù)據(jù)長度是65535個字符

GBK/UTF8編碼最大的varchar長度

在SQL中,所有的字段只要有一個字段允許為空,那么整條記錄就需要留出一個字節(jié)用來保存null,如果有多個字段為空,也只需要一個字節(jié)。

text文本類型不占用記錄的總長度,是額外開辟空間的存儲數(shù)據(jù),但是text字段本身要占據(jù)一定的數(shù)據(jù)長度(10個字節(jié))

列屬性

除了數(shù)據(jù)類型對列進行數(shù)據(jù)規(guī)范之外,還有一些額外的限制對字段進行約束。

列屬性:NULL/not null,default,primary key,auto_increment,comment,unique key

NULL

字段是否允許為空,不允許為空就是not null。

語法:字段名 數(shù)據(jù)類型 NULL/NOT NULL,默認(rèn)的是null

默認(rèn)值

關(guān)鍵字default,在定義結(jié)構(gòu)的時候,如果字段沒有被指定數(shù)據(jù),那么系統(tǒng)會使用默認(rèn)的數(shù)據(jù)來進行數(shù)據(jù)填充。

默認(rèn)值的使用

1. 要使用默認(rèn)值,不對該字段進行數(shù)據(jù)插入(字段列表不能出現(xiàn)對應(yīng)的字段)

2. 要使用默認(rèn)值,可以在數(shù)據(jù)值插入的位置使用default關(guān)鍵字

主鍵

主要的鍵,用主鍵修飾的字段,不能為null,也不能出現(xiàn)任意數(shù)據(jù)的重復(fù)。能夠唯一的標(biāo)識出一條記錄。一張表只能有一個主鍵。

添加主鍵:

1. 在要做主鍵的字段之后添加primary key關(guān)鍵字

2. 在所有的字段之后,指定主鍵,可以指定復(fù)合主鍵(多字段主鍵)

語法:primary key(字段列表)

3. 假設(shè)表已經(jīng)存在了,但是需要增加主鍵,可以通過修改表的結(jié)構(gòu)來增加主鍵:必須實現(xiàn)保證該字段的數(shù)據(jù)沒有重復(fù)。

a) 修改字段,給字段增加primary key屬性

b) 可以直接通過修改表結(jié)構(gòu)增加主鍵(復(fù)合主鍵)

主要的效果:具有唯一性,不能插入重復(fù)的數(shù)據(jù)

主鍵不能修改,但是可以刪除

語法:修改表結(jié)構(gòu)

alter table 表名 drop primary key;

自增長

auto_increment,當(dāng)某個字段有了自增長屬性之后,如果改字段在進行數(shù)據(jù)新增的時候,沒有指定數(shù)據(jù),那么系統(tǒng)會自動在原有的基礎(chǔ)上自動+1,說明字段類型必須是整型。

自動增長通常是搭配主鍵使用

自增長的應(yīng)用

1. 不為當(dāng)前字段賦值

2. 可以為自動增長字段使用null/default關(guān)鍵字顯示的調(diào)用

自動增長之所以能夠填充對應(yīng)的數(shù)據(jù),是因為在表的選項中已經(jīng)指定好對應(yīng)的值了

修改自動增長:修改自動增長下一個子增長值,但是修改的值只能比當(dāng)前已有的數(shù)據(jù)的值要大,而不能小。

alter table 表名 auto_increment = 值

效果

刪除自增長

alter table 表名 modify 字段 不再增加auto_increment屬性;

auto_increment往往搭配主鍵:刪除主鍵

想要刪除有自動增長的主鍵,必須先刪除自動增長再刪除主鍵。

自增長控制:初始值和步長

show variables like ‘a(chǎn)uto_increment%’;

注意:一張表只能有一個自增長。

修改步長

set auto_increment_increment = 2;

效果

這種修改是針對當(dāng)前用戶當(dāng)前連接有效(會話級別)

作業(yè):

1. 制作一個教學(xué)管理系統(tǒng)的數(shù)據(jù)庫:學(xué)生,班級,老師等,根據(jù)不同的數(shù)據(jù)的需求確定對應(yīng)的屬性和數(shù)據(jù)類型

2. 制作小網(wǎng)站:教學(xué)管理系統(tǒng)

a) 登錄驗證,查看所有的學(xué)生信息

b) 老師能夠查看所有的信息

posted on 2017-02-22 18:40?山山未遲 閱讀(...) 評論(...) 編輯 收藏

轉(zhuǎn)載于:https://www.cnblogs.com/lifushan/p/6430434.html

總結(jié)

以上是生活随笔為你收集整理的20141230 mysql数值类型和列属性二的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。