牛客 SQL 資料庫學習(一)

2021-10-21 03:19:52 字數 1773 閱讀 7312

寫在前面:

關於資料庫的書籍非常多,每本書籍的內容也非常的多。我嘗試過多次完整閱讀一本書籍,但結果收效甚微,不是翻過就忘,就是無法應用到實際中,還有這樣那樣的問題。總而言之就是,明明學過也學了很久的sql,還是不敢對別人說我會sql。因此,我想要換一種學習方式,通過碎片化時間做題來查詢不會的知識點,然後系統化複習和這個知識點相關的內容。

刪除的是表中的資料,而不是關於表的定義。

delect

from

表[where條]

1.刪除某乙個元組的值

2.刪除多個元組的值

3.帶子查詢的刪除語句

對某個基本表中資料的增刪改操作有可能會破壞參照完整性

【參照完整性檢查和違約處理】

【此處有圖】

【delect注意事項】

1.delect語句將刪除指定表中的所有行,這在測試新應用程式時很有用,能夠清空所有行但保留表結構

2.在生成新報告前使用它來清空舊行

3.表名也可以是查詢、檢視名,但查詢名指定的表必須是可更新的

4.1)刪除所有行

涉及引用完整性規則,並不能刪除所有行。

恢復:①表修改日誌 ②事務,遇到錯誤時回滾所有未提交的修改

2)刪除某些行之前,先用select查出來結果,然後將select改為delete

簡單做一下筆記:

1.truncate的作用是清空表或者說是截斷表,只能作用於表。truncate tbl_name

2.truncate是ddl(資料庫定義語言)語句,不能回滾

3.truncate與drop,delete的對比

(上圖中內容來自上述推文。零碎時間中我個人比較習慣於用ipad或者手機閱讀,跳轉各種鏈結很麻煩,所以簡要做一下筆記,系統了解還要去看推文。)

4.使用場景

該錶資料完全不需要時可以用truncate。如果想刪除部分資料用delete,注意帶上where子句;如果想刪除表,當然用drop;如果想保留表而將所有資料刪除且和事務無關,用truncate即可;如果和事務有關,或者想觸發trigger,還是用delete;如果是整理表內部的碎片,可以用truncate然後再重新插入資料。

2.drop、truncate 和 delete 的用法

oracle 高水位線詳解(刪除大量資料後續處理)

筆記:1.在資料庫錶剛建立的時候,由於沒有任何資料,所以這個時候水位線是空的,也就是說hwm為最低值。當插入了資料以後,高水位線就會**,但是這裡也有乙個特性,就是如果你採用delete語句刪除資料的話,資料雖然被刪除了,但是高水位線卻沒有降低,還是你剛才刪除資料以前那麼高的水位。也就是說,這條高水位線在日常的增刪操作中只會**,不會**。

2.那有沒有辦法讓高水位線下降呢,其實有一種比較簡單的方法,那就是採用truncate語句進行刪除資料。採用truncate語句刪除乙個表的資料的時候,類似於重新建立了表,不僅把資料都刪除了,還把hwm給清空恢復為0。所以如果需要把錶清空,在有可能利用truncate語句來刪除資料的時候就利用truncate語句來刪除表,特別是那種資料量有可能很大的臨時儲存表。

牛客網資料開發題庫 牛客網資料庫SQL實戰(1)

查詢最晚入職員工的所有資訊 入門 需要查詢最晚入職員工的資訊,即查詢hire date最大的資料,使用倒序並取第乙個人即可。select from employees order by hire date desc limit 0,1 desc 使用order by時在後面加上desc表示倒序,即從...

牛客網 資料庫SQL實戰36 40

36.對於如下表actor,其對應的資料為 actor id first name last name last update 1penelope guiness 2006 02 15 12 34 33 2nick wahlberg 2006 02 15 12 34 33 建立乙個actor nam...

牛客網 資料庫SQL實戰1

題目描述 查詢最晚入職員工的所有資訊,為了減輕入門難度,目前所有的資料裡員工入職的日期都不是同一天 sqlite裡面的注釋為 mysql為comment create table employees emp no int 11 notnull 員工編號 birth date date notnull...