MySQL資料庫積累

2021-09-25 03:11:45 字數 2873 閱讀 4308

主 鍵:

資料庫表中對儲存資料物件予以唯一和完整標識的資料列或屬性的組合。乙個資料列只能有乙個主鍵,且主鍵的取值不能缺失,即不能為空值(null)。

超 鍵:

在關係中能唯一標識元組的屬性集稱為關係模式的超鍵。乙個屬性可以為作為乙個超鍵,多個屬性組合在一起也可以作為乙個超鍵。超鍵包含候選鍵和主鍵。

候選鍵:

最小超鍵,即沒有冗餘元素的超鍵。

外 鍵:

在乙個表中存在的另乙個表的主鍵稱此表的外來鍵。,

資料庫事務transanction正確執行的四個基本要素。acid,原子性(atomicity)、一致性(correspondence)、隔離性(isolation)、永續性(durability)。

原子性:整個事務中的所有操作,要麼全部完成,要麼全部不完成,不可能停滯在中間某個環節。事務在執行過程中發生錯誤,會被回滾(rollback)到事務開始前的狀態,就像這個事務從來沒有執行過一樣。

一致性:在事務開始之前和事務結束以後,資料庫的完整性約束沒有被破壞。

隔離性:隔離狀態執行事務,使它們好像是系統在給定時間內執行的唯一操作。如果有兩個事務,執行在相同的時間內,執行 相同的功能,事務的隔離性將確保每一事務在系統中認為只有該事務在使用系統。這種屬性有時稱為序列化,為了防止事務操作間的混淆,必須序列化或序列化請 求,使得在同一時間僅有乙個請求用於同一資料。

永續性:在事務完成以後,該事務所對資料庫所作的更改便持久的儲存在資料庫之中,並不會被回滾。

檢視是虛擬的表,與包含資料的表不一樣,檢視只包含使用時動態檢索資料的查詢;不包含任何列或資料。使用檢視可以簡化複雜的sql操作,隱藏具體的細節,保護資料;檢視建立後,可以使用與表相同的方式利用它們。

檢視不能被索引,也不能有關聯的觸發器或預設值,如果檢視本身內有order by 則對檢視再次order by將被覆蓋。

建立檢視:create view *** as ************xx;

對於某些檢視比如未使用聯結子查詢分組聚集函式distinct union等,是可以對其更新的,對檢視的更新將對基表進行更新;但是檢視主要用於簡化檢索,保護資料,並不用於更新,而且大部分檢視都不可以更新。

drop直接刪掉表 truncate刪除表中資料,再插入時自增長id又從1開始 delete刪除表中資料,可以加where字句。

(1) delete語句執行刪除的過程是每次從表中刪除一行,並且同時將該行的刪除操作作為事務記錄在日誌中儲存以便進行進行回滾操作。truncate table 則一次性地從表中刪除所有的資料並不把單獨的刪除操作記錄記入日誌儲存,刪除行是不能恢復的。並且在刪除的過程中不會啟用與表有關的刪除觸發器。執行速度快。

(2) 表和索引所佔空間。當表被truncate 後,這個表和索引所占用的空間會恢復到初始大小,而delete操作不會減少表或索引所占用的空間。drop語句將表所占用的空間全釋放掉。

(3) 一般而言,drop > truncate > delete

(4) 應用範圍。truncate 只能對table;delete可以是table和view

(5) truncate 和delete只刪除資料,而drop則刪除整個表(結構和資料)。

(6) truncate與不帶where的delete :只刪除資料,而不刪除表的結構(定義)drop語句將刪除表的結構被依賴的約束(constrain),觸發器(trigger)索引(index);依賴於該錶的儲存過程/函式將被保留,但其狀態會變為:invalid。

(7) delete語句為dml(data maintain language),這個操作會被放到 rollback segment中,事務提交後才生效。如果有相應的 tigger,執行的時候將被觸發。

(8) truncate、drop是dll(data define language),操作立即生效,原資料不放到 rollback segment中,不能回滾

(9) 在沒有備份情況下,謹慎使用 drop 與 truncate。要刪除部分資料行採用delete且注意結合where來約束影響範圍。回滾段要足夠大。要刪除錶用drop;若想保留表而將表中資料刪除,如果於事務無關,用truncate即可實現。如果和事務有關,或老師想觸發trigger,還是用delete。

(10) truncate table 表名 速度快,而且效率高,因為:

truncate table 在功能上與不帶 where 子句的 delete 語句相同:二者均刪除表中的全部行。但 truncate table 比 delete 速度快,且使用的系統和事務日誌資源少。delete 語句每次刪除一行,並在事務日誌中為所刪除的每行記錄一項。truncate table 通過釋放儲存表資料所用的資料頁來刪除資料,並且只在事務日誌中記錄頁的釋放。

(11) truncate table 刪除表中的所有行,但表結構及其列、約束、索引等保持不變。新行標識所用的計數值重置為該列的種子。如果想保留標識計數值,請改用 delete。如果要刪除表定義及其資料,請使用 drop table 語句。

(12) 對於由 foreign key 約束引用的表,不能使用 truncate table,而應使用不帶 where 子句的 delete 語句。由於 truncate table 不記錄在日誌中,所以它不能啟用觸發器。

索引是資料庫管理系統中乙個排序的資料結構,以協助快速查詢、更新資料庫表中資料
mysql目前主要有以下幾種索引型別:

1.普通索引

2.唯一索引

3.主鍵索引

4.組合索引

5.全文索引

MySQL資料庫入門操作積累

mysql uroot p 輸入密碼 root s 檢視當前資料庫資訊 檢視存在的資料庫 show databases 建立資料庫 create database mydb1 修改資料庫 alter database mydb1 charactor set utf8 collate utf8 bin...

技術積累 資料庫

1.mysql,sqlsever,oracle區別 ms sql server主要面向中小企業。其最大的優勢就是在於整合了ms公司的各類產品及資源,提供了強大的視覺化介面 高度整合的管理開發工具,在快速構建商業智慧型 bi 方面頗有建樹。ms sql server是ms公司在軟體整合方案中的重要一環...

資料庫學習積累

2018 5 11 一 檢視 1.若檢視是由兩個以上基本表匯出的,則此檢視不允許更新。2.若檢視的字段來自字段表示式或常數,則不允許對檢視執行inster和update操作,但允許delete。3.若檢視的字段來自聚集函式,則此檢視不允許更新。4.若檢視中含有group by子句,則此檢視不允許更新...