IT修煉手冊之SQL資料型別
Mysql入門基礎(日常開發)
資料庫基本概念理解:所謂資料庫就是資料管理的軟體。一個數據庫之中會包含多張表,資料表裡面一行就是一條資料,而每個資料又是由多個欄位進行基本的維護操作。
基本資料型別
整型列屬性解析:
int(M)unsigned zerofilled
M:表示寬度,(0填充,在宣告zerofilled的時候才有實際意義,只是顯示相應的效果)
unsigned:表示無符號型別(非負數)
zerofill:指的是零填充,預設為無符號。
NOT NULL DEFAULT 0 不為空,設定預設值 0
如果 M 是 5,指定了 zerofill;那麼儲存在資料庫裡面的格式是:00001 00002 00003這種格式進行存貯。
浮點型與定點型
Float:浮點型
Decimal:更精確
M: 總位數,不包含點 D: 小數位 float(3,2)表示最大:9.99 最小-9.99,超過後會四捨五入。Decimal 同樣含有兩個引數,只不過更精確。比如寫 1234567.23 float 可能是
1234567.25,decimal 一定會是 1234567.23 。對於大資料值來講更精確。
字串型別基本資料:
char(M)定長,M 代表寬度,即可容納的字元數。
char 和 varchar 的區別:
1、如果申請了 M 個字元大小的空間,對於 char 來講即使儲存的資料內容大小不夠 M 個,實際上也會佔用 M 個長度的大小空間。對於 varchar 來講,如果儲存的內容小於 M 個字元,實際佔用本身的大小。
2、速度上定長的快些選擇原則:
(1)、如果知道長度使用 char 型別比較好,空間利用率比較高
(2)、執行效率上,char 高效。
時間型別
注意:在實際開發中很少用日期時間型別用來表示需要精確到秒的列。因為在操作上不太好處理,一般用時間戳來標示。時間戳:(1970-1-1 00:00:00 到此時的秒數)用 int 型來儲存。
Mysql建立表語句:
基本語法格式:
create table 表名 (
列 1 [列屬性 預設值], 列 2 [列屬性 預設值],
…..
列 n [列屬性 預設值]
)engine = 儲存引擎 charset = 字符集;
相應建立例子:
CREATE TABLE t_user
(
id
int(11) NOT NULL AUTO_INCREMENT,
username
psw
varchar(255) DEFAULT NULL, nickName
varchar(255) CHARACTER SET utf8 DEFAULT NULL, pic
varchar(255) DEFAULT NULL, sex
varchar(255) CHARACTER SET utf8 DEFAULT NULL, PRIMARY KEY (id
) ) ENGINE=InnoDB AUTO_INCREMENT=37 DEFAULT CHARSET=utf8;