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...