1. 程式人生 > >資料庫的基本操作———增,刪,改(DML)

資料庫的基本操作———增,刪,改(DML)

一、認識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不能用於有外來鍵約束的表!在實際開發中,不建議使用,因為它刪除的資料不能夠恢復。