您好,登錄后才能下訂單哦!
本文主要給大家介紹mysql有哪些基本的數據類型,文章內容都是筆者用心摘選和編輯的,具有一定的針對性,對大家的參考意義還是比較大的,下面跟筆者一起了解下mysql有哪些基本的數據類型吧。
整數類型
tinyint 占用1個字節的微小整數 默認是有符號的整數 取值范圍是-128-127 如果需要設置成無符號微小整數需要在類型后面加上unsigned關鍵字 無符號的取值范圍是 0-255
smallint 占用2個字節的小整數 默認是有符號的整數 取值范圍是-32768-32767 如果需要設置成無符號小整數需要在類型后面加上unsigned關鍵字 無符號的取值范圍是 0-65535
mediumint 占用3個字節的中整數 默認是有符號的整數 取值范圍是-2的23次方到2的23次方-1 如果需要設置成無符號中整數需要在類型后面加上unsigned關鍵字 無符號的取值范圍是 0-2的24次方-1
int 占用4個字節的大整數 默認是有符號的整數 取值范圍是-2的31次方到2的31次方-1 如果需要設置成無符號的大整數需要在類型后面加上unsigned 無符號的取值范圍是 0-2的32次方-1
bigint 占用8個字節的極大整數 默認是有符號的整數 取值范圍是-2的63次方到2的63次方-1 如果需要設置成無符號的大整數需要在類型后面加上unsigned 無符號的取值范圍是 0-2的64次方-1
整數類型的可以指定顯示寬度,不影響類型存儲范圍,int(5)表示顯示寬度為5當不足5位時用空格在左邊補充 ,如果需要用0補充,需要加zerofill關鍵字
mysql> create table _123.t2(age tinyint(3) zerofill) ; mysql> insert into _123.t2 values(12); mysql> select * from _123.t2; +------+ | age | +------+ | 012 | +------+ 1 row in set (0.00 sec)
浮點數類型
float 占用4個字節的單精度浮點數 定義方式為float(m,n) m為總位數長度,n位小數位數長度 float是非標準類型,在數據庫中保存的是近似值
double 占用8個字節的雙精度浮點數 double(m,n)m為總位數長度,n位小數位數長度 double是非標準類型,在數據庫中保存的是近似值
decimal 定點數
**浮點數如果不寫經度和標度,會按照實際精度值保存,如果有精度和標度,則會自動將四舍五入后的結果插入,系統不會報錯;定點數如果不寫精度和標度,則按照默認值decimal(10,0) 來操作,如果數據超過了精度和標度值,系統會報錯。
char 定長的字符類型最長為255個字符,字符數不夠定義的長度時會在右邊用空格補充占位
varchar 不定長的字符類型最長65535個字符 ,根據字符數的長度來開辟存儲空間,由于在存儲之前需要計算存儲空間所以存儲速度會比char慢,在實際應用中應該避免大量使用varchar類型
text/blob 在字符數大于65535時使用,可以存儲視頻、音頻、圖片等文件但是不建議使用數據庫存儲這些數據,一般使用存儲文件的路徑鏈接到物理存儲空間
year 年 默認賦值格式 YYYY 四位數的年份 1個字節
date 日期 默認賦值格式是 YYYYMMDD 四位年份兩位月份兩位日期 4個字節
time 時間 默認賦值格式是 hhmmss 兩位小時兩位分鐘兩位秒 3個字節
datetime 日期時間 默認賦值格式 YYYMMDD hhmmss 8個字節 取值范圍是 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59.99 如果不給該類型的字段賦值,則用空代替
timestamp 日期時間 默認賦值格式 YYYMMDD hhmmss 4個字節 取值范圍是 1970-01-01 00:00:00 ~ 2038-1-19 03:14:07.99 如果不給該類型的字段賦值,則用當前系統時間賦值
insert into _123.t4 values("tt",1990,083000,19900921,20180228193000);
如果是使用帶格式的時間賦值需要以字符串的方式插入 (用引號引起來)
insert into _123.t4 values("tt",1990,"08:30:00","1990-09-21","2018-02-28 19:30:00");` Query OK, 1 row affected (0.02 sec ```) # 幾個關于時間的函數 獲取當前系統日期時間函數now() sysdate() now()在調用開始時就得到了時間 sysdate()得到的是執行時的時間 獲取日期函數 date() 需要傳入一個日期時間參數 date(20180909121212) 得到的是2018-09-09 如需要獲取當前的日期date(now()) 或 curdate() 獲取時間函數 time() 需要傳入一個日期時間參數 time(20180909121212) 得到的是12:12:12 如需要獲取當前系統的時間time(now()) 或 curtime() 獲取年的函數 year() 需要傳入一個日期時間參數 獲取月的函數 month() 需要傳入一個日期時間參數 獲取日的函數 day() 需要傳入一個日期時間參數 獲取小時的函數hour() 需要傳入一個日期時間參數 獲取分鐘的函數minute() 需要傳入一個日期時間參數 獲取秒的函數second() 需要傳入一個日期時間參數 ----- # 枚舉類型 ----- 枚舉類型的值就是在指定的值列表中選擇 set 多選類型 set(值列表) creat table db1.t1(sex enum("boy","girl")) 插入的值的時候sex字段只能是“boy”或者“girl”中的一個 enum 單選類型 enum(值列表) creat table db1.t2(love set("film","girl","game")) 插入的值的時候love字段只能是“film”或者“girl”或者"game"中的一個或者多個
mysql>create table _123.t5(name char(32),sex enum("boy","girl"),love set("film","music","girl"));
mysql>insert into _123.t5 values("bob",1,"film,girl");
mysql> select * from _123.t5;
+------+------+-----------+
| name | sex | love |
+------+------+-----------+
| bob | boy | film,girl |
+------+------+-----------+
看完以上關于mysql有哪些基本的數據類型,很多讀者朋友肯定多少有一定的了解,如需獲取更多的行業知識信息 ,可以持續關注我們的行業資訊欄目的。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。