HTML基礎知識(27)【整數型】【整型表】【浮點數表】【定點數表】【時間日期表】【主鍵】【】

一、整數型:存放整型數據

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

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

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

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

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

有符號:signed;

無符號:unsigned;


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

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

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

三、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個字節,來確定存儲的實際長

定長與變長的存儲實際空間(UTF8)

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

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

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

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

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

枚舉的使用方式:

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

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

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

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

集合使用方式:

set(元素列表)

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

列屬性:真正約束字段的是數據類型,但是這種約束很單一,需要有一些額外的約束,來更加保證數據的合法性,這就需要列屬性

列屬性包括:NULL/NOT NULL、default、Primary key、unique key、auto_increment、comment

空屬性:

兩個值:NULL(默認的)、NOT NULL(不為空

主鍵:primary key,主要的鍵,一張表只能有一個字段可以使用對應的鍵,用來唯一的約束該字段里面的數據,不能重復,這種稱之為主鍵

增加主鍵:

方案一:在創建表的時候,直接在字段之后,跟primary key關鍵字(主鍵本身不允許為空)

方案二:在創建表的時候,在所有的字段之后,使用primary key(主鍵字段列表)來創建主鍵,如果有多個字段作為主鍵,可以是復合主鍵

方案三:當表已經創建好之后,額外追加主鍵,可以通過修改表字段屬性,也可以直接追加

alter table 表名 add primary key(字段列表);

————————————————————————————

一、創建整型表

-- 創建整型表

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,1000000,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;

-- 插入數據

insert into my_int

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

insert into my_int

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

-- 刪除字段

alter table my_intdrop int_6;

二、浮點數表

-- 浮點數表

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,1234.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(123456,1234.12,12345.56);-- 最后一個整數部分超出

三、創建定點數表

-- 創建定點數表

create table my_decimal(

f1float(10,2),

d1decimal(10,2)

);

-- 插入數據

insert into my_decimal

values(12345678.90,12345678.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:46','2019-11-21','13:38:46','2019-11-21 13:38:46',2015);

-- 時間使用負數

insert into my_date

values('2019-11-21 13:38:46','2019-11-21','-13:38:46','2019-11-21 13:38:46',2015);

insert into my_date

values('2019-11-21 13:38:46','2019-11-21','-213:38:46','2019-11-21 13:38:46',2015);

insert into my_date

values('2019-11-21 13:38:46','2019-11-21','-2 13:38:46','2019-11-21 13:38:46',2015);-- -2表示過去兩天,是48小時

-- year可以使用2位或者4位

insert into my_date

values('2019-11-21 13:38:46','2019-11-21','13:38:46','2019-11-21 13:38:46',69);

insert into my_date

values('2019-11-21 13:38:46','2019-11-21','13:38:46','2019-11-21 13:38:46',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(

namevarchar(20)not null,

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

);

-- 創建表

create table my_teacher(

namevarchar(20)not null comment'姓名',

moneydecimal(10,2)not null

comment'工資'

);

-- 默認值

create table my_default(

namevarchar(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(

namevarchar(20)not null comment'姓名',

numberchar(10)primary key

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

);

-- 復合主鍵

create table my_pri2(

numberchar(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',

namevarchar(10)not null comment

'課程名字'

);

-- 第一種方式

alter table my_pri3 modify coursechar(10)primary

key comment

'課程代碼:bc25890001'

;

-- 刪除表

drop table my_pri3;

-- 第二種方式

alter table my_pri3add primary

key(course);

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念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

推薦閱讀更多精彩內容