首頁 > 軟體

MySQL資料庫操作DML 插入資料,刪除資料,更新資料

2022-07-11 18:04:09

DML介紹

DML是指資料操作語言,英文全稱是Data Manipulation Language,用來對資料庫中表的資料記錄進行更新。

關鍵字:

  • 插入insert
  • 刪除delete
  • 更新update

資料插入

insert into 表 (列名1,列名2,列名3...) values (值1,值2,值3...); //向表中插入某些
insert into 表 values (值1,值2,值3...); //向表中插入所有列

這裡的兩種方式,第一種需要指定插入的列,有時候,我們需要把某些值賦值為NULL,不需要插入這些為空的資料,那麼此時第一個方式就比較好。

insert into student(sid,name,gender,age,birth,address,score) values(1001,'王小王-123','男',18,'1996-12-23','北京',83.5);

 如果要使用第二種方式就需要,將所有的資料全部填充,少一個也不可以的

資料修改

首先我們準備資料:

update 表名 set 欄位名=值,欄位名=值...;
update 表名 set 欄位名=值,欄位名=值... where 條件;

第一種方法會將所有的列進行修改,而第二種只會通過where條件進行匹配到對應的資料進行修改

-- 將所有學生的地址修改為重慶
update student set address = '重慶';
-- 講id為1004的學生的地址修改為北京
update student set address = '北京' where id = 1004
-- 講id為1005的學生的地址修改為北京,成績修成績修改為100
update student set address = '廣州',score=100 where id = 1005

資料刪除

delete from 表名 [where 條件];
truncate table 表名 或者 truncate 表名

 注意這裡的兩種語法雖然都是對資料進行刪除,但是二者的內部方法卻是不一樣的;

truncate和delete只刪除資料不刪除表的結構;drop刪除表的結構被依賴的約束(constrain),觸發器(trigger),索引(index),依賴於該表的儲存過程/函數將保留,但是變為invalid(無效的)狀態

  • 1、delete一般用來刪除表中的某一條或者一行資料,在不設定WHERE條件下可以刪除表中的所有資訊,將該操作儲存在事務紀錄檔中在以後需要的時候還可以進行回滾操作。對錶執行delete之後,該表不會減少表或者索引所佔用的空間。也就是說還可以恢復
  • 2、truncate是清空的意思,從字面就可以理解為一次刪除就可以將表裡的資料全部清除,沒有回滾操作。對錶執行truncate之後,表和索引就會恢復到初始的大小,但是對於delete刪除之後,索引會接著上面的繼續建立,這就是二者的本質區別
  • 3、drop可以將表的結構和資料內容都刪除。對錶執行drop之後,該表所佔用的空間全部釋放。
  • 4、delete和truncate都是對資料進行操作,區別是範圍不同。delete可以針對資料中的table、view兩種型別。而truncate只能針對table型別。
  • 5、速度上:drop>truncate>delete;
  • 6、在沒有備份的時候,尤其小心使用drop和truncate,刪除部分資料行用delete帶上where子句,回滾段要足夠大。刪除表用drop。想要保留表而將所有資料刪除,如果和事務無關,用truncate即可,如果和事務有關,或者想觸發trigger,還是用delete如果是整理表內部的碎片,可以用truncate跟上reuse stroage,再重新匯入/插入資料
  • 7、delete是DML(資料操作語言)語句,執行後不會自動提交;drop、truncate都是DDL(資料定義語言)語句,執行後會自動提交。
-- 1.刪除sid為1004的學生資料
delete from student where sid = 1004;
-- 2.刪除表所有資料
delete from student;
-- 3.清空表資料
truncate table student;
truncate student;

到此這篇關於MySQL資料庫操作DML 插入資料,刪除資料,更新資料的文章就介紹到這了,更多相關MySQL資料庫操作DML 內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com