最近在學習mysql,以後工作會慢慢往這方面轉向,所以提前預習。~~~
現在全世界都喊著去ioe,所以咱也必須提前做個準備。衝................
第一章基礎知識
1、改變表結構
增加列:alter table test add name(char(6));
更改列定義:alter table test change year_born bithday;
改變列的名稱:alter table test modify oldname newname;
2、表的改名有以下方法:
alter table aa rename bb;
alter table aa rename to bb;
rename aa to bb;
3、指定日期格式:
select date_format(birtyday,'%m/%d/%y'); 這個與oracle不太一樣。
%m返回月份(01-12),%d返回日期(01-31),%y返回四位數的年份,%w返回星期,%m返回月份的名字,%y返回兩位數的年份。
4、返回當前日期和時間
select now(),current_date();
now()返回日期和時間。
有乙個列型別datetime,格式以yyyy-mm-dd hh:mm:ss儲存資料。
第2章 資料型別和表型別
在mysql中,資料庫名與表名的大小寫是相關的,如在windows下不相關,不區分。但在unix下是區分大小寫的。
不過,可以通過修改資料庫引數來進行大小寫識別即一樣。
數字列型別:整型與浮點型 ,有兩個選項unsigned(不允許有負數)和zerofill(為該值新增上零,而不是常用的空格
,並且自動將它變為unsiged)
數字型別:
tinyint(m)[unsigned][zerofill] 乙個微小整數,-128~127(signed),0~255(unsigned),需要1位元組的儲存
smallint(m) 乙個小整數,-32768~32768,需要2位元組的儲存
int(m) 乙個整數,-2147483648~2147483647(signed),0~4294967295(unsigned)需要4位元組
的儲存,採用zerofill的預設值為10.
bigint 乙個大整數,需要8位元組的儲存。
float(m,d) 乙個小的或單精度浮點數,需要4位元組的儲存(單精度)
double(m,d) 乙個雙精度浮點數,需要8位元組的儲存。
在決定選擇哪種數字型別時,可以遵循如下的原則:
1、選擇最小的可用型別(如值記永遠不超過127,則tinyint強於int)
2、對於完全是數字的,選擇整數型別。
3、對於高精度,使用整數型別而不使用浮點型別(捨入的錯誤會影響浮點數)。
字串列型別:
char(m)[binary] 字元。固字長度的串,在右邊補齊空格,達到指定的長度。從0到255個字元。
varchar(m)[binary] 可變長字元。其中的字尾空格在儲存值時被刪除。
tinyblob 微小的二程序大物件。最多255個字元。長度為+1位元組的儲存。與tinytext一樣,大多數會用
它,而不是使用varchar.
blob 二進位製大物件。最大65535個字元。要求長度+2位元組的儲存。與text一樣,只不過搜尋是大小
寫相關的。
text 最大65535個字元。要求長度+2位元組的儲存。與blob一樣,只不過搜尋是大小寫不相關的。
longblob 大的二進位製大物件。最大4294967295個字元。要求長度+4位元組的儲存。只不過搜尋是大小寫
相關的。
longtext 大的二進位製大物件。最大4294967295個字元。要求長度+4位元組的儲存。只不過搜尋是大小寫
不相關的。
日期和時間列型別:
datetime yyyy-mm-dd hh:mm:ss,從1000-01-01 00:00:00到9999-12-31 23:59:59
date yyyy-mm-dd,從1000-01-01到9999-12-31
timestamp yyyymmddhhmmss
time hh:mm:ss
year yyyy
表型別:
有兩個事務安全的表型別:innodb和bdb
非事務:isam,myisam,merge,heap
isam表:
索引順序儲存方法。myisam表的索引比isam表的索引要小的多,所以在myisam表中帶有索引的select使用更少的系統。
現在新版本中已經不使用了。
myisam表
型別代替了isam.它的資料檔案的副檔名是.myd,索引檔名是.myi。資料檔案總是比索引檔案大。
有三個子型別:靜態、動態或壓縮。
在建立表的時候,靜態表是預設格式,只要沒有varchar,blob或text列,它就存在。如果存在列型別一種,表就變成了
動態的。
megre表:
是相同myisam表的合併。
優點:1、在有些情況下速度快(可以將不同的表分離到不同的磁碟上,然後通過megre表將它們合面乙個表來訪問)
2、表的尺寸較小;
缺點:1、對於eq_ref搜尋,它們很慢。
2、replace不能工作。
3、表使用比較多的檔案描述符。
heap表
是最快的表型別,因為他們儲存在記憶體裡,並使用雜湊的索引。
缺點是由於儲存在記憶體中,所有的資料會在出問題時丟失。他們也不能保留太多的資料。可以作為中間表使用。
它們不能使用order by;不支援null列上的索引;不支援blob或text列;不支援auto_incrementgq .
innodb表:
是事務安全的表型別,在myiasm表中,執行插入時整個表被鎖定,在那一瞬間,不能對錶執行其它的語句。innodb使用
記錄級的鎖定,以便只鎖定該記錄,而不是整個表。
如果你的資料執行大量的insert或update,建議使用innodb.如果執行select多,建議使用myisam。
innodb不是儲存在乙個目錄中,將表作為檔案。所有的表和索引都儲存在innodb表空間中,如ibdata1。
建innodb:
create table test (name char(6)) type=innodb;或engine=innodb;
bdb表:
是伯克利資料庫,它也是乙個事務安全的表型別,與innodb一樣。
Mysql學習筆記(一)
一 mysql學習筆記 觸發器 觸發器四要點 1.監視誰 table 2.監視事件 insert update delete 3.觸發時間 after before 4.觸發事件 insert update delete 語法 create trigger 觸發器名稱 after before 觸發...
Mysql學習筆記一
一 mysql資料型別 1 整數 浮點數 定點型別 1個位元組佔8位,漢字佔兩個位元組 16位 正數定義成unsigned 定點數 decimal m,d m表示總長度 d表示小數字 存入的時候四捨五入計算 範圍與double相同 例子 decimal 5,2 123.45 2 日期與時間 一般用d...
Mysql學習筆記(一)
近來發現資料庫是個很有用的東西,所以了解看看。配置完了mysql,熟悉一下mysql的基本操作。mysql的基本操作一般都是利用命令列來實現,值得注意的是使用cmd命令行時,必須要使用管理員身份執行,不然沒有許可權訪問mysql。一切準備工作就緒之後,首先啟動mysql,在命令列中輸入net sta...