資料型別的作用:
1.指定值的型別
2.指定占用的空間
3.指定了是定長(fixed-length)還是變長(variable-length)
4.mysql如何比較和排序值的型別
5.定義的型別是否能被建立索引
資料型別:
字元char(length) 以字元格式存放,不區分大小寫,定長。最大255位元組。
varchar(length) 變長。最大65535個位元組 。但是會額外占用1(255個字元以內)或2(超出255個字元)個位元組,額外占用的是結束符。
binary(length) 以二級制格式存放,區分大小寫,定長。最大255位元組。
varbinary(length) 變長。最大65532位元組。額外開銷1或2個位元組。
blob(length) 二進位製大物件。區分大小寫,最大64k,2個位元組的額外開銷
tinyblob 最大255個位元組,1個位元組的額外開銷
mediunmblob 最大16m,3個位元組的額外開銷
longbliob 最大4g,4個位元組的額外開銷
text(length) 文字格式。不區分大小寫
tinytext
mediumtext
longtext
enum 列舉,給定一些值,取值的範圍必須是這些值當中的1個。最多可以給65535個值。即有65535個選擇。
set 集合,給定一些值,取值的範圍必須是這些值當中的0個或多個,可以隨意組合,但是不能超出。最多給給64個值。儲存的方式為儲存值的索引。而不是值本身。
例如:rrtype char(5)
a,ptr,cname,aaaa,mx,ns,soa,srv
rrtype enum(『a『,『mx『)
例如:集合的儲存是值的索引而不是值本身。
set(a,b,c)
a 100
ac 101
bc 011
修飾屬性:
not null 不為空
null 為空,預設
default cahr和varchar特有,預設值
character set 字符集
collation 排序規則,欄位從表繼承,表從資料庫繼承,庫從預設配置繼承。
數值精確數值
整形tinyint 1個位元組
smallint 2個位元組
mediuminit 3個位元組
int 4個位元組
bigint 8個位元組
修飾屬性:
auto_increment 自動增長。在字段中插入新資料的時候自動生成資料序列,完成資料增長。增長的步長可以自定義。預設從1開始,步長為1。使用select last_insert_id()函式可以顯示最近一次的值。
定義欄位為auto_increment的要求:
1.欄位必須為整數型別。
2.只能包含正數,不能包含負數,只能定義為unsigned
3.必須定義為primary key或者unique index
4.必須定義為not null
例如:mysql>create table test (id int unsigned auto_increment not null primary key,name char(20))
mysql>select last_insert_id()
unsigned 無符號 只有正數和0。
not null非空
decimal 精確定點數,總長度和精度都是固定的。如1.11等
numeric 精確定點數。
bit 按位儲存
近似數值
浮點型float(length,num) 單精度 4個位元組
double(length,num) 雙精度 8個位元組
注意:length表示數值長度,num表示小數字個數,例如float(7,3)表示總長為7,小數字為3,例如1234.567。
修飾屬性:
not null
null
default
zerofill 多餘位用0填充
unsigned
日期時間
date 日期 yyyy-mm-dd 3個位元組
time 時間 hh:mm:ss 3個位元組
datetime 日期時間 yyyy-mm-dd hh:mm:ss 8個位元組
timestamp 時間戳 yyyy-mm-dd hh:mm:ss,是從1970-01-01到現在的秒數轉換的。4個位元組
year 年 yyyy或yy 1個位元組
修飾屬性:
not null
null
default
布林boolean或bool
原文:
mysql修飾 Mysql欄位修飾符(約束)
1 null和not null not null不可以插入null,但可以插入空值。數值型 字元型 日期型都可以插入null,但只有字元型可以插入空值。使用方法如下 mysql create database test db query ok,1 row affected 0.00 sec mysq...
mysql 修飾語句 mysql語句
mqsql基本操作 查詢 1 select from 表名稱 select from finance risk.white user info where ssoid 2000051590 and white level l0000 2 select distinct 列名稱 from 表名稱 se...
mysql中修飾符 Mysql欄位修飾符(約束)
1 null和not null not null不可以插入null,但可以插入空值。數值型 字元型 日期型都可以插入null,但只有字元型可以插入空值。使用方法如下 mysql create database test db query ok,1 row affected 0.00 sec mysq...