mysql倍增表的内容_MySQL入门(7)——表数据的增、删、改
MySQL入門(7)——表數據的增、刪、改
插入數據
使用INSERT···VALUES語句插入數據
INSERT語句最常用的格式是INSERT···VALUES:
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
[INTO] 數據表名 [(字段名,...)]
VALUES ({值 | DEFAULT},...),(...),...
[ON DUPLICATE KEY UPDATE 字段名=表達式,...]
參數說明如下:
[LOW_PRIORITY | DELAYED | HIGH_PRIORITY]:可選項,其中LOW_PRIORITY是INSERT、UPDATE和DELETE都支持的可選修飾符,通常應用在多用戶訪問數據庫的情況下,用于指示MySQL降低INSERT、DELETE或UPDATE的執行優先級;DELAYED是INSERT語句支持的可選修飾符,用于指定MySQL將待插入的行數據放到一個緩沖器中,直到待插入數據的表空閑時,才會真正執行插入;HIGH_PRIORITY是INSERT和SELECT語句支持的可選修飾符,用于指定INSERT和SELECT操作優先執行。
[IGNORE]:可選項,表示執行INSERT語句時,所出現的錯誤都會被作為警告處理。
[INTO] 數據表名:可選項,用于指定被操作的數據表。
[(字段名,...)]:可選項,當不指定該項時,表示要向表中所有列插入數據,否則表示向表的指定列插入數據。
VALUES({值 | DEFAULT},...),(...),...:必選項,用于指定需要插入的數據清單,其順序必須與字段的順序相對應。其中每一列的數據可以是常量、變量、表達式或NULL,但是數據類型必須和字段類型匹配;也可以直接使用DEFAULT關鍵字,表示該列插入默認值,但是使用的前提是已經明確默認值,否則會出錯。
ON DUPLICATE KEY UPDATE子句:可選項,用于指定向表中插入行時,如果導致UNIQUE KEY或PRIMARY KEY出現重復值,系統會根據UPDATE后的語句修改表中原有行的數據。
使用INSERT···SET語句插入數據
這種語法格式用于通過直接給表中的某些字段指定對應的值來實現插入指定數據,對于未指定的字段將采用默認值進行添加。語法格式如下:
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
[INTO] 數據表名
SET 字段名={值 | DEFAULT},...
[ON DUPLICATE KEY UPDATE 字段名=表達式,...]
參數說明如下:
[LOW_PRIORITY | DELAYED | HIGH_PRIORITY] :可選項,其作用與INSERT···VALUES語句相同。
[INTO]數據表名:用于指定被操作的數據表,其中[INTO]為可選項,可省略。
SET 字段名={值 | DEFAULT}:用于給數據表中的某些字段設置要插入的值。
ON DUPLICATE KEY UPDATE子句:可選項,其作用與INSERT···VALUES語句相同。
插入查詢結果
MySQL支持將查詢結果插入到指定的數據表中,通過INSERT···SELECT語句實現:
INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]
[INTO] 數據表名 [(字段名,...)]
SELECT ...
[ON DUPLICATE KEY UPDATE 字段名=表達式,...]
參數說明:
[LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]:可選項,其作用與INSERT···VALUE語句相同。
[INTO] 數據表名:用于指定被操作的數據表,其中[INTO]為可選項,可省略。
[(字段名,...)]:可選項,當不指定該項時,表示要向表中所有列插入數據,否則表示向表的指定列插入數據。
SELECT子句:用于快速地從一個或多個表中取出數據,并將這些數據作為行數據插入到目標數據表中。SELECT子句返回結果集中的字段數、字段類型必須與目標數據表完全一致。
ON DUPICATE KEY UPDATE子句:可選項,其作用與INSERT···VALUES語句相同。
修改數據
使用UPDATE語句:
UPDATE [LOW_PRIORITY] [IGNORE] 數據表名
SET 字段1=值1[,字段2=值2...]
[WHERE 條件表達式]
[ORDER BY...]
[LIMIT 行數]
參數說明:
[LOW_PRIORITY]:可選項,表示多用戶訪問數據庫的情況下可用于延遲UPDATE操作,知道沒有別的用戶再從表中讀取數據為止。該過程僅適用于表級鎖的存儲引擎(如IyISAM、MEMORY和MERGE)。
[IGNORE]:MySQL中,通過UPDATE語句更新表中多行數據時,如果出現錯誤,則整個UPDATE語句操作都會被取消,錯誤發生前更新的所有行將被恢復到原先的值。若需要在發生錯誤后繼續更新,需要IGNORE關鍵詞。
SET子句:必選項,用于指定表中要修改的字段名及其字段值。其中的值可以是表達式,也可以是該字段所對應的默認值。若指定默認值,則使用關鍵詞DEFAULT指定。
WHERE子句:可選項,用于限定表中要修改的行,若不指定該子句,則UPDATE語句會更新所有行。
ORDER BY子句:可選項,用于限定表中的行被修改的次序。
LIMIT子句:可選項,用于限定被修改的行數。
刪除數據
MySQL可以使用DELETE語句或TRUNCATE TABLE語句刪除表中的一行或多行數據。
通過DELETE語句刪除數據
語法格式如下:
DELETE [LOW_PRIOITY] [QUICK] [IGNORE] FROM 數據表名
[WHERE 條件表達式]
[ORDER BY ...]
[LIMIT 行數]
參數說明如下:
[LOW_PRIOITY]:可選項,表示多用戶訪問數據庫的情況下可用于延遲UPDATE操作,知道沒有別的用戶再從表中讀取數據為止。該過程僅適用于表級鎖的存儲引擎(如IyISAM、MEMORY和MERGE)。
[QUICK]:可選項,用于加快部分種類的刪除操作速度。
[IGNORE]:MySQL中,通過DELETE語句刪除表中多行數據時,如果出現錯誤,則整個DELETE語句操作都會被取消,錯誤發生前更新的所有行將被恢復到原先的值。若需要在發生錯誤后繼續刪除,需要IGNORE關鍵詞。
數據表名:用于指定要刪除的數據表的表名。
WHERE子句:可選項,用于限定表中要刪除的行,若不指定該子句,則DELETE語句會刪除表的所有行。
ORDER BY子句:可選項,用于限定表中的行被刪除的次序。
LIMIT子句:可選項,用于限定被刪除的行數。
通過TRUNCATE TABLE語句刪除數據
若需要從表中刪除所有行,可使用TRUNCATE TABLE語句:
TRUNCATE [TABLE] 數據表名
由于TRUNCATE TABLE語句會刪除數據表中的所有數據,并且無法恢復,因此使用TRUNCATE TABLE語句時需謹慎。
DELETE語句和TRUNCATE TABLE語句的區別
DELETE語句與TRUNCATE TABLE語句具有如下區別:
使用TRUNCATE TABLE語句后,表中的AUTO_INCREMENT計數器會被重新置為該列的初始值。
對于參與了索引和試圖的表,不能使用TRUNCATE TABLE語句來刪除數據,應當使用DELETE語句。
TRUNCATE TABLE操作與DELETE操作相比,使用的系統和事務日志資源少。DELETE語句每刪除一行都會在事務日志中添加一條記錄,而TRUNCATE TABLE語句是通過釋放存儲表數據所用的數據頁來刪除數據的,僅在事務日志中記錄頁的釋放。
總結
以上是生活随笔為你收集整理的mysql倍增表的内容_MySQL入门(7)——表数据的增、删、改的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在屋顶发现跟卧室相同位置放竹席什么意思
- 下一篇: python列表对象相同_Python中