資料庫的基本操作———增,刪,改(DML)
阿新 • • 發佈:2018-12-04
一、認識MySQL的儲存引擎
1.MySQL 5.5支援的儲存引擎有InnoDB,MyISAM等。
2.常用的儲存引擎:InnoDB和MyISAM
功能 | InnoDB | MyISAM |
支援事務 | 支援 | 不支援 |
支援全文索引 | 不支援 | 支援 |
外來鍵約束 | 支援 | 不支援 |
表空間大小 | 較大 | 較小 |
資料行鎖定 | 支援 | 不支援 |
引用場景:
- MyISAM儲存引擎:訪問速度較快,可以對不需要事務處理,以訪問為主的應用適合!
- InnoDB儲存引擎:在事務處理上有優勢,可以對需要頻繁更新,刪除,同時對事務要求比較高,需要實現併發控制的應用!
3.MySQL 5.5以上的版本預設的儲存引擎是InnoDB.
#可以通過以下檢視預設引擎
show variables like 'storage_engine%';
#修改預設的儲存引擎
defaultsrotage- engine=InnoDB;
#注意:修改後要重新啟動MySQL服務才生效
4.指定表的儲存引擎
create table 表名( #.......省略程式碼 )engine=儲存引擎;
二、資料的增,刪,改
1.插入資料
(1)插入單行資料
insert into 表名 [欄位名列表] values (值列表);
(2)插入多行資料
#插入多行資料
insert into 表名 (欄位名列表.....)
values (值列表1,值列表),..... ,(值列表N);
(3)將查詢結果插入到新表中
create table 新表 (select 欄位1,欄位2,.....from 原表);
2.更新資料
#更新資料語法 update 表名 set 列名 =更新值 where 更新條件; #注意:set後面可以跟隨多個修改的資料列的值,不限一個,不同列之間使用逗號分開 where 子句是可選的,如果不選,那麼整個表的所有資料都會被更新
3.刪除資料
(1)使用DELECT輸出資料
delete from 表名 where 刪除條件;
#注意:如果where條件不加上,那麼就會刪除整個表的資料。delete 資料的數整條記錄,
不會刪除單個列,所以在delete後面不能出現列名。
(2)使用TRUCATE TABLE刪除資料
truncate table 表名;
#注意:truncate 也可以刪除表中的所有行,執行速度比delete執行速度要快,
並且刪除後,自增列的標識是會重置的!
注意:truncate table 會刪除表中的所有行,到表的結構,列,約束,索引等不會改動,還有truncate table不能用於有外來鍵約束的表!在實際開發中,不建議使用,因為它刪除的資料不能夠恢復。