天天看點

MySQL DML操作

這裡的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代碼:

效果圖如下:

MySQL DML操作
③多值插入:
SQL代碼:

效果圖如下:

MySQL DML操作

2) CTAS方式建表的同時添加資料示範

SQL代碼:

效果圖:

MySQL DML操作

3) 通過結果集方式插入示範

資料準備:stu4資料即***上面CTAS方式結果集***,stu2的資料展示如下:
MySQL DML操作

SQL代碼:

效果如下:

MySQL DML操作

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操作器替換掉。

繼續閱讀