1》創(chuàng)建數(shù)據(jù)庫:
語法:create database 數(shù)據(jù)庫名;
語法:show databases 查看已經(jīng)存在數(shù)據(jù)庫
舉例:
Mysql->create database zytest; 注意每一條要以;號結(jié)尾
Mysql->show databases;查詢是否創(chuàng)建成功
>use zytest;
2》刪除數(shù)據(jù)庫:
語法:drop database 數(shù)據(jù)庫名字,;<使用此命令,請注意>
舉例:
Mysql->drop database zytest; 刪除zytest
Mysql->show databases; 查詢是否刪除成功
3》存儲引擎介紹:
1>innoDB引擎
innoDB是mysql的一種存儲引擎,,inodb給mysql的表提供了事務(wù)日志,,回滾、奔潰,、修復(fù)能力和多版本并發(fā)控制的事務(wù)安全,。Mysql從3.23.34a開始包含 innoDB存儲引擎.
innoDB是第一個提供外鍵約束的表引擎,而且對innoDB對事務(wù)處理的能力,。也是其它引擎無法與之抗衡的,。,
innodb支持自動增長列使用auto_increment,,自動增長列不值不能為空
innodb 存儲引擎中支持外鍵Z(foreign key),,外鍵所在的表為子表,外鍵所依賴的表為父母,,父表中的被子表外檢關(guān)聯(lián)的字段必須是主鍵,,當(dāng)刪除,、更新父表 的某條信息時,子表也必須有相應(yīng)的改變,,
innodb存儲引擎中,,創(chuàng)建表的表結(jié)構(gòu)存儲在.frm文件中,數(shù)據(jù)和索引存儲在innodb_data_home_dir 和 innodb_data_file_path定義的表空間.
元數(shù)據(jù)文件所有的表的ibdata1如果不定義innodb_data_home_dir 參數(shù),。默認(rèn)就在datadir下面,,InnoDB每個數(shù)據(jù)表的元數(shù)據(jù)(metadata)總是保 存在ibdata1 這個共享表空間里,因此該文件必不可少innodb_data_file_path = ibdata1:10M:autoextend
數(shù)據(jù)和索引文件集合在一起:*.ibd每個表都有單獨(dú)一個元數(shù)據(jù),
表定義文件:*.frm
所有的表總的元數(shù)據(jù)文件為ibdata1
Inoodb存儲引擎的
優(yōu)勢:在于提供了良好的事務(wù)管理,、崩潰,、修復(fù)能力和并發(fā)控制,
缺點(diǎn):是其讀寫效率稍差,,占用的數(shù)據(jù)空間相對比較大.
什么是事務(wù),??我們先來看看ACID原則
ACID是數(shù)據(jù)庫事務(wù)正常執(zhí)行的四個基本要素,,分別指原子性,、一致性、獨(dú)立性及持久性
原子性(Atomicity):事務(wù)的原子性是指一個事務(wù)要么全部執(zhí)行,要么不執(zhí)行.也就是說一個事務(wù)不可能只執(zhí)行了一半就 停止了.比如你從取款機(jī)取錢, 這個事務(wù)可以分成兩個步驟:1劃卡,2出錢.不可能劃了卡,而錢卻沒出來.這兩步必須同時完成.要么就不完成.
一致性(Consistency):事務(wù)的一致性是指事務(wù)的運(yùn)行并不改變數(shù)據(jù)庫中數(shù)據(jù)的一致性.例如,完整性約束了a+b=10,一個事務(wù)改變了a,那么b也應(yīng)該隨 之改變.
獨(dú)立性(Isolation):事務(wù)的獨(dú)立性也有稱作隔離性,是指兩個以上的事務(wù)不會出現(xiàn)交錯執(zhí)行的狀態(tài).因為這樣可能會導(dǎo)致數(shù)據(jù)不一致.
持久性(Durability):事務(wù)的持久性是指事務(wù)執(zhí)行成功以后,該事務(wù)所對數(shù)據(jù)庫所作的更改便是持久的保存在數(shù)據(jù)庫之中,,不會無緣無故的回滾.
2>MyISAM引擎
MyISAM存儲表分為3個文件,,文件與表名相同,擴(kuò)展包括frm,MYD和MYI,,
frm為擴(kuò)展名的文件存儲表的結(jié)構(gòu)
myd為擴(kuò)展名的文件存儲數(shù)據(jù)
myi為擴(kuò)展名的文件存儲索引
優(yōu)點(diǎn):占用空間小,,。處理速度快,,
缺點(diǎn):不支持事務(wù)日志的完整性和并發(fā)性 3>MEMORY 引擎 Mysql中的特殊引擎,,所有的數(shù)據(jù)全部存放于內(nèi)存當(dāng)中,,在企業(yè)生產(chǎn)環(huán)境當(dāng)中,。幾乎是用不到。因為數(shù)據(jù)存儲在內(nèi)存,,如果內(nèi)存出現(xiàn)異常,。將影響數(shù)據(jù)的完 整性?! ?yōu)點(diǎn):存儲速度快
缺點(diǎn):缺乏穩(wěn)定性和完整性
MyISAM:不支持外鍵,,不支持事務(wù),索引和數(shù)據(jù)分開的,,可以加載更多的索引,,并且索引是壓縮的,相對內(nèi)存來說使用效率就提高不少,,,,他使用一 種表格鎖定的機(jī)制,,來優(yōu)化多個并發(fā)讀寫操作,MYISAM強(qiáng)調(diào)了快速讀取操作,;
使用場合:在承載的大部分項目是讀多寫少的項目平臺中,,而MyISAM的讀性能是比Innodb強(qiáng)不少的
Innodb: 支持外鍵,支持事務(wù),、回滾,,但是索引和數(shù)據(jù)是緊密捆綁的,沒有使用壓縮從而會造成INNODB比MYISAM體積龐大不小,。
使用場合:在承載的大部分項目執(zhí)行insert 和update的話,,應(yīng)該選擇InnoDB.
鎖的介紹:mysql常見的三種鎖級別——表級鎖、頁面鎖,、行級鎖,;其中表級鎖有兩種模式——表共享讀鎖和表獨(dú)占寫鎖。
MyISAM:
表級鎖:對myisam表進(jìn)行讀操作的時候,,它不會阻塞其他用戶對同一表的讀請求,,但會阻塞對同一表>的寫操作;
對myisam表進(jìn)行寫操作的時候,,它會阻塞其他用戶對同一表的讀,、寫請求.
innodb:
提供行鎖(locking on row level),另