MySQL 高階資料操作

2021-09-11 04:03:07 字數 2034 閱讀 1462

目錄

高階資料操作

新增資料

更新資料

刪除資料

多資料插入

只要寫一次insert指令,但是可以直接插入多條記錄

基本語法:insert into 表名 [(字段列表)] values(值列表),(值列表)…;
沒寫欄位名時字段值從第乙個開始寫到最後乙個,即使主鍵自增也必須寫主鍵

新增時涉及主外來鍵關係,要先新增主表再新增從表中的資料

主鍵衝突

主鍵衝突:在有的表中,使用的是業務主鍵(欄位有業務含義),但是往往在進行資料插入的時候,又不確定資料表中是否已經存在對應的主鍵。

主鍵衝突的解決方案:

1、 主鍵衝突更新:

類似插入資料語法,如果插入的過程中主鍵衝突,那麼採用更新方法。

insert into 表名 [(字段列表)] values(值列表) on duplicate key update 字段 = 新值;

2、 主鍵衝突替換:

當主鍵衝突之後,乾掉原來的資料,重新插入進去。

replace into [(字段列表)] values(值列表);

蠕蟲複製

蠕蟲複製:一分為二,成倍的增加。從已有的資料中獲取資料,並且將獲取到的資料插入到資料表中。

基本語法:insert into 表名 [(字段列表)] select *|字段列表 from 表;

相當於:insert into 表名(欄位名一,欄位名二) values (查出的字段值一,查出來的字段值二)

注意:1、 蠕蟲複製的確通常是重複資料,沒有太大業務意義:可以在短期內快速增加表的資料量,從而可以測試表的壓力,還可以通過大量資料來測試表的效率(索引)

2、 蠕蟲複製雖好,但是要注意主鍵衝突。

1、 在更新資料的時候,特別要注意:通常一定是跟隨條件更新

update 表名 set 欄位名 = 新值 where 判斷條件;
2、 如果沒有條件,是全表更新資料。但是可以使用limit 來限制更新的數量;

update 表名 set 欄位名 = 新值 [where 判斷條件] limit 數量;
改變4個a變成e

1、 刪除資料的時候盡量不要全部刪除,應該使用where進行判定;

2、 刪除資料的時候可以使用limit來限制要刪除的具體數量

3、如果刪除中涉及主外來鍵關係,一定要先刪除從表中的資料再刪除主表中的資料

delete刪除資料的時候無法重置auto_increment

mysql有乙個能夠重置表選項中的自增長的語法;

truncate 表名;

mysql高階高階資料操作

mysql 插入高階操作 衝突處理 on duplicate key update 更新教室 class 222 主鍵衝突替換 replace into my class values b1 333 高階資料更新 複製建立表 create table my copy like my class 蠕蟲...

mysql高階操作 MySQL資料庫的高階操作

1.資料備份與還原 1 備份 mysqldump mysqldump u username p password dbname tbname1 tbname2.filename.sql mysqldump u root p mydb2 c mysql dump mydb2 dump.sql 2 恢復...

MySQL資料庫的高階操作

1.資料備份與還原 1 備份 mysqldump mysqldump u username p password dbname tbname1 tbname2.filename.sql mysqldump u root p mydb2 c mysql dump mydb2 dump.sql 2 恢復...