1.創建外鍵python
create table <表名>( <字段> 字段類型 not null, <字段> 字段類型 not null, <字段> 字段類型 not null, foreign key(<字段>) references <主表名>(<字段>));
2.Mysql 鏈接(left join, right join, inner join ,full join)
1)inner join(內連接即獲取兩個表相同的字段數據)
mysql
select * from <表1名> inner join <表2名> on <表1名>.<字段名> = <表2名>.<字段名>;
就是隻顯示2個表的交集sql
2)left join(左鏈接即求差集的)數據庫
select * from <表1名> left join <表2名> on <表1名>.<字段名> = <表2名>.<字段名>;
返回包括左表中的全部記錄和右表中聯結字段相等的記錄編程
3)right join(右鏈接即求差集的)app
select * from <表1名> right join <表2名> on <表1名>.<字段名> = <表2名>.<字段名>;
返回包括右表中的全部記錄和左表中聯結字段相等的記錄編程語言
4)Full join(求並集)mysql索引
select * from <表1名> left join <表2名> on <表1名>.<字段名> = <表2名>.<字段名> union select * from <表1名> right join <表2名> on <表1名>.<字段名> = <表2名>.<字段名>;
3.mysql事物
MySQL 事務主要用於處理操做量大,複雜度高的數據。好比說,在人員管理系統中,你刪除一我的員,你即須要刪除人員的基本資料,也要刪除和該人員相關的信息,如信箱,文章等等,這樣,這些數據庫操做語句就構成一個事務!spa
在MySQL中只有使用了Innodb數據庫引擎的數據庫或表才支持事務
事務處理能夠用來維護數據庫的完整性,保證成批的SQL語句要麼所有執行,要麼所有不執行
事務用來管理insert,update,delete語句
通常來講,事務是必須知足4個條件(ACID): Atomicity(原子性)、Consistency(穩定性)、Isolation(隔離性)、Durability(可靠性)日誌
1)、事務的原子性:一組事務,要麼成功;要麼撤回。
2)、穩定性 : 有非法數據(外鍵約束之類),事務撤回。
3)、隔離性:事務獨立運行。一個事務處理後的結果,影響了其餘事務,那麼其餘事務會撤回。事務的100%隔離,須要犧牲速度。
4)、可靠性:軟、硬件崩潰後,InnoDB數據表驅動會利用日誌文件重構修改。可靠性和高速度不可兼得, innodb_flush_log_at_trx_commit選項 決定何時吧事務保存到日誌裏。
begin; #開始一個事務 insert into a (a) values(555); rollback; 回滾 , 這樣數據是不會寫入的
若是數據沒問題,就輸入commit;提交命令就行;
4.mysql索引
MySQL索引的創建對於MySQL的高效運行是很重要的,索引能夠大大提升MySQL的檢索速度。
1)建立索引
create index <索引名字> on <表名>( <字段名>(字段長度) );
2)建立表的時候直接指定
create table <表名>( ID int auto_increment, username char(32) not null, primary key(ID), index <索引名> (username(32)));
3)刪除索引
drop index <索引名> on <表名>
4)惟一索引
建立索引
create unique index <索引名字> on <表名>( <字段名>(字段長度) )
建立表的時候直接指定
create table <表名>( ID int not null, username char(32) not null, unique <索引名> (username(32)));
5.ORM
orm英文全稱object relational mapping,就是對象映射關係程序,簡單來講咱們相似python這種面向對象的程序來講一切皆對象,可是咱們使用的數據庫卻都是關係型的,爲了保證一致的使用習慣,經過orm將編程語言的對象模型和數據庫的關係模型創建映射關係,這樣咱們在使用編程語言對數據庫進行操做的時候能夠直接使用編程語言的對象模型進行操做就能夠了,而不用直接使用sql語言