MySQL數(shù)據(jù)庫操作DML?插入數(shù)據(jù),刪除數(shù)據(jù),更新數(shù)據(jù)
DML介紹
DML是指數(shù)據(jù)操作語言,英文全稱是Data Manipulation Language,用來對數(shù)據(jù)庫中表的數(shù)據(jù)記錄進行更新。
關鍵字:
- 插入insert
- 刪除delete
- 更新update
數(shù)據(jù)插入
insert into 表 (列名1,列名2,列名3...) values (值1,值2,值3...); //向表中插入某些 insert into 表 values (值1,值2,值3...); //向表中插入所有列
這里的兩種方式,第一種需要指定插入的列,有時候,我們需要把某些值賦值為NULL,不需要插入這些為空的數(shù)據(jù),那么此時第一個方式就比較好。
insert into student(sid,name,gender,age,birth,address,score) values(1001,'王小王-123','男',18,'1996-12-23','北京',83.5);
如果要使用第二種方式就需要,將所有的數(shù)據(jù)全部填充,少一個也不可以的
數(shù)據(jù)修改
首先我們準備數(shù)據(jù):
update 表名 set 字段名=值,字段名=值...; update 表名 set 字段名=值,字段名=值... where 條件;
第一種方法會將所有的列進行修改,而第二種只會通過where條件進行匹配到對應的數(shù)據(jù)進行修改
-- 將所有學生的地址修改為重慶 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
數(shù)據(jù)刪除
delete from 表名 [where 條件]; truncate table 表名 或者 truncate 表名
注意這里的兩種語法雖然都是對數(shù)據(jù)進行刪除,但是二者的內(nèi)部方法卻是不一樣的;
truncate和delete只刪除數(shù)據(jù)不刪除表的結構;drop刪除表的結構被依賴的約束(constrain),觸發(fā)器(trigger),索引(index),依賴于該表的存儲過程/函數(shù)將保留,但是變?yōu)閕nvalid(無效的)狀態(tài)
- 1、delete一般用來刪除表中的某一條或者一行數(shù)據(jù),在不設置WHERE條件下可以刪除表中的所有信息,將該操作保存在事務日志中在以后需要的時候還可以進行回滾操作。對表執(zhí)行delete之后,該表不會減少表或者索引所占用的空間。也就是說還可以恢復
- 2、truncate是清空的意思,從字面就可以理解為一次刪除就可以將表里的數(shù)據(jù)全部清除,沒有回滾操作。對表執(zhí)行truncate之后,表和索引就會恢復到初始的大小,但是對于delete刪除之后,索引會接著上面的繼續(xù)創(chuàng)建,這就是二者的本質(zhì)區(qū)別
- 3、drop可以將表的結構和數(shù)據(jù)內(nèi)容都刪除。對表執(zhí)行drop之后,該表所占用的空間全部釋放。
- 4、delete和truncate都是對數(shù)據(jù)進行操作,區(qū)別是范圍不同。delete可以針對數(shù)據(jù)中的table、view兩種類型。而truncate只能針對table類型。
- 5、速度上:drop>truncate>delete;
- 6、在沒有備份的時候,尤其小心使用drop和truncate,刪除部分數(shù)據(jù)行用delete帶上where子句,回滾段要足夠大。刪除表用drop。想要保留表而將所有數(shù)據(jù)刪除,如果和事務無關,用truncate即可,如果和事務有關,或者想觸發(fā)trigger,還是用delete。如果是整理表內(nèi)部的碎片,可以用truncate跟上reuse stroage,再重新導入/插入數(shù)據(jù)
- 7、delete是DML(數(shù)據(jù)操作語言)語句,執(zhí)行后不會自動提交;drop、truncate都是DDL(數(shù)據(jù)定義語言)語句,執(zhí)行后會自動提交。
-- 1.刪除sid為1004的學生數(shù)據(jù) delete from student where sid = 1004; -- 2.刪除表所有數(shù)據(jù) delete from student; -- 3.清空表數(shù)據(jù) truncate table student; truncate student;
到此這篇關于MySQL數(shù)據(jù)庫操作DML 插入數(shù)據(jù),刪除數(shù)據(jù),更新數(shù)據(jù)的文章就介紹到這了,更多相關MySQL數(shù)據(jù)庫操作DML 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
mysql 報錯 incompatible with sql_mode=only
這篇文章主要為大家介紹了mysql 報錯 incompatible with sql_mode=only_full_group_by解決方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-10-10mysql服務無法啟動報錯誤1067解決方法(mysql啟動錯誤1067 )
mysql服務無法啟動報錯誤1067解決方法,大家參考使用吧2013-12-12count(1)、count(*)與count(列名)的執(zhí)行區(qū)別詳解
這篇文章主要介紹了count(1)、count(*)與count(列名)的執(zhí)行區(qū)別詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-11-11navicat連接mysql出現(xiàn)2059錯誤的解決方法
這篇文章主要為大家詳細介紹了navicat連接mysql出現(xiàn)2059錯誤的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-11-11