一、創建表的完整語法 1、創建表的語法 create table 表名( 欄位名1 欄位類型(數字) 約束條件, 欄位名2 欄位類型(數字) 約束條件, 欄位名3 欄位類型(數字) 約束條件,...) 2、創建表的條件 欄位名和欄位類型必須填寫 數字和約束條件是可選的,可以不填 約束條件 ...
目錄
一、創建表的完整語法
1、創建表的語法
create table 表名(
欄位名1 欄位類型(數字) 約束條件,
欄位名2 欄位類型(數字) 約束條件,
欄位名3 欄位類型(數字) 約束條件,...)
2、創建表的條件
- 欄位名和欄位類型必須填寫
- 數字和約束條件是可選的,可以不填
- 約束條件也可以寫多個,空格隔開就可以
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');
涉及到時間類型的一般無需我們手動添加,系統都會自動進行添加