MySQL 的數值類型、字符串類型 和 時間日期類型 的知識點

-- 創建整型表

create table my_int(

int_1 tinyint,

int_2smallint,

int_3int,

int_4 bigint

) charset utf8;

-- 插入數據

insert into my_int

values(100,100,100,100);--有效數據

insert into my_int

values('a','b','199','f');--無效數據,類型限定

insert into my_int

values(255,10000,100000,1000000);--錯誤的寫法,超出范圍

-- 給表增加一個無符號的類型

alter table my_intadd int_5

tinyint unsigned;-- 無符號類型

-- 插入數據

insert into my_int

values (127,10000,100000,100000,255);

-- 指定顯示寬度為1

alter table my_intadd int_6

tinyint(1) unsigned;

-- 插入數據

insert into my_int

values (127,0,0,0,255,255);

-- 顯示寬度為2,0填充

alter table my_intadd int_7

tinyint(2) zerofill;-- zerofill; 自動變成 unsigned無符號

-- 插入數據

insert into my_int

values (1,1,1,1,1,1,1);

insert into my_int

values (100,100,100,100,100,100,100);

-- 浮點數表

create table my_float(

f1float,

f2float(10,2),-- 10位在精度范圍之外

f3float(6,2) -- 6位在精度范圍之內

);

-- 插入數據

insert? into my_float

values(1000.10,1000.10,1000.10);

insert? into my_float

values(1234567890,12345678.90,123.56);

insert? into my_float

values(3e38,3.01e7,1234.56);

insert? into my_float

values(9999999999,99999999.99,9999.99);-- 后兩個是最大值

-- 超出長度插入數據

insert into my_float

values (123456,1234.12345678,123.9876543);-- 小數部分可以超出長度

insert into my_float

values (132456,1324.12,123456.56);-- 最后一個整數部分超出

-- 創建定點數表

create? table my_decimal(

f1float (10,2),

d1decimal (10,2)

);

-- 插入數據

insert into my_decimal

values (12345678.90,12346578.90);-- 有效數據

insert into my_decimal

values (1234.123456,1234.123456);-- 小數部分是可以超出的

-- 查看警告

show warnings;

-- 插入數據

insert into my_decimal

values (99999999.99,99999999.99);-- 沒有問題

insert into my_decimal

values (99999999.99,99999999.999);-- 進位超出范圍

-- 創建時間日期表

create? table my_date(

d1 datetime,

d2date,

d3time,

d4timestamp,

d5year

);

-- 插入數據

insert into my_date

values ('2019-11-21 13:38:36',

'2019-11-21','13:38:36',

'2019-11-21 13:38:36','2019');

-- 時間使用負數

insert into my_date

values ('2019-11-21 13:38:36',

'2019-11-21','-13:38:36',

'2019-11-21 13:38:36','2019');

insert into my_date

values ('2019-11-21 13:38:36',

'2019-11-21','-213:38:36',

'2019-11-21 13:38:36','2019');

insert into my_date

values ('2019-11-21 13:38:36',

'2019-11-21','-2:38:36',

'2019-11-21 13:38:36','2019');--? -2表示過去2天,就是48小時? -- year可以使用2位或者4位

insert into my_date

values ('2019-11-21 13:38:36',

'2019-11-21','13:38:36',

'2019-11-21 13:38:36','69');

insert into my_date

values ('2019-11-21 13:38:36',

'2019-11-21','13:38:36',

'2019-11-21 13:38:36','70');

-- timestamp;修改記錄

update my_dateset d1=

'2019-11-21 13:46:45' where d5=2069;

-- 創建枚舉表

create table my_enum(

gender enum('男','女','保密')

);

-- 插入數據

insert into my_enum

values ('男'),('保密');-- 有效數據

insert into my_enum

values ('male');-- 錯誤數據,沒有該元素

-- 將字段結果取出來進行+0運算

select gender +0, gender

from my_enum;

-- 數值插入枚舉元素

insert into my_enum

values (1),(2);

-- 創建班級表

create table my_class(

name varchar (20)not null,

roomvarchar (20)null -- 代表允許為空,不寫默認就是允許為空

);

-- 創建表

create table my_teacher(

name varchar (20)not null comment

'姓名',

moneydecimal (10,2)not null

comment'工資'

);

-- 默認值

create table my_default(

name varchar (20)not null,

age tinyint unsigneddefault 0,

gender enum('男','女','保密')

default '男'

);

-- 插入數據

insert into my_default (name)

values('臭蛋');

insert into my_default

values ('男閨蜜',18,default );

-- 增加主鍵

create table my_pri1(

name varchar (20)not null comment

'姓名',

number char (10)primary? key

comment'學號:bc2019+0001,不能重復'

);

-- 復合主鍵

create table my_pri2(

number char (10) comment

'學號: bc20190001',

coursechar (10) comment

'課程代碼:bc25890001',

score tinyint unsigneddefault 60

comment'成績',

-- 增加主鍵限制:學號和課程號應該是對應的,具有唯一性

primary key(number, course)

);

-- 追加主鍵

create table my_pri3(

coursechar (10)not null comment

'課程代碼:bc25890001',

name varchar (10)not null comment

'課程名字'

);

-- 第一種方式

alter table my_pri3 modify course

char(10)primary key comment

'課程代碼:bc25890001';

-- 把第一種用drop table my_pri3; 刪除然后在創建一個在用第二種方式

-- 刪除表

drop table my_pri3;

-- 第二種方式

alter table my_pri3add primary

key(course);

alter table my_pri3add primary

key(course);-- 也可以是復合主鍵

********************************************************************************************

數值型

整數型:存放整型數據

tinyint:迷你整型,使用1個字節存儲,表示的狀態最多為256種

smallint:小整型,使用2個字節存儲,表示的狀態最多為65536種

mediumint:中整型,使用3個字節存儲

int:標準整型,使用4個字節存儲

bigint:大整型,使用8個字節存儲

小數型:帶有小數點或者范圍超出整型的數值類型

浮點型:小數點浮動,精度有限,而且會丟失精度

定點型:小數點固定,精度固定,不會丟失精度

時間日期類型

datetime:時間日期,格式是YYYY-mm-dd HH:ii:ss,表示的范圍是從1000到9999年,有0值(0000-00-00 00:00:00)

date:日期,就是datetime中的date部分

time:時間(段),指定的某個區間之間,比如-時間到+時間,或者過去的某個時間到將來的某個時間

timestamp:時間戳,但并不是時間戳,只是從1970年開始的,YYYY-mm-dd HH:ii:ss格式與datetime完全一致

year:年份,有兩種形式:year(2)和year(4)

字符串類型

字符串類型分為:char、varchar、text、blob、enum、set

char(定長字符串):磁盤(二維表)在定義結構的時候,就已經確定了最終數據的存儲長度

char(L):L代表Length,可以存儲的長度,單位為字符,最大長度值可以為255

varchar(變長字符串):在分配空間的時候,按照最大的空間分配,但是實際上最終用了多少,是根據具體的數據來確定

varchar(L):L表示字符長度,理論長度是65536個字符,但是會多出1到2個字節,來確定存儲的實際長度

文本字符串:如果數據量非常大,通常超過255個字符就會使用文本字符串

文本字符串根據存儲的數據的格式分為:

text:存儲文字、存儲二進制數據的文件路徑

blob:存儲二進制數據(通常不用)

枚舉字符串(enum):事先把所有可能出現的結果都設計好,實際上存儲的數據必須是規定好的數據中的一個

枚舉的使用方式:

enum(可能出現的元素列表);

例如:enum('男','女','不男不女','妖怪','保密');

使用:存儲數據,只能存儲上面定義好的數據

集合字符串:跟枚舉類似,實際存儲的是數值,而不是字符串,但集合是多選

集合使用方式:

set(元素列表)

可以使用元素列表中的多個元素,使用逗號分隔

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,321評論 6 543
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,559評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 178,442評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,835評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,581評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,922評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,931評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,096評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,639評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,374評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,591評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,104評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,789評論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,196評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,524評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,322評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,554評論 2 379