MySQL 學習筆記 16 更新和刪除資料

2021-10-10 05:17:31 字數 3989 閱讀 3732

更新(修改)表中的資料,可以使用update語句,有兩種使用update的方式:

更新表中的特定行

更新表中的所有行

注意:

在使用updat時一定要細心,因為稍不注意就會更新表中的所有行

在客戶端/伺服器的 dbms 中,使用update語句可能需要特殊的安全許可權

基本的update語句由三部分組成,分別是:

要更新的表

列名和它們的新值

確定要更新行的過濾條件

update語句總是以要更新的表名開始

在這個例子中,要更新的表名為 customers:update customers

set命令用來將新值賦給被更新的列

在這裡,set子句設定 cust_email 列為指定的值:set cust_email = '[email protected]'

update語句以where子句結束,它告訴 dbms 更新哪一行

更新多個列的語法稍有不同:

在更新多個列時,只需要使用一條set命令,每個「列=值」對之間用逗號分隔(最後一列不需要用逗號)

update語句中使用子查詢 :update語句中可以使用子查詢,使得能用select語句檢索出的資料更新列資料

ignore關鍵字 :如果用update語句更新多行,並且在更新這些行中的一行或多行時出乙個現錯誤,則整個update操作被取消(錯誤發生前更新的所有行被恢復到它們原來的值)。為即使是發生錯誤,也繼續進行更新,可使用ignore關鍵字,如下所示:update ignore 表名...

要刪除某個列的值,可以設定它為null(假如表定義允許null值)如下進行:

null用來去除 cust_email 列中的值,這與儲存空字串很不同(空字串用『』表示,是乙個值),null表示沒有值

從乙個表中刪除(去掉)資料,使用delete語句,有兩種使用delete的方式:

從表中刪除特定的行

從表中刪除所有的行

注意:

在使用delete時一定要細心,因為稍不注意,就會錯誤地刪除表中的所有行

在客戶端/伺服器的 dbms 中,使用delete語句可能需要特殊的安全許可權

如下**,從 customers 表中刪除一行:

delete from要求指定從中刪除資料的表名,where子句過濾要刪除的行

在上述例子中,如果省略where子句,它將刪除表中的每乙個顧客

友好的外來鍵:存在外來鍵時,dbms 使用它們實施引用完整性

例如要向 products 表中插入乙個新產品,dbms 不允許通過位置的**商 id 插入它,因為, vend_id 列是作為外來鍵連線到 vendors 表的

dbms 通常可以防止刪除某個關係需要用的行

例如要從 products 表中刪除乙個產品,而這個產品用在 orderitems 的已有訂單中,那麼delete語句將丟擲錯誤並終止

delete不需要列名或萬用字元

delete刪除整行而不是刪除列,要刪除指定的列,使用update語句

刪除表的內容而不是表:delete語句從表中刪除行,甚至是刪除表中所有行,但是,delete不刪除表本身

更快的刪除:如果想從表中刪除所有的行,不要使用 delete

可以使用truncate table語句,它可以完成相同的工作,而速度更快(因為不記錄資料的變動)

truncate實際是刪除原來的表並重新建立乙個表,而不是逐行刪除表中的資料

updatedelete語句中,如果省略了where子句,則updatedelete將被應用到表中的所有行,所有在使用這兩條語句時,需要注意一些事項:

除非確實打算更新和刪除每一行,否則絕對不要使用不帶where子句的updatedelete語句

保證每個表都有主鍵,盡可能像where子句那樣使用它

updatedelete語句使用where子句前,應該先用select進行測試,保證它過濾的是正確的記錄

使用強制實施引用完整性,這樣 dbms 將不允許刪除其資料與其他表相關聯的行

16 更新和刪除資料

1.更新資料 更新 修改 表中的資料,可以使用 update 語句,有兩種方式 更新表中的特定行 更新表中的所有行。注意,不要省略 where 子句。基本的 update 語句由三部分組成 要更新的表 列名和它們的新值 確定要更新哪些行的過濾條件。1 update 語句總是以要更新的表名開始,set...

MySQL更新和刪除

更新和刪除的操作sql語句比較簡單,不過要注意使用update的時候,要注意weher條件的限制,下面的語句是只更新id為10005的email位址,如果不加where語句限制,那麼將表中所有的email更新為 elmer fudd.com 刪除某個列的值,設定為null即可。刪除行的sql語句,使...

Hibernate 資料的批量插入 更新和刪除

hibernate完全以物件導向的方式來運算元據庫,當程式裡以物件導向的方式操作持久化物件時,將被自動轉換為對資料庫的操作。例如呼叫session的delete 方法來刪除持久化物件,hibernate將負責刪除對應的資料記錄 當執行持久化物件的set方法時,hibernate將自動轉換為對應的up...