資料庫基礎 day61

2021-08-20 16:32:45 字數 2492 閱讀 1697

about storage engines,

目前,你得知道我們目前使用的是innodb,

建立不同引擎的表,生成的檔案會有些特點,這裡暫時不寫,

select可以查詢表中的資料,

desc t1,是檢視表的結構資訊,

show create table t1\g;可以更詳細的檢視表的結構資訊,

複製表,

表結構和資料都複製,create table t2 select * from t1;

只複製表結構,create table t3 like t1;

create table t4 select * from t1 where 1>3;

mysql中用tinyint來模擬boolean,

tinyint預設是有符號數,通過插入負數是否報錯,可以看出來,

int[(m)][unsigned][zerofill],這是數的定義格式,其它比如tinyint等一樣

中括號代表可有可無,m代表設定顯示長度,

關於int(5),這個5是顯示寬度,注意區分它與儲存寬度的區別,

結論就是你可以不用理會,

why?因為預設的顯示長度是根據你的型別比如int,在此基礎上加1,

如果你指定了,若是數比較小,使用zerofill可以用0填充空餘位置,若是數大,就會該是多少就顯示多少,

float[(m,d)] [unsigned] [zerofill],浮點數的定義格式,(聯想記憶:定點數)

m代表整個個數,d代表小數個數,對於double而言m,d的範圍不同,

但這些數都存在靠後不準確的情況,相信應該不是那麼重要,從而忽略了對這裡的處理,

create table t15(x float(25,21));

insert into t15 values(1.111111111111111111111111111);

然後你select * from t15;就能看到它有多不準確.ps:相對來說decimal最精確,

關於時間型別:

year型別:範圍1900~2155,

date型別,即日期,插入的資料得用引號,

time型別,即時間,插入的資料得用引號,

datetime,即日期&時間,插入的資料得用引號,

timestamp,這個時間比較的時候會用到,插入資料的時候也得用引號,

ps:now()函式可以插入當前的時間,

時間插入有一些簡寫的方法,不做重點,

char and varchar,(注意發音)

前者訪問快,後者可以根據資料大小,合理占用空間,

時間,空間轉換的例子,

char(n),這個n不同於int中的,這裡指字元的長度,字元!!!

create table t1(

e enum('1','2'),

s set('1','2')

);ps:上面都得是字串形式,列舉是多選1,集合是多選多,

約束條件,

create table t1(

id int,

ip int,

port int,

unique(ip,port)

);//聯合唯一

primary key(ip,port) //這是復合主鍵

auto_increment,如果不插入這項資料,則新插入資料,這項會自動增長,

如果指定了,則後續會在此基礎上增加,

還有一些細節,比如清空**,步長,偏移量,

foreign key,

出現的原因,

比如員工很多,但是部門以及對應的資訊,就那幾個,

所以單獨把部門資訊寫進一張表,用乙個id指向這個部分,

然後在最初的表中,就不再需要用老長的資料儲存,而只需要乙個部門id即可,

越是資料多,這種方式生下來的儲存空間就越多,

下面是外來鍵的使用方式,

dep_id int, //1.先定義那個資料,

constraint fk_dep foreign key(dep_id) references dep(uid)

//2.然後修飾這個資料,

由於兩張表有個資料的關聯,就涉及到乙個同步的問題,

你得自己手動操作,並且順序是你引用的那個表得後刪除,

可能是因為,你先刪除被引用的資料,那麼另乙個表就存在找不到資料的錯誤,

如果想自動關聯資料的改變,你得在引用外部表的那個表中新增,

on delete cascade #同步刪除

on update cascade #同步更新,

之後兩張表的操作順序,就沒有限制了,並且相互之間的更改自動更新.

C語言拯救計畫Day6 1之計算天數

本題要求編寫程式計算某年某月某日是該年中的第幾天。輸入格式 輸入在一行中按照格式 yyyy mm dd 即 年 月 日 給出日期。注意 閏年的判別條件是該年年份能被4整除但不能被100整除 或者能被400整除。閏年的2月有29天。輸出格式 在一行輸出日期是該年中的第幾天。輸入樣例1 2009 03 ...

資料庫基礎 day60

以前,我們直接把資料儲存在本地的乙個檔案中,最大的乙個缺點就是它是單機的,無法共享,於是出現了資料庫,今天我們學習的是mysql關聯式資料庫,所謂關係,直觀理解就是一堆表,ps 那什麼是非關係型資料庫?直觀理解就是,資料的儲存是以鍵值對的方式儲存的,mysql是乙個基於socket編寫的c s架構的...

資料庫基礎 day65

索引的存在就是為了快速的提供查詢,它為我們的表資料,建立了乙個資料結構,這個資料結構是單獨儲存的,不過這個快速是對查詢而言的,單列索引分為 1.普通索引,僅僅是加速查詢 2.唯一索引,不僅可以加速,而且通過unique來約束唯一,可以為空 3.主鍵索引,加速查詢 主鍵 聯合索引 即多列索引 crea...