1. 程式人生 > >MySQL資料庫常見資訊種類及約束條件

MySQL資料庫常見資訊種類及約束條件

數值型:體重,身高,成績,工資等

型別 大小 範圍(有符號) 範圍(無符號) 用途
tinyint 1位元組 -128~127 0~255 微小整數
smallint 2位元組 -32768~32767 0~65535 小整數
mediumint 3位元組 -2^23~2^23-1 0~2^24-1 中整數
int 4位元組 -2^31~2^31-1 0~2^32-1 大整數
bigint 8位元組 -2^63~263-1 0~2^64-1 極大整數
float 4位元組     單精度浮點
double 8位元組     雙精度
decimal decimal(M,D),其中M為有效數位,D為小數位,M>D,佔用M+2位元組
unsigned 無符號儲存範圍
mysql>create table db1.t1(id int unsigned,pay float(7,2));
#建立表t1,欄位為id 型別為int 無符號,欄位pay 型別為浮點 數位為7,整數位5,小數位2

字元型:姓名,工作單位,通訊住址

定長:char(字元數) 變長:varchar(字元數) 大文字型別:text/blob
最大長度255字元 根據實際分配儲存空間 字元數大於65535時使用
不夠時在右邊空格補齊 字元超出,不能寫入  
字元超出無法寫入資料    
mysql>create table db1.t2(name char(50));

列舉型:興趣愛好,性別

給定集合選擇單個值,enum 給定值選擇多個值,set
格式:enum(值1,值2,值N...) 格式:set(值1,值2,值N)
mysql>create table db3.t3(
    -> sex enum("male","female"),
    -> interest set("book","film","music","football","running")
    -> );

日期時間型:出生日期,註冊時間

datatime timestamp date year time
8位元組 4位元組 4位元組 1位元組 3位元組

1000-01-01 00:00:00.000000~

9999-12-31 00:00:00.000000

1970-01-01 00:00:00.000000~

2038-01-19 03:14:07.999999

0001.01.01~9999.12.31 1901~2155 hh:mm:ss
預設值為NULL 未賦值,以當前系統時間賦值  

預設4位數,如果兩位,01~69 2001~2069,70~99 1970,1999

 
時間函式
型別 用途 型別 用途
now() 當前日期和時間 curdate() 獲取當前日期
year() 指定時間中的年份 curtime() 獲取當前的時刻
day() 指定時間中的日期 month() 獲取指定時間的月份
sleep(N) 休眠N秒 date() 日期
    time() 時刻
mysql>select date(now()),curdate();

約束條件

null 允許為空,預設設定
not null 不允許為空
key 索引型別
default 設定預設值,預設為null
mysql>create table db1.t5(id char(6) not null,name varchar(5) not null,index(id),index(name));
鍵值型別key
index 普通索引 可以有多個欄位,欄位值允許重複,把經常查詢欄位設定為索引,key標誌是mul
unique唯一索引  
fulltext全文索引  
primary key主鍵 只能有一個欄位/表,不允許重複和空值,複合主鍵需一起建立,標誌是pri,與auto_increment連用,把唯一標識的欄位設定為主鍵【記錄編號欄位】
foreign key外來鍵 儲存引擎必須為innodb,欄位型別一致,被參照欄位必須為索引型別的一種(pri)