Mysql學習筆記一

2021-06-23 00:04:30 字數 3296 閱讀 6868

最近在學習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...