Day05 MySQL 索引和事物

2021-10-09 04:56:15 字數 2413 閱讀 5997

索引型別

功能說明

普通索引

最基本的索引,它沒有任何限制

唯一索引

某一行啟用了唯一索引則不准許這一列的行資料中有重複的值。針對這一列的每一行資料都要求是唯一的 unique

主鍵索引

它是一種特殊的唯一索引,不允許有空值。一般是在建表的時候同時建立主鍵索引,常用於使用者id。類似於書中的頁碼 primary key

全文索引

對於需要全域性搜尋的資料,進行全文索引

基本語法:

show index from tablename;

示例:show index from user\g;

示例說明:

檢視user表的索引結構

基本語法:

alter table 表 add index(字段)

示例:alter table money add index(username);

示例說明:

為money表的username欄位增加索引

基本語法:

alter table 表 add unique(字段)

示例:alter table money add unique(email);

示例說明:

為money表的email欄位增加唯一索引

基本語法:

alter table 表 add primary key(字段)

示例:alter table money add primary key(id);

示例說明:

為money表的id欄位增加主鍵索引

建立表時可在建立表語句後加上對應的型別即可宣告索引:

primary key(字段)

index (字段)

unique (字段)

create table user (

id int auto_increment,

name varchar(20),

primary key(id),

unique (name)

);基本語法:

alter table table_name drop index index_name

示例:alter table money drop index age;

示例說明:

為money表刪除age索引

我們每執行一條sql語句,每執行一組sql語句,我們都可以稱為事務

如果一組sql語句裡,某乙個sql語句失敗了,稱為整個事務的失敗,因此出現這種情況必須要恢復到正常的情況上才能沒有問題.

在逛**的時候,購買了某乙個貨品錢付了,但**伺服器剛好斷電了,商家沒辦法收到你的錢,就不發貨。 擔保交易銀行中轉帳的時候, 款已經扣除了,但突然斷電,導致對方收不到錢.

如果有了事務,就可以避免該事情。

事務可以看作是乙個「容器」,將多條語句,放入該容器,最後,只要乙個命令列,來決定其中的所有語句是否「執行」

在 mysql 中只有使用了 innodb 資料庫引擎的資料庫或表才支援事務。

事務處理可以用來維護資料庫的完整性,保證成批的 sql 語句要麼全部執行,要麼全部不執行。

事務用來管理 insert,update,delete 語句

一般來說,事務是必須滿足4個條件(acid):

原子性(atomicity) 事務作為乙個整體被執行,包含在其中的對資料庫的操作要麼全部被執行,要麼都不執行

一致性(consistency)事務應確保資料庫的狀態從乙個一致狀態轉變為另乙個一致狀態

隔離性(isolation)多個事務併發執行時,乙個事務的執行不應影響其他事務的執行

永續性(durability)已被提交的事務對資料庫的修改應該永久儲存在資料庫中

在mysql中預設一條sql語句乙個事務

因此,如果需要開啟事務模式的話

使用 start transaction開頭,開啟事務模式

使用 commit 語句執行後,才能真正生效

使用 rollback 語句進行回滾

執行語句

說明start transaction

執行開始事務命令後,下面將進入事務模式.

update、delete、insert 操作

在事務執行後,這些操作只在記憶體狀態下進行,而不是在物理狀態下

commit

在事務執行完成後,確認執行無誤且成功,就可以使用commit把記憶體中執行的結果,提交到物理記憶體中

rollback

如果在事務執行過程中,發生了錯誤,則可以使用rollback命令回滾到上乙個事務操作

day05 Mysql資料庫 外來鍵

外來鍵 foreign key,外面的鍵 鍵不在自己表中 如果一張表中有乙個字段 非主鍵 指向另外一張表的主鍵,那麼將該字段稱之為外來鍵.增加外來鍵 外來鍵可以在建立表的時候或者建立表之後增加 但是要考慮資料的問題 一張表可以有多個外來鍵.建立表的時候增加外來鍵 在所有的表字段之後,使用foreig...

Mysql事物和索引

mysql 事務主要用於處理操作量大,複雜度高的資料。mysql事物具有以下特點 在 mysql 中只有使用了 innodb 資料庫引擎的資料庫或表才支援事務。事務處理可以用來維護資料庫的完整性,保證成批的 sql 語句要麼全部執行,要麼全部不執行。事務用來管理 insert,update,dele...

Mysql 內外連線,事物,索引

表的連線分為內連和外連 內連線 內連線實際上就是利用where語句對倆個表形成的笛卡兒積進行篩選,我們前面學的所有連線都是內鏈結 語法 select 欄位名 from 表1 inner join 表2 on 連線條件 and 其他條件 例 顯示smith的名字和部門名稱 外連線 外連線分為左外連線和...