sql數據定義語言,MySQL03:DML語言

 2023-10-15 阅读 22 评论 0

摘要:DML語言 插入語句 語法 方式一: insert into 表名(字段名,…) values(值1,…); 方式二: sql數據定義語言,insert into 表名 set 列名=值,列名=值,… 比較 1、方式一支持插入多行,方式二不支持 MySQL decimal、INSERT INTO beauty VALUES

DML語言

插入語句

語法

方式一:

insert into 表名(字段名,…)
values(值1,…);

方式二:

sql數據定義語言,insert into 表名
set 列名=值,列名=值,…

比較

1、方式一支持插入多行,方式二不支持

MySQL decimal、INSERT INTO beauty
VALUES(23,‘唐藝昕1’,‘女’,‘1990-4-23’,‘1898888888’,NULL,2)
,(24,‘唐藝昕2’,‘女’,‘1990-4-23’,‘1898888888’,NULL,2)
,(25,‘唐藝昕3’,‘女’,‘1990-4-23’,‘1898888888’,NULL,2)

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

MySQL語言。INSERT INTO beauty(id,NAME,phone)
SELECT id,boyname,‘1234567’
FROM boys WHERE id<3;

特點

1、字段類型和值類型一致或兼容,而且一一對應
2、可以為空的字段,可以不用插入值,或用null填充
3、不可以為空的字段,必須插入值
4、字段個數和值的個數必須一致
5、字段可以省略,但默認所有字段,并且順序和表中的存儲順序一致

案例

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

INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id)
VALUES(13,‘唐藝昕’,‘女’,‘1990-4-23’,‘1898888888’,NULL,2);

2.不可以為null的列必須插入值。可以為null的列如何插入值?

方式一:

INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id)
VALUES(13,‘唐藝昕’,‘女’,‘1990-4-23’,‘1898888888’,NULL,

方式二:

INSERT INTO beauty(id,NAME,sex,phone)
VALUES(15,‘娜扎’,‘女’,‘1388888888’);

3.列的順序是否可以調換

INSERT INTO beauty(NAME,sex,id,phone)
VALUES(‘蔣欣’,‘女’,16,‘110’);

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

INSERT INTO beauty(NAME,sex,id,phone)
VALUES(‘關曉彤’,‘女’,17,‘110’);

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

INSERT INTO beauty
VALUES(18,‘張飛’,‘男’,NULL,‘119’,NULL,NULL);

修改語句

修改單表的記錄

語法:
update 表名
set 列=新值,列=新值,…
where 篩選條件;

案例一:修改beauty表中姓唐的女神的電話為13899888899

UPDATE beauty SET phone = '13899888899’
WHERE NAME LIKE ‘唐%’;

案例二:修改boys表中id好為2的名稱為張飛,魅力值 10

UPDATE boys SET boyname=‘張飛’,usercp=10
WHERE id=2;

修改多表的記錄(補充)

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

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

案例 1:修改張無忌的女朋友的手機號為114

UPDATE boys bo
INNER JOIN beauty b ON bo.id=b.boyfriend_id
SET b.phone=‘119’,bo.userCP=1000
WHERE bo.boyName=‘張無忌’;

案例2:修改沒有男朋友的女神的男朋友編號都為2號

UPDATE boys bo
RIGHT JOIN beauty b ON bo.id=b.boyfriend_id
SET b.boyfriend_id=2
WHERE bo.id IS NULL;
SELECT * FROM boys;

刪除語句

方式一:delete

語法:

1、單表的刪除【★】
delete from 表名 where 篩選條件

案例:刪除手機號以9結尾的女神信息

DELETE FROM beauty WHERE phone LIKE ‘%9’;

2、多表的刪除【補充】
sql92語法:
delete 表1的別名,表2的別名
from 表1 別名,表2 別名
where 連接條件
and 篩選條件;

sql99語法:
delete 表1的別名,表2的別名
from 表1 別名
inner|left|right join 表2 別名 on 連接條件
where 篩選條件;

案例:刪除張無忌的女朋友的信息

DELETE b
FROM beauty b
INNER JOIN boys bo ON b.boyfriend_id = bo.id
WHERE bo.boyName=‘張無忌’;

方式二:truncate

語法:truncate table 表名;

兩種方式對比:

1.delete 可以加where 條件,truncate不能加
2.truncate刪除,效率高一丟丟
3.假如要刪除的表中有自增長列,如果用delete刪除后,再插入數據,自增長列的值從斷點開始,而truncate刪除后,再插入數據,自增長列的值從1開始。
4.truncate刪除沒有返回值,delete刪除有返回值
5.truncate刪除不能回滾,delete刪除可以回滾.

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/137241.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息