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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

20141230 mysql数值类型和列属性二

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

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

語法:enum

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

枚舉的意義

1. 規范數據:沒有進行維護的數據不能插入

2. 節省空間:實際存儲的數據是數字

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

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

證明枚舉存儲的是數字

枚舉的字符串與數值的關系

因為枚舉內部真實存儲的數值,因此枚舉可以通過數值進行數據插入。

枚舉存儲原理

枚舉的應用

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

集合字符串

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

語法:set

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

集合中的數據,每一個數據都是占用一個字節中的一個位來進行表示,然后保存是數值卻是所有的位共同轉換成十進制顯示

數據在集合中占位的原理

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

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

集合的意義

1. 規范了數據,只能存儲定義過的數據

2. 節省了空間

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

時間日期類型

SQL中用來存儲時間或者日期的數據類型

類型

顯示格式

取值

存儲空間

零值

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個字節存儲

timestamp:時間戳,使用標準整型存儲,不是整型數據,而是與datetime格式一樣的數據

date:datetime的日期部分

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

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

時間格式:表示時間段

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

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

varchar的理論數據長度是65535個字符

GBK/UTF8編碼最大的varchar長度

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

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

列屬性

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

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

NULL

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

語法:字段名 數據類型 NULL/NOT NULL,默認的是null

默認值

關鍵字default,在定義結構的時候,如果字段沒有被指定數據,那么系統會使用默認的數據來進行數據填充。

默認值的使用

1. 要使用默認值,不對該字段進行數據插入(字段列表不能出現對應的字段)

2. 要使用默認值,可以在數據值插入的位置使用default關鍵字

主鍵

主要的鍵,用主鍵修飾的字段,不能為null,也不能出現任意數據的重復。能夠唯一的標識出一條記錄。一張表只能有一個主鍵。

添加主鍵:

1. 在要做主鍵的字段之后添加primary key關鍵字

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

語法:primary key(字段列表)

3. 假設表已經存在了,但是需要增加主鍵,可以通過修改表的結構來增加主鍵:必須實現保證該字段的數據沒有重復。

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

b) 可以直接通過修改表結構增加主鍵(復合主鍵)

主要的效果:具有唯一性,不能插入重復的數據

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

語法:修改表結構

alter table 表名 drop primary key;

自增長

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

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

自增長的應用

1. 不為當前字段賦值

2. 可以為自動增長字段使用null/default關鍵字顯示的調用

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

修改自動增長:修改自動增長下一個子增長值,但是修改的值只能比當前已有的數據的值要大,而不能小。

alter table 表名 auto_increment = 值

效果

刪除自增長

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

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

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

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

show variables like ‘auto_increment%’;

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

修改步長

set auto_increment_increment = 2;

效果

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

作業:

1. 制作一個教學管理系統的數據庫:學生,班級,老師等,根據不同的數據的需求確定對應的屬性和數據類型

2. 制作小網站:教學管理系統

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

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

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

轉載于:https://www.cnblogs.com/lifushan/p/6430434.html

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。