一除师、引擎
1.三種引擎
①myisam
②innodb
③memory
2.說明
①myisam不支持事務(wù),也不支持外鍵扔枫,但訪問速度快汛聚,對事務(wù)完整性沒有要求
②innodb具有提交,回滾短荐,和崩潰恢復(fù)能力的事務(wù)安全倚舀,但是比起myisam,innodb寫的效率差一些忍宋,并且會占用更多的磁盤空間來保留數(shù)據(jù)和索引
③memory使用存在內(nèi)存中的內(nèi)容來創(chuàng)建表痕貌,訪問表速度非常快
3.修改表的存儲引擎
alter table 表名 engine= 引擎名
二讶踪、如何選擇引擎
1.如果你的應(yīng)用不需要事務(wù)芯侥,處理的只是基本的crud操作,選擇myisam
2.如果需要支持事務(wù)乳讥,選擇innodb
3.memory用作比如用戶的在線狀態(tài)柱查,在服務(wù)器重啟后就會消失
三、視圖
(一)云石、視圖概述
當(dāng)用戶對數(shù)據(jù)庫中的一張或者多張表的某些字段的組合感興趣唉工,而又不想每次鍵入這些查詢時,用戶就可以定義一個視圖汹忠,以便解決這個問題淋硝。視圖中列可以來自于表里的不同列,這些列都是用戶所感興趣的數(shù)據(jù)列宽菜。視圖與表不同谣膳,它在物理上不是真實存在的,而是一個虛表铅乡。在數(shù)據(jù)庫里僅存放視圖的定義继谚,而不存放視圖對應(yīng)的數(shù)據(jù)。視圖中的這些數(shù)據(jù)存放在其對應(yīng)的表中阵幸,如果表中的數(shù)據(jù)發(fā)生了變化花履,從視圖中查詢出的數(shù)據(jù)也會隨之發(fā)生改變芽世。從這個意義來看,視圖就像一個窗口诡壁,透過它可以看到數(shù)據(jù)庫中用戶感興趣的數(shù)據(jù)及變化济瓢。每一次查看視圖或引用視圖的的時候,都會運行一次視圖上的查詢妹卿。
(二)旺矾、視圖說明
1.視圖是根據(jù)基表(可以是多個基表)來創(chuàng)建的,視圖是虛擬的表
2.視圖也有列纽帖,數(shù)據(jù)來自基表
3.通過視圖可以修改基表的數(shù)據(jù)
4.基表的改變宠漩,也會影響到視圖的數(shù)據(jù)
(三)、單表操作視圖
創(chuàng)建視圖
create view emp_view01 as select `name`,job,deptno from emp
查看視圖
desc emp_view01
select * from emp_view01
查看視圖指令
show create view emp_view01
刪除視圖
drop view emp_view01
select * from emp
修改視圖數(shù)據(jù)懊直,基表數(shù)據(jù)也會改變
update emp_view01 set job = 'manager' where `name` = 'jimi'
視圖中還可以創(chuàng)建視圖
create view emp_view02 as select `name`,job from emp_view01
(四)、多表創(chuàng)建視圖
從emp表和dept表創(chuàng)建視圖火鼻,可以顯示員工編號室囊,姓名,部門名
1.先顯示員工編號魁索,姓名融撞,部門名
select id,`name`,dname from emp,dept where emp.deptno=dept.deptno
2.再創(chuàng)建視圖
CREATE VIEW emp_view03 AS SELECT
id,
`name`,
dname
FROM
emp,
dept
WHERE
emp.deptno = dept.deptno