Mysql插入語句

DML語言

  • 插入:insert
  • 修改:update
  • 刪除:delete

一、插入語句

方式一

語法

insert into 表名(列名,....)
values(值1,...) 值要與列名對應

1.插入的值類型要與列的類型一致或兼容

insert into beauty(id,name,sex,borndate,phone,photo,boyfriend_id)
values(13,'肥清','女','1990-4-23','1112332','1',2)

2.不可以爲null的列必須插入值,可以爲null的列插入值的方法有兩種

(1)直接在對應列加上null

(2)不顯式的給它賦值,系統將默認給其賦值爲null

3.列的順序可以調換

4.列數和值的個數必須一致

5.可以省略列名,默認所有列。而且列的順序和表種列的順序是一致的

 

 

方式二

語法

insert into 表名
set 列名=值,列名=值,...

兩種方法的區別

1.方式一可以插入多行,方式二不支持

insert into student
values(1,'張三','男'),
values(2,'李四','男');

2.方式一支持子查詢,方式二不支持

insert into student
select 26,'王五';

這個會將王五插入到表裏

3.在mysql從多個表中組合字段然後插入到一個新表中,通過一條sql語句實現。具體情形是:有三張表a、b、c,現在需要從表b和表c中分別查幾個字段的值插入到表a中對應的字段。對於這種情況,我們可以使用如下的語句來實現:

insert into db1_name(field1,field2) select field1,field2 from db2_name

對於多個表,需要將多個表先連接起來在使用select插入

 

二、修改語句

1.修改單表的記錄

語法:

update 表名
set 列 = 新值,....
where 篩選條件

修改beauty表中的姓唐的電話爲12345678911

update beauty phone ='12345678911'
where name like '唐%'

2.修改多表的記錄

sql92語法
update 表1 別名,表2 別名
set 列=值,....
where 連接條件
and 篩選條件


sql99語法
update 表1 別名,
inner|left|right join 表2 別名
on 連接條件
set 列=值
where 篩選條件

修改張無忌的女朋友的手機號爲114

update boys bo
inner join beauty b on bo.id = b.boyfriend_id
set b.phone =114
where bo.boyName ='張無忌'

這樣就會把beauty表裏的張無忌的女朋友的手機號修改爲114

 

修改沒有男朋友的女神的男朋友編號都爲2號

update beauty b 
left join boy bo
on b.boyfriend = bo.id
set b.boyfriend = 2
where b.boyfriend is null

三、刪除語句

單表的刪除

方式一、delete

語法:

delete from 表名 where 篩選條件

 

方式二、truncate

truncate table 表名;

不能加where條件,一刪就全刪了,就可以跑路了。

多表的刪除

語法

delete 表一的別名,表二的別名//這裏想兩個都寫的話,是兩個表裏的相關信息都進行刪除
from 表一 別名 join 表二 別名 on連接條件
where 篩選條件

刪除張無忌的女朋友的信息

delete b
from boy bo join beauty b on bo.id = b.boyfriend_id
where b.boyName ='張無忌';

刪除黃曉明的信息以及他女朋友的信息

delete b,bo
from beauty b
inner join boy bo on b.boyfriend_id = bo.id
where bo.boyName = '黃曉明';

delete 和 truncate區別

1.delete支持where 但是truncate不支持

2.truncate刪除,效率比較高

3.假如要刪除的表中有自增長列,如果用delete刪除後,再插入數據,自增長列的值從斷點開始,

而truncate刪除後,再插入數據,自增長列的值從1開始

這個是什麼意思呢?
比如說,有一個學生表,

學號 姓名
1 張三
2 李四
NULL NULL

如果在表設置裏勾選了學號自增,那麼你在插入數據的時候,不需要註明學號,系統會自動給你將學號增1

那麼,如果使用delete刪除了上面這個表的話,在插入數據('王五')那麼此時雖然表裏只有一條數據,但是王五的學號是3

如果用的是truncate的話,插入的王五的號就是1

4.truncate刪除沒有返回值,而delete刪除有返回值

5.truncate不能回滾,delete刪除可以回滾

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章