日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL(九)插入、更新和删除

發布時間:2024/2/28 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL(九)插入、更新和删除 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

常用的SQL語句,除了select用于查詢,還有insert、update、delete等。

?

一、insert

insert:用來插入(或添加)行到數據庫中,常見方式有以下幾種:

插入完整的行;

插入行的一部分;

插入多行;

插入某些查詢的結果;

1、插入完整的行

例如:insert into usertable

? ? values(null,

? ? ? ? 'zhangsan',

? ? ? ? '25',

? ? ? ? '1992-05-20',

? ? ? ? null,

? ? ? ? null);

這條SQL語句插入一條新的個人信息到usertable表,存儲在每個表列中的數據在values中給出,對每個列必須提供一個值,如果某個列沒有值,應使用null(假定表允許對該項指定空值);

各個列必須以它們在表定義中出現的次序填充;缺點在于;高度依賴表中列的定義次序,如果表結構出現變動,難免出現問題。

更安全的方法如下(相對比較麻煩):

例如:insert into usertable(user_id,

? ? ?user_name,

? ? ?user_year,

? ? ?user_birthday,

? ? ?user_address,

? ? ?user_email)

values(null,

? ? ?'zhangsan',

? ? ?'25',

? ? ?'1992-05-20',

? ? ?null,

? ? ?null);

這條SQL語句與上面的SQL語句完成同樣的工作,但給出了列名,valuse必須以指定的次序匹配指定的列名,不一定按照列出現在表中的實際次序;優點是:即使表結構改變,此insert語句仍然正確工作。

insert使用注意事項:

無論使用哪種insert語法,都必須給出values的正確數目,如果不提供列名,則必須給每個表列提供一個值;如果提供列名,則必須對每個列出的列給出一個值;

如果表定義允許,則可以在insert操作中省略某些列,列必須滿足這兩個條件(1.改列定義為允許null值;2.在表定義中給出默認值【如果不給出值,則使用默認值】);

數據庫被多個用戶訪問,一般檢索是最重要的,可以通過在insert和into中間添加關鍵字low priority,指示MySQL降低insert語句的優先級(同樣適用于update和delete語句);

2、插入多個行

例如:insert into usertable(user_id,

? ? ?user_name,

? ? ?user_year,

? ? ?user_birthday,

? ? ?user_address,

? ? ?user_email)

values(null,

? ? ?'zhangsan',

? ? ?'25',

? ? ?'1992-05-20',

? ? ?null,

? ? ?null);

或者只要每條insert語句中的列名(和次序)相同,可以只在insert語句后面輸入一次列名就可以(單個insert語句由多組值,每組值用一堆圓括號包含,用逗號隔開)

PS:MYSQL用單條insert語句處理多個插入比使用多個insert語句快。

3、插入檢索出的數據

例如:insert into usertable(user_id,

? ? ?user_name,

? ? ?user_year,

? ? ?user_birthday,

? ? ?user_address,

? ? ?user_email)

select user_id,

? ? ?user_name,

? ? ?user_year,

? ? ?user_birthday,

? ? ?user_adress,

? ? ?user_email

from newtablebase;

這條SQL語句中,select從newtablebase表中檢索出要插入的數據,select列出的每個列對應tablebase表名后所跟的列表中的每個列。

PS:insert select語句中,不一定要求列名匹配,實際上select中的第一列將用來填充表列中指定的第一列;insert select語句中select語句可包含where子句過濾插入的數據。

?

二、更新數據

如果要更新(修改)表中的數據,可以使用update語句,有以下兩種方法:

更新表中特定行;

更新表中所有行;

update語句由三部分構成:

要更新的表;

列名和它們的新值;

確定要更新行的過濾條件;

例如:update usertable

? ? ?set user_email = '3033310371@qq.com'

? ? ?where user_id = '10086';

這條SQL語句中,要更新的表名為usertable,set命令用來將新值賦給被更新的列user_email;

PS:update語句總是以要更新的表的名字開始,以where子句結束,它告訴MySQL更新哪一行。

更新多個列:update usertable

? ? ? ? ? set user_name = 'zhangsan',

? ? ? ? ? user_email = '3033310371@qq.com'

? ? ? ? ? where user_id = '10086';

更新多個列時,只需要使用單個set命令,每個“列=值”對之間用逗號分隔(最后一列不用逗號)。

PS:如果用update更新多個行,且更新中一行或多行出現錯誤,則update操作將被取消(錯誤發生前執行的動作將被回滾到最初狀態。即已更新的被恢復原來的值);

? ?如果希望出錯誤,更新繼續執行,可以使用ignore關鍵字:update ignore tablebase......

? ?如果希望刪除一個值,可以將它設置為null(如果表定義允許null值),例子如下:

? ?update usertable

? ?set user_email = null

? ?where user_id = '10086';

?

三、刪除數據

從一個表匯總刪除數據,使用delete語句;有以下兩種方式:

從表中刪除特定行;

從表中刪除所有行;

例如:delete from usertable where user_id = '10086';

這條SQL語句中,delete from要求指定從中刪除數據的表名,where子句過濾要刪除的行。

PS:delete不需要列名或者通配符,delete刪除整行而不是整列,為了刪除指定的列,可使用update語句(delete從表中刪除行甚至表中所有行,但不刪除表本身);

? ?如果想刪除表中所有行,可使用truncate table語句,它的執行效率比delete更快(truncate實際上是刪除原來表并重新新建一個表,而不是逐行刪除表中數據)。

更新和刪除規則:

除非確實打算更新或刪除每一行,否則決不能使用不帶where子句的update或delete語句;

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

對update和delete語句使用where子句前,最好先select進行測試,保證過濾的數據是正確的;

使用強制實施引用完整性的數據庫(這樣MySQL將不允許刪除具有與其他表相關聯的數據的行)。

總結

以上是生活随笔為你收集整理的MySQL(九)插入、更新和删除的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。