亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MySQL > 正文

與MSSQL對比學習MYSQL的心得(八)--插入 更新 刪除

2020-01-18 23:08:55
字體:
來源:轉載
供稿:網友

同樣的,只會講解跟SQLSERVER不同的地方

插入

將多行查詢結果插入到表中

語法

INSERT INTO table_name1(column_list1) SELECT (column_list2) FROM table_name2 WHERE (condition)

INSERT INTO SELECT 在SQLSERVER里也是支持的

table_name1指定待插入數據的表;column_list1指定待插入表中要插入數據的哪些列;table_name2指定插入數據是從

哪個表中查詢出來的;column_list2指定數據來源表的查詢列,該列表必須和column_list1列表中的字段個數相同,數據類型相同;

condition指定SELECT語句的查詢條件

從person_old表中查詢所有的記錄,并將其插入到person表

CREATE TABLE person ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, NAME CHAR(40) NOT NULL DEFAULT '', age INT NOT NULL DEFAULT 0, info CHAR(50) NULL, PRIMARY KEY (id))CREATE TABLE person_old ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, NAME CHAR(40) NOT NULL DEFAULT '', age INT NOT NULL DEFAULT 0, info CHAR(50) NULL, PRIMARY KEY (id))INSERT INTO person_oldVALUES (11,'Harry',20,'student'),(12,'Beckham',31,'police')SELECT * FROM person_old

 可以看到,插入記錄成功,person_old表現在有兩條記錄。接下來將person_oldperson_old表中的所有記錄插入到person表

INSERT INTO person(id,NAME,age,info)SELECT id,NAME,age,info FROM person_old;SELECT * FROM person 

可以看到數據轉移成功,這里的id字段為自增的主鍵,在插入時要保證該字段值的唯一性,如果不能確定,可以插入的時候忽略該字段,

只插入其他字段的值

如果再執行一次就會出錯

MYSQL和SQLSERVER的區別:

區別一

當要導入的數據中有重復值的時候,MYSQL會有三種方案

方案一:使用 ignore 關鍵字
方案二:使用 replace into
方案三:ON DUPLICATE KEY UPDATE

第二和第三種方案這里不作介紹,因為比較復雜,而且不符合要求,這里只講第一種方案

TRUNCATE TABLE personTRUNCATE TABLE persona_old INSERT INTO person_oldVALUES (11,'Harry',20,'student'),(12,'Beckham',31,'police')##注意下面這條insert語句是沒有ignore關鍵字的INSERT INTO person(id,NAME,age,info)SELECT id,NAME,age,info FROM person_old;INSERT INTO person_old VALUES (13,'kay',26,'student')##注意下面這條insert語句是有ignore關鍵字的INSERT IGNORE INTO person(id,NAME,age,info)SELECT id,NAME,age,info FROM person_old;

 

可以看到插入成功

SQLSERVER

在SQLSERVER這邊,如果要忽略重復鍵,需要在建表的時候指定 WITH (IGNORE_DUP_KEY = ON) ON [PRIMARY]

這樣在插入重復值的時候,SQLSERVER第一次會保留值,第二次發現有重復值的時候,SQLSERVER就會忽略掉

區別二

插入自增列時的區別

SQLSERVER需要使用 SET IDENTITY_INSERT 表名 ON 才能把自增字段的值插入到表中,如果不加 SET IDENTITY_INSERT 表名 ON

則在插入數據到表中時,不能指定自增字段的值,則id字段不能指定值,SQLSERVER會自動幫你自動增加一

INSERTINTO person(NAME,age,info) VALUES ('feicy',33,'student')

而MYSQL則不需要,而且自由度非常大

你可以將id字段的值指定為NULL,MYSQL會自動幫你增一

INSERTINTO person(id,NAME,age,info) VALUES (NULL,'feicy',33,'student')

 


也可以指定值

INSERT IGNORE INTO person(id,NAME,age,info) VALUES (16,'tom',88,'student')

也可以不寫id的值,MYSQL會自動幫你增一

INSERT IGNORE INTO person(NAME,age,info) VALUES ('amy',12,'bb')

你可以指定id字段的值也可以不指定,指定的時候只要當前id字段列沒有你正在插入的那個值就可以,即沒有重復值就可以

自由度非常大,而且無須指定 SET IDENTITY_INSERT 表名 ON 選項

區別三

唯一索引的NULL值重復問題

MYSQL

在MYSQL中UNIQUE 索引將會對null字段失效

insert into test(a) values(null) insert into test(a) values(null)

 
上面的插入語句是可以重復插入的(聯合唯一索引也一樣)

SQLSERVER

SQLSERVER則不行

CREATE TABLE person ( id INT NOT NULL IDENTITY(1,1), NAME CHAR(40) NULL DEFAULT '', age INT NOT NULL DEFAULT 0, info CHAR(50) NULL, PRIMARY KEY (id))CREATE UNIQUE INDEX IX_person_unique ON [dbo].[person](name)INSERT INTO [dbo].[person]    ( [NAME], [age], [info] )VALUES ( NULL, -- NAME - char(40)     1, -- age - int     'aa' -- info - char(50)     ),     ( NULL, -- NAME - char(40)     2, -- age - int     'bb' -- info - char(50)     )
消息 2601,級別 14,狀態 1,第 1 行不能在具有唯一索引“IX_person_unique”的對象“dbo.person”中插入重復鍵的行。重復鍵值為 (<NULL>)。語句已終止。

 
更新

更新比較簡單,就不多說了

UPDATE person SET info ='police' WHERE id BETWEEN 14 AND 17SELECT * FROM person

刪除

刪除person表中一定范圍的數據

DELETE FROM person WHERE id BETWEEN 14 AND 17SELECT * FROM person

如果要刪除表的所有記錄可以使用下面的兩種方法

##方法一
DELETE     FROM person

##方法二
TRUNCATE TABLE  person
跟SQLSERVER一樣,TRUNCATE TABLE會比DELETE FROM TABLE 快

MYISAM引擎下的測試結果,30行記錄

 
跟SQLSERVER一樣,執行完TRUNCATE TABLE后,自增字段重新從一開始。

################################INSERT IGNORE INTO person(id,NAME,age,info)SELECT id,NAME,age,info FROM person_old;SELECT * FROM personTRUNCATE TABLE personINSERT IGNORE INTO person(NAME,age,info) VALUES ('amy',12,'bb')SELECT * FROM person

當你剛剛truncate了表之后執行下面語句就會看到重新從一開始

SHOW TABLE STATUS LIKE 'person'

總結

這一節介紹了MYSQL里的的插入、更新和刪除,并且比較了與SQLSERVER的區別,特別是MYSQL里插入語句的靈活性

剛剛開始從SQLSERVER轉過來可能會有一些不適應

如有不對的地方,歡迎大家拍磚o(∩_∩)o

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97超级碰碰人国产在线观看| 8090理伦午夜在线电影| 97久久国产精品| 亚洲人成在线观看网站高清| 日本欧美在线视频| 日韩风俗一区 二区| 欧美一级在线播放| 午夜免费在线观看精品视频| 国产精品久久久久久久久免费看| 国产亚洲a∨片在线观看| 国产亚洲欧洲高清| 久久好看免费视频| 青青草一区二区| 久久人人97超碰精品888| 97精品视频在线播放| 97超级碰碰碰| 欧美精品videosex性欧美| 色香阁99久久精品久久久| 九色成人免费视频| 欧美特黄级在线| 欧美另类在线观看| 人人澡人人澡人人看欧美| 亚洲日本欧美中文幕| 日韩中文字幕视频| 久久久亚洲欧洲日产国码aⅴ| 国产在线视频不卡| 亚洲免费视频网站| 亚洲影视中文字幕| 国产日产亚洲精品| 久久久久久网址| 在线国产精品播放| 亚洲免费中文字幕| 国产成人精品国内自产拍免费看| 国产成人一区二| 这里只有视频精品| 97香蕉久久夜色精品国产| 在线成人一区二区| 色哟哟网站入口亚洲精品| 国产精品h片在线播放| 久久久久久久一区二区| 成人精品一区二区三区电影免费| 亚洲成人久久电影| 日韩电影免费观看中文字幕| 欧美成年人视频网站| 久久五月天综合| 国产精品自产拍在线观看中文| 国产精品第七十二页| 国产亚洲精品激情久久| 国产精品久久久久久久久久99| 亚洲va国产va天堂va久久| 久久久久久成人| 91国内在线视频| 日韩精品一区二区视频| 亚洲国产成人久久综合一区| 久久69精品久久久久久久电影好| 国产99久久精品一区二区| 亚洲欧洲国产精品| 亚洲欧洲自拍偷拍| 亚洲色图色老头| 久久久久久12| 色樱桃影院亚洲精品影院| 国产一区二区三区18| 久久久国产成人精品| 亚洲精品av在线播放| 国产专区精品视频| 国产日韩精品在线播放| 成人午夜在线观看| 1769国内精品视频在线播放| 欧美国产欧美亚洲国产日韩mv天天看完整| 成人在线中文字幕| 国产91精品久久久| 欧美在线视频一区| 亚洲福利精品在线| 国产午夜精品一区理论片飘花| 国产在线999| 久久久国产一区二区| 成人黄色免费网站在线观看| 亚洲欧美国产制服动漫| 亚洲黄色免费三级| 欧美中文字幕在线观看| 亚洲精品久久久久中文字幕二区| www.亚洲天堂| 国产精品96久久久久久又黄又硬| 红桃视频成人在线观看| 精品美女久久久久久免费| 欧美性猛交xxxxx水多| 主播福利视频一区| 日韩精品福利在线| 国产成人欧美在线观看| 社区色欧美激情 | 国产在线拍揄自揄视频不卡99| 欧美限制级电影在线观看| 欧美天堂在线观看| 日韩欧美精品中文字幕| 亚洲久久久久久久久久久| 成人免费直播live| 91网站在线看| 琪琪第一精品导航| 成人性生交大片免费观看嘿嘿视频| 久久久久国产一区二区三区| 菠萝蜜影院一区二区免费| 日韩精品www| 国产精品88a∨| 91亚洲国产成人久久精品网站| 精品国产区一区二区三区在线观看| 97视频在线看| 亚洲跨种族黑人xxx| 日韩av在线网站| 国产精品27p| 亚洲精品国产成人| 欧美黑人巨大xxx极品| 日韩精品在线电影| 欧美高清在线观看| 精品呦交小u女在线| 欧美疯狂xxxx大交乱88av| 欧美一级在线亚洲天堂| 美女啪啪无遮挡免费久久网站| 国产这里只有精品| 不卡av电影院| 欧美日韩中国免费专区在线看| 亚洲自拍另类欧美丝袜| 国产69精品久久久久9| 久久视频在线观看免费| 亚洲欧美999| 欧美高清视频一区二区| 麻豆国产精品va在线观看不卡| 日本欧美精品在线| 69**夜色精品国产69乱| 亚洲成av人影院在线观看| 亚洲色图第一页| 亚洲sss综合天堂久久| 欧美性高潮床叫视频| 亚洲国产第一页| 欧美成人午夜免费视在线看片| 国产在线久久久| 日韩欧美在线网址| 精品国产精品三级精品av网址| 91精品国产自产在线| 26uuu另类亚洲欧美日本一| 国产精品青青在线观看爽香蕉| 色综合天天狠天天透天天伊人| 97在线日本国产| 精品日韩美女的视频高清| 日韩欧美综合在线视频| 欧美在线一区二区三区四| 日日噜噜噜夜夜爽亚洲精品| 国产精品成人一区二区三区吃奶| 国产精品综合不卡av| 亚洲网址你懂得| 国产精品户外野外| 亚洲欧美变态国产另类| 久久久久久久久久国产| 国产亚洲精品成人av久久ww| 欧美在线视频观看免费网站| 国产在线久久久| 欧美一级片久久久久久久| 亚洲成色999久久网站| 日韩av在线影院| 亚洲国产精品美女| 日韩免费看的电影电视剧大全| 日韩成人在线免费观看| 国产成人综合av| 91伊人影院在线播放| 国产精品国产自产拍高清av水多|