day45 資料庫基礎

2022-09-02 16:21:13 字數 2944 閱讀 5128

目錄4 日期型別

5 列舉和集合型別

不同的儲存引擎對應著不同的對資料的處理機制

mysql主要的儲存引擎

myisam

memory

blackhole

用**測試不同引擎的區別

# 檢視所有的儲存引擎

# 不同的儲存引擎在儲存表的時候 異同點

結果

​ 對每個表新增乙個資料可以看到除了blackhole引擎,其他表的資料都還在,這裡要注意,memory的資料只是存在記憶體中了,重啟一下服務資料就丟失了

建立表的完整語法

# 基本語法

create table 表名(

欄位1 型別(寬度(可不寫)) 約束條件,

欄位1 型別(寬度(可不寫)) 約束條件,

欄位1 型別(寬度(可不寫)) 約束條件

)

注意

約束條件舉例:create table t6(id int,name char not null); not null表示這個欄位的資料不能插入null

寬度和約束條件的關係

前引:嚴格模式

模糊查詢

修改嚴格型別

舉例

# 不同的整形型別最大的區別就是能取到的範圍,如果超出這個範圍只會存最大範圍(非嚴格模式下)

# 以上的5中整形型別能取的範圍依次增大,所以我們通常用int能應付大部分情況

# 例子:tinyint

如果我們建立了乙個tinyint型別的字段,他的範圍是-128~127,超出這個範圍就會報錯

# 特殊約束,unsigned約束可以讓該字段的範圍只有正數,會把負號內的位數全都帶到正數中,也就是說

create table t6(id tinyint usigned);

# 這裡的id的範圍不再是-128~127 而是0~255

# 長度:整形內的長度不表示限制位數

# 例子:

id int(8)

# 如果數字沒超出8位,預設用空格填充至8位(顯示的時候會自動去除)

# 如果超出了8位,有幾位存幾位,但是還是遵循該型別的最大範圍

# 我們可以用zerofill約束讓空格變成0顯示出來

create table t7(in int(8) zerofill);

舉例

# 儲存限制(不寫的預設值)

create table t10(id float(255,30));

create table t11(id double(255,30));

create table t12(id decimal(65,30));

# 插入資料驗證區別

insert into t10 values(1.111111111111111111111111111111);

insert into t11 values(1.111111111111111111111111111111);

insert into t12 values(1.111111111111111111111111111111);

總結:精度從小到大:float具體場景用不同的精度

3.1 型別

varchar 變長

3.2 舉例驗證區別

可以用length關鍵字來分析內含幾個字元,

修改sql_mode = 'strict_trans_tables,pad_char_to_full_length';

在重啟服務後,這個修改能讓mysql不做自動剔除操作

得到的結果是,同樣只插入了乙個字元的資料,varchar的長度是1,char的長度是4

3.3 對比優缺點

varchar

總結:兩者各有好處,都有用處

分類

create table student(

now_year year,

now_data date,

now_datatime datetime,

now_time time

);insert into student values("2020","2020-5-4","2020-5-4 11:11:11","11:11:11");

具體使用create table user(

​ gender enum('male','female','others'),

​ hobby set('read','dbj','hecha')

insert into user values('male','read,hecha');

前乙個是列舉,可以在3個中選乙個,後乙個是集合,可以多選,也可以單選

但是這兩種都不能選自己沒有的!

紀中遊記 Day4 5

真的神似的模擬賽 午飯下午 晚自習糙漢在等雨 day4 新鮮感盡退後以一種綿延的倦怠感,早上起得很晚,讓zhaner去幫我帶了乙個八寶粥。現在是day5 zhaner 感覺是幾萬年以前的事情了 當把時間的尺度放大,短暫的回憶裡的事情卻變得更漫長了。day5 乙個全新的早上。在一陣渺遠的 中醒來,舒緩...

2020 4 22學習筆記day45

wait notify notifyall方法都是object中的方法,任何物件都可以呼叫到這個方法。但是只能在加鎖的 塊中,使用 當做鎖的物件 來呼叫wait notify notifyall方法。其他情況,如果不是在加鎖的 塊中,或者不是使用 當做鎖的物件 來呼叫wait notify noti...

Go 實現 Web 框架 Day4 5 學習筆記

極客兔兔大佬的 七天用go從零實現系列 day4 分組控制,day5 中介軟體 學習筆記 內容位址 開發目的 將路由分組進行控制,在不同的組加不同的定製化功能,也可以全域性定製功能。開發步驟 部分實現解讀 增強功能的函式的實現 與之前定義的請求處理函式一樣,可以使用切片來統一維護,方便管理 全域性增...