一、創建表的完整語法 1、創建表的語法 create table 表名( 欄位名1 欄位類型(數字) 約束條件, 欄位名2 欄位類型(數字) 約束條件, 欄位名3 欄位類型(數字) 約束條件,...) 2、創建表的條件 create table: 創建表的關鍵字 表名:表的名字 欄位名: ...
目錄
一、創建表的完整語法
1、創建表的語法
create table 表名(
欄位名1 欄位類型(數字) 約束條件,
欄位名2 欄位類型(數字) 約束條件,
欄位名3 欄位類型(數字) 約束條件,...)
2、創建表的條件
- create table: 創建表的關鍵字
- 表名:表的名字
- 欄位名:該列欄位的名字,例如Excel文檔里的序號、姓名、年齡等欄位
- 欄位類型(數字):該欄位的字元類型,當類型為整型或者浮點型時可以不填(用於展示數字的長度),其他類型為:Bytes
- 約束條件:可以是單個,也可以寫多個,空格隔開就可以,主要用於約束該欄位下的數據存儲條件
3、數字的含義
在創建表的時候,欄位名後會加上數據的類型,而數據類型的後面又會加上數字,數字在很多地方都是用來限制儲存數據的長度,但是在整型中數字是用來控制展示的長度,因此在寫整型時,通常不用加數字
create table t12(id int(3)); 不是用來限制長度
insert into t12 values(12345);
create table t13(id int(5) zerofill); 而是用來控制展示的長度
insert into t13 values(123),(123456789);
create table t14(id int);
二、MySQL數據類型
1、欄位類型之整型
整型的種類:
-
tinyint
- 特點:最大可以儲存1個bytes(正負號占一個bit)
-
smallint
- 特點:最大可以儲存2個biyts(正負號占一個bit)
-
int
- 特點:最大可以儲存4個biyts(正負號占一個bit)
-
bigint
- 特點:最大可以儲存8個biyts(正負號占一個bit)
MySQL中整型預設自帶正負號,正負號會占用一個bit,也就是說整型的最大值會受正負號影響,下麵可以通過添加數據的方式驗證正負號的存在
取消正負號:
在創建表的階段,在整型類型後添加關鍵詞,就可以取消正負號
create table 表名(欄位名 整型的類型 unsigned);
2、欄位類型之浮點型
浮點型的種類:
- float(m,d)
- 特點:單精度浮點型 8位精度(4位元組) m總個數,d小數位
- double(m,d)
- 特點:雙精度浮點型 16位精度(8位元組) m總個數,d小數位
- decimal(m,d)
- 特點:DECIMAL是一種定點類型,即所有值都有一個固定的小數位數。這 一點的重要性在於DECIMAL值不會像浮點數那樣存在四捨五入的問題
- M的取值範圍是1〜65,D的取值範圍是0〜30,且不超過M
3、欄位類型之字元類型
字元類型的種類:
- char(n)
- 特點:固定長度,最多255個字元
- carchar(n)
- 特點:可變長度,最多65535個字元
區別:
char(n) 固定長度,char(4)不管是存入幾個字元,都將占用4個位元組,varchar是存入的實際字元數+1個位元組(n<=255)或2個位元組(n>255),所以varchar(4),存入3個字元將占用4個位元組。
4、欄位類型之枚舉與集合
- 枚舉(多選一)
- 枚舉指在創建表的時候,指定的欄位名後可以填入枚舉類型,在關鍵詞後方括弧內,填入多個數據值,後期在往該欄位名下添加數據時,只能添加枚舉後括弧內多個數據值的其中一個,否則將會報錯
- 關鍵詞:enum(數據值1, 數據值2,...)
枚舉:
多選一
create table t15(
id int,
name varchar(32),
gender enum('male','female','others')
);
insert into t15 values(1,'tony','猛男');
insert into t15 values(2,'jason','male');
insert into t15 values(3,'kevin','others');
- 集合(多選多/多選一)
- 集合和枚舉的功能相似,也是在定義欄位名階段,在欄位名後方添加集合關鍵詞,在括弧內填入多個數據值,在後期添加該欄位名的數據的時候,可以填入指定的一個或多個數據值,指定外的數據值無法添加
- 關鍵詞:set(數據值1, 數據值2,...)
集合
多選多/多選一
create table t16(
id int,
name varchar(16),
hobbies set('basketabll','football','doublecolorball')
);
insert into t16 values(1,'jason','study');
insert into t16 values(2,'tony','doublecolorball');
insert into t16 values(3,'kevin','doublecolorball,football');
5、欄位類型之日期類型
類型的種類:
datetime 年月日時分秒
date 年月日
time 時分秒
year 年
代碼用法:
create table t17(
id int,
name varchar(32),
register_time datetime,
birthday date,
study_time time,
work_time year
);
insert into t17 values(1,'jason','2000-11-11 11:11:11','1998-01-21','11:11:11','2000');
涉及到時間類型的一般無需我們手動添加,系統都會自動進行添加