JavaScript DOM(1)
阿新 • • 發佈:2022-03-02
MySQL建立表
1、數值型別
型別 | 大小 | 範圍(有符號的) | 範圍(無符號) | 用途 |
---|---|---|---|---|
tinyint | 1位元組 | (-128,127) | (0,255) | 小整數值 |
smallint | 2位元組 | (-32768,32767) | (0,65535) | 大整數值 |
int | 4位元組 | (-2147483648,2147483647) | 大整數值 | |
float | 4位元組 | 單精度浮點型 | ||
double | 8位元組 | 雙精度浮點型 | ||
decimal | (m,d)如果m大於dm+2 否則為d+2 | 依賴於m和d的值 | 依賴於m和d的值 | 小數值(更加精準) |
-
建立表
mysql> create table testnum( -> ttinyint tinyint, -> tsmallint smallint, -> tint int, -> tfloat float(6,2), -> tdouble double(6,2), -> tdecimal decimal(6,2) -> );
-
建立表結構的主體
create table 表名( 欄位名 欄位型別 約束條件 欄位說明..., .... 主鍵索引, 常規索引, 唯一索引 );
-
表插入語句
-
指定欄位名插入資料
insert into 表名(欄位名[,欄位名...]) values (值1[,值2...])
-
不指定欄位名插入資料(所有欄位都插入值)
insert into 表名 values (值1[,值2...])
-
注意
從左到右 依次對應
-
-
注意
- decimal儲存型別 小數更加精準 還可以節省儲存空間
- float/double/decimal 在儲存值的時候 如果開啟了不嚴謹報錯 則會按最大的值進行擷取
- 我們數值型別後面都不需要給值 比如 int(3) 不夠能限制值的儲存長度 只有在zerofill的時候 零填充才有意義
2、日期和時間型別
型別 | 大小 | 範圍 | 格式 | 用途 |
---|---|---|---|---|
date | 3位元組 | 1000-01-01/9999-12-31 | YYYY-MM-DD | 日期值 |
time | 3位元組 | -838:59:59/838:59:59 | HH:MM:SS | 時間值或持續時間 |
year | 1位元組 | 1901-2155 | YYYY | 年份值 |
datetime | 8 | 1000-01-01 00:00:00/9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 混合日期和時間 |
timestamp | 4 | 1970-01-01 00:00:00/2038 | YYYY-MM-DD HH:MM:SS | 混合日期和時間 |
-
創表語句
mysql> create table testdate( -> tdate date, -> ttime time, -> tyear year, -> tdatetime datetime default now(), -> ttimestamp timestamp -> );
-
注意
- timestamp 值預設不為空 預設值為當前的時間戳
- 儲存時間的時候 最好儲存時間戳 方便我們對日期進行計算啊
3、字串型別
型別 | 大小(位元組) | 用途 |
---|---|---|
char | 0-255 | 定長字串 |
varchar | 0-255 | 變長字串 |
tinyblob | 0-255 | 不超過255個字元的二進位制字串 |
tinytext | 0-255 | 短文字字串(不可以根據指定的值進行限制) |
blob | 0-65535 | 二進位制形式的長文字資料 |
text | 0-65535 | 長文字資料 |
mediumblob | 二進位制形式的中等長文字資料 | |
loneblob | 0-4294697295 | 二進位制形式的長文字資料 |
lonetext | 0-4294697295 | 極大文字字串資料 |
enum(成員1[,成員2...]) | 65535 | 列舉 多個值逗號隔開 |
set(成員1[,成員2...]) | 64 | 集合 多個值逗號隔開 |
-
建立表
mysql> create table teststring( -> tchar char(5), -> tvarchar varchar(5), -> ttext text, -> tenum enum('w','m'), -> tset set('a','b','c') -> );
-
插入資料
insert into teststring values('lucky', 'lucky', 'lucky','w', 'a');
-
字串注意事項
-
char和varchar的區別
-
char的執行效率高於varchar(但佔用空間大)
因為varchar會將長度轉換為實際儲存長度
char如果給定字元小於指定的長度 則使用null佔位
-
varchar相對於char節省空間
-
char與varchar的儲存長度最大都為255
-
如果開啟了不嚴謹報錯 依然都是按照最大的長度去擷取
-
-
列舉和集合的區別
- enum只能選擇列出的多個成員中的某一個
- set可以列出所給定的成員的一個到多個
- set可以選擇多個成員 如果有重複的則會自動去重
-