這裡的DML即資料操縱語言,也就是主要進行的是對資料庫表的基本的增删改操作。
1.添加記錄
-- 插入語句
insert into 表名[(字段清單)] values(字段值清單);
-- 一般形式插入
insert into stu(sid,name) values(1,'de');
-- CTAS方式建表的同時添加資料
create table stu2 as select * from xxx; -- 建表的同時插入資料,as可省略
-- 通過結果集方式插入
insert into stu2 select * from stu where sid >12; -- 通過查詢結果集實作插入
-- 多記錄插入
insert into stu(sid,name) values(1,'de'),(2,'fg'),(3,'rt'); -- 多值插入
1) 多記錄插入示範
①表的建立:
SQL代碼:-- 建立表stu,個人喜歡在表名前面加上表名,也是開發習慣,希望參考的夥伴也加上 create table mktest.stu( sid int, username varchar(12), age int(3) ); -- 修改主鍵,這個你完全可以在建立表時指定主鍵 alter table mktest.stu change sid sid int primary key;
②插入資料:
SQL代碼:
效果圖如下:
③多值插入:
SQL代碼:
效果圖如下:
2) CTAS方式建表的同時添加資料示範
SQL代碼:
效果圖:
3) 通過結果集方式插入示範
資料準備:stu4資料即***上面CTAS方式結果集***,stu2的資料展示如下:SQL代碼:
效果如下:
2.删除記錄
--删除語句
delete from 表名 where xxx=xxx;
3.修改記錄
-- 更新語句
update 表名 set xxx=xxx where xxx;
4.清空表
-- 清空表:
delete from 表名
truncate table 表名; -- DDL操作
說明: delete 與 drop 和 truncate 差別
drop table 表名; -- 直接删除表結構
delete from 表名; -- 是逐行删除,不會删除表結構,但是也不會重置自增
truncate table 表名; -- 清空表,修改表結構,會重置自增
delete 和 truncate 差別:1)truncate是資料定義語言(DDL),性能上比作為delete的資料操縱語言(DML)要高出許多。
2)對于主鍵自增自增字段,由于delete是逐行删除,不會對表結構做更改,是以自增不會被重置,而truncate則是通過修改表結構的形式實作自增的重置。
注:實際開發中,由于需要考慮到性能,能夠使用DDL操作替代掉的DML操作,盡量使用DDL操作器替換掉。